00001 #ifndef __TerrainGeometry__ 00002 #define __TerrainGeometry__ 00003 00004 #include <osg/Geometry> 00005 00006 #include "Log.h" 00007 00008 00009 class TerrainGeometry 00010 { 00011 public: 00012 TerrainGeometry(int _numCells, float _size, float _skirtHeight=500); 00013 bool AddTile(osg::Geode* geode, int lodDelta); 00014 void ResetGeometryCounters(); 00015 00016 private: 00017 static const int maxLevels=16; 00018 00019 int numCellsMax; 00020 float size, skirtHeight; 00021 int geometryCounter[maxLevels]; 00022 int numInstances[maxLevels]; 00023 00024 osg::ref_ptr<osg::Vec3Array> vertexGrid[maxLevels]; 00025 osg::ref_ptr<osg::Geometry>*terrainTileGeometry[maxLevels]; 00026 Log myLog; 00027 00028 00029 osg::Geometry* CreateTileTemplate(int numCells, int lodDelta); 00030 osg::Vec3Array* CreateVertexArray(int numCells); 00031 00032 }; 00033 00034 #endif