VR-Forces 4.10 Class Documentation
 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. More...

Public Member Functions

 DtActivePageTracker ()
 Default constructor. More...
 
virtual ~DtActivePageTracker ()
 Destructor. More...
 
virtual void setVantageTerrainEngine (DtVantageTerrainEngine *)
 Sets the terrain engine. More...
 
virtual void pageInData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectOptions::Fidelity=DtTerrainIntersectOptions::MAX_FIDELITY)
 Calls pageInData on each tracker in myTerrainSourceTrackers. More...
 
virtual bool pageInUnavailableData (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectOptions::Fidelity=DtTerrainIntersectOptions::MAX_FIDELITY)
 Calls pageInData on trackers which return false for dataAvailable. More...
 
virtual bool dataAvailable (DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry, DtTerrainIntersectOptions::Fidelity=DtTerrainIntersectOptions::MAX_FIDELITY)
 Calls dataAvailableAlongChord on all available terrainSourceTrackers. More...
 
virtual void addTerrainSourceTracker (DtTerrainSourceTracker *terrainSourceTracker)
 // Adds the filename to the list of known not found files. More...
 
virtual void removeTerrainSourceTracker (DtTerrainSourceTracker *terrainSourceTracker)
 
virtual bool canPageOutData (DtTerrainIntersectIDType intersectId=0)
 Returns true if any tracker can page out data. More...
 
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 ()
 clear the cache (if any) of each trackers More...
 

Protected Attributes

DtVantageTerrainEnginemyTerrainEngine
 
DtPrintPagingInfoCommandmyPrintInfoCommand
 
DtTerrainSourceTrackerList myTerrainSourceTrackers
 List of terrain source trackers that will determine whether all the necessary data is paged in for the intersection. More...
 
double myIntersectDataLoadExpireTime
 
tbb::spin_rw_mutex myMutex
 
tbb::task_arena myArena
 Tbb arena to limit number of threads. More...
 
bool myUseTbb
 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) More...
 

Private Member Functions

 DtActivePageTracker (const DtActivePageTracker &)
 Not implemented. More...
 
DtActivePageTrackeroperator= (const DtActivePageTracker &)
 

Detailed Description

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.

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
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 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)