#ifndef  ENTITY_SDAIIFCOFFSETCURVE3D_H
#define  ENTITY_SDAIIFCOFFSETCURVE3D_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 SdaiIfcoffsetcurve3d : public SdaiIfccurve {
     protected:
        SDAI_Application_instance_ptr _basiscurve = NULL;
        SDAI_Real _distance = 0.0;
        SDAI_LOGICAL _selfintersect;
        SDAI_Application_instance_ptr _refdirection = NULL;
    public: 
        SdaiIfcoffsetcurve3d();
        SdaiIfcoffsetcurve3d( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcoffsetcurve3d( SdaiIfcoffsetcurve3d & e );
        ~SdaiIfcoffsetcurve3d();
        int opcode() {
            return 506;
        }
        SdaiIfccurve_ptr_c basiscurve_() const;
        SdaiIfccurve_ptr   basiscurve_();
        void basiscurve_( const SdaiIfccurve_ptr x );

        SdaiIfclengthmeasure   distance_() const;
        void distance_( const SdaiIfclengthmeasure x );

        Logical   selfintersect_() const;
        void selfintersect_( const Logical x );

        SdaiIfcdirection_ptr_c refdirection_() const;
        SdaiIfcdirection_ptr   refdirection_();
        void refdirection_( const SdaiIfcdirection_ptr x );

};

inline SdaiIfcoffsetcurve3d * create_SdaiIfcoffsetcurve3d() {
    return new SdaiIfcoffsetcurve3d;
}

void init_SdaiIfcoffsetcurve3d(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcoffsetcurve3d;
    extern AttrDescriptor *a_1113basiscurve;
    extern AttrDescriptor *a_1114distance;
    extern AttrDescriptor *a_1115selfintersect;
    extern AttrDescriptor *a_1116refdirection;
}

#endif
