00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __DEMOPAJA_GRAPHICSVIEWPORTI_H__
00015 #define __DEMOPAJA_GRAPHICSVIEWPORTI_H__
00016
00017 #include "PajaTypes.h"
00018 #include "DeviceInterfaceI.h"
00019 #include "Vector2C.h"
00020 #include "BBox2C.h"
00021 #include "FileIO.h"
00022
00023
00024 namespace PajaSystem {
00025
00026 const PluginClass::SuperClassIdC GRAPHICSDEVICE_VIEWPORT_INTERFACE = PluginClass::SuperClassIdC( 0x3000002 );
00027
00028
00030
00034 class GraphicsViewportI : public DeviceInterfaceI
00035 {
00036 public:
00037
00038 virtual PluginClass::SuperClassIdC get_super_class_id() const;
00039 virtual PajaTypes::uint32 save( FileIO::SaveC* pSave );
00040 virtual PajaTypes::uint32 load( FileIO::LoadC* pLoad );
00041
00043
00052 virtual void set_perspective( const PajaTypes::BBox2C& rBBox, PajaTypes::float32 f32FOV, PajaTypes::float32 f32Aspect,
00053 PajaTypes::float32 f32ZNear, PajaTypes::float32 f32ZFar ) = 0;
00054
00056
00065 virtual void set_ortho( const PajaTypes::BBox2C& rBBox,
00066 PajaTypes::float32 f32Left, PajaTypes::float32 f32Right,
00067 PajaTypes::float32 f32Top, PajaTypes::float32 f32Bottom,
00068 PajaTypes::float32 f32ZNear = -1, PajaTypes::float32 f32ZFar = 1 ) = 0;
00069
00071
00084 virtual void set_ortho_pixel( const PajaTypes::BBox2C& rBBox, PajaTypes::float32 f32ZNear = -1, PajaTypes::float32 f32ZFar = 1 ) = 0;
00085
00087 virtual PajaTypes::Vector2C client_to_layout( const PajaTypes::Vector2C& rVec ) = 0;
00089 virtual PajaTypes::Vector2C layout_to_client( const PajaTypes::Vector2C& rVec ) = 0;
00091 virtual PajaTypes::Vector2C delta_client_to_layout( const PajaTypes::Vector2C& rVec ) = 0;
00093 virtual PajaTypes::Vector2C delta_layout_to_client( const PajaTypes::Vector2C& rVec ) = 0;
00094
00096 virtual const PajaTypes::BBox2C& get_viewport() = 0;
00098 virtual const PajaTypes::BBox2C& get_layout() = 0;
00100 virtual PajaTypes::int32 get_width() = 0;
00102 virtual PajaTypes::int32 get_height() = 0;
00104 virtual PajaTypes::float32 get_pixel_aspect_ratio() = 0;
00105
00107 virtual void set_pixel_aspect_ratio( PajaTypes::float32 f32PixelAspect ) = 0;
00109 virtual void set_dimension( PajaTypes::int32 i32PosX, PajaTypes::int32 i32PosY, PajaTypes::int32 i32Width, PajaTypes::int32 i32Height ) = 0;
00111 virtual void set_viewport( const PajaTypes::BBox2C& rViewport ) = 0;
00113 virtual void set_layout( const PajaTypes::BBox2C& rLayout ) = 0;
00114
00116 virtual void activate() = 0;
00117
00118 protected:
00120 GraphicsViewportI();
00122 virtual ~GraphicsViewportI();
00123 };
00124
00125 };
00126
00127 #endif // __DEMOPAJA_GRAPHICSVIEWPORTI_H__
00128