DeferredRenderer 1.0
|
00001 #ifndef SHADOWSPOT_H 00002 #define SHADOWSPOT_H 00003 00004 #include "SpotLight.h" 00005 #include "ngl/Matrix.h" 00006 #include "Frustum.h" 00007 00014 class ShadowSpot : public SpotLight 00015 { 00016 public: 00024 ShadowSpot(const ngl::Vector &_position, const ngl::Vector &_target, const float &_distance, const float &_angle, const ngl::Vector &_col, const ngl::Vector &_up); 00025 00026 ShadowSpot(); 00027 00029 ~ShadowSpot(){} 00030 00032 unsigned int getMapId(){return m_mapHandle;} 00033 00035 void generateProjMatrices(); 00036 00038 inline Frustum getFrustum(){return m_frustum;}const 00039 00041 inline ngl::Matrix getProjView(){return m_projView;}const 00042 00044 inline ngl::Matrix getProj(){return m_proj;}const 00045 00047 inline ngl::Matrix getInverseProjView(){return m_invProjView;} 00048 00050 ngl::Matrix m_shadowView; 00051 00053 unsigned int m_mapHandle; 00054 00055 private: 00057 Frustum m_frustum; 00058 00060 float m_angle; 00061 00063 ngl::Matrix m_proj; 00064 00066 ngl::Matrix m_projView; 00067 00069 ngl::Matrix m_invProjView; 00070 00071 }; 00072 00073 #endif // SHADOWSPOT_H