21 #include <osg/ref_ptr>
22 #include <osg/OperationThread>
24 #include <OpenThreads/Thread>
25 #include <OpenThreads/Block>
27 #include <boost/thread/mutex.hpp>
28 #include <tbb/atomic.h>
30 #include <unordered_set>
49 class DtStreamedSpeedTreeForest;
50 class DtSpeedTreeMergeJob;
51 class DtStreamedSpeedTreeThread;
69 typedef std::unordered_set<const osg::Node*>
NodeSet;
72 typedef std::unordered_set<DtStreamedSpeedTreeForest*>
ForestSet;
93 void setNodeUnloaded(
const osg::Node* node);
100 const osg::Node* dataNode,
101 bool useScaleRandomization,
102 bool useOrientationRandomization,
116 bool isNodeUnloaded(
const osg::Node* node);
121 static std::size_t
hash_value(
const std::string& modelDefName,
125 void mergeTreeRequests();
134 virtual void updateBlock();
137 virtual void stopMergingWork();
140 virtual bool workToDo()
const;
143 virtual bool fetchAndActivateTask();
149 virtual double rotationAngleFromGeocentricQuaternion(
const osg::Quat& rotation,
150 const osg::Vec3d& location);
DtDe & myDe
Definition: DtStreamedSpeedTreeThread.h:158
OpenThreads::Thread Thread
Definition: DtOsgThreadingUtils.h:14
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
tbb::atomic< bool > myStopWork
Flag to tell the merging to stop.
Definition: DtStreamedSpeedTreeThread.h:200
std::unordered_set< DtStreamedSpeedTreeForest * > ForestSet
Set of forests.
Definition: DtStreamedSpeedTreeThread.h:72
OpenThreads::Block myBlock
Definition: DtStreamedSpeedTreeThread.h:166
std::deque< DtTreeRequestMessage * > myMessageQueue
Queue of marker request messages.
Definition: DtStreamedSpeedTreeThread.h:163
Contains DLL export macros.
NodeSet myUnloadedNodes
Set of unloaded feature request nodes.
Definition: DtStreamedSpeedTreeThread.h:192
StringSet myValidModelDefinitions
Cache of valid SpeedTree model definitions.
Definition: DtStreamedSpeedTreeThread.h:174
tbb::atomic< bool > myWorkToDo
Definition: DtStreamedSpeedTreeThread.h:201
RequestOutputList myTreeRequestOutput
List of allocated output objects.
Definition: DtStreamedSpeedTreeThread.h:186
The Filter pushes these onto the CustomFeatureNode's MarkerRequestList.
Definition: CustomFeatureNode.h:51
std::list< DtTreeRequestOutput > RequestOutputList
List type for output objects.
Definition: DtStreamedSpeedTreeThread.h:66
Contains makVrv::DtVirtualBaseClass class.
A message to convert some tree requests into tree records.
Definition: DtTreeRequestMessage.h:52
osg::EllipsoidModel * myEllipsoidModel
Definition: DtStreamedSpeedTreeThread.h:197
Output of a processed set of marker requests.
Definition: DtTreeRequestMessage.h:29
Custom Feature Node.
Definition: CustomFeatureNode.h:43
boost::mutex myMessageQueueMutex
Mutex controlling access to q.
Definition: DtStreamedSpeedTreeThread.h:169
Contains the CustomFeatureNode class declaration.
bool myTimeToStop
Flag to tell the thread to stop.
Definition: DtStreamedSpeedTreeThread.h:195
Thread object to convert tree marker requests into tree records in a worker thread.
Definition: DtStreamedSpeedTreeThread.h:56
ForestSet myDeletedForests
Set of deleted forest objects.
Definition: DtStreamedSpeedTreeThread.h:180
std::unordered_set< const osg::Node * > NodeSet
Set of request nodes.
Definition: DtStreamedSpeedTreeThread.h:69
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:70
std::unordered_set< std::string > StringSet
Set of model definition names.
Definition: DtStreamedSpeedTreeThread.h:75
tbb::atomic< bool > myTbbTaskActive
Definition: DtStreamedSpeedTreeThread.h:202
std::size_t hash_value(DtUnicode const &val)
Definition: DtUnicode.h:323
Contains makVrv::DtTreeRecord class.