openscenegraph
osgTerrain::GeometryPool Class Reference

#include <GeometryPool>

Inheritance diagram for osgTerrain::GeometryPool:
osg::Referenced

Classes

struct  GeometryKey

Public Types

enum  LayerType { HEIGHTFIELD_LAYER , COLOR_LAYER , CONTOUR_LAYER }
typedef std::map< GeometryKey, osg::ref_ptr< SharedGeometry > > GeometryMap
typedef std::vector< LayerTypeLayerTypes
typedef std::map< LayerTypes, osg::ref_ptr< osg::Program > > ProgramMap

Public Member Functions

 GeometryPool ()
virtual bool createKeyForTile (TerrainTile *tile, GeometryKey &key)
osg::StateSetgetRootStateSetForTerrain (Terrain *terrain)
virtual osg::ref_ptr< osg::ProgramgetOrCreateProgram (LayerTypes &layerTypes)
virtual osg::ref_ptr< SharedGeometrygetOrCreateGeometry (osgTerrain::TerrainTile *tile)
virtual osg::ref_ptr< osg::MatrixTransformgetTileSubgraph (osgTerrain::TerrainTile *tile)
virtual void applyLayers (osgTerrain::TerrainTile *tile, osg::StateSet *stateset)
Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referencedoperator= (const Referenced &)
virtual void setThreadSafeRefUnref (bool)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSetgetObserverSet () const
ObserverSetgetOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const

Protected Member Functions

virtual ~GeometryPool ()
Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
void deleteUsingDeleteHandler () const

Protected Attributes

OpenThreads::Mutex _geometryMapMutex
GeometryMap _geometryMap
OpenThreads::Mutex _programMapMutex
ProgramMap _programMap
osg::ref_ptr< osg::StateSet_rootStateSet
bool _rootStateSetAssigned
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()

Member Typedef Documentation

◆ GeometryMap

◆ LayerTypes

◆ ProgramMap

Member Enumeration Documentation

◆ LayerType

Enumerator
HEIGHTFIELD_LAYER 
COLOR_LAYER 
CONTOUR_LAYER 

Constructor & Destructor Documentation

◆ GeometryPool()

osgTerrain::GeometryPool::GeometryPool ( )

◆ ~GeometryPool()

virtual osgTerrain::GeometryPool::~GeometryPool ( )
protectedvirtual

Member Function Documentation

◆ applyLayers()

virtual void osgTerrain::GeometryPool::applyLayers ( osgTerrain::TerrainTile * tile,
osg::StateSet * stateset )
virtual

◆ createKeyForTile()

virtual bool osgTerrain::GeometryPool::createKeyForTile ( TerrainTile * tile,
GeometryKey & key )
virtual

◆ getOrCreateGeometry()

virtual osg::ref_ptr< SharedGeometry > osgTerrain::GeometryPool::getOrCreateGeometry ( osgTerrain::TerrainTile * tile)
virtual

◆ getOrCreateProgram()

virtual osg::ref_ptr< osg::Program > osgTerrain::GeometryPool::getOrCreateProgram ( LayerTypes & layerTypes)
virtual

◆ getRootStateSetForTerrain()

osg::StateSet * osgTerrain::GeometryPool::getRootStateSetForTerrain ( Terrain * terrain)

◆ getTileSubgraph()

virtual osg::ref_ptr< osg::MatrixTransform > osgTerrain::GeometryPool::getTileSubgraph ( osgTerrain::TerrainTile * tile)
virtual

Member Data Documentation

◆ _geometryMap

GeometryMap osgTerrain::GeometryPool::_geometryMap
protected

◆ _geometryMapMutex

OpenThreads::Mutex osgTerrain::GeometryPool::_geometryMapMutex
protected

◆ _programMap

ProgramMap osgTerrain::GeometryPool::_programMap
protected

◆ _programMapMutex

OpenThreads::Mutex osgTerrain::GeometryPool::_programMapMutex
protected

◆ _rootStateSet

osg::ref_ptr<osg::StateSet> osgTerrain::GeometryPool::_rootStateSet
protected

◆ _rootStateSetAssigned

bool osgTerrain::GeometryPool::_rootStateSetAssigned
protected

The documentation for this class was generated from the following file: