23 #include <tbb/concurrent_queue.h>
25 #include <unordered_set>
26 #include <unordered_map>
46 class DtStreamedSpeedTreeForest;
68 typedef std::unordered_set<const osg::Node*>
NodeSet;
71 typedef std::unordered_set<DtStreamedSpeedTreeForest*>
ForestSet;
82 virtual void setNodeUnloaded(
const osg::Node* node);
87 ,
const osg::Node* dataNode
88 ,
bool useScaleRandomization
89 ,
bool useOrientationRandomization
91 ,
float treeMaxScale);
93 virtual bool workToDo(
void)
const;
108 ,
const osg::Node* node);
114 virtual bool isNodeUnloaded(
const osg::Node* node)
const;
116 virtual double rotationAngleFromGeocentricQuaternion(
const osg::Quat& rotation,
117 const osg::Vec3d& location)
const;
120 virtual std::size_t
hash_value(
const std::string& modelDefName,
130 virtual void returnTreeRecordToPool(
DtTreeRecord* treeRecord);
DtDe & myDe
Definition: DtStreamedSpeedTreeThread.h:133
std::atomic< bool > myStopWork
Flag to tell the merging to stop.
Definition: DtStreamedSpeedTreeThread.h:141
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtStreamedSpeedTreeForest manages the streaming management for The DtSpeedTreeForest that is contains...
Definition: DtStreamedSpeedTreeForest.h:51
#define DT_DLL_VRVST
Definition: vrvSt.h:20
std::unordered_set< DtStreamedSpeedTreeForest * > ForestSet
Set of forests.
Definition: DtStreamedSpeedTreeThread.h:71
std::unordered_map< std::string, std::vector< DtTreeRecord * > > myScratchModelDefsToTreesToAdd
worksspace
Definition: DtStreamedSpeedTreeThread.h:167
Contains DLL export macros.
NodeSet myUnloadedNodes
Set of unloaded feature request nodes.
Definition: DtStreamedSpeedTreeThread.h:160
std::deque< DtTreeRecord * > myTreeRecordPool
use pool to avoid fragmentation/repeated news/deletes
Definition: DtStreamedSpeedTreeThread.h:170
StringSet myValidModelDefinitions
Cache of valid SpeedTree model definitions.
Definition: DtStreamedSpeedTreeThread.h:148
The Filter pushes these onto the CustomFeatureNode's MarkerRequestList.
Definition: CustomFeatureNode.h:51
A DtTreeRecord holds the requisite information needed to create a tree in a forest.
Definition: DtTreeRecord.h:30
Contains makVrv::DtVirtualBaseClass class.
A message to convert some tree requests into tree records.
Definition: DtTreeRequestMessage.h:23
osg::EllipsoidModel * myEllipsoidModel
Definition: DtStreamedSpeedTreeThread.h:162
Custom Feature Node.
Definition: CustomFeatureNode.h:43
Contains the CustomFeatureNode class declaration.
std::thread myWorkerThread
Definition: DtStreamedSpeedTreeThread.h:143
std::unordered_map< std::string, std::string > myModelDefinitionCache
Definition: DtStreamedSpeedTreeThread.h:164
Thread object to convert tree marker requests into tree records in a worker thread.
Definition: DtStreamedSpeedTreeThread.h:50
ForestSet myDeletedForests
Set of deleted forest objects.
Definition: DtStreamedSpeedTreeThread.h:154
std::unordered_set< const osg::Node * > NodeSet
Set of request nodes.
Definition: DtStreamedSpeedTreeThread.h:68
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
std::unordered_set< std::string > StringSet
Set of model definition names.
Definition: DtStreamedSpeedTreeThread.h:74
tbb::concurrent_bounded_queue< DtTreeRequestMessage * > myMessageQueue
Queue of marker request messages.
Definition: DtStreamedSpeedTreeThread.h:138
std::size_t hash_value(DtUnicode const &val)
Definition: DtUnicode.h:325
Contains makVrv::DtTreeRecord class.