17 #include <unordered_map>
76 virtual bool needsUpdate(
DtTime tNow );
83 virtual void update(
DtTime tNow );
88 virtual void updateAdaptiveTickrate(
const DtVector& lastPos,
const DtTime& deltaTime);
92 virtual void setVertexToUpdate(
unsigned int vertex );
96 virtual void setInputPosition(
const DtVector& position );
100 virtual void setInputOrientation(
const DtTaitBryan& orientation );
106 virtual void setOutputPosition(
const DtVector& position );
109 virtual DtVector outputPosition()
const;
115 virtual void setOutputOrientation(
const DtTaitBryan& orientation );
118 virtual DtTaitBryan outputOrientation()
const;
124 virtual void setOutputPositionAndOrientation(
const DtVector& position,
const DtTaitBryan& orientation);
128 virtual DtTime lastUpdateTime()
const;
138 virtual void setSceneObject(
DtSceneObject* sceneObject,
bool addToTickableMgrIfHead);
151 virtual void setAdaptiveTickLodEnabled(
bool enabled);
152 virtual bool adaptiveTickLodEnabled()
const override;
155 virtual void setLodScaleSpeedFactor(
float factor);
157 virtual float lodScaleSpeedFactor()
const;
160 virtual void setLodRadiusStart(
float ratius);
162 virtual float lodRadiusStart()
const;
165 virtual void setLodRadiusEnd(
float ratius);
167 virtual float lodRadiusEnd()
const;
170 virtual void setNearLodUpdateRate(
int nearRate);
172 virtual int nearLodUpdateRate()
const;
175 virtual void setFarLodUpdateRate(
int maxRate);
177 virtual int farLodUpdateRate()
const;
185 if( mySceneObjectMap.size() )
187 return mySceneObjectMap.begin()->second;
195 if( mySceneObjectMap.size() )
197 return mySceneObjectMap.begin()->second;
204 auto keyVal = mySceneObjectMap.find( modelSet );
205 if( keyVal != mySceneObjectMap.end() )
207 return keyVal->second;
214 auto keyVal = mySceneObjectMap.find( modelSet );
215 if( keyVal != mySceneObjectMap.end() )
217 return keyVal->second;
232 return myNextUpdater;
238 return myPrevUpdater;
250 virtual void setIsThreadSafe(
bool safe);
261 virtual void addSceneObjectToUpdate(
DtModelSetId modelSet,
DtSceneObject* sceneObject,
bool addToTickableMgrIfHead=
true );
267 virtual void addSceneObjectToUpdateAtChainEnd(
DtModelSetId modelSet,
DtSceneObject* sceneObject,
bool addToTickableMgrIfHead =
true );
273 virtual void setTickableEnabled(
bool enabled )
override;
280 virtual void slot_sceneObjectToBeDeleted(
const DtUniqueID&
id );
bool myEnabled
is system on for this model
Definition: DtSceneObjectUpdater.h:380
DtUniqueID uniqueId() const
Returns the distributed object id of this updater.
Definition: DtSceneObjectUpdater.h:224
std::unordered_map< DtModelSetId, DtSceneObject * > ModelSetToSceneObjectMap
Definition: DtSceneObjectUpdater.h:366
DtUniqueID myUniqueId
This distributed object's unique identifier.
Definition: DtSceneObjectUpdater.h:317
DtVector myLastOutputPosition
Last Output position.
Definition: DtSceneObjectUpdater.h:351
float myFarUpdateRadius
the far radius where the update rate is at it's lowest
Definition: DtSceneObjectUpdater.h:389
Scene Object Updater.
Definition: DtSceneObjectUpdater.h:39
An abstract base class for objects that require updates. This object automatically adds itself to a D...
Definition: DtTickable.h:26
DtSceneObject * findSceneObjectForModelSet(DtModelSetId modelSet)
Find an active scene object.
Definition: DtSceneObjectUpdater.h:202
SceneObjectConnectionsMap mySceneObjectConnectionsMap
Definition: DtSceneObjectUpdater.h:372
bool myPositionDataOutputted
Flag to indicate if setOutputPosition has been called this tick. If a deriving updater hasn't called ...
Definition: DtSceneObjectUpdater.h:359
int myNearUpdateRate
the update rate at the near radius
Definition: DtSceneObjectUpdater.h:395
DtSceneObject *const findActiveSceneObject() const
const correct version
Definition: DtSceneObjectUpdater.h:193
ModelSetToSceneObjectMap mySceneObjectMap
Definition: DtSceneObjectUpdater.h:368
boost::signalslib::signal< void(const DtUniqueID &) > signal_updaterToBeDeleted
Definition: DtSceneObjectUpdater.h:255
DtDe & myDe
The display engine.
Definition: DtSceneObjectUpdater.h:314
float myNearUpdateRadius
the near radius where the update rate starts to fall off
Definition: DtSceneObjectUpdater.h:386
DtSceneObjectUpdater * myPrevUpdater
The previous updater in the chain (or NULL)
Definition: DtSceneObjectUpdater.h:336
DtVector myLastPositionForAdaptiveTickRate
Used to calculate the velocity for adaptive tick rate.
Definition: DtSceneObjectUpdater.h:342
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
AdaptiveTickRateLODParams myAdaptiveTickRateLODParams
Definition: DtSceneObjectUpdater.h:398
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtModelSetId myModelSet
A pointer to the current scene object being updated.
Definition: DtSceneObjectUpdater.h:324
DtSceneObject * findActiveSceneObject()
Find an active scene object.
Definition: DtSceneObjectUpdater.h:183
unsigned int myVertexToUpdate
The default scene object vertex to update.
Definition: DtSceneObjectUpdater.h:339
DtTaitBryan myLastOutputOrientation
Last Output Orientation.
Definition: DtSceneObjectUpdater.h:354
DtSceneObject *const findSceneObjectForModelSet(DtModelSetId modelSet) const
Find an active scene object.
Definition: DtSceneObjectUpdater.h:212
DtTaitBryan myInputOrientation
Input Orientation.
Definition: DtSceneObjectUpdater.h:348
Contains the declaration for makVrv::DtTickable.
DtSceneObjectUpdater * findPrevUpdater() const
Return the previous updater in the updater chain.
Definition: DtSceneObjectUpdater.h:236
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:44
int myFarUpdateRate
the update rate at the far radius
Definition: DtSceneObjectUpdater.h:392
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:72
bool myOrientationDataOutputted
Flag to indicate if setOutputOrientation has been called this tick. If a deriving updater hasn't call...
Definition: DtSceneObjectUpdater.h:364
DtVector myInputPosition
Input position.
Definition: DtSceneObjectUpdater.h:345
DtModelSetId
Definition: DtModelSetEnums.h:19
DtSceneObjectUpdater * myNextUpdater
The next updater in the chain (or NULL)
Definition: DtSceneObjectUpdater.h:333
float myScaleSpeedFactor
value that linearly adjusts the range of the lod radii by the velocity
Definition: DtSceneObjectUpdater.h:383
Parameters used when adaptive tick rate is enabled.
Definition: DtSceneObjectUpdater.h:376
Contains makVrv::DtSceneObject class.
std::unordered_map< DtUniqueID, boost::signalslib::connection > SceneObjectConnectionsMap
Definition: DtSceneObjectUpdater.h:370
DtSceneObjectUpdater * findNextUpdater() const
Return the next updater in the updater chain.
Definition: DtSceneObjectUpdater.h:230
boost::signalslib::connection mySceneObjectConnection
Definition: DtSceneObjectUpdater.h:330