#ifndef  ENTITY_SDAIIFCFILLAREASTYLEHATCHING_H
#define  ENTITY_SDAIIFCFILLAREASTYLEHATCHING_H

// This file was generated by exp2cxx,
// 0.8.1.
// You probably don't want to edit it since your modifications
// will be lost if exp2cxx is used to regenerate it.

class SC_SCHEMA_EXPORT SdaiIfcfillareastylehatching : public SdaiIfcgeometricrepresentationitem {
     protected:
        SDAI_Application_instance_ptr _hatchlineappearance = NULL;
        SdaiIfchatchlinedistanceselect _startofnexthatchline;
        SDAI_Application_instance_ptr _pointofreferencehatchline = NULL;    //  OPTIONAL
        SDAI_Application_instance_ptr _patternstart = NULL;    //  OPTIONAL
        SDAI_Real _hatchlineangle = 0.0;
    public: 
        SdaiIfcfillareastylehatching();
        SdaiIfcfillareastylehatching( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcfillareastylehatching( SdaiIfcfillareastylehatching & e );
        ~SdaiIfcfillareastylehatching();
        int opcode() {
            return 159;
        }
        SdaiIfccurvestyle_ptr_c hatchlineappearance_() const;
        SdaiIfccurvestyle_ptr   hatchlineappearance_();
        void hatchlineappearance_( const SdaiIfccurvestyle_ptr x );

        SdaiIfchatchlinedistanceselect_ptr_c startofnexthatchline_() const;
        SdaiIfchatchlinedistanceselect_ptr   startofnexthatchline_();
        void startofnexthatchline_( const SdaiIfchatchlinedistanceselect_ptr x );

        SdaiIfccartesianpoint_ptr_c pointofreferencehatchline_() const;
        SdaiIfccartesianpoint_ptr   pointofreferencehatchline_();
        void pointofreferencehatchline_( const SdaiIfccartesianpoint_ptr x );

        SdaiIfccartesianpoint_ptr_c patternstart_() const;
        SdaiIfccartesianpoint_ptr   patternstart_();
        void patternstart_( const SdaiIfccartesianpoint_ptr x );

        SdaiIfcplaneanglemeasure   hatchlineangle_() const;
        void hatchlineangle_( const SdaiIfcplaneanglemeasure x );

};

inline SdaiIfcfillareastylehatching * create_SdaiIfcfillareastylehatching() {
    return new SdaiIfcfillareastylehatching;
}

void init_SdaiIfcfillareastylehatching(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcfillareastylehatching;
    extern AttrDescriptor *a_339hatchlineappearance;
    extern AttrDescriptor *a_340startofnexthatchline;
    extern AttrDescriptor *a_341pointofreferencehatchline;
    extern AttrDescriptor *a_342patternstart;
    extern AttrDescriptor *a_343hatchlineangle;
}

#endif
