VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
DtBoundingVolumeTerrainSourceTracker Class Reference

A DtBoundingVolumeTerrainSourceTracker tracks data from a paging terrain 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. More...

Inheritance diagram for DtBoundingVolumeTerrainSourceTracker:
Inheritance graph
[legend]

Classes

struct  DtNodeStatusSSELement

Public Types

typedef boost::shared_ptr
< DtNodeStatusSSELement
DtNodeStatusSSElementPtr
typedef DtSpatialSubdivision
< DtNodeBoundingInfoPtr
DtSpatialNodeBoundingInfoContainer
typedef DtSpatialSubdivision
< DtNodeStatusSSElementPtr
DtSpatialNodeStatusContainer

Public Member Functions

 DtBoundingVolumeTerrainSourceTracker (DtPagerCommandQueue *commandQueue)
virtual ~DtBoundingVolumeTerrainSourceTracker ()
virtual void updatePagedOutInfo (bool worldPagedOut, const DtNodeBoundingInfoList &volumes)
virtual void updatePagedInInfo (const DtNodeBoundingInfoMap &volumes, DtTerrainIntersectIDType intersectId=0)
virtual void removePagedInInfo (DtNodeId node)
virtual bool dataAvailable (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)
virtual void pageInData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)
virtual void drawDebugInfo (btIDebugDraw *debugDrawer)
virtual bool canPageOutData (DtTerrainIntersectIDType intersectId)
virtual void pageOutOldestData (const int priority)
virtual DtTerrainIntersectIDType findOldestPagedData (unsigned int &numTrianglesOut)
virtual void printBoundingVolumes () const
virtual bool getPagedOutNodes (DtTerrainPagingGeometryPtr geometry, DtNodeBoundingInfoSet &nodes)
virtual bool getPagedInNodes (DtTerrainPagingGeometryPtr geometry, DtPagedNodeStatusMap &nodes)
- Public Member Functions inherited from DtTerrainSourceTracker
 DtTerrainSourceTracker (DtPagerCommandQueue *commandQueue)
virtual ~DtTerrainSourceTracker ()
virtual DtTerrainInterfaceConfigconfigOptions ()
virtual void addNodeToCollisionMapping (DtNodeId node, btCollisionObject *collisionObject)
virtual void addNodesToCollisionMapping (DtNodeId node, DtCollisionObjectList *collObjList)
virtual void removeNodeToCollisionMappings (DtNodeId node)
virtual std::list
< btCollisionObject * > 
collisionObjectsForNode (DtNodeId node)
virtual const Coordinate_System * localCS () const
virtual void setLocalCS (const Coordinate_System *localCS)

Protected Member Functions

virtual bool getPagedOutNodes (const DtSphere &sphere, DtNodeBoundingInfoSet &nodes)
virtual bool getPagedOutNodes (const DtLocalVertexList &vertexList, DtNodeBoundingInfoSet &nodes)
virtual bool getPagedOutNodes (const DtChord &chord, DtNodeBoundingInfoSet &nodes)
virtual bool getPagedInNodes (const DtSphere &sphere, DtPagedNodeStatusMap &nodes)
virtual bool getPagedInNodes (const DtLocalVertexList &vertexList, DtPagedNodeStatusMap &nodes)
virtual bool getPagedInNodes (const DtChord &chord, DtPagedNodeStatusMap &nodes)
virtual DtPageInGeometryCommandcreatePageInGeometryCommand (DtPagingMetaDataPtr metaData)
virtual DtPageOutNodesCommandcreatePageOutNodesCommand (DtPagingMetaDataPtr metaData)
virtual unsigned int getNumTriangles (DtNodeId node)
virtual bool initializePagedOutSpatialSubdivision ()
virtual bool initializePagedInSpatialSubdivision ()
virtual bool createPagedOutSpatialContainer (const DtExtent &extent)
virtual bool createPagedInSpatialContainer (const DtExtent &extent)
virtual void addTerrainNodes (const DtNodeBoundingInfoList &nodes)
virtual void addTerrainNodes (const DtPagedNodeStatusMap &nodes)

Protected Attributes

DtPrintBoundingVolumesCommandmyPrintBoundingVolumesCommand
DtNodeBoundingInfoList myPagedOutAreas
 For now, just a primitive list of spheres.
DtPagedNodeStatusMap myPagedInAreas
 List of paged in volumes. Used for tracking usage for paging out.
bool myWorldPagedOut
DtNodeId myOldestPagedObject
bool myRecomputeOldestPagedObject
DtSpatialNodeBoundingInfoContainermyPagedOutSpatialNodeContainer
 Spatial subdivision for finding relevant bounding nodes.
DtSpatialNodeStatusContainermyPagedInSpatialNodeContainer
DtCoordTransform myPagedOutGeocToTopoTransform
DtCoordTransform myPagedInGeocToTopoTransform
tbb::spin_rw_mutex mySpatialSubdivisionMutex
- Protected Attributes inherited from DtTerrainSourceTracker
DtTerrainInterfaceConfig myConfig
DtPagerCommandQueuemyCommandQueue
DtNodeToCollObjMMap myNodeToCollObjMMap
tbb::spin_rw_mutex myMutex
const Coordinate_System * myLocalCS

Detailed Description

A DtBoundingVolumeTerrainSourceTracker tracks data from a paging terrain 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.

Member Typedef Documentation

Constructor & Destructor Documentation

DtBoundingVolumeTerrainSourceTracker::DtBoundingVolumeTerrainSourceTracker ( DtPagerCommandQueue commandQueue)
virtual DtBoundingVolumeTerrainSourceTracker::~DtBoundingVolumeTerrainSourceTracker ( )
virtual

