Ignore:
Timestamp:
Mar 20, 2011, 1:14:16 PM (13 years ago)
Author:
Torben Dannhauer
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • experimental/TerrainTest/ModificationManager.cpp

    r272 r275  
    1717#include "ModificationManager.h"
    1818
     19#define USE_TERRAIN_PROTO_WORKAROUND USE_TERRAIN_PROTO_WORKAROUND
    1920
    2021
     22void ModificationManager::addTerrainToManage(osgTerrain::Terrain* terrain)
     23{
     24        if(terrain)
     25                managedTerrain.push_back(terrain);
     26}
     27
     28bool 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
     41void 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.