17 #include <unordered_map>
18 #include <unordered_set>
20 #include <tbb/mutex.h>
38 class CustomFeatureNode;
44 class DtSpeedTreeForest;
45 class DtOsgTerrainPatchObject;
46 class CellNodeObserver;
58 const osgEarth::Layer* layer,
const osg::Node* data);
60 const osg::Node* data);
65 osgEarth::Layer* layer);
67 const osgEarth::Layer* layer);
76 const osg::Node* data);
82 const osg::Node* data);
88 static bool verifyExists(
const osg::Observer* lhs,
const osg::Node* data);
90 std::string& strCleanModelName,
const std::string& strModelName,
99 typedef std::unordered_map<const osg::Node*, CellNodeObserver*>
void removeForestFromMapData(const osg::Node *dataNode)
void onLayerVisibilityChanged(const osgEarth::VisibleLayer *layer)
void onLayerUnLoaded(const osgEarth::MapNode *mapNode, const osgEarth::Layer *layer)
DtSpeedTreeForest * myForest
Definition: DtStreamedSpeedTreeForest.h:95
std::map< std::string, std::pair< std::string, bool > > MarkerToModelDefinition
Definition: DtStreamedSpeedTreeForest.h:87
static bool verifyExists(const osg::Observer *lhs, const osg::Node *data)
DtDe & myDe
Definition: DtStreamedSpeedTreeForest.h:97
DtStreamedSpeedTreeForest manages the streaming management for The DtSpeedTreeForest that is contains...
Definition: DtStreamedSpeedTreeForest.h:51
static bool getValidTreeModelDefinition(DtDe &de, std::string &strCleanModelName, const std::string &strModelName, MarkerToModelDefinition &cache)
void processNewFeatures(const DtOsgTerrainPatchObject &patch, const osg::Node *data)
void onDataUnLoaded(const osgEarth::Layer *layer, const osg::Node *data)
ModelDefinitionSet myValidModelDefinitions
Definition: DtStreamedSpeedTreeForest.h:94
void mapDataToCell(const osg::Node *dataNode, DtUniqueID cellID)
DtSpeedTreeForest * forest()
Contains DLL export macros.
std::vector< DtTreeRecord * > DtVectorTreeRecords
Definition: DtTreeRecord.h:139
tbb::mutex myMapCellsToSubCellsMutex
Definition: DtStreamedSpeedTreeForest.h:106
DtStreamedSpeedTreeForest(DtDe &de, DtUniqueID id)
bool observerExists(const osg::Node *data)
std::unordered_map< const osg::Node *, CellNodeObserver * > MapCellsToObservers
Definition: DtStreamedSpeedTreeForest.h:100
MapCellsToSubCells myMapCellsToSubCells
Definition: DtStreamedSpeedTreeForest.h:105
DtSpeedTreeForest is the SpeedTree implementation of a distributed DtForestObject.
Definition: DtSpeedTreeForest.h:50
Custom Feature Node.
Definition: CustomFeatureNode.h:43
A DtOsgTerrainPatchObject contains the methods for loading a file as a terrain. When loading a file a...
Definition: DtOsgTerrainPatchObject.h:54
void createObserver(const osgEarth::Layer *layer, const osg::Node *data)
void removeAndDestroyAllObservers(void)
std::set< DtUniqueID > IdSet
Definition: DtStreamedSpeedTreeForest.h:103
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
MapCellsToObservers myMapCellsToObservers
Definition: DtStreamedSpeedTreeForest.h:101
std::unordered_set< std::string > ModelDefinitionSet
Definition: DtStreamedSpeedTreeForest.h:92
void onLayerLoaded(const osgEarth::MapNode *mapNode, osgEarth::Layer *layer)
DtVectorTreeRecords myScratchVecTreeRecords
Definition: DtStreamedSpeedTreeForest.h:96
void processNewFeature(const DtOsgTerrainPatchObject &patch, const osgEarth::CustomFeatureNode *pFeatureNode, const osg::Node *data)
Contains makVrv::DtUniqueID type.
void onDataLoaded(const DtOsgTerrainPatchObject &patch, const osgEarth::Layer *layer, const osg::Node *data)
virtual ~DtStreamedSpeedTreeForest()
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
void destroyObserver(const osg::Node *data, bool bCheck)
Contains makVrv::DtTreeRecord class.
std::unordered_map< const osg::Node *, IdSet > MapCellsToSubCells
Definition: DtStreamedSpeedTreeForest.h:104