"L. Spiro Engine"
|
00001 00020 #ifndef __LST_GEOCLIPMAP_H__ 00021 #define __LST_GEOCLIPMAP_H__ 00022 00023 #include "../LSTTerrainLib.h" 00024 #include "LSTGeoClipmap2Mx1.h" 00025 #include "LSTGeoClipmapBaseGrid.h" 00026 #include "LSTGeoClipmapInstance.h" 00027 #include "LSTGeoClipmapMx3.h" 00028 #include "LSTGeoClipmapMxM.h" 00029 #include "LSTGeoClipmapRenderPane.h" 00030 00031 namespace lst { 00032 00039 class CGeoClipmap { 00040 public : 00041 // == Various constructors. 00042 LSE_CALLCTOR CGeoClipmap(); 00043 LSE_CALLCTOR ~CGeoClipmap(); 00044 00045 00046 // == Types. 00051 typedef struct LSD_TERRAIN_INSTANCE { 00055 CMatrix4x4 mTrans; 00056 00057 00058 // == Various constructors. 00059 LSE_CALLCTOR LSD_TERRAIN_INSTANCE(); 00060 } * LPLSD_TERRAIN_INSTANCE, * const LPCLSD_TERRAIN_INSTANCE; 00061 00062 00063 // == Functions. 00067 LSVOID LSE_CALL Reset(); 00068 00080 LSBOOL LSE_CALL SetGridSize( LSUINT32 _ui32N ); 00081 00089 LSBOOL LSE_CALL AddTerrainInstance( const LSD_TERRAIN_INSTANCE &_itParms ); 00090 00096 const CGeoClipmapBaseGrid & LSE_CALL 00097 DebugGetBaseGrid() const; 00098 protected : 00099 // == Members. 00103 CStdAllocator * m_psaAllocator; 00104 00108 CAllocator m_aVecAllocator; 00109 00113 CGeoClipmapBaseGrid m_gcbgBase; 00114 00118 CGeoClipmapMxM m_gcmmGridMxM; 00119 00123 CGeoClipmap2Mx1 m_gc2m1Grid2Mx1; 00124 00128 CGeoClipmapMx3 m_gcm3GridMx3; 00129 00133 LSUINT32 m_ui32ClipSize; 00134 00138 CVectorPoD<CGeoClipmapRenderPane *, LSUINT32> 00139 m_vRenderPanes; 00140 00144 CVectorPoD<CGeoClipmapInstance *> 00145 m_pvInstances; 00146 00147 00148 // == Functions. 00162 LSVOID LSE_CALL ReleaseClipmap(); 00163 }; 00164 00165 00166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00167 // DEFINITIONS 00168 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00169 00170 00171 } // namespace lst 00172 00173 #endif // __LST_GEOCLIPMAP_H__