VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions
DtTerrainSourceTracker Class Referenceabstract

Base class for Terrain Source trackers. Determines if the necessary data To perform an intersection is currently available. Can also create commands for a DtTerrainSourceTracker to actually perform the paging.

Inheritance diagram for DtTerrainSourceTracker:
Inheritance graph
[legend]

Public Member Functions

 DtTerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue, osgEarth::MapNode *mapNode)
 
virtual ~DtTerrainSourceTracker ()
 
virtual DtTerrainInterfaceConfigconfigOptions ()
 
virtual const
DtTerrainInterfaceConfig
configOptions () const
 
virtual bool init (DtTerrainSourcePager &)
 
virtual boost::optional
< DtTerrainIntersectOptions::Fidelity
intersectFidelity () const
 
virtual bool dataAvailable (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)=0
 
virtual void pageInData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)=0
 
virtual bool canPageOutData (DtTerrainIntersectIDType intersectId)=0
 
virtual DtTerrainIntersectIDType findOldestPagedData (unsigned int &numTriangles)=0
 
virtual void pageOutOldestData (const int priority)=0
 
virtual void addNodesToCollisionMapping (DtNodeId node, DtCollisionObjectList *collObjList)
 
virtual void removeNodeToCollisionMappings (DtNodeId node)
 
virtual DtCollisionObjectList collisionObjectsForNode (DtNodeId node)
 
virtual osgEarth::MapNode * mapNode () const
 
virtual const osgEarth::Profile * profile () const
 
virtual const Coordinate_SystemlocalCS () const
 
virtual void setLabel (const DtString &)
 
virtual void printInfo () const
 
virtual void getPageOutData (DtNodeBoundingList &nodeBoundingList)
 
virtual void getPageInData (DtNodeBoundingList &nodeBoundingList)
 
virtual void getProceduralTreeTile (DtDebugDrawTerrainOutputInterface::terrainLineList &nodeBoundingList)
 
virtual unsigned getMaxLODForBilinearIntersection () const
 
virtual double intersetionTriangleMergeTolerance () const
 
virtual bool useLandCoverData () const
 
virtual bool useLifeMapLayer () const
 
virtual void getSoilFromString (const std::string &soilType, DtSurface &surface) const
 
virtual double triangleOutputMergeTolerance () const
 
virtual unsigned minElevationIndexLOD () const
 
virtual unsigned maxElevationIndexLOD () const
 
virtual unsigned maxLOD () const
 
virtual bool useRawElevation () const
 
virtual osgEarth::TileKey getBestTileKey (const osgEarth::TileKey &) const
 
virtual bool findTileInCache (const DtTerrainPagingGeometry *geometry, std::vector< boost::shared_ptr< DtTileData > > &data, const DtChord *chord=NULL) const
 
virtual void addTileToCache (const boost::shared_ptr< DtTileData > &data, const DtChord *chord=NULL)
 
virtual void clearTileCache ()
 
DtString myLabel
 
DtTerrainInterfaceConfig myConfig
 
DtPagerCommandQueuemyCommandQueue
 
DtNodeToCollObjMMap myNodeToCollObjMMap
 
tbb::spin_rw_mutex myMutex
 
tbb::spin_rw_mutex myTileCacheMutex
 
DtVantageTerrainEnginemyVantageTerrainEngine
 
const osg::ref_ptr
< osgEarth::MapNode > 
myMapNode
 
const osgEarth::Map * myMap
 
const osgEarth::Profile * myMapProfile
 
tileDataCacheVector myTileDataCache
 
tbb::atomic< intmyTileCacheHit
 
tbb::atomic< intmyTileCacheQuery
 
unsigned myMinElevationTileLoadingLOD
 
DtTerrainSourcePagermyPager
 
virtual unsigned minElevationTileLoadingLOD () const
 
virtual void setMinElevationTileLoading (unsigned lod)
 

Constructor & Destructor Documentation

DtTerrainSourceTracker::DtTerrainSourceTracker ( DtVantageTerrainEngine ,
DtPagerCommandQueue commandQueue,
osgEarth::MapNode *  mapNode 
)

CTOR.

virtual DtTerrainSourceTracker::~DtTerrainSourceTracker ( )
virtual

DTOR.

Member Function Documentation

virtual DtTerrainInterfaceConfig& DtTerrainSourceTracker::configOptions ( )
virtual
virtual const DtTerrainInterfaceConfig& DtTerrainSourceTracker::configOptions ( ) const
virtual
virtual bool DtTerrainSourceTracker::init ( DtTerrainSourcePager )
virtual
virtual boost::optional<DtTerrainIntersectOptions::Fidelity> DtTerrainSourceTracker::intersectFidelity ( ) const
virtual

Fidelity that this tracker is configured for. The default returns an empty optional which means that this tracker will be used for all terrain intersections. If value is returned then this tracker will only be used for intersections which specify that fidelity.

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual bool DtTerrainSourceTracker::dataAvailable ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
pure virtual
virtual void DtTerrainSourceTracker::pageInData ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
pure virtual

Page in data within geometry. Determines which tiles are within the geometry and adds a page in command to myCommandQueue to page in any tiles within the geometry that have not yet been paged in.

Parameters
geometryThe geometry to page in data within.
intersectIdId to assign to the page in command to seed tileData for newly paged-in tiles.
priorityPriority to use for commands generated by this call.

Implemented in DtOsgEarthTerrainSourceTracker, DtBoundingVolumeTerrainSourceTracker, DtOsgEarthBaseGroundCoverSourceTracker, DtOsgEarthGroundCoverSourceTracker, DtOsgEarthVegetationLayerSourceTracker, and DtPagedNode2TerrainSourceTracker.

virtual bool DtTerrainSourceTracker::canPageOutData ( DtTerrainIntersectIDType  intersectId)
pure virtual
virtual DtTerrainIntersectIDType DtTerrainSourceTracker::findOldestPagedData ( unsigned int numTriangles)
pure virtual

Finds the least-recently-used tile and set myOldestPagedObject to it.

Parameters
numTrianglesOutThe number of triangles the least-recently-used tileId represents in the collision world.
Returns
The id of the last intersect test for which this tracker's least-recently-used data was necessary.

Implemented in DtOsgEarthTerrainSourceTracker, DtBoundingVolumeTerrainSourceTracker, DtOsgEarthBaseGroundCoverSourceTracker, and DtPagedNode2TerrainSourceTracker.

virtual void DtTerrainSourceTracker::pageOutOldestData ( const int  priority)
pure virtual

Adds a page out command for the least-recently-used tileID to myCommandQueue.

Parameters
priorityPriority to use for commands generated by this call.

Implemented in DtOsgEarthTerrainSourceTracker, DtBoundingVolumeTerrainSourceTracker, DtOsgEarthBaseGroundCoverSourceTracker, DtPagedNode2TerrainSourceTracker, DtOsgEarthGroundCoverSourceTracker, and DtOsgEarthVegetationLayerSourceTracker.

virtual void DtTerrainSourceTracker::addNodesToCollisionMapping ( DtNodeId  node,
DtCollisionObjectList collObjList 
)
virtual
virtual void DtTerrainSourceTracker::removeNodeToCollisionMappings ( DtNodeId  node)
virtual
virtual DtCollisionObjectList DtTerrainSourceTracker::collisionObjectsForNode ( DtNodeId  node)
virtual
virtual osgEarth::MapNode* DtTerrainSourceTracker::mapNode ( ) const
virtual

Access osgEarth::MapNode object.

virtual const osgEarth::Profile* DtTerrainSourceTracker::profile ( ) const
virtual

Access osgEarth::profile object.

virtual const Coordinate_System* DtTerrainSourceTracker::localCS ( ) const
virtual

Return the local coordinate system.

virtual void DtTerrainSourceTracker::setLabel ( const DtString )
virtual
virtual void DtTerrainSourceTracker::printInfo ( ) const
virtual
virtual void DtTerrainSourceTracker::getPageOutData ( DtNodeBoundingList nodeBoundingList)
virtual

Return a list of bounding sphere that represent the the paged in tiles.

Reimplemented in DtBoundingVolumeTerrainSourceTracker.

virtual void DtTerrainSourceTracker::getPageInData ( DtNodeBoundingList nodeBoundingList)
virtual

Return a list of bounding sphere that represent the the paged out tiles.

Reimplemented in DtBoundingVolumeTerrainSourceTracker.

virtual void DtTerrainSourceTracker::getProceduralTreeTile ( DtDebugDrawTerrainOutputInterface::terrainLineList nodeBoundingList)
virtual

Return a list of tiles that represent the ground cover loaded.

Reimplemented in DtOsgEarthGroundCoverSourceTracker, and DtOsgEarthVegetationLayerSourceTracker.

virtual unsigned DtTerrainSourceTracker::getMaxLODForBilinearIntersection ( ) const
virtual

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual double DtTerrainSourceTracker::intersetionTriangleMergeTolerance ( ) const
virtual

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual bool DtTerrainSourceTracker::useLandCoverData ( ) const
virtual

Return true if the current tracker use land cover data.

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual bool DtTerrainSourceTracker::useLifeMapLayer ( ) const
virtual

Return true if the current tracker use Biome data.

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual void DtTerrainSourceTracker::getSoilFromString ( const std::string &  soilType,
DtSurface surface 
) const
virtual

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual double DtTerrainSourceTracker::triangleOutputMergeTolerance ( ) const
virtual

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual unsigned DtTerrainSourceTracker::minElevationIndexLOD ( ) const
virtual

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual unsigned DtTerrainSourceTracker::maxElevationIndexLOD ( ) const
virtual

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual unsigned DtTerrainSourceTracker::maxLOD ( ) const
virtual

Return the max lod.

Reimplemented in DtOsgEarthTerrainSourceTracker, and DtOsgEarthBaseGroundCoverSourceTracker.

virtual bool DtTerrainSourceTracker::useRawElevation ( ) const
virtual

Return true if the current tracker use raw elevation.

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual osgEarth::TileKey DtTerrainSourceTracker::getBestTileKey ( const osgEarth::TileKey &  ) const
virtual

Return the best tile key to use (based on the tracker) for a pass tilekey.

Reimplemented in DtOsgEarthTerrainSourceTracker.

virtual bool DtTerrainSourceTracker::findTileInCache ( const DtTerrainPagingGeometry geometry,
std::vector< boost::shared_ptr< DtTileData > > &  data,
const DtChord chord = NULL 
) const
virtual

Check it the geometry intersect the tileDataCache (when we know the geometry is a chord, pass the chord pointer as the last optional parameters)

virtual void DtTerrainSourceTracker::addTileToCache ( const boost::shared_ptr< DtTileData > &  data,
const DtChord chord = NULL 
)
virtual

Add a tile that was not find in the cache (by findTileInCache) (when we know the geometry is a chord, pass the chord pointer as the last optional parameters)

virtual void DtTerrainSourceTracker::clearTileCache ( )
virtual

Clear the cache.

virtual unsigned DtTerrainSourceTracker::minElevationTileLoadingLOD ( ) const
virtual

Sets the min LOD levels where elevation tiles can be loaded.

virtual void DtTerrainSourceTracker::setMinElevationTileLoading ( unsigned  lod)
virtual

map node for whole terrain

Member Data Documentation

DtString DtTerrainSourceTracker::myLabel
protected

map node for whole terrain

DtTerrainInterfaceConfig DtTerrainSourceTracker::myConfig
protected

map node for whole terrain

DtPagerCommandQueue* DtTerrainSourceTracker::myCommandQueue
protected

map node for whole terrain

DtNodeToCollObjMMap DtTerrainSourceTracker::myNodeToCollObjMMap
protected

map node for whole terrain

tbb::spin_rw_mutex DtTerrainSourceTracker::myMutex
mutableprotected

map node for whole terrain

tbb::spin_rw_mutex DtTerrainSourceTracker::myTileCacheMutex
mutableprotected

map node for whole terrain

DtVantageTerrainEngine* DtTerrainSourceTracker::myVantageTerrainEngine
protected

map node for whole terrain

const osg::ref_ptr<osgEarth::MapNode> DtTerrainSourceTracker::myMapNode
protected

map node for whole terrain

const osgEarth::Map* DtTerrainSourceTracker::myMap
protected

map node for whole terrain

const osgEarth::Profile* DtTerrainSourceTracker::myMapProfile
protected

map node for whole terrain

tileDataCacheVector DtTerrainSourceTracker::myTileDataCache
protected

Tile Data cache to speed up intersections.

tbb::atomic<int> DtTerrainSourceTracker::myTileCacheHit
protected

Stats for cache.

tbb::atomic<int> DtTerrainSourceTracker::myTileCacheQuery
protected

map node for whole terrain

unsigned DtTerrainSourceTracker::myMinElevationTileLoadingLOD
protected

Min lod an elevation tile can loaded.

DtTerrainSourcePager* DtTerrainSourceTracker::myPager
protected

map node for whole terrain


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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)