00001 //============================================================================= 00016 #ifndef __CAMERA_H_INCLUDED__ 00017 #define __CAMERA_H_INCLUDED__ 00018 00019 #include "vector.h" 00020 00021 00022 //============================================================================= 00023 // ICameraState 00024 //============================================================================= 00025 00030 class ICameraState 00031 { 00032 public: 00034 virtual ~ICameraState( void ) {} 00035 00037 enum projMode_e { PROJECT_ORTHO, PROJECT_FRUSTUM, }; 00038 00039 00043 virtual void resetCamera( void ) = 0; 00044 00045 00053 virtual void setCameraRotation( const mat4_t & matrix ) = 0; 00054 00055 00060 virtual void getCameraRotation( mat4_t & matrix ) = 0; 00061 00062 00067 virtual void setCameraTranslation( const vec3_t & t ) = 0; 00068 00069 00073 virtual void getCameraTranslation( vec3_t & t ) = 0; 00074 00075 00080 virtual void setProjectionMode( projMode_e mode ) = 0; 00081 00082 00091 virtual void setFovY( float fovY ) = 0; 00092 }; 00093 00094 #endif // __CAMERA_H_INCLUDED__ 00095