Changeset 275 for experimental/TerrainTest/ModificationManager.cpp
- Timestamp:
- Mar 20, 2011, 1:14:16 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
experimental/TerrainTest/ModificationManager.cpp
r272 r275 17 17 #include "ModificationManager.h" 18 18 19 #define USE_TERRAIN_PROTO_WORKAROUND USE_TERRAIN_PROTO_WORKAROUND 19 20 20 21 22 void ModificationManager::addTerrainToManage(osgTerrain::Terrain* terrain) 23 { 24 if(terrain) 25 managedTerrain.push_back(terrain); 26 } 27 28 bool ModificationManager::removeTerrainToManage(osgTerrain::Terrain* terrain) 29 { 30 for(unsigned int i=0;i<managedTerrain.size();i++) 31 { 32 if(managedTerrain[i] == terrain) 33 { 34 managedTerrain.erase(managedTerrain.begin()+i); 35 return true; 36 } 37 } 38 return false; 39 } 40 41 void ModificationManager::setGeometryTechniquePrototype( osgTerrain::GeometryTechnique* geomTechnique, osgTerrain::Terrain* terrain ) 42 { 43 if(!geomTechnique) // Remove the installed geometry technique 44 { 45 terrain->setTerrainTechniquePrototype( NULL ); 46 #ifdef USE_TERRAIN_PROTO_WORKAROUND 47 osgTerrain::TerrainTile::setTileLoadedCallback(NULL); 48 #endif 49 return; 50 } 51 52 53 terrain->setTerrainTechniquePrototype( geomTechnique ); 54 #ifdef USE_TERRAIN_PROTO_WORKAROUND 55 osg::ref_ptr<osgTerrain::myTileLoadedCallback> tlcb = new osgTerrain::myTileLoadedCallback( terrain); 56 osgTerrain::TerrainTile::setTileLoadedCallback(tlcb); 57 #endif 58 59 60 } 61
Note: See TracChangeset
for help on using the changeset viewer.