#ifndef  ENTITY_SDAIPOINT_ON_SURFACE_PAIR_RANGE_H
#define  ENTITY_SDAIPOINT_ON_SURFACE_PAIR_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_range : public SdaiSimple_pair_range {
     protected:
        SDAI_Application_instance_ptr _simple_pair_range_applies_to_pair = NULL;
        SDAI_Application_instance_ptr _range_on_pair_surface = NULL;
        SdaiRotational_range_measure _lower_limit_yaw;
        SdaiRotational_range_measure _upper_limit_yaw;
        SdaiRotational_range_measure _lower_limit_pitch;
        SdaiRotational_range_measure _upper_limit_pitch;
        SdaiRotational_range_measure _lower_limit_roll;
        SdaiRotational_range_measure _upper_limit_roll;
    public: 
        SdaiPoint_on_surface_pair_range();
        SdaiPoint_on_surface_pair_range( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiPoint_on_surface_pair_range( SdaiPoint_on_surface_pair_range & e );
        ~SdaiPoint_on_surface_pair_range();
        int opcode() {
            return 669;
        }
        SdaiPoint_on_surface_pair_ptr_c simple_pair_range_applies_to_pair_() const;
        SdaiPoint_on_surface_pair_ptr   simple_pair_range_applies_to_pair_();
        void simple_pair_range_applies_to_pair_( const SdaiPoint_on_surface_pair_ptr x );

        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 );

        SdaiRotational_range_measure_ptr_c lower_limit_yaw_() const;
        SdaiRotational_range_measure_ptr   lower_limit_yaw_();
        void lower_limit_yaw_( const SdaiRotational_range_measure_ptr x );

        SdaiRotational_range_measure_ptr_c upper_limit_yaw_() const;
        SdaiRotational_range_measure_ptr   upper_limit_yaw_();
        void upper_limit_yaw_( const SdaiRotational_range_measure_ptr x );

        SdaiRotational_range_measure_ptr_c lower_limit_pitch_() const;
        SdaiRotational_range_measure_ptr   lower_limit_pitch_();
        void lower_limit_pitch_( const SdaiRotational_range_measure_ptr x );

        SdaiRotational_range_measure_ptr_c upper_limit_pitch_() const;
        SdaiRotational_range_measure_ptr   upper_limit_pitch_();
        void upper_limit_pitch_( const SdaiRotational_range_measure_ptr x );

        SdaiRotational_range_measure_ptr_c lower_limit_roll_() const;
        SdaiRotational_range_measure_ptr   lower_limit_roll_();
        void lower_limit_roll_( const SdaiRotational_range_measure_ptr x );

        SdaiRotational_range_measure_ptr_c upper_limit_roll_() const;
        SdaiRotational_range_measure_ptr   upper_limit_roll_();
        void upper_limit_roll_( const SdaiRotational_range_measure_ptr x );

};

inline SdaiPoint_on_surface_pair_range * create_SdaiPoint_on_surface_pair_range() {
    return new SdaiPoint_on_surface_pair_range;
}

void init_SdaiPoint_on_surface_pair_range(Registry& reg);

namespace automotive_design {
    extern EntityDescriptor *e_point_on_surface_pair_range;
    extern AttrDescriptor *a_931Rsimple_pair_range_applies_to_pair;
    extern AttrDescriptor *a_932range_on_pair_surface;
    extern AttrDescriptor *a_933lower_limit_yaw;
    extern AttrDescriptor *a_934upper_limit_yaw;
    extern AttrDescriptor *a_935lower_limit_pitch;
    extern AttrDescriptor *a_936upper_limit_pitch;
    extern AttrDescriptor *a_937lower_limit_roll;
    extern AttrDescriptor *a_938upper_limit_roll;
}

#endif
