#ifndef  ENTITY_SDAISURFACE_CURVE_H
#define  ENTITY_SDAISURFACE_CURVE_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 : public SdaiCurve {
     protected:
        SDAI_Application_instance_ptr _curve_3d = NULL;
        SdaiPcurve_or_surface_agg_ptr _associated_geometry = NULL;          //  of  pcurve_or_surface

        SdaiPreferred_surface_curve_representation_var _master_representation;
    public: 
        SdaiSurface_curve();
        SdaiSurface_curve( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiSurface_curve( SdaiSurface_curve & e );
        ~SdaiSurface_curve();
        int opcode() {
            return 82;
        }
        SdaiCurve_ptr_c curve_3d_() const;
        SdaiCurve_ptr   curve_3d_();
        void curve_3d_( const SdaiCurve_ptr x );

        SdaiPcurve_or_surface_agg_ptr_c associated_geometry_() const;
        SdaiPcurve_or_surface_agg_ptr   associated_geometry_();
        void associated_geometry_( const SdaiPcurve_or_surface_agg_ptr x );

  const SdaiPreferred_surface_curve_representation_var   master_representation_() const;
        SdaiPreferred_surface_curve_representation_var   master_representation_();
        void master_representation_( const SdaiPreferred_surface_curve_representation_var x );

};

inline SdaiSurface_curve * create_SdaiSurface_curve() {
    return new SdaiSurface_curve;
}

void init_SdaiSurface_curve(Registry& reg);

namespace config_control_design {
    extern EntityDescriptor *e_surface_curve;
    extern AttrDescriptor *a_167curve_3d;
    extern AttrDescriptor *a_168associated_geometry;
    extern AttrDescriptor *a_169master_representation;
    extern Derived_attribute *a_170Dbasis_surface;
}

#endif
