12 #include <tbb/spin_rw_mutex.h>
13 #include <tbb/concurrent_queue.h>
14 #include <tbb/atomic.h>
27 #include <boost/unordered_map.hpp>
28 #include <boost/optional.hpp>
29 #include <boost/shared_ptr.hpp>
30 #include <boost/scoped_ptr.hpp>
33 #include <boost/geometry.hpp>
34 #include <boost/geometry/geometries/point.hpp>
35 #include <boost/geometry/geometries/box.hpp>
37 #include <boost/geometry/index/rtree.hpp>
44 #define DO_NOT_USE_CUTOUT_CACHE
79 virtual void setEarthFileName(
const DtFilename& file);
82 virtual void setCutoutFilename(
const char* OptionalSuffixe=NULL);
89 virtual bool isContainedWithinCutoutCache(
const osgEarth::GeoExtent & extent,
const osgEarth::TileKey & key);
102 virtual int highestPriorityPendingWork();
106 virtual void processCommandQueue();
111 virtual void setCurrentTime(
const double& currentTime);
114 virtual unsigned long numTriangles()
const;
117 virtual bool quitFlagSet()
const;
120 virtual void setQuit(
bool);
126 virtual void setLabel(
const DtString&);
130 virtual unsigned queuePageReloadsWithinExtent(
const osgEarth::GeoExtent & extent,
const DtUUID& dynamicUuid,
bool isRemoval =
false);
133 virtual void clearCutoutCache();
136 virtual void clearTerrainEngineReference();
142 typedef boost::unordered_map<DtNodeId, TerrainRecord>
Map;
158 void setGeoExent(
const osgEarth::GeoExtent& extent);
159 const osgEarth::GeoExtent& geoExtent()
const;
161 void setUUID(
const DtUUID& dynamicTerrainUUID);
162 const DtUUID& uuid()
const;
174 typedef boost::geometry::index::rtree<DtDynamicTerrainRtreeValue, boost::geometry::index::quadratic<16> >
DtDynamicTerrainRtree;
198 virtual unsigned int removeTerrain(
const osg::ref_ptr<osg::Node>& node,
const char* debugWhoisCalling =
"unknown");
201 virtual void addTriangles(
unsigned int,
const char* debugString=
"unknown");
204 virtual void removeTriangles(
unsigned int,
const char* debugString =
"unknown");
210 void modifyDynamicTerrainExtent(
const DtPoint & swCorner,
const DtPoint & neCorner,
bool isRemoval,
unsigned amount = 1);
216 bool hasDynamicTerrainWithinExtent(
const DtPoint & swCorner,
const DtPoint& neCorner)
const;
218 bool modifyDynamicTerrain(
const osgEarth::GeoExtent& dynamicTerrainExtent,
const DtUUID& dynamicTerrainUUID,
bool isRemoval);
219 bool hasDynamicTerrainWithinExtent(std::vector<DtDynamicTerrainRtreeValue> & values,
const osgEarth::GeoExtent & extent);
222 void eraseCommand(DtCommandPriorityMultimap::iterator& itr);
224 void eraseAndInsertCommand(DtCommandPriorityMultimap::iterator& itr);
226 bool getFirsCommand(DtCommandPriorityMultimap::iterator& itrToProcess);
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
Class DtTerrainInterfaceConfig is a readable-writable class holding terrain interface configuration o...
Definition: terrainInterfaceConfig.h:32
This class keeps track of what parts of the terrain database are currently paged in and what ones are...
Definition: activePageTracker.h:38
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
tbb::concurrent_queue< DtTerrainPagerCommand * > DtPagerCommandQueue
Definition: vantageTerrainImplementationUtil.h:40
Definition: coordSystem.h:54
std::map< osgEarth::TileKey, boost::shared_ptr< DtTileData > > DtTerrainTileMap
Definition: tileData.h:335
Base class for Terrain Source trackers. Determines if the necessary data To perform an intersection i...
Definition: terrainSourceTracker.h:75
Class DtLogFileInfo; Holds Logging information for windows minidump and log file generation.
#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.
Contains makVrv::DtDynamicTerrainWorld class.
Definition: osgToBullet.h:99
Feature Insertion/Removal/Paging Features represent parts of the terrain which are individually ident...
Definition: DtDynamicTerrainWorld.h:99
DT_DLL_terrainCS bool operator!=(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
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:99