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
DtActivePageTracker Class Reference

This class keeps track of what parts of the terrain database are currently paged in and what ones are not. It is able to give very quick answers to queries about if all the data needed to satisfy a particular database request is loaded or not.

Public Member Functions

 DtActivePageTracker ()
 
virtual ~DtActivePageTracker ()
 
virtual void setVantageTerrainEngine (DtVantageTerrainEngine *)
 
virtual void pageInData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectOptions::Fidelity=DtTerrainIntersectOptions::MAX_FIDELITY)
 
virtual bool pageInUnavailableData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectOptions::Fidelity=DtTerrainIntersectOptions::MAX_FIDELITY)
 
virtual bool dataAvailable (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectOptions::Fidelity=DtTerrainIntersectOptions::MAX_FIDELITY)
 
virtual void addTerrainSourceTracker (DtTerrainSourceTracker *terrainSourceTracker)
 
virtual void removeTerrainSourceTracker (DtTerrainSourceTracker *terrainSourceTracker)
 
virtual bool canPageOutData (DtTerrainIntersectIDType intersectId=0)
 
virtual unsigned int pageOutData (const int priority, unsigned int numTrianglesToPageOut, DtTerrainIntersectIDType intersectId)
 
virtual void setIntersectDataLoadExpireTime (const double &expireTime)
 
virtual bool printInfo () const
 
virtual void getPageInData (DtNodeBoundingList &nodeBoundingList)
 
virtual void getPageOutData (DtNodeBoundingList &nodeBoundingList)
 
virtual void getProceduralTreeTile (DtDebugDrawTerrainOutputInterface::terrainLineList &nodeBoundingList)
 
virtual void setUseTbb (bool value)
 
virtual void clearCache ()
 

Protected Attributes

DtVantageTerrainEnginemyTerrainEngine
 
DtPrintPagingInfoCommandmyPrintInfoCommand
 
DtTerrainSourceTrackerList myTerrainSourceTrackers
 
double myIntersectDataLoadExpireTime
 
tbb::spin_rw_mutex myMutex
 
tbb::task_arena myArena
 
bool myUseTbb
 

Private Member Functions

 DtActivePageTracker (const DtActivePageTracker &)
 
DtActivePageTrackeroperator= (const DtActivePageTracker &)
 

Constructor & Destructor Documentation

DtActivePageTracker::DtActivePageTracker ( const DtActivePageTracker )
private

Not implemented.

DtActivePageTracker::DtActivePageTracker ( )

Default constructor.

virtual DtActivePageTracker::~DtActivePageTracker ( )
virtual

Destructor.

Member Function Documentation

DtActivePageTracker& DtActivePageTracker::operator= ( const DtActivePageTracker )
private

Not implemented.

virtual void DtActivePageTracker::setVantageTerrainEngine ( DtVantageTerrainEngine )
virtual

Sets the terrain engine.

virtual void DtActivePageTracker::pageInData ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry,
DtTerrainIntersectOptions::Fidelity  = DtTerrainIntersectOptions::MAX_FIDELITY 
)
virtual

Calls pageInData on each tracker in myTerrainSourceTrackers. Once all data corresponding to this call is paged in, all the data necessary for the intersection call will be in the collision world.

Parameters
intersectIdOptional intersectId to seed newly-paged in data with for removal priority. Also used to mark already paged-in data that this geometry would require.
metaDataData about this page in request
geometryThe geometry to page in.
fidelitySpecify the fidelity of the trackers to use, see DtTerrainIntersectOptions.
virtual bool DtActivePageTracker::pageInUnavailableData ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry,
DtTerrainIntersectOptions::Fidelity  = DtTerrainIntersectOptions::MAX_FIDELITY 
)
virtual

Calls pageInData on trackers which return false for dataAvailable.

Parameters
fidelitySpecify the fidelity of the trackers to use, see DtTerrainIntersectOptions.
virtual bool DtActivePageTracker::dataAvailable ( DtPagingMetaDataPtr  metaData,
DtTerrainPagingGeometryPtr  geometry,
DtTerrainIntersectOptions::Fidelity  = DtTerrainIntersectOptions::MAX_FIDELITY 
)
virtual

Calls dataAvailableAlongChord on all available terrainSourceTrackers.

Returns
True if all data along this chord has been paged in.
Parameters
metaDataData about this page in request
geometryUsed to determine what terrain we're looking for.
fidelitySpecify the fidelity of the trackers to use, see DtTerrainIntersectOptions.
virtual void DtActivePageTracker::addTerrainSourceTracker ( DtTerrainSourceTracker terrainSourceTracker)
virtual

// Adds the filename to the list of known not found files. // Updates the paged out areas to reflect the new status. virtual void addToFilesNotFound(std::string filename);

// Checks the filename against the known not found filenames. virtual bool fileNotFound(std::string filename) const; Add a terrain source tracker.

virtual void DtActivePageTracker::removeTerrainSourceTracker ( DtTerrainSourceTracker terrainSourceTracker)
virtual
virtual bool DtActivePageTracker::canPageOutData ( DtTerrainIntersectIDType  intersectId = 0)
virtual

Returns true if any tracker can page out data.

virtual unsigned int DtActivePageTracker::pageOutData ( const int  priority,
unsigned int  numTrianglesToPageOut,
DtTerrainIntersectIDType  intersectId 
)
virtual
Returns
The number of of triangles actually paged out
Parameters
priorityThe priority of any commands generated by this call.
numTrianglesToPageOutThe number of triangles this function will attempt to page out, from last-used to most-recently-used.
virtual void DtActivePageTracker::setIntersectDataLoadExpireTime ( const double expireTime)
virtual
virtual bool DtActivePageTracker::printInfo ( ) const
virtual
virtual void DtActivePageTracker::getPageInData ( DtNodeBoundingList nodeBoundingList)
virtual
virtual void DtActivePageTracker::getPageOutData ( DtNodeBoundingList nodeBoundingList)
virtual
virtual void DtActivePageTracker::getProceduralTreeTile ( DtDebugDrawTerrainOutputInterface::terrainLineList nodeBoundingList)
virtual
virtual void DtActivePageTracker::setUseTbb ( bool  value)
virtual
virtual void DtActivePageTracker::clearCache ( )
virtual

clear the cache (if any) of each trackers

Member Data Documentation

DtVantageTerrainEngine* DtActivePageTracker::myTerrainEngine
protected
DtPrintPagingInfoCommand* DtActivePageTracker::myPrintInfoCommand
protected
DtTerrainSourceTrackerList DtActivePageTracker::myTerrainSourceTrackers
protected

List of terrain source trackers that will determine whether all the necessary data is paged in for the intersection.

double DtActivePageTracker::myIntersectDataLoadExpireTime
protected
tbb::spin_rw_mutex DtActivePageTracker::myMutex
mutableprotected
tbb::task_arena DtActivePageTracker::myArena
protected

Tbb arena to limit number of threads.

bool DtActivePageTracker::myUseTbb
protected

Enable or not the usage of TBB to multi thread the layers in the intersection can be configured in appData\settings\vrfSim\terrainInterfaceConfig.mtl by changing active-pager-tbb-mode Default is False (can speed up some databases with a lots of tree layers)


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)