VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terrainSourceTracker.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
14 
15 #include <geometry/sphere.h>
16 
19 
21 
23 #include <vrfutil/sphere2.h>
24 #include <tbb/spin_rw_mutex.h>
25 #include <boost/unordered_map.hpp>
26 #include <boost/optional.hpp>
27 
28 #include <osgEarth/TileKey>
29 
30 typedef boost::unordered_multimap<DtNodeId, boost::shared_ptr<btCollisionObject> > DtNodeToCollObjMMap;
31 typedef std::pair<DtNodeToCollObjMMap::iterator, DtNodeToCollObjMMap::iterator>
33 
35 struct DtTileData;
36 
41 {
42 public:
43 
45  DtTerrainSourceTracker(DtVantageTerrainEngine*, DtPagerCommandQueue* commandQueue, osgEarth::MapNode* mapNode);
46 
48  virtual ~DtTerrainSourceTracker();
49 
51  virtual DtTerrainInterfaceConfig& configOptions();
52  virtual const DtTerrainInterfaceConfig& configOptions() const;
53 
56  virtual bool init(DtTerrainSourcePager&);
57 
62  virtual boost::optional<DtTerrainIntersectOptions::Fidelity> intersectFidelity() const;
63 
65  virtual bool dataAvailable(DtPagingMetaDataPtr metaData,
66  DtTerrainPagingGeometryPtr geometry) = 0;
67 
75  virtual void pageInData(DtPagingMetaDataPtr metaData,
76  DtTerrainPagingGeometryPtr geometry) = 0;
77 
78  //Should return true if the tracker is capable of paging out data.
79  virtual bool canPageOutData(DtTerrainIntersectIDType intersectId) = 0;
80 
86  virtual DtTerrainIntersectIDType findOldestPagedData(unsigned int& numTriangles) = 0;
87 
90  virtual void pageOutOldestData(const int priority) = 0;
91 
93  virtual void addNodesToCollisionMapping(DtNodeId node,
94  DtCollisionObjectList* collObjList);
95 
97  virtual void removeNodeToCollisionMappings(DtNodeId node);
98 
100  virtual DtCollisionObjectList collisionObjectsForNode(DtNodeId node);
101 
103  virtual osgEarth::MapNode* mapNode() const;
104 
106  virtual const Coordinate_System* localCS() const;
107 
109  virtual void setLabel(const DtString&);
110 
112  virtual void printInfo() const;
113 
115  virtual void getPageOutData(DtNodeBoundingList& nodeBoundingList);
116 
118  virtual void getPageInData(DtNodeBoundingList& nodeBoundingList);
119 
121  virtual void getProceduralTreeTile(DtDebugDrawTerrainOutputInterface::terrainLineList& nodeBoundingList);
122 
124  virtual unsigned getMaxLODForBilinearIntersection() const;
125 
127  virtual double intersetionTriangleMergeTolerance() const;
128 
130  virtual bool useLandCoverData() const;
131 
133  virtual DtSurface getSoilFromString(const std::string & soilType) const;
134 
136  virtual double triangleOutputMergeTolerance() const;
137 
139  virtual unsigned minElevationIndexLOD() const;
140 
142  virtual unsigned maxElevationIndexLOD() const;
143 
145  virtual unsigned maxLOD() const;
146 
148  virtual bool useRawElevation() const;
149 
151  virtual osgEarth::TileKey getBestTileKey(const osgEarth::TileKey&) const;
152 
153 protected:
154 
156 
158 
160 
162 
163  mutable tbb::spin_rw_mutex myMutex;
164 
166 
169 };
170 
172 {
173 public:
174  TileDataCallback() { myIsFinished = false; };
175 
176  virtual bool operator()(const boost::shared_ptr<DtTileData>& tile) = 0;
177 
178  virtual bool finish() const { return myIsFinished; }
179  virtual void setFinish(bool finish) { myIsFinished=finish; }
180 
181 protected:
182 
184 };
DtTileData is tracked by the DtOsgEarthTerrainSourceTracker for paging out tiles. ...
Definition: tileData.h:37
Class DtTerrainInterfaceConfig is a readable-writable class holding terrain interface configuration o...
Definition: terrainInterfaceConfig.h:32
DtBoost::shared_ptr< DtTerrainPagingGeometry > DtTerrainPagingGeometryPtr
Definition: terrainPagingGeometry.h:41
DtTerrainSourcePager is the base class for terrain pagers.
Definition: terrainSourcePager.h:53
std::vector< makVrf::DtLine > terrainLineList
Lines structure/calls/list.
Definition: debugDrawTerrainOutputInterface.h:90
DtString myLabel
Definition: terrainSourceTracker.h:155
unsigned long long DtTerrainIntersectIDType
Definition: terrainInterfaceDefines.h:28
tbb::spin_rw_mutex myMutex
Definition: terrainSourceTracker.h:163
Definition: surface.h:179
boost::unordered_multimap< DtNodeId, boost::shared_ptr< btCollisionObject > > DtNodeToCollObjMMap
Definition: terrainSourceTracker.h:30
tbb::concurrent_queue< DtTerrainPagerCommand * > DtPagerCommandQueue
Definition: vantageTerrainImplementationUtil.h:29
DtPagerCommandQueue * myCommandQueue
Definition: terrainSourceTracker.h:159
bool myIsFinished
Definition: terrainSourceTracker.h:183
const osg::ref_ptr< osgEarth::MapNode > myMapNode
map node for whole terrain
Definition: terrainSourceTracker.h:168
TileDataCallback()
Definition: terrainSourceTracker.h:174
Definition: coordSystem.h:54
DtVantageTerrainEngine * myVantageTerrainEngine
Definition: terrainSourceTracker.h:165
std::pair< DtNodeToCollObjMMap::iterator, DtNodeToCollObjMMap::iterator > DtNodeToCollObjRangePair
Definition: terrainSourceTracker.h:32
std::list< DtSphere2 > DtNodeBoundingList
Definition: sphere2.h:20
Base class for Terrain Source trackers.
Definition: terrainSourceTracker.h:40
Definition: terrainSourceTracker.h:171
virtual bool finish() const
Definition: terrainSourceTracker.h:178
DtNodeToCollObjMMap myNodeToCollObjMMap
Definition: terrainSourceTracker.h:161
DtTerrainInterfaceConfig myConfig
Definition: terrainSourceTracker.h:157
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::list< boost::shared_ptr< btCollisionObject > > DtCollisionObjectList
Definition: osgToBullet.h:51
This class wraps the VR-Vantage Display Engine, and uses as a terrain loader and intersector.
Definition: vantageTerrainEngine.h:93
virtual void setFinish(bool finish)
Definition: terrainSourceTracker.h:179
DtBoost::shared_ptr< DtPagingMetaData > DtPagingMetaDataPtr
Definition: terrainPagingGeometry.h:89
Interface to query terrain polygon.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)