18 #include <unordered_map>
77 virtual bool needsUpdate(
DtTime tNow );
84 virtual void update(
DtTime tNow );
89 virtual void updateAdaptiveTickrate(
const DtVector& lastPos,
const DtTime& deltaTime);
93 virtual void setVertexToUpdate(
unsigned int vertex );
97 virtual void setInputPosition(
const DtVector& position );
101 virtual void setInputOrientation(
const DtTaitBryan& orientation );
107 virtual void setOutputPosition(
const DtVector& position );
110 virtual DtVector outputPosition()
const;
116 virtual void setOutputOrientation(
const DtTaitBryan& orientation );
119 virtual DtTaitBryan outputOrientation()
const;
125 virtual void setOutputPositionAndOrientation(
const DtVector& position,
const DtTaitBryan& orientation);
129 virtual DtTime lastUpdateTime()
const;
139 virtual void setSceneObject(
DtSceneObject* sceneObject,
bool addToTickableMgrIfHead);
152 virtual void setAdaptiveTickLodEnabled(
bool enabled);
153 virtual bool adaptiveTickLodEnabled()
const override;
156 virtual void setLodScaleSpeedFactor(
float factor);
158 virtual float lodScaleSpeedFactor()
const;
161 virtual void setLodRadiusStart(
float ratius);
163 virtual float lodRadiusStart()
const;
166 virtual void setLodRadiusEnd(
float ratius);
168 virtual float lodRadiusEnd()
const;
171 virtual void setNearLodUpdateRate(
int nearRate);
173 virtual int nearLodUpdateRate()
const;
176 virtual void setFarLodUpdateRate(
int maxRate);
178 virtual int farLodUpdateRate()
const;
186 if( mySceneObjectMap.size() )
188 return mySceneObjectMap.begin()->second;
196 if( mySceneObjectMap.size() )
198 return mySceneObjectMap.begin()->second;
205 auto keyVal = mySceneObjectMap.find( modelSet );
206 if( keyVal != mySceneObjectMap.end() )
208 return keyVal->second;
215 auto keyVal = mySceneObjectMap.find( modelSet );
216 if( keyVal != mySceneObjectMap.end() )
218 return keyVal->second;
233 return myNextUpdater;
239 return myPrevUpdater;
251 virtual void setIsThreadSafe(
bool safe);
262 virtual void addSceneObjectToUpdate(
DtModelSetId modelSet,
DtSceneObject* sceneObject,
bool addToTickableMgrIfHead=
true );
268 virtual void addSceneObjectToUpdateAtChainEnd(
DtModelSetId modelSet,
DtSceneObject* sceneObject,
bool addToTickableMgrIfHead =
true );
274 virtual void setTickableEnabled(
bool enabled )
override;
281 virtual void slot_sceneObjectToBeDeleted(
const DtUniqueID&
id );
std::map< DtModelSetId, DtSceneObject * > ModelSetToSceneObjectMap
Definition: DtSceneObjectUpdater.h:367
bool myEnabled
is system on for this model
Definition: DtSceneObjectUpdater.h:381
DtUniqueID uniqueId() const
Returns the distributed object id of this updater.
Definition: DtSceneObjectUpdater.h:225
DtUniqueID myUniqueId
This distributed object's unique identifier.
Definition: DtSceneObjectUpdater.h:318
DtVector myLastOutputPosition
Last Output position.
Definition: DtSceneObjectUpdater.h:352
float myFarUpdateRadius
the far radius where the update rate is at it's lowest
Definition: DtSceneObjectUpdater.h:390
Scene Object Updater.
Definition: DtSceneObjectUpdater.h:40
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:203
SceneObjectConnectionsMap mySceneObjectConnectionsMap
Definition: DtSceneObjectUpdater.h:373
bool myPositionDataOutputted
Flag to indicate if setOutputPosition has been called this tick. If a deriving updater hasn't called ...
Definition: DtSceneObjectUpdater.h:360
int myNearUpdateRate
the update rate at the near radius
Definition: DtSceneObjectUpdater.h:396
DtSceneObject *const findActiveSceneObject() const
const correct version
Definition: DtSceneObjectUpdater.h:194
ModelSetToSceneObjectMap mySceneObjectMap
Definition: DtSceneObjectUpdater.h:369
boost::signalslib::signal< void(const DtUniqueID &) > signal_updaterToBeDeleted
Definition: DtSceneObjectUpdater.h:256
DtDe & myDe
The display engine.
Definition: DtSceneObjectUpdater.h:315
float myNearUpdateRadius
the near radius where the update rate starts to fall off
Definition: DtSceneObjectUpdater.h:387
DtSceneObjectUpdater * myPrevUpdater
The previous updater in the chain (or NULL)
Definition: DtSceneObjectUpdater.h:337
DtVector myLastPositionForAdaptiveTickRate
Used to calculate the velocity for adaptive tick rate.
Definition: DtSceneObjectUpdater.h:343
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
AdaptiveTickRateLODParams myAdaptiveTickRateLODParams
Definition: DtSceneObjectUpdater.h:399
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtModelSetId myModelSet
A pointer to the current scene object being updated.
Definition: DtSceneObjectUpdater.h:325
DtSceneObject * findActiveSceneObject()
Find an active scene object.
Definition: DtSceneObjectUpdater.h:184
unsigned int myVertexToUpdate
The default scene object vertex to update.
Definition: DtSceneObjectUpdater.h:340
DtTaitBryan myLastOutputOrientation
Last Output Orientation.
Definition: DtSceneObjectUpdater.h:355
DtSceneObject *const findSceneObjectForModelSet(DtModelSetId modelSet) const
Find an active scene object.
Definition: DtSceneObjectUpdater.h:213
DtTaitBryan myInputOrientation
Input Orientation.
Definition: DtSceneObjectUpdater.h:349
Contains the declaration for makVrv::DtTickable.
DtSceneObjectUpdater * findPrevUpdater() const
Return the previous updater in the updater chain.
Definition: DtSceneObjectUpdater.h:237
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:393
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
bool myOrientationDataOutputted
Flag to indicate if setOutputOrientation has been called this tick. If a deriving updater hasn't call...
Definition: DtSceneObjectUpdater.h:365
DtVector myInputPosition
Input position.
Definition: DtSceneObjectUpdater.h:346
DtModelSetId
Definition: DtModelSetEnums.h:19
DtSceneObjectUpdater * myNextUpdater
The next updater in the chain (or NULL)
Definition: DtSceneObjectUpdater.h:334
float myScaleSpeedFactor
value that linearly adjusts the range of the lod radii by the velocity
Definition: DtSceneObjectUpdater.h:384
Parameters used when adaptive tick rate is enabled.
Definition: DtSceneObjectUpdater.h:377
Contains makVrv::DtSceneObject class.
std::unordered_map< DtUniqueID, boost::signalslib::connection > SceneObjectConnectionsMap
Definition: DtSceneObjectUpdater.h:371
DtSceneObjectUpdater * findNextUpdater() const
Return the next updater in the updater chain.
Definition: DtSceneObjectUpdater.h:231
boost::signalslib::connection mySceneObjectConnection
Definition: DtSceneObjectUpdater.h:331