#ifndef  ENTITY_SDAISURFACE_CURVE_SWEPT_AREA_SOLID_H
#define  ENTITY_SDAISURFACE_CURVE_SWEPT_AREA_SOLID_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 SdaiSurface_curve_swept_area_solid : public SdaiSwept_area_solid {
     protected:
        SDAI_Application_instance_ptr _directrix = NULL;
        SDAI_Real _start_param = 0.0;
        SDAI_Real _end_param = 0.0;
        SDAI_Application_instance_ptr _reference_surface = NULL;
    public: 
        SdaiSurface_curve_swept_area_solid();
        SdaiSurface_curve_swept_area_solid( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiSurface_curve_swept_area_solid( SdaiSurface_curve_swept_area_solid & e );
        ~SdaiSurface_curve_swept_area_solid();
        int opcode() {
            return 305;
        }
        SdaiCurve_ptr_c directrix_() const;
        SdaiCurve_ptr   directrix_();
        void directrix_( const SdaiCurve_ptr x );

        SDAI_Real   start_param_() const;
        void start_param_( const SDAI_Real x );

        SDAI_Real   end_param_() const;
        void end_param_( const SDAI_Real x );

        SdaiSurface_ptr_c reference_surface_() const;
        SdaiSurface_ptr   reference_surface_();
        void reference_surface_( const SdaiSurface_ptr x );

};

inline SdaiSurface_curve_swept_area_solid * create_SdaiSurface_curve_swept_area_solid() {
    return new SdaiSurface_curve_swept_area_solid;
}

void init_SdaiSurface_curve_swept_area_solid(Registry& reg);

namespace automotive_design {
    extern EntityDescriptor *e_surface_curve_swept_area_solid;
    extern AttrDescriptor *a_452directrix;
    extern AttrDescriptor *a_453start_param;
    extern AttrDescriptor *a_454end_param;
    extern AttrDescriptor *a_455reference_surface;
}

#endif
