22 #include <matrix/coordTransform.h>
23 #include <vlutil/vlSmartPointers.h>
65 : myId(idStatusPair.first)
66 , myStatus(idStatusPair.second)
73 return myStatus->myBoundingInfo.extent();
78 myStatus->myBoundingInfo.expandExtent(extent);
97 virtual void updatePagedOutInfo(
100 bool invalid =
false);
102 virtual void updatePagedInInfo(
106 virtual void removePagedInInfo(
DtNodeId node);
144 virtual bool geometryIntersectPagedOutNodes(
const DtSphere& sphere);
145 virtual bool geometryIntersectPagedOutNodes(
const DtLocalVertexList& vertexList);
146 virtual bool geometryIntersectPagedOutNodes(
const DtChord& chord);
151 virtual bool geometryIntersectPagedOutNodes(
const DtSphere& sphere, std::set<std::string>& retVec);
152 virtual bool geometryIntersectPagedOutNodes(
const DtLocalVertexList& vertexList, std::set<std::string>& retVec);
153 virtual bool geometryIntersectPagedOutNodes(
const DtChord& chord, std::set<std::string>& retVec);
170 virtual unsigned int getNumTriangles(
DtNodeId node);
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
boost::unordered_map< DtNodeId, DtNodeBoundingInfoPtr > DtNodeBoundingInfoMap
Definition: boundingNodeInfo.h:139
tbb::spin_rw_mutex myPagedOutMutex
Definition: boundingVolumeTerrainSourceTracker.h:195
boost::unordered_map< DtNodeId, DtPagedNodeStatusPtr > DtPagedNodeStatusMap
Definition: boundingNodeInfo.h:141
unsigned long long DtTerrainIntersectIDType
Definition: terrainInterfaceDefines.h:28
virtual void pageInData(DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)=0
Page in data within geometry. Determines which tiles are within the geometry and adds a page in comma...
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
virtual void pageOutOldestData(const int priority)=0
Adds a page out command for the least-recently-used tileID to myCommandQueue.
virtual void getPageInData(DtNodeBoundingList &nodeBoundingList)
Return a list of bounding sphere that represent the the paged out tiles.
std::list< DtNodeBoundingInfoPtr > DtNodeBoundingInfoList
Definition: boundingNodeInfo.h:137
tbb::concurrent_queue< DtTerrainPagerCommand * > DtPagerCommandQueue
Definition: vantageTerrainImplementationUtil.h:42
DtVector mySpatialSubdivisionDimensions
Definition: boundingVolumeTerrainSourceTracker.h:197
Definition: boundingVolumeCommands.h:43
std::atomic< bool > myRecomputeOldestPagedObject
Definition: boundingVolumeTerrainSourceTracker.h:184
void expandExtent(DtExtent &extent) const
Definition: boundingVolumeTerrainSourceTracker.h:76
virtual bool dataAvailable(DtPagingMetaDataPtr metaData, DtTerrainPagingGeometryPtr geometry)=0
DtSpatialSubdivision< DtNodeBoundingInfoPtr > DtSpatialNodeBoundingInfoContainer
Definition: boundingVolumeTerrainSourceTracker.h:86
const Coordinate_System * myCoordSys
Definition: boundingVolumeTerrainSourceTracker.h:192
virtual void printInfo() const
std::atomic< bool > myInvalidFlag
Definition: boundingVolumeTerrainSourceTracker.h:181
DtNodeId myId
Definition: boundingVolumeTerrainSourceTracker.h:81
Definition: boundingVolumeTerrainSourceTracker.h:55
Definition: coordSystem.h:54
DtNodeBoundingInfoList myPagedOutAreas
For now, just a primitive list of spheres. This should be an optimized data structure for speed...
Definition: boundingVolumeTerrainSourceTracker.h:176
std::shared_ptr< DtTerrainPagingGeometry > DtTerrainPagingGeometryPtr
Definition: terrainPagingGeometry.h:46
std::list< DtSphere2 > DtNodeBoundingList
Definition: sphere2.h:20
Base class for Terrain Source trackers. Determines if the necessary data To perform an intersection i...
Definition: terrainSourceTracker.h:75
Command which causes all data within the specified geometry to be paged in by the terrain pager...
Definition: boundingVolumeCommands.h:16
tbb::spin_rw_mutex myPagedInMutex
Definition: boundingVolumeTerrainSourceTracker.h:194
DtNodeId myOldestPagedObject
Definition: boundingVolumeTerrainSourceTracker.h:183
DtSpatialSubdivision< DtNodeStatusSSElementPtr > DtSpatialNodeStatusContainer
Definition: boundingVolumeTerrainSourceTracker.h:87
virtual void getPageOutData(DtNodeBoundingList &nodeBoundingList)
Return a list of bounding sphere that represent the the paged in tiles.
std::shared_ptr< DtPagedNodeStatus > DtPagedNodeStatusPtr
Definition: boundingNodeInfo.h:95
std::shared_ptr< DtPagingMetaData > DtPagingMetaDataPtr
Definition: terrainPagingGeometry.h:108
A DtBoundingVolumeTerrainSourceTracker tracks data from a paging terrain source for purposes such as ...
Definition: boundingVolumeTerrainSourceTracker.h:47
DtPagedNodeStatusPtr myStatus
Definition: boundingVolumeTerrainSourceTracker.h:82
DtNodeStatusSSELement(std::pair< DtNodeId, DtPagedNodeStatusPtr > idStatusPair)
Definition: boundingVolumeTerrainSourceTracker.h:64
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
DtExtent extent()
Definition: boundingVolumeTerrainSourceTracker.h:71
The DtSpatialSubdivision class represents a uniform spatial container. The container is divided up in...
Definition: spatialSubdivision.h:169
DtSpatialNodeStatusContainer * myPagedInSpatialNodeContainer
Definition: boundingVolumeTerrainSourceTracker.h:191
This class wraps the VR-Vantage Display Engine, and uses as a terrain loader and intersector. This is the terrain engine that powers the DtVantageTerrainImplementation. The DtVantageTerrainEngine runs the DtDe it its own thread, and processes commands thought the command queue.
Definition: vantageTerrainEngine.h:112
virtual bool canPageOutData(DtTerrainIntersectIDType intersectId)=0
class DtLocalVertexList:
Definition: localVertexList.h:20
DtNodeStatusSSELement(DtNodeId id, DtPagedNodeStatusPtr status)
Definition: boundingVolumeTerrainSourceTracker.h:57
DtSpatialNodeBoundingInfoContainer * myPagedOutSpatialNodeContainer
Spatial subdivision for finding relevant bounding nodes. The subdivision is projected into topo from ...
Definition: boundingVolumeTerrainSourceTracker.h:190
virtual DtTerrainIntersectIDType findOldestPagedData(unsigned int &numTriangles)=0
Finds the least-recently-used tile and set myOldestPagedObject to it.
std::shared_ptr< DtNodeStatusSSELement > DtNodeStatusSSElementPtr
Definition: boundingVolumeTerrainSourceTracker.h:84
DtPagedNodeStatusMap myPagedInAreas
List of paged in volumes. Used for tracking usage for paging out.
Definition: boundingVolumeTerrainSourceTracker.h:179