#ifndef  ENTITY_SDAIPOINT_ON_SURFACE_PAIR_WITH_RANGE_H
#define  ENTITY_SDAIPOINT_ON_SURFACE_PAIR_WITH_RANGE_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 SdaiPoint_on_surface_pair_with_range : public SdaiPoint_on_surface_pair {
     protected:
        SDAI_Application_instance_ptr _range_on_pair_surface = NULL;
        SDAI_Real _lower_limit_yaw = 0.0;    //  OPTIONAL
        SDAI_Real _upper_limit_yaw = 0.0;    //  OPTIONAL
        SDAI_Real _lower_limit_pitch = 0.0;    //  OPTIONAL
        SDAI_Real _upper_limit_pitch = 0.0;    //  OPTIONAL
        SDAI_Real _lower_limit_roll = 0.0;    //  OPTIONAL
        SDAI_Real _upper_limit_roll = 0.0;    //  OPTIONAL
    public: 
        SdaiPoint_on_surface_pair_with_range();
        SdaiPoint_on_surface_pair_with_range( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiPoint_on_surface_pair_with_range( SdaiPoint_on_surface_pair_with_range & e );
        ~SdaiPoint_on_surface_pair_with_range();
        int opcode() {
            return 1663;
        }
        SdaiRectangular_trimmed_surface_ptr_c range_on_pair_surface_() const;
        SdaiRectangular_trimmed_surface_ptr   range_on_pair_surface_();
        void range_on_pair_surface_( const SdaiRectangular_trimmed_surface_ptr x );

        SdaiPlane_angle_measure   lower_limit_yaw_() const;
        void lower_limit_yaw_( const SdaiPlane_angle_measure x );

        SdaiPlane_angle_measure   upper_limit_yaw_() const;
        void upper_limit_yaw_( const SdaiPlane_angle_measure x );

        SdaiPlane_angle_measure   lower_limit_pitch_() const;
        void lower_limit_pitch_( const SdaiPlane_angle_measure x );

        SdaiPlane_angle_measure   upper_limit_pitch_() const;
        void upper_limit_pitch_( const SdaiPlane_angle_measure x );

        SdaiPlane_angle_measure   lower_limit_roll_() const;
        void lower_limit_roll_( const SdaiPlane_angle_measure x );

        SdaiPlane_angle_measure   upper_limit_roll_() const;
        void upper_limit_roll_( const SdaiPlane_angle_measure x );

};

inline SdaiPoint_on_surface_pair_with_range * create_SdaiPoint_on_surface_pair_with_range() {
    return new SdaiPoint_on_surface_pair_with_range;
}

void init_SdaiPoint_on_surface_pair_with_range(Registry& reg);

namespace ap209_multidisciplinary_analysis_and_design_mim_lf {
    extern EntityDescriptor *e_point_on_surface_pair_with_range;
    extern AttrDescriptor *a_2514range_on_pair_surface;
    extern AttrDescriptor *a_2515lower_limit_yaw;
    extern AttrDescriptor *a_2516upper_limit_yaw;
    extern AttrDescriptor *a_2517lower_limit_pitch;
    extern AttrDescriptor *a_2518upper_limit_pitch;
    extern AttrDescriptor *a_2519lower_limit_roll;
    extern AttrDescriptor *a_2520upper_limit_roll;
}

#endif
