#ifndef  ENTITY_SDAIVIEW_VOLUME_H
#define  ENTITY_SDAIVIEW_VOLUME_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 SdaiView_volume : public SdaiFounded_item {
     protected:
        SdaiCentral_or_parallel_var _projection_type;
        SDAI_Application_instance_ptr _projection_point = NULL;
        SDAI_Real _view_plane_distance = 0.0;
        SDAI_Real _front_plane_distance = 0.0;
        SDAI_BOOLEAN _front_plane_clipping = false;
        SDAI_Real _back_plane_distance = 0.0;
        SDAI_BOOLEAN _back_plane_clipping = false;
        SDAI_BOOLEAN _view_volume_sides_clipping = false;
        SDAI_Application_instance_ptr _view_window = NULL;
    public: 
        SdaiView_volume();
        SdaiView_volume( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiView_volume( SdaiView_volume & e );
        ~SdaiView_volume();
        int opcode() {
            return 909;
        }
  const SdaiCentral_or_parallel_var   projection_type_() const;
        SdaiCentral_or_parallel_var   projection_type_();
        void projection_type_( const SdaiCentral_or_parallel_var x );

        SdaiCartesian_point_ptr_c projection_point_() const;
        SdaiCartesian_point_ptr   projection_point_();
        void projection_point_( const SdaiCartesian_point_ptr x );

        SdaiLength_measure   view_plane_distance_() const;
        void view_plane_distance_( const SdaiLength_measure x );

        SdaiLength_measure   front_plane_distance_() const;
        void front_plane_distance_( const SdaiLength_measure x );

        Boolean   front_plane_clipping_() const;
        void front_plane_clipping_( const Boolean x );

        SdaiLength_measure   back_plane_distance_() const;
        void back_plane_distance_( const SdaiLength_measure x );

        Boolean   back_plane_clipping_() const;
        void back_plane_clipping_( const Boolean x );

        Boolean   view_volume_sides_clipping_() const;
        void view_volume_sides_clipping_( const Boolean x );

        SdaiPlanar_box_ptr_c view_window_() const;
        SdaiPlanar_box_ptr   view_window_();
        void view_window_( const SdaiPlanar_box_ptr x );

        EntityAggregate_ptr_c camera_usages_() const;
        EntityAggregate_ptr   camera_usages_();
        void camera_usages_( const EntityAggregate_ptr x );

};

inline SdaiView_volume * create_SdaiView_volume() {
    return new SdaiView_volume;
}

void init_SdaiView_volume(Registry& reg);

namespace ap242_managed_model_based_3d_engineering_mim_lf {
    extern EntityDescriptor *e_view_volume;
    extern AttrDescriptor *a_1162projection_type;
    extern AttrDescriptor *a_1163projection_point;
    extern AttrDescriptor *a_1164view_plane_distance;
    extern AttrDescriptor *a_1165front_plane_distance;
    extern AttrDescriptor *a_1166front_plane_clipping;
    extern AttrDescriptor *a_1167back_plane_distance;
    extern AttrDescriptor *a_1168back_plane_clipping;
    extern AttrDescriptor *a_1169view_volume_sides_clipping;
    extern AttrDescriptor *a_1170view_window;
    extern Inverse_attribute *a_1171Icamera_usages;
}

#endif
