#ifndef  ENTITY_SDAIELEMENT_NODAL_FREEDOM_TERMS_H
#define  ENTITY_SDAIELEMENT_NODAL_FREEDOM_TERMS_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 SdaiElement_nodal_freedom_terms : public SDAI_Application_instance {
    protected:
        SDAI_Application_instance_ptr _coordinate_system = NULL;
        SDAI_Application_instance_ptr _degrees_of_freedom = NULL;
        SdaiMeasure_or_unspecified_value_agg_ptr _values = NULL;          //  of  measure_or_unspecified_value

    public: 
        SdaiElement_nodal_freedom_terms();
        SdaiElement_nodal_freedom_terms( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiElement_nodal_freedom_terms( SdaiElement_nodal_freedom_terms & e );
        ~SdaiElement_nodal_freedom_terms();
        int opcode() {
            return 2053;
        }
        SdaiFea_axis2_placement_3d_ptr_c coordinate_system_() const;
        SdaiFea_axis2_placement_3d_ptr   coordinate_system_();
        void coordinate_system_( const SdaiFea_axis2_placement_3d_ptr x );

        SdaiFreedoms_list_ptr_c degrees_of_freedom_() const;
        SdaiFreedoms_list_ptr   degrees_of_freedom_();
        void degrees_of_freedom_( const SdaiFreedoms_list_ptr x );

        SdaiMeasure_or_unspecified_value_agg_ptr_c values_() const;
        SdaiMeasure_or_unspecified_value_agg_ptr   values_();
        void values_( const SdaiMeasure_or_unspecified_value_agg_ptr x );

};

inline SdaiElement_nodal_freedom_terms * create_SdaiElement_nodal_freedom_terms() {
    return new SdaiElement_nodal_freedom_terms;
}

void init_SdaiElement_nodal_freedom_terms(Registry& reg);

namespace ap209_multidisciplinary_analysis_and_design_mim_lf {
    extern EntityDescriptor *e_element_nodal_freedom_terms;
    extern AttrDescriptor *a_3090coordinate_system;
    extern AttrDescriptor *a_3091degrees_of_freedom;
    extern AttrDescriptor *a_3092values;
}

#endif
