VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
activePageTracker.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 #include <vrfutil/sphere2.h>
16 
19 
21 
22 #include <tbb/spin_rw_mutex.h>
23 #include <tbb/task_arena.h>
24 
28 
29 namespace makVrv
30 {
31  class DtDe;
32 }
33 
39 {
40 private:
42 
44  DtActivePageTracker& operator=(const DtActivePageTracker&);
46 
47 public:
50 
52  virtual ~DtActivePageTracker();
53 
55  virtual void setVantageTerrainEngine(DtVantageTerrainEngine*);
56 
66  virtual void pageInData(DtPagingMetaDataPtr metaData,
68  DtTerrainCategoryMask terrainCategories = DtTerrainCategoryAll,
70 
73  virtual bool pageInUnavailableData(DtPagingMetaDataPtr metaData,
75  DtTerrainCategoryMask terrainCategories = DtTerrainCategoryAll,
77 
83  virtual bool dataAvailable(DtPagingMetaDataPtr metaData,
85  DtTerrainCategoryMask terrainCategories = DtTerrainCategoryAll,
87 
94 
96  virtual void addTerrainSourceTracker(
97  DtTerrainSourceTracker* terrainSourceTracker);
98 
99  virtual void removeTerrainSourceTracker(
100  DtTerrainSourceTracker* terrainSourceTracker);
101 
103  virtual bool canPageOutData(DtTerrainIntersectIDType intersectId = 0);
104 
109  virtual unsigned int pageOutData(const int priority,
110  unsigned int numTrianglesToPageOut, DtTerrainIntersectIDType intersectId);
111 
112  virtual void setIntersectDataLoadExpireTime(const double& expireTime);
113 
114  virtual bool printInfo() const;
115 
116  virtual void getPageInData(DtNodeBoundingList& nodeBoundingList);
117 
118  virtual void getPageOutData(DtNodeBoundingList& nodeBoundingList);
119 
121  virtual void getProceduralTreeTile(DtDebugDrawTerrainOutputInterface::terrainLineList& nodeBoundingList);
122 
123  virtual void setUseTbb(bool value);
124 
126  virtual void clearCache();
127 
128 protected:
131 
135 
137 
138  mutable tbb::spin_rw_mutex myMutex;
139 
141  tbb::task_arena myArena;
142 
148  bool myUseTbb;
149 };
150 
151 
DtVantageTerrainEngine * myTerrainEngine
Definition: activePageTracker.h:129
Definition: terrainIntersectOptions.h:104
This class keeps track of what parts of the terrain database are currently paged in and what ones are...
Definition: activePageTracker.h:38
tbb::spin_rw_mutex myMutex
Definition: activePageTracker.h:138
std::vector< makVrf::DtLine > terrainLineList
Lines structure/calls/list.
Definition: debugDrawTerrainOutputInterface.h:109
tbb::task_arena myArena
Tbb arena to limit number of threads.
Definition: activePageTracker.h:141
unsigned long long DtTerrainIntersectIDType
Definition: terrainInterfaceDefines.h:28
DtTerrainSourceTrackerList myTerrainSourceTrackers
List of terrain source trackers that will determine whether all the necessary data is paged in for th...
Definition: activePageTracker.h:134
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
std::shared_ptr< DtPagingMetaData > DtPagingMetaDataPtr
Definition: terrainPagingGeometry.h:108
Terrain which represents buildings and other structures. There should be terrain skin under these...
Definition: rwTerrainCategoryMask.h:23
Fidelity
Allows the system to use differently fidelity data for intersecting against. Currently only implement...
Definition: terrainIntersectOptions.h:102
unsigned int DtTerrainCategoryMask
This bitmask is made using DtTerrainCategory values.
Definition: rwTerrainCategoryMask.h:27
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
Definition: vantageTerrainConsoleCommands.h:47
bool myUseTbb
Enable or not the usage of TBB to multi thread the layers in the intersection can be configured in ap...
Definition: activePageTracker.h:148
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
double myIntersectDataLoadExpireTime
Definition: activePageTracker.h:136
std::vector< DtTerrainSourceTracker * > DtTerrainSourceTrackerList
Definition: vantageTerrainImplementationUtil.h:37
DtPrintPagingInfoCommand * myPrintInfoCommand
Definition: activePageTracker.h:130
Interface to query terrain polygon.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)