#ifndef  ENTITY_SDAIB_SPLINE_SURFACE_WITH_KNOTS_H
#define  ENTITY_SDAIB_SPLINE_SURFACE_WITH_KNOTS_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 SdaiB_spline_surface_with_knots : public SdaiB_spline_surface {
     protected:
        IntAggregate_ptr _u_multiplicities = NULL;
        IntAggregate_ptr _v_multiplicities = NULL;
        RealAggregate_ptr _u_knots = NULL;          //  of  parameter_value

        RealAggregate_ptr _v_knots = NULL;          //  of  parameter_value

        SdaiKnot_type_var _knot_spec;
    public: 
        SdaiB_spline_surface_with_knots();
        SdaiB_spline_surface_with_knots( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiB_spline_surface_with_knots( SdaiB_spline_surface_with_knots & e );
        ~SdaiB_spline_surface_with_knots();
        int opcode() {
            return 240;
        }
        IntAggregate_ptr_c u_multiplicities_() const;
        IntAggregate_ptr   u_multiplicities_();
        void u_multiplicities_( const IntAggregate_ptr x );

        IntAggregate_ptr_c v_multiplicities_() const;
        IntAggregate_ptr   v_multiplicities_();
        void v_multiplicities_( const IntAggregate_ptr x );

        RealAggregate_ptr_c u_knots_() const;
        RealAggregate_ptr   u_knots_();
        void u_knots_( const RealAggregate_ptr x );

        RealAggregate_ptr_c v_knots_() const;
        RealAggregate_ptr   v_knots_();
        void v_knots_( const RealAggregate_ptr x );

  const SdaiKnot_type_var   knot_spec_() const;
        SdaiKnot_type_var   knot_spec_();
        void knot_spec_( const SdaiKnot_type_var x );

};

inline SdaiB_spline_surface_with_knots * create_SdaiB_spline_surface_with_knots() {
    return new SdaiB_spline_surface_with_knots;
}

void init_SdaiB_spline_surface_with_knots(Registry& reg);

namespace ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies_mim_lf {
    extern EntityDescriptor *e_b_spline_surface_with_knots;
    extern AttrDescriptor *a_356u_multiplicities;
    extern AttrDescriptor *a_357v_multiplicities;
    extern AttrDescriptor *a_358u_knots;
    extern AttrDescriptor *a_359v_knots;
    extern AttrDescriptor *a_360knot_spec;
    extern Derived_attribute *a_361Dknot_u_upper;
    extern Derived_attribute *a_362Dknot_v_upper;
}

#endif
