#ifndef  ENTITY_SDAICURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS_H
#define  ENTITY_SDAICURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS_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 SdaiCurve_element_section_derived_definitions : public SdaiCurve_element_section_definition {
     protected:
        SDAI_Real _cross_sectional_area = 0.0;
        SdaiMeasure_or_unspecified_value_agg_ptr _shear_area = NULL;          //  of  measure_or_unspecified_value

        RealAggregate_ptr _second_moment_of_area = NULL;          //  of  context_dependent_measure

        SDAI_Real _torsional_constant = 0.0;
        SdaiMeasure_or_unspecified_value _warping_constant;
        SdaiMeasure_or_unspecified_value_agg_ptr _location_of_centroid = NULL;          //  of  measure_or_unspecified_value

        SdaiMeasure_or_unspecified_value_agg_ptr _location_of_shear_centre = NULL;          //  of  measure_or_unspecified_value

        SdaiMeasure_or_unspecified_value_agg_ptr _location_of_non_structural_mass = NULL;          //  of  measure_or_unspecified_value

        SdaiMeasure_or_unspecified_value _non_structural_mass;
        SdaiMeasure_or_unspecified_value _polar_moment;
    public: 
        SdaiCurve_element_section_derived_definitions();
        SdaiCurve_element_section_derived_definitions( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiCurve_element_section_derived_definitions( SdaiCurve_element_section_derived_definitions & e );
        ~SdaiCurve_element_section_derived_definitions();
        int opcode() {
            return 1274;
        }
        SdaiContext_dependent_measure   cross_sectional_area_() const;
        void cross_sectional_area_( const SdaiContext_dependent_measure x );

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

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

        SdaiContext_dependent_measure   torsional_constant_() const;
        void torsional_constant_( const SdaiContext_dependent_measure x );

        SdaiMeasure_or_unspecified_value_ptr_c warping_constant_() const;
        SdaiMeasure_or_unspecified_value_ptr   warping_constant_();
        void warping_constant_( const SdaiMeasure_or_unspecified_value_ptr x );

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

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

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

        SdaiMeasure_or_unspecified_value_ptr_c non_structural_mass_() const;
        SdaiMeasure_or_unspecified_value_ptr   non_structural_mass_();
        void non_structural_mass_( const SdaiMeasure_or_unspecified_value_ptr x );

        SdaiMeasure_or_unspecified_value_ptr_c polar_moment_() const;
        SdaiMeasure_or_unspecified_value_ptr   polar_moment_();
        void polar_moment_( const SdaiMeasure_or_unspecified_value_ptr x );

};

inline SdaiCurve_element_section_derived_definitions * create_SdaiCurve_element_section_derived_definitions() {
    return new SdaiCurve_element_section_derived_definitions;
}

void init_SdaiCurve_element_section_derived_definitions(Registry& reg);

namespace ap209_multidisciplinary_analysis_and_design_mim_lf {
    extern EntityDescriptor *e_curve_element_section_derived_definitions;
    extern AttrDescriptor *a_1907cross_sectional_area;
    extern AttrDescriptor *a_1908shear_area;
    extern AttrDescriptor *a_1909second_moment_of_area;
    extern AttrDescriptor *a_1910torsional_constant;
    extern AttrDescriptor *a_1911warping_constant;
    extern AttrDescriptor *a_1912location_of_centroid;
    extern AttrDescriptor *a_1913location_of_shear_centre;
    extern AttrDescriptor *a_1914location_of_non_structural_mass;
    extern AttrDescriptor *a_1915non_structural_mass;
    extern AttrDescriptor *a_1916polar_moment;
}

#endif
