VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
makVrv::DtDeadReckonUpdater Class Reference

DtDeadReckonUpdater is a scene object updater that is given kinematic updates and updates a scene object with dead reckoned values based on those updates, configuration, and current simulation time.

Inheritance diagram for makVrv::DtDeadReckonUpdater:
Inheritance graph
[legend]

Public Member Functions

 DtDeadReckonUpdater (DtDe &de, DtUniqueID id)
 
virtual ~DtDeadReckonUpdater ()
 
virtual void update (DtTime tNow)
 
virtual void setDeadReckoningSettings (bool deadReckonPosition, bool deadReckonVelocity, bool deadReckonOrientation)
 
virtual void setSmoothingEnabled (bool enabled)
 
virtual void setSmoothingPeriod (float period)
 
virtual void resetSmoother ()
 
virtual void updateSpacial (DtTime tNow)
 
void setMotionModel (const std::string &modelName)
 
DtMotionModelmotionModel () const
 
virtual void setUseAbsoluteTimeStamping (bool)
 
bool useAbsoluteTimeStamping () const
 
virtual void setFrozen (bool frozen)
 
virtual bool isFrozen () const
 
virtual const DtVectorapproxLocation (DtTime curTime) const
 
virtual const DtVector32 & approxUnsmoothedVelocity (DtTime curTime) const
 
virtual const DtTaitBryan & approxEuler (DtTime curTime) const
 
virtual const DtVector32 & acceleration (DtTime curTime) const
 
virtual const DtVector32 & rotationalVelocity (DtTime curTime) const
 
virtual void addSceneObjectToUpdate (DtModelSetId modelSet, DtSceneObject *sceneObject, bool addToTickableMgrIfHead=true) override
 
virtual void removeSceneObjectToUpdate (DtModelSetId modelSet, DtSceneObject *sceneObject) override
 
virtual void setVelocity (const DtVector32 &velocity)
 
virtual void setVelocity (const DtVector32 &velocity, double time)
 
virtual void setBodyVelocity (const DtVector32 &velocity)
 
virtual void setBodyVelocity (const DtVector32 &velocity, double time)
 
virtual void setAcceleration (const DtVector32 &acceleration)
 
virtual void setAcceleration (const DtVector32 &acceleration, double time)
 
virtual void setAngularVelocity (const DtVector32 &angularVelocity)
 
virtual void setAngularVelocity (const DtVector32 &angularVelocity, double time)
 
virtual void setInputPosition (const DtVector &position)
 
virtual void setInputPosition (const DtVector &position, double time)
 
virtual void setInputOrientation (const DtTaitBryan &ori)
 
virtual void setInputOrientation (const DtTaitBryan &ori, double time)
 
- Public Member Functions inherited from makVrv::DtSceneObjectUpdater
 DtSceneObjectUpdater (DtDe &de, DtUniqueID id)
 
virtual ~DtSceneObjectUpdater ()
 
virtual void setNextUpdater (DtSceneObjectUpdater *nextUpdater)
 
virtual void setPrevUpdater (DtSceneObjectUpdater *prevUpdater)
 
virtual bool needsUpdate (DtTime tNow)
 
virtual void updateAdaptiveTickrate (const DtVector &lastPos, const DtTime &deltaTime)
 
virtual void setVertexToUpdate (unsigned int vertex)
 
virtual void setOutputPosition (const DtVector &position)
 
virtual DtVector outputPosition () const
 
virtual void setOutputOrientation (const DtTaitBryan &orientation)
 
virtual DtTaitBryan outputOrientation () const
 
virtual void setOutputPositionAndOrientation (const DtVector &position, const DtTaitBryan &orientation)
 
virtual DtTime lastUpdateTime () const
 
virtual void setSceneObject (DtSceneObject *sceneObject, bool addToTickableMgrIfHead)
 
virtual void setSceneObject (DtSceneObject *sceneObject)
 
DtUniqueID uniqueId () const
 
DtSceneObjectUpdaterfindNextUpdater () const
 
DtSceneObjectUpdaterfindPrevUpdater () const
 
virtual bool isChainThreadSafe (DtSceneObjectUpdater *firstUpdater)
 
virtual DtSceneObjectUpdaterchainHead ()
 
virtual void setIsThreadSafe (bool safe)
 
virtual void setTickableEnabled (bool enabled) override
 
virtual void setAdaptiveTickLodEnabled (bool enabled)
 
virtual bool adaptiveTickLodEnabled () const override
 
virtual void setLodScaleSpeedFactor (float factor)
 
virtual float lodScaleSpeedFactor () const
 
virtual void setLodRadiusStart (float ratius)
 
virtual float lodRadiusStart () const
 
virtual void setLodRadiusEnd (float ratius)
 
virtual float lodRadiusEnd () const
 
virtual void setNearLodUpdateRate (int nearRate)
 
virtual int nearLodUpdateRate () const
 
virtual void setFarLodUpdateRate (int maxRate)
 
virtual int farLodUpdateRate () const
 
DtSceneObjectfindActiveSceneObject ()
 
DtSceneObject *const findActiveSceneObject () const
 
DtSceneObjectfindSceneObjectForModelSet (DtModelSetId modelSet)
 
DtSceneObject *const findSceneObjectForModelSet (DtModelSetId modelSet) const
 
virtual void addSceneObjectToUpdateAtChainEnd (DtModelSetId modelSet, DtSceneObject *sceneObject, bool addToTickableMgrIfHead=true)
 
virtual void removeSceneObjectToUpdateAtChainEnd (DtModelSetId modelSet, DtSceneObject *sceneObject)
 
- Public Member Functions inherited from makVrv::DtTickable
virtual bool updateIfNeeded (DtTime tNow)
 
virtual ~DtTickable ()
 
virtual bool isThreadSafe () const
 
virtual void setTickableListState (TickableListState safeList)
 
virtual TickableListState tickableListState () const
 
virtual void setUpdatePeriod (unsigned int period)
 
virtual unsigned int updatePeriod () const
 

Protected Member Functions

virtual const DtVector32 & approxVelocity (DtTime curTime) const
 
- Protected Member Functions inherited from makVrv::DtSceneObjectUpdater
virtual void removeThreadSafeChainFromManager (DtSceneObjectUpdater *head)
 
virtual void removeUnThreadSafeChainFromManager (DtSceneObjectUpdater *head)
 
virtual void addThreadSafeChainToManager (DtSceneObjectUpdater *head)
 
virtual void addUnThreadSafeChainToManager (DtSceneObjectUpdater *head)
 
virtual void placeChainOnCorrectTickableList (DtSceneObjectUpdater *head)
 
virtual void slot_sceneObjectToBeDeleted (const DtUniqueID &id)
 
- Protected Member Functions inherited from makVrv::DtTickable
 DtTickable (DtTickableManagerInterface *manager)
 
 DtTickable ()=delete
 
virtual void slot_managerAboutToBeDeleted ()
 

Protected Attributes

DtMotionModelmyMotionModel
 
std::string myMotionModelType
 
unsigned int myDeadReckoningSetting
 
float mySmoothingPeriod
 
bool mySmoothingEnabled
 
bool myFrozen
 
bool myUseAbsoluteTimeStamping
 
DtVector32 myLastVelocity
 
DtVector32 myLastBodyVelocity
 
DtVector32 myLastAcceleration
 
DtVector32 myLastAngularVelocity
 
DtVector myLastPosition
 
DtTaitBryan myLastOrientation
 
bool myUsesBodyVelocity
 
bool myNeedsBodyVelocityUpdate
 
- Protected Attributes inherited from makVrv::DtSceneObjectUpdater
DtDemyDe
 
DtUniqueID myUniqueId
 
DtModelSetId myModelSet
 
boost::signalslib::connection mySceneObjectConnection
 
DtSceneObjectUpdatermyNextUpdater
 
DtSceneObjectUpdatermyPrevUpdater
 
unsigned int myVertexToUpdate
 
DtVector myLastPositionForAdaptiveTickRate
 
DtVector myInputPosition
 
DtTaitBryan myInputOrientation
 
DtVector myLastOutputPosition
 
DtTaitBryan myLastOutputOrientation
 
bool myPositionDataOutputted
 
bool myOrientationDataOutputted
 
ModelSetToSceneObjectMap mySceneObjectMap
 
SceneObjectConnectionsMap mySceneObjectConnectionsMap
 
AdaptiveTickRateLODParams myAdaptiveTickRateLODParams
 
- Protected Attributes inherited from makVrv::DtTickable
DtTickableManagerInterfacemyManager
 
DtSignalConnectionManager myConnections
 
unsigned int myFrameCounter
 
unsigned int myFrameToUpdate
 
unsigned int myUpdatePeriod
 
unsigned int myTickableIndex
 
DtTime myLastUpdateTime
 
bool myIsThreadSafe
 
TickableListState myTickableListState
 

Additional Inherited Members

- Public Types inherited from makVrv::DtTickable
enum  TickableListState { TickableNotOnList, TickableOnMainList, TickableOnThreadSafeList }
 
- Public Attributes inherited from makVrv::DtSceneObjectUpdater
boost::signalslib::signal
< void(const DtUniqueID &) > 
signal_updaterToBeDeleted
 
- Protected Types inherited from makVrv::DtSceneObjectUpdater
using ModelSetToSceneObjectMap = std::map< DtModelSetId, DtSceneObject * >
 
using SceneObjectConnectionsMap = std::unordered_map< DtUniqueID, boost::signalslib::connection >
 

Constructor & Destructor Documentation

makVrv::DtDeadReckonUpdater::DtDeadReckonUpdater ( DtDe de,
DtUniqueID  id 
)

CTOR.

virtual makVrv::DtDeadReckonUpdater::~DtDeadReckonUpdater ( )
virtual

DTOR.

Member Function Documentation

virtual void makVrv::DtDeadReckonUpdater::update ( DtTime  tNow)
virtual
virtual void makVrv::DtDeadReckonUpdater::setVelocity ( const DtVector32 &  velocity)
virtual

Set the object's velocity.

virtual void makVrv::DtDeadReckonUpdater::setVelocity ( const DtVector32 &  velocity,
double  time 
)
virtual

Set the object's velocity.

virtual void makVrv::DtDeadReckonUpdater::setBodyVelocity ( const DtVector32 &  velocity)
virtual

Set the object's body velocity.

virtual void makVrv::DtDeadReckonUpdater::setBodyVelocity ( const DtVector32 &  velocity,
double  time 
)
virtual

Set the object's body velocity.

virtual void makVrv::DtDeadReckonUpdater::setAcceleration ( const DtVector32 &  acceleration)
virtual

Set the object's velocity.

virtual void makVrv::DtDeadReckonUpdater::setAcceleration ( const DtVector32 &  acceleration,
double  time 
)
virtual

Set the object's velocity.

virtual void makVrv::DtDeadReckonUpdater::setAngularVelocity ( const DtVector32 &  angularVelocity)
virtual

Set the object's rotational velocity.

virtual void makVrv::DtDeadReckonUpdater::setAngularVelocity ( const DtVector32 &  angularVelocity,
double  time 
)
virtual

Set the object's rotational velocity.

virtual void makVrv::DtDeadReckonUpdater::setInputPosition ( const DtVector position)
virtual

Set the object's position with a time for absolute timestamping.

Reimplemented from makVrv::DtSceneObjectUpdater.

virtual void makVrv::DtDeadReckonUpdater::setInputPosition ( const DtVector position,
double  time 
)
virtual

Set the object's position with a time for absolute timestamping.

virtual void makVrv::DtDeadReckonUpdater::setInputOrientation ( const DtTaitBryan &  ori)
virtual

Set the object's orientation with a time specified for absolute time stampint.

Reimplemented from makVrv::DtSceneObjectUpdater.

virtual void makVrv::DtDeadReckonUpdater::setInputOrientation ( const DtTaitBryan &  ori,
double  time 
)
virtual

Set the object's orientation with a time specified for absolute time stampint.

virtual void makVrv::DtDeadReckonUpdater::setDeadReckoningSettings ( bool  deadReckonPosition,
bool  deadReckonVelocity,
bool  deadReckonOrientation 
)
virtual

Set the object's dead reckoning settings.

virtual void makVrv::DtDeadReckonUpdater::setSmoothingEnabled ( bool  enabled)
virtual

Turn the smoother on or off.

virtual void makVrv::DtDeadReckonUpdater::setSmoothingPeriod ( float  period)
virtual

Set the period for the smoother.

virtual void makVrv::DtDeadReckonUpdater::resetSmoother ( )
virtual

Reset the smoother. Used when changing from embarked to disembarked and vice versa.

virtual void makVrv::DtDeadReckonUpdater::updateSpacial ( DtTime  tNow)
virtual

Update the spacial attributes using the given simulation time.

void makVrv::DtDeadReckonUpdater::setMotionModel ( const std::string &  modelName)

Set which motion model the object should use.

DtMotionModel* makVrv::DtDeadReckonUpdater::motionModel ( ) const

Get the motion model.

virtual void makVrv::DtDeadReckonUpdater::setUseAbsoluteTimeStamping ( bool  )
virtual

Sets whether or not to use absolute time stamping (default is false). If true, when the update method is called the de's systemClock() will be used rather than the supplied simulation time.

bool makVrv::DtDeadReckonUpdater::useAbsoluteTimeStamping ( ) const
virtual void makVrv::DtDeadReckonUpdater::setFrozen ( bool  frozen)
virtual

Suspend / resume dead reckoning.

virtual bool makVrv::DtDeadReckonUpdater::isFrozen ( ) const
virtual
virtual const DtVector& makVrv::DtDeadReckonUpdater::approxLocation ( DtTime  curTime) const
virtual

Because of time stamping, use these routines to get values from the motion model. Do not go to the motion model itself Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) location at the specified time.

virtual const DtVector32& makVrv::DtDeadReckonUpdater::approxUnsmoothedVelocity ( DtTime  curTime) const
virtual

Get the unsmoothed approximated (i.e. dead-reckoned for base DtDeadReckoner) velocity at the specified time.

virtual const DtTaitBryan& makVrv::DtDeadReckonUpdater::approxEuler ( DtTime  curTime) const
virtual

Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) orientation at the specified time.

virtual const DtVector32& makVrv::DtDeadReckonUpdater::acceleration ( DtTime  curTime) const
virtual

Get the acceleration for the specified time.

virtual const DtVector32& makVrv::DtDeadReckonUpdater::rotationalVelocity ( DtTime  curTime) const
virtual

Get the rotation velocity for the specified time.

virtual void makVrv::DtDeadReckonUpdater::addSceneObjectToUpdate ( DtModelSetId  modelSet,
DtSceneObject sceneObject,
bool  addToTickableMgrIfHead = true 
)
overridevirtual

Add / Remove a scene to apply updates to Adds the updater to the tickable update list if it is not there already.

Reimplemented from makVrv::DtSceneObjectUpdater.

virtual void makVrv::DtDeadReckonUpdater::removeSceneObjectToUpdate ( DtModelSetId  modelSet,
DtSceneObject sceneObject 
)
overridevirtual

Add / Remove a scene to apply updates to Adds the updater to the tickable update list if it is not there already.

Reimplemented from makVrv::DtSceneObjectUpdater.

virtual const DtVector32& makVrv::DtDeadReckonUpdater::approxVelocity ( DtTime  curTime) const
protectedvirtual

Get the approximated (i.e. dead-reckoned for base DtDeadReckoner) velocity at the specified time. Note that the 'smoothed' velocity is a misnomer - this velocity has really been potentially 'de-smoothed' to provide a smoothed location when used to do smoothing.

Member Data Documentation

DtMotionModel* makVrv::DtDeadReckonUpdater::myMotionModel
protected
std::string makVrv::DtDeadReckonUpdater::myMotionModelType
protected
unsigned int makVrv::DtDeadReckonUpdater::myDeadReckoningSetting
protected
float makVrv::DtDeadReckonUpdater::mySmoothingPeriod
protected
bool makVrv::DtDeadReckonUpdater::mySmoothingEnabled
protected
bool makVrv::DtDeadReckonUpdater::myFrozen
protected
bool makVrv::DtDeadReckonUpdater::myUseAbsoluteTimeStamping
protected
DtVector32 makVrv::DtDeadReckonUpdater::myLastVelocity
protected
DtVector32 makVrv::DtDeadReckonUpdater::myLastBodyVelocity
protected
DtVector32 makVrv::DtDeadReckonUpdater::myLastAcceleration
protected
DtVector32 makVrv::DtDeadReckonUpdater::myLastAngularVelocity
protected
DtVector makVrv::DtDeadReckonUpdater::myLastPosition
protected
DtTaitBryan makVrv::DtDeadReckonUpdater::myLastOrientation
protected
bool makVrv::DtDeadReckonUpdater::myUsesBodyVelocity
protected
bool makVrv::DtDeadReckonUpdater::myNeedsBodyVelocityUpdate
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)