VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | 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 Types

typedef
boost::unordered_multimap
< size_t, boost::shared_ptr
< btCollisionObject > > 
DtDrawableIdToCollObjMMap
 
- Public Types inherited from DtBoundingVolumeTerrainSourceTracker
typedef boost::shared_ptr
< DtNodeStatusSSELement
DtNodeStatusSSElementPtr
 
typedef DtSpatialSubdivision
< DtNodeBoundingInfoPtr
DtSpatialNodeBoundingInfoContainer
 
typedef DtSpatialSubdivision
< DtNodeStatusSSElementPtr
DtSpatialNodeStatusContainer
 

Public Member Functions

 DtPagedNode2TerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue)
 
virtual ~DtPagedNode2TerrainSourceTracker ()
 
virtual bool dataAvailable (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)
 
virtual void pageInData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)
 
virtual bool canPageOutData (DtTerrainIntersectIDType intersectId)
 
virtual DtTerrainIntersectIDType findOldestPagedData (unsigned int &numTrianglesOut)
 
virtual void pageOutOldestData (const int priority)
 
virtual void addPageInData (DtNodeBoundingExtendedInfoMap::const_iterator pagedNode2ExtendedInfo)
 
virtual unsigned int removePageInData (DtNodeId node)
 
void getNodesMappingList (DrawableList &currentLoadNode)
 
void removeEmptyPagedOutInfo (DtTerrainPagingGeometryPtr geometry)
 
- Public Member Functions inherited from DtBoundingVolumeTerrainSourceTracker
 DtBoundingVolumeTerrainSourceTracker (DtVantageTerrainEngine *, DtPagerCommandQueue *commandQueue)
 
virtual ~DtBoundingVolumeTerrainSourceTracker ()
 
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
 
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)
 
virtual void getPageInData (DtNodeBoundingList &nodeBoundingList)
 
- 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 void getProceduralTreeTile (DtDebugDrawTerrainOutputInterface::terrainLineList &nodeBoundingList)
 
virtual unsigned getMaxLODForBilinearIntersection () const
 
virtual double intersetionTriangleMergeTolerance () const
 
virtual bool useLandCoverData () 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 ()
 
virtual unsigned minElevationTileLoadingLOD () const
 
virtual void setMinElevationTileLoading (unsigned lod)
 

Protected Attributes

DtNodeBoundingExtendedInfoMap myPagedNode2ToDrawableMap
 
tbb::spin_rw_mutex myPagedNode2ToDrawableMapMutex
 
DtDrawableIdToCollObjMMap myDrawableIdToCollObjMMap
 
- Protected Attributes inherited from DtBoundingVolumeTerrainSourceTracker
DtNodeBoundingInfoList myPagedOutAreas
 
DtPagedNodeStatusMap myPagedInAreas
 
tbb::atomic< boolmyInvalidFlag
 
DtNodeId myOldestPagedObject
 
tbb::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
 
tbb::atomic< intmyTileCacheHit
 
tbb::atomic< intmyTileCacheQuery
 
unsigned myMinElevationTileLoadingLOD
 
DtTerrainSourcePagermyPager
 

Additional Inherited Members

- 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)
 

Member Typedef Documentation

typedef boost::unordered_multimap<size_t, boost::shared_ptr<btCollisionObject> > DtPagedNode2TerrainSourceTracker::DtDrawableIdToCollObjMMap

Constructor & Destructor Documentation

DtPagedNode2TerrainSourceTracker::DtPagedNode2TerrainSourceTracker ( DtVantageTerrainEngine ,
DtPagerCommandQueue commandQueue 
)

CTOR.

virtual DtPagedNode2TerrainSourceTracker::~DtPagedNode2TerrainSourceTracker ( )
virtual

DTOR.

Member Function Documentation

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

Reimplemented from DtBoundingVolumeTerrainSourceTracker.

virtual void DtPagedNode2TerrainSourceTracker::pageInData ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
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.

Reimplemented from DtBoundingVolumeTerrainSourceTracker.

virtual bool DtPagedNode2TerrainSourceTracker::canPageOutData ( DtTerrainIntersectIDType  intersectId)
virtual
virtual DtTerrainIntersectIDType DtPagedNode2TerrainSourceTracker::findOldestPagedData ( unsigned int numTrianglesOut)
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.

Reimplemented from DtBoundingVolumeTerrainSourceTracker.

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

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.

void DtPagedNode2TerrainSourceTracker::getNodesMappingList ( DrawableList currentLoadNode)

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
DtDrawableIdToCollObjMMap DtPagedNode2TerrainSourceTracker::myDrawableIdToCollObjMMap
protected

Map of the drawable unique ID to bullet object.


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

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)