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 | Protected Attributes
DtPagedNode2TerrainSourceTracker Class Reference

A DtPagedNode2TerrainSourceTracker tracks data from osgEarth pagedNode2 terrain source.

A DtPagedNode2TerrainSourceTracker tracks data from osgEarth pagedNode2 source for purposes such as determining whether the data necessary to intersect with specified geometry is available, generating commands to page in that geometry, and to determine what to page out when necessary.

Inheritance diagram for DtPagedNode2TerrainSourceTracker:
Inheritance graph
[legend]

Public Member Functions

 DtPagedNode2TerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue)
 
virtual ~DtPagedNode2TerrainSourceTracker () override
 
virtual bool dataAvailable (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry) override
 
virtual DtTerrainCategoryMask terrainCategories () const override
 
virtual void pageInData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry) override
 
virtual bool canPageOutData (DtTerrainIntersectIDType intersectId) override
 
virtual DtTerrainIntersectIDType findOldestPagedData (unsigned int &numTrianglesOut) override
 
virtual void pageOutOldestData (const int priority) override
 
virtual void addPageInData (DtNodeBoundingExtendedInfoMap::const_iterator pagedNode2ExtendedInfo)
 
virtual unsigned int removePageInData (DtNodeId node)
 
virtual void getNodesMappingList (DrawableList &currentLoadNode)
 
void removeEmptyPagedOutInfo (DtTerrainPagingGeometryPtr geometry)
 
- Public Member Functions inherited from DtBoundingVolumeTerrainSourceTracker
 DtBoundingVolumeTerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue)
 
virtual ~DtBoundingVolumeTerrainSourceTracker () override
 
virtual void updatePagedOutInfo (const DtNodeBoundingInfoList &volumes, bool invalid=false)
 
virtual void updatePagedOutInfo (const DtNodeBoundingInfoList &volumes, const DtNodeBoundingInfoList &removed, bool invalid=false)
 
virtual void updatePagedInInfo (const DtNodeBoundingInfoMap &volumes, DtTerrainIntersectIDType intersectId=0)
 
virtual void removePagedInInfo (DtNodeId node)
 
virtual bool isPagedOut (DtTerrainPagingGeometryPtr geometry, std::set< std::string > &retVec)
 
virtual void printInfo () const override
 
virtual bool geometryIntersectPagedOutNodes (DtTerrainPagingGeometryPtr geometry)
 
virtual bool geometryIntersectPagedOutNodes (DtTerrainPagingGeometryPtr geometry, std::set< std::string > &retVec)
 
virtual bool geometryIntersectPagedInNodes (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)
 
virtual void getPageOutData (DtNodeBoundingList &nodeBoundingList) override
 
virtual void getPageInData (DtNodeBoundingList &nodeBoundingList) override
 
- Public Member Functions inherited from DtTerrainSourceTracker
 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 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 DtString label () const
 
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< std::shared_ptr< DtTileData > > &data, const DtChord *chord=NULL) const
 
virtual void addTileToCache (const std::shared_ptr< DtTileData > &data, const DtChord *chord=NULL)
 
virtual void clearTileCache ()
 
virtual unsigned minElevationTileLoadingLOD () const
 
virtual void setMinElevationTileLoading (unsigned lod)
 

Protected Attributes

DtNodeBoundingExtendedInfoMap myPagedNode2ToDrawableMap
 
tbb::spin_rw_mutex myPagedNode2ToDrawableMapMutex
 
DrawableMap myDrawableIdToInfoMap
 
- Protected Attributes inherited from DtBoundingVolumeTerrainSourceTracker
DtNodeBoundingInfoList myPagedOutAreas
 
DtPagedNodeStatusMap myPagedInAreas
 
std::atomic< boolmyInvalidFlag
 
DtNodeId myOldestPagedObject
 
std::atomic< boolmyRecomputeOldestPagedObject
 
DtSpatialNodeBoundingInfoContainermyPagedOutSpatialNodeContainer
 
DtSpatialNodeStatusContainermyPagedInSpatialNodeContainer
 
const Coordinate_SystemmyCoordSys
 
tbb::spin_rw_mutex myPagedInMutex
 
tbb::spin_rw_mutex myPagedOutMutex
 
DtVector mySpatialSubdivisionDimensions
 
- Protected Attributes inherited from DtTerrainSourceTracker
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
 
std::atomic< intmyTileCacheHit
 
std::atomic< intmyTileCacheQuery
 
unsigned myMinElevationTileLoadingLOD
 
DtTerrainSourcePagermyPager
 

Additional Inherited Members

- Public Types inherited from DtBoundingVolumeTerrainSourceTracker
typedef std::shared_ptr
< DtNodeStatusSSELement
DtNodeStatusSSElementPtr
 
typedef DtSpatialSubdivision
< DtNodeBoundingInfoPtr
DtSpatialNodeBoundingInfoContainer
 
typedef DtSpatialSubdivision
< DtNodeStatusSSElementPtr
DtSpatialNodeStatusContainer
 
- Protected Member Functions inherited from DtBoundingVolumeTerrainSourceTracker
virtual bool geometryIntersectPagedOutNodes (const DtSphere &sphere)
 
virtual bool geometryIntersectPagedOutNodes (const DtLocalVertexList &vertexList)
 
virtual bool geometryIntersectPagedOutNodes (const DtChord &chord)
 
virtual bool geometryIntersectPagedOutNodes (const DtSphere &sphere, std::set< std::string > &retVec)
 
virtual bool geometryIntersectPagedOutNodes (const DtLocalVertexList &vertexList, std::set< std::string > &retVec)
 
virtual bool geometryIntersectPagedOutNodes (const DtChord &chord, std::set< std::string > &retVec)
 
virtual bool geometryIntersectPagedInNodes (DtPagingMetaDataPtr metaData, const DtSphere &sphere)
 
virtual bool geometryIntersectPagedInNodes (DtPagingMetaDataPtr metaData, const DtLocalVertexList &vertexList)
 
virtual bool geometryIntersectPagedInNodes (DtPagingMetaDataPtr metaData, const DtChord &chord)
 
virtual DtTerrainIntersectIDType findOldestPagedDataUnlocked (unsigned int &numTrianglesOut)
 
virtual DtPageInGeometryCommandcreatePageInGeometryCommand (DtPagingMetaDataPtr metaData)
 
virtual DtPageOutNodesCommandcreatePageOutNodesCommand (DtPagingMetaDataPtr metaData)
 
virtual unsigned int getNumTriangles (DtNodeId node)
 

Constructor & Destructor Documentation

DtPagedNode2TerrainSourceTracker::DtPagedNode2TerrainSourceTracker ( DtVantageTerrainEngine ,
DtPagerCommandQueue commandQueue 
)

CTOR.

virtual DtPagedNode2TerrainSourceTracker::~DtPagedNode2TerrainSourceTracker ( )
overridevirtual

DTOR.

Member Function Documentation

virtual bool DtPagedNode2TerrainSourceTracker::dataAvailable ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
overridevirtual
Returns
True if all data along this chord has been paged in.

Reimplemented from DtBoundingVolumeTerrainSourceTracker.

virtual DtTerrainCategoryMask DtPagedNode2TerrainSourceTracker::terrainCategories ( ) const
overridevirtual
Returns
A bitfield indicating the terrain categories that this tracker is used for. Default implementation returns DtTerrainCategoryAll. Subclasses are expected to override and replace with more specific terrain categories where applicable.

Reimplemented from DtTerrainSourceTracker.

virtual void DtPagedNode2TerrainSourceTracker::pageInData ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
overridevirtual

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.

Reimplemented from DtBoundingVolumeTerrainSourceTracker.

virtual bool DtPagedNode2TerrainSourceTracker::canPageOutData ( DtTerrainIntersectIDType  intersectId)
overridevirtual
virtual DtTerrainIntersectIDType DtPagedNode2TerrainSourceTracker::findOldestPagedData ( unsigned int numTrianglesOut)
overridevirtual

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.

Reimplemented from DtBoundingVolumeTerrainSourceTracker.

virtual void DtPagedNode2TerrainSourceTracker::pageOutOldestData ( const int  priority)
overridevirtual

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

Parameters
priorityPriority to use for commands generated by this call.

Reimplemented from DtBoundingVolumeTerrainSourceTracker.

virtual void DtPagedNode2TerrainSourceTracker::addPageInData ( DtNodeBoundingExtendedInfoMap::const_iterator  pagedNode2ExtendedInfo)
virtual

Add PagedNode2/Drawable relation information to the pageIn area map.

virtual unsigned int DtPagedNode2TerrainSourceTracker::removePageInData ( DtNodeId  node)
virtual

Remove PagedNode2/Drawable relation information from the pageIn area map Return the number of triangles that will be removed.

virtual void DtPagedNode2TerrainSourceTracker::getNodesMappingList ( DrawableList currentLoadNode)
virtual

Return a list of current node loaded (drawable), those one are not in the base tracker class.

void DtPagedNode2TerrainSourceTracker::removeEmptyPagedOutInfo ( DtTerrainPagingGeometryPtr  geometry)

remove problematic pageout node

Member Data Documentation

DtNodeBoundingExtendedInfoMap DtPagedNode2TerrainSourceTracker::myPagedNode2ToDrawableMap
protected

Map that keep the relation between the pagedNode2 and the drawable under them.

tbb::spin_rw_mutex DtPagedNode2TerrainSourceTracker::myPagedNode2ToDrawableMapMutex
mutableprotected
DrawableMap DtPagedNode2TerrainSourceTracker::myDrawableIdToInfoMap
protected

Map of the drawable unique ID to DrawableInfo.


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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)