"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSTerrainLib/Src/GeoClipmap/LSTGeoClipmap.h

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__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator