#pragma once /***********************************************************************************/ /** \file PSSM.h ** \brief Header File zur Klasse PSSM ************************************************************************************* ** Autor: Christian Roesch ************************************************************************************* ** _tut nichts_ ** *//*********************************************************************************/ #ifndef _PSSM_H #define _PSSM_H // includes #include #include // Klassen-Deklaration extern IDirect3DDevice9* g_d3d_device; /***********************************************************************************/ /** \brief PSSM _tut nichts_ ************************************************************************************* ** Genau genommen _tut dies nichts_ ** *//*********************************************************************************/ class PSSM { public: static const int MaxSplitCount = 16; void Init(); void UpdateSplits(const D3DXVECTOR3 &vLightDir, const D3DXMATRIX &mView, const D3DXMATRIX &mProj); int m_iSplitCount; float m_fRange; D3DXMATRIX m_ViewMatrices[MaxSplitCount]; D3DXMATRIX m_ProjMatrices[MaxSplitCount]; D3DXVECTOR3 m_ViewPos[MaxSplitCount]; D3DXVECTOR3 m_ViewDir[MaxSplitCount]; private: void ComputeCornerPoints(D3DXVECTOR3 *pCorners, float fNear, float fFar, float fFTanHalfFOVX, float fTanHalfFOVY, const D3DXVECTOR3 &vCamPos, const D3DXVECTOR3 &vCamRight, const D3DXVECTOR3 &vCamUp, const D3DXVECTOR3 &vCamLook, float fOverlap); }; #endif//_PSSM_H class PSSM; /************************************************************************************ ** Ende der Datei: PSSM.h ************************************************************************************/