#ifndef  ENTITY_SDAIIFCLSHAPEPROFILEDEF_H
#define  ENTITY_SDAIIFCLSHAPEPROFILEDEF_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 SdaiIfclshapeprofiledef : public SdaiIfcparameterizedprofiledef {
     protected:
        SDAI_Real _depth = 0.0;
        SDAI_Real _width = 0.0;    //  OPTIONAL
        SDAI_Real _thickness = 0.0;
        SDAI_Real _filletradius = 0.0;    //  OPTIONAL
        SDAI_Real _edgeradius = 0.0;    //  OPTIONAL
        SDAI_Real _legslope = 0.0;    //  OPTIONAL
        SDAI_Real _centreofgravityinx = 0.0;    //  OPTIONAL
        SDAI_Real _centreofgravityiny = 0.0;    //  OPTIONAL
    public: 
        SdaiIfclshapeprofiledef();
        SdaiIfclshapeprofiledef( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfclshapeprofiledef( SdaiIfclshapeprofiledef & e );
        ~SdaiIfclshapeprofiledef();
        int opcode() {
            return 464;
        }
        SdaiIfcpositivelengthmeasure   depth_() const;
        void depth_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   width_() const;
        void width_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   thickness_() const;
        void thickness_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   filletradius_() const;
        void filletradius_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   edgeradius_() const;
        void edgeradius_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcplaneanglemeasure   legslope_() const;
        void legslope_( const SdaiIfcplaneanglemeasure x );

        SdaiIfcpositivelengthmeasure   centreofgravityinx_() const;
        void centreofgravityinx_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   centreofgravityiny_() const;
        void centreofgravityiny_( const SdaiIfcpositivelengthmeasure x );

};

inline SdaiIfclshapeprofiledef * create_SdaiIfclshapeprofiledef() {
    return new SdaiIfclshapeprofiledef;
}

void init_SdaiIfclshapeprofiledef(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifclshapeprofiledef;
    extern AttrDescriptor *a_1042depth;
    extern AttrDescriptor *a_1043width;
    extern AttrDescriptor *a_1044thickness;
    extern AttrDescriptor *a_1045filletradius;
    extern AttrDescriptor *a_1046edgeradius;
    extern AttrDescriptor *a_1047legslope;
    extern AttrDescriptor *a_1048centreofgravityinx;
    extern AttrDescriptor *a_1049centreofgravityiny;
}

#endif