Member Function Documentation

virtual void DtBoundingVolumeTerrainSourceTracker::updatePagedOutInfo ( bool  worldPagedOut,
const DtNodeBoundingInfoList volumes 
)
virtual
virtual void DtBoundingVolumeTerrainSourceTracker::updatePagedInInfo ( const DtNodeBoundingInfoMap volumes,
DtTerrainIntersectIDType  intersectId = 0 
)
virtual
virtual void DtBoundingVolumeTerrainSourceTracker::removePagedInInfo ( DtNodeId  node)
virtual
virtual bool DtBoundingVolumeTerrainSourceTracker::dataAvailable ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
virtual
Returns
True if all data along this chord has been paged in.

Implements DtTerrainSourceTracker.

virtual void DtBoundingVolumeTerrainSourceTracker::pageInData ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry 
)
virtual
virtual void DtBoundingVolumeTerrainSourceTracker::drawDebugInfo ( btIDebugDraw debugDrawer)
virtual
virtual bool DtBoundingVolumeTerrainSourceTracker::canPageOutData ( DtTerrainIntersectIDType  intersectId)
virtual
virtual void DtBoundingVolumeTerrainSourceTracker::pageOutOldestData ( const int  priority)
virtual
virtual DtTerrainIntersectIDType DtBoundingVolumeTerrainSourceTracker::findOldestPagedData ( unsigned int numTrianglesOut)
virtual
virtual void DtBoundingVolumeTerrainSourceTracker::printBoundingVolumes ( ) const
virtual
virtual bool DtBoundingVolumeTerrainSourceTracker::getPagedOutNodes ( DtTerrainPagingGeometryPtr  geometry,
DtNodeBoundingInfoSet nodes 
)
virtual
virtual bool DtBoundingVolumeTerrainSourceTracker::getPagedInNodes ( DtTerrainPagingGeometryPtr  geometry,
DtPagedNodeStatusMap nodes 
)
virtual
virtual bool DtBoundingVolumeTerrainSourceTracker::getPagedOutNodes ( const DtSphere &  sphere,
DtNodeBoundingInfoSet nodes 
)
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::getPagedOutNodes ( const DtLocalVertexList vertexList,
DtNodeBoundingInfoSet nodes 
)
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::getPagedOutNodes ( const DtChord &  chord,
DtNodeBoundingInfoSet nodes 
)
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::getPagedInNodes ( const DtSphere &  sphere,
DtPagedNodeStatusMap nodes 
)
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::getPagedInNodes ( const DtLocalVertexList vertexList,
DtPagedNodeStatusMap nodes 
)
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::getPagedInNodes ( const DtChord &  chord,
DtPagedNodeStatusMap nodes 
)
protectedvirtual
virtual DtPageInGeometryCommand* DtBoundingVolumeTerrainSourceTracker::createPageInGeometryCommand ( DtPagingMetaDataPtr  metaData)
protectedvirtual
virtual DtPageOutNodesCommand* DtBoundingVolumeTerrainSourceTracker::createPageOutNodesCommand ( DtPagingMetaDataPtr  metaData)
protectedvirtual
virtual unsigned int DtBoundingVolumeTerrainSourceTracker::getNumTriangles ( DtNodeId  node)
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::initializePagedOutSpatialSubdivision ( )
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::initializePagedInSpatialSubdivision ( )
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::createPagedOutSpatialContainer ( const DtExtent &  extent)
protectedvirtual
virtual bool DtBoundingVolumeTerrainSourceTracker::createPagedInSpatialContainer ( const DtExtent &  extent)
protectedvirtual
virtual void DtBoundingVolumeTerrainSourceTracker::addTerrainNodes ( const DtNodeBoundingInfoList nodes)
protectedvirtual
virtual void DtBoundingVolumeTerrainSourceTracker::addTerrainNodes ( const DtPagedNodeStatusMap nodes)
protectedvirtual

Member Data Documentation

DtPrintBoundingVolumesCommand* DtBoundingVolumeTerrainSourceTracker::myPrintBoundingVolumesCommand
protected
DtNodeBoundingInfoList DtBoundingVolumeTerrainSourceTracker::myPagedOutAreas
protected

For now, just a primitive list of spheres.

This should be an optimized data structure for speed.

DtPagedNodeStatusMap DtBoundingVolumeTerrainSourceTracker::myPagedInAreas
protected

List of paged in volumes. Used for tracking usage for paging out.

bool DtBoundingVolumeTerrainSourceTracker::myWorldPagedOut
protected
DtNodeId DtBoundingVolumeTerrainSourceTracker::myOldestPagedObject
protected
bool DtBoundingVolumeTerrainSourceTracker::myRecomputeOldestPagedObject
protected
DtSpatialNodeBoundingInfoContainer* DtBoundingVolumeTerrainSourceTracker::myPagedOutSpatialNodeContainer
protected

Spatial subdivision for finding relevant bounding nodes.

The subdivision is projected into topo from the origin of the terrain. Dimensions are specified in terrainOptions.mtl as "spatial-subdivision-dimensions".

DtSpatialNodeStatusContainer* DtBoundingVolumeTerrainSourceTracker::myPagedInSpatialNodeContainer
protected
DtCoordTransform DtBoundingVolumeTerrainSourceTracker::myPagedOutGeocToTopoTransform
protected
DtCoordTransform DtBoundingVolumeTerrainSourceTracker::myPagedInGeocToTopoTransform
protected
tbb::spin_rw_mutex DtBoundingVolumeTerrainSourceTracker::mySpatialSubdivisionMutex
mutableprotected

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

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)