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 | Static Public Member Functions | Protected Member Functions | Protected Attributes
makVrv::DtEntityKinematicState Class Reference

DtEntityKinematicState Controls kinematic state of all scene objects for an element This class has no accessors to kinematic data due to updaters being in the render thread. Do not add accessors for kin state info. See DtKinematicState.h for an over view of kinematic state objects.

** There is only one updater chain for all scene objects **

DtEntityKinematicState has a number of functions:

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

Public Member Functions

 DtEntityKinematicState (DtStateListener &listener, DtAgentManagerInterface &sceneInterface, DtSharedSettingsManager &settingsManager)
 
virtual ~DtEntityKinematicState ()
 
 DtEntityKinematicState ()=delete
 
 DtEntityKinematicState (const DtEntityKinematicState &)=delete
 
DtEntityKinematicStateoperator= (const DtEntityKinematicState &)=delete
 
virtual void initialize () override
 
virtual void processKinematicStateDefinition (const DtVisualizerDefinition *visDef) override
 
virtual void createUpdaters () override
 
virtual void destroyUpdaters () override
 
virtual void disconnectUpdaters () override
 
virtual void resetSpatialAttributes ()
 
virtual void setLocation (const DtVector &, double time)
 
virtual void setOrientation (const DtTaitBryan &, double time)
 
virtual void setVelocity (const DtVector32 &, double time)
 
virtual void setAngularVelocity (const DtVector32 &, double time)
 
virtual void setAcceleration (const DtVector32 &, double time)
 
virtual void setLocation (const DtVector &)
 
virtual void setOrientation (const DtTaitBryan &)
 
virtual void setVelocity (const DtVector32 &)
 
virtual void setAngularVelocity (const DtVector32 &)
 
virtual void setAcceleration (const DtVector32 &)
 
virtual void setDeadReckoning (bool position, bool velocity, bool orientation)
 
virtual void setSmoothingEnabled (bool enabled)
 
virtual void setSmoothingPeriod (float scale)
 
virtual void setIsAmphibious (bool amphibious)
 
virtual bool isAmphibious () const
 
virtual void setWaterClampingEnabled (bool enabled)
 
virtual void setGlobalBuoyancyEnabled (bool enabled)
 
virtual void setBuoyancyLod (float lodDistance)
 
virtual void setWaterlineOriginOffset (float offset)
 
virtual void setGroundClamping (bool enabled)
 
virtual void setGroundClampingMode (DtGroundClampingUpdater::GroundClampingMode mode)
 
virtual void setPossibleGroundClampingModes (DtGroundClampingUpdater::GroundClampingMode possibleModes)
 
virtual void slot_setGroundClampingCullingEnabled (bool enabled)
 
virtual void setGroundClampingScale (float scale)
 
virtual void slot_lifeformsUprightChanged (bool enabled)
 
virtual
DtGroundClampingUpdater::GroundClampingMode 
groundClampingMode ()
 
virtual std::string motionModel () const
 
virtual void setMotionModel (const std::string &model)
 
virtual void setFrozen (bool isFrozen, bool force=false)
 
virtual void setDamageState (EntityStateListener::DamageState damageState)
 
- Public Member Functions inherited from makVrv::DtKinematicState
 DtKinematicState (DtStateListener &listener, DtAgentManagerInterface &sceneInterface, DtSharedSettingsManager &settingsManager)
 
virtual ~DtKinematicState ()
 
 DtKinematicState ()=delete
 
 DtKinematicState (const DtKinematicState &)=delete
 
DtKinematicStateoperator= (const DtKinematicState &)=delete
 
virtual void addSceneObject (DtModelSetId modelSet, DtSceneObjectAgent *sceneObjectAgent)
 
virtual void removeSceneObject (DtModelSetId modelSet, DtSceneObjectAgent *sceneObjectAgent)
 
virtual DtSceneObjectAgent * findSceneObjectForModelSet (DtModelSetId modelSet)
 
virtual bool distribute () const
 
virtual void setDistribute (const bool distribute)
 
virtual void setParentElement (DtElement *parent)
 
virtual void updateParentElementSceneObject (DtElement *parent)
 

Static Public Member Functions

static const std::string & theClassName ()
 

Protected Member Functions

virtual void connectToListenerSignals () override
 
virtual void connectToSettingsSignals () override
 
virtual void addSceneObjectToUpdaters (DtModelSetId modelSet, DtSceneObjectAgent *sceneObjectAgent) override
 
virtual void removeSceneObjectFromUpdaters (DtModelSetId modelSet, DtSceneObjectAgent *sceneObjectAgent) override
 
virtual void slot_resetSmoother ()
 
virtual void slot_orientationClampingChanged (bool enabled)
 
virtual void initializeDeadReckonUpdater ()
 
virtual void buildSurfaceClampingUpdater ()
 
virtual void buildWaterClampingUpdater ()
 
virtual void buildGroundClampingUpdater ()
 
virtual void initializeUpdaterChain ()
 
virtual void connectUpdaters ()
 
virtual void removeSceneObjectsFromAllUpdaters ()
 
virtual void addAllSceneObjectsToCorrectChain ()
 
virtual void startEmbarked () override
 
virtual void endEmbarked () override
 
virtual void slot_buoyancyDefaultLODDistanceChanged (float distance)
 
virtual void slot_buoyancyMinimumCullDistanceChanged (float distance)
 
virtual void slot_buoyancyCullTypeChanged (makArchives::DtEntitySettingsRecord::BuoyancyCullType cullType)
 
- Protected Member Functions inherited from makVrv::DtKinematicState
virtual void setEmbarked (const DtUniqueID &id)
 

Protected Attributes

DtEntityStateListenermyEntityStateListener
 
DtDeadReckonUpdaterAgent * myDeadReckonUpdaterAgent
 
DtGroundClampingUpdaterAgent * myGroundClampingUpdaterAgent
 
DtEmbarkationUpdaterAgent * myEmbarkationUpdaterAgent
 
DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
 
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
 
bool myDrAlgorithmSet
 
bool myIsDestroyed
 
bool myDRPos
 
bool myDRVel
 
bool myDROri
 
bool myIsAmphibious
 
bool myUseDefaultBuoyancyLOD
 
bool myDeadReckonIsThreadSafe
 
bool myGlobalGroundClampingEnabled
 
bool myGroundClampingCullingEnabled
 
bool myGlobalBuoyancyEnabled
 
bool myWaterClampingPossible
 
bool mySmoothingEnabled
 
bool myFrozen
 
float myGroundClampingScale
 
float myBuoyancyLod
 
float myWaterlineOriginOffset
 
float myBuoyancyMinimumCullDistance
 
float mySmoothingPeriod
 
DtEntitySettingsRecord::BuoyancyCullType myBuoyancyCullType
 
DtGroundClampingUpdater::GroundClampingMode myGroundClampingMode
 
DtGroundClampingUpdater::GroundClampingMode myPossibleGroundClampingModes
 
std::string myMotionModel
 
- Protected Attributes inherited from makVrv::DtKinematicState
SceneObjectMap mySceneObjectMap
 
DtStateListenermyStateListener
 
DtAgentManagerInterfacemySceneInterface
 
DtSharedSettingsManagermySettingsManager
 
DtSignalConnectionManager myConnections
 
DtUniqueID myEmbarkedParentSceneObjectID
 
bool myEmbarkedFlag
 
bool myInitialized
 
bool myDistributeFlag
 

Additional Inherited Members

- Protected Types inherited from makVrv::DtKinematicState
using SceneObjectMap = std::unordered_map< DtModelSetId, DtSceneObjectAgent * >
 

Constructor & Destructor Documentation

makVrv::DtEntityKinematicState::DtEntityKinematicState ( DtStateListener listener,
DtAgentManagerInterface sceneInterface,
DtSharedSettingsManager settingsManager 
)

CTOR.

virtual makVrv::DtEntityKinematicState::~DtEntityKinematicState ( )
virtual

DTOR.

makVrv::DtEntityKinematicState::DtEntityKinematicState ( )
delete

not allowed - default constructor

makVrv::DtEntityKinematicState::DtEntityKinematicState ( const DtEntityKinematicState )
delete

not allowed - copy constructor

Member Function Documentation

DtEntityKinematicState& makVrv::DtEntityKinematicState::operator= ( const DtEntityKinematicState )
delete

not allowed - equals operator

virtual void makVrv::DtEntityKinematicState::initialize ( )
overridevirtual

Initialize the Kinematic State Object Call processKinematicStateDefinition before initialize.

Reimplemented from makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::createUpdaters ( )
overridevirtual

Create / Destroy updater agents Calls initializeDeadReckonUpdater Calls buildSurfaceClampingUpdater if myIsAmphibious else Calls buildWaterClampingUpdater if myWaterClampingPossible else Calls buildGroundClampingUpdater Finally calls initializeUpdaterChain and resetSpatialAttributes.

Implements makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::destroyUpdaters ( )
overridevirtual

Create / Destroy updater agents Calls initializeDeadReckonUpdater Calls buildSurfaceClampingUpdater if myIsAmphibious else Calls buildWaterClampingUpdater if myWaterClampingPossible else Calls buildGroundClampingUpdater Finally calls initializeUpdaterChain and resetSpatialAttributes.

Implements makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::disconnectUpdaters ( )
overridevirtual

Create / Destroy updater agents Calls initializeDeadReckonUpdater Calls buildSurfaceClampingUpdater if myIsAmphibious else Calls buildWaterClampingUpdater if myWaterClampingPossible else Calls buildGroundClampingUpdater Finally calls initializeUpdaterChain and resetSpatialAttributes.

Reimplemented from makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::processKinematicStateDefinition ( const DtVisualizerDefinition visDef)
overridevirtual

Processor the vis def for the kin state, as we no longer have a kin state visualizer The definition for Model Set 0 is currently used for the whole element kinematic object In the future, whole element parameters will be added and these will be used instead Call this BEFORE initialize.

Reimplemented from makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::resetSpatialAttributes ( )
virtual

Spatial MethodsCalls all spatial methods, with info from the listener.

virtual void makVrv::DtEntityKinematicState::setLocation ( const DtVector &  ,
double  time 
)
virtual

This version will use the time supplied as the dead reckoned time.

virtual void makVrv::DtEntityKinematicState::setOrientation ( const DtTaitBryan &  ,
double  time 
)
virtual

This version will use the time supplied as the dead reckoned time.

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

This version will use the time supplied as the dead reckoned time.

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

This version will use the time supplied as the dead reckoned time.

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

This version will use the time supplied as the dead reckoned time.

virtual void makVrv::DtEntityKinematicState::setLocation ( const DtVector &  )
virtual

Call to scene object to set location. This version will use the DE representation of the current sim time when using dead reckoning.

virtual void makVrv::DtEntityKinematicState::setOrientation ( const DtTaitBryan &  )
virtual

Call to scene object to set orientation. This version will use the DE representation of the current sim time when using dead reckoning.

virtual void makVrv::DtEntityKinematicState::setVelocity ( const DtVector32 &  )
virtual

Call to scene object to set velocity. This version will use the DE representation of the current sim time when using dead reckoning.

virtual void makVrv::DtEntityKinematicState::setAngularVelocity ( const DtVector32 &  )
virtual

Call to scene object to set angular velocity. This version will use the DE representation of the current sim time when using dead reckoning.

virtual void makVrv::DtEntityKinematicState::setAcceleration ( const DtVector32 &  )
virtual

Call to scene object to set acceleration. This version will use the DE representation of the current sim time when using dead reckoning.

virtual void makVrv::DtEntityKinematicState::setDeadReckoning ( bool  position,
bool  velocity,
bool  orientation 
)
virtual

Dead reckoningSets the DR settings on the DR Updater, and tells the listener that DR has been set.

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

Set whether the Entity smooths.

virtual void makVrv::DtEntityKinematicState::setSmoothingPeriod ( float  scale)
virtual

Set the period for entity smoothing.

virtual void makVrv::DtEntityKinematicState::setIsAmphibious ( bool  amphibious)
virtual

AmphibiousIf a surface clamping updater is created (to clamp to dynamic ocean) this flag indicates if checks for on water vs. on land need to happen. This can be very expensive; off by default.

virtual bool makVrv::DtEntityKinematicState::isAmphibious ( ) const
virtual

Get if this entity needs on water vs. on land checks.

virtual void makVrv::DtEntityKinematicState::setWaterClampingEnabled ( bool  enabled)
virtual

Buoyancy (water clamping)Calls setWaterClampingEnabled on the dynamic ocean clamper (buoyancy model). Note: If the visualizer definition does have "ClampWater" specified, enabling water clamping will not work.

virtual void makVrv::DtEntityKinematicState::setGlobalBuoyancyEnabled ( bool  enabled)
virtual

Set whether this kinematic object should use the dynamic ocean clamper (normally set via entity display settings)

virtual void makVrv::DtEntityKinematicState::setBuoyancyLod ( float  lodDistance)
virtual

Set the distance from any observer beyond which this entity, if buoyancy is enabled, will not run the model.

virtual void makVrv::DtEntityKinematicState::setWaterlineOriginOffset ( float  offset)
virtual

Set an altitude offset from the scene object origin to its waterline.

virtual void makVrv::DtEntityKinematicState::setGroundClamping ( bool  enabled)
virtual

Ground clamping code.

Gets / Sets this entity's clamping settings

Set ground clamping enabled or not

virtual void makVrv::DtEntityKinematicState::setGroundClampingMode ( DtGroundClampingUpdater::GroundClampingMode  mode)
virtual

Set ground clamping mode using bit flags defined in DtGroundClampingUpdater::GroundClampingMode.

virtual void makVrv::DtEntityKinematicState::setPossibleGroundClampingModes ( DtGroundClampingUpdater::GroundClampingMode  possibleModes)
virtual

Set the flags for all possible modes for this entity.

virtual void makVrv::DtEntityKinematicState::slot_setGroundClampingCullingEnabled ( bool  enabled)
virtual

Set whether ground clamp uses the distance cutoff.

virtual void makVrv::DtEntityKinematicState::setGroundClampingScale ( float  scale)
virtual

Set the scale factor for ground clamping distance culling by radius.

virtual void makVrv::DtEntityKinematicState::slot_lifeformsUprightChanged ( bool  enabled)
virtual

Change the life form upright state for all entities.

virtual DtGroundClampingUpdater::GroundClampingMode makVrv::DtEntityKinematicState::groundClampingMode ( )
virtual

Get the entity's current ground clamping mode.

virtual std::string makVrv::DtEntityKinematicState::motionModel ( ) const
virtual

Get / Set the Motion Model.

virtual void makVrv::DtEntityKinematicState::setMotionModel ( const std::string &  model)
virtual

Get / Set the Motion Model.

virtual void makVrv::DtEntityKinematicState::setFrozen ( bool  isFrozen,
bool  force = false 
)
virtual

StatesSet whether the entity is frozen, pausing any animations.

virtual void makVrv::DtEntityKinematicState::setDamageState ( EntityStateListener::DamageState  damageState)
virtual

Set the damage state (used for sinking watercraft)

static const std::string& makVrv::DtEntityKinematicState::theClassName ( )
static

Returns "DtEntityKinematicState", this is used by the DtKinematicStateCreatorTemplate to find and register the correct creator instance e.g. findInstance( KinematicState::theClassName() + "Creator" ));.

virtual void makVrv::DtEntityKinematicState::connectToListenerSignals ( )
overrideprotectedvirtual

Connect slots to listener's signals.

Reimplemented from makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::connectToSettingsSignals ( )
overrideprotectedvirtual

Connect slots to settings signals.

Implements makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::addSceneObjectToUpdaters ( DtModelSetId  modelSet,
DtSceneObjectAgent *  sceneObjectAgent 
)
overrideprotectedvirtual

Adds a scene object to the end of the updater chain.

Calls addSceneObjectToUpdateAtChainEnd on the embarktion updater if this entity is embarked else it is called on the dead reckoning updater

Implements makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::removeSceneObjectFromUpdaters ( DtModelSetId  modelSet,
DtSceneObjectAgent *  sceneObjectAgent 
)
overrideprotectedvirtual

Removes a scene object from the end of the updater chain.

Calls removeSceneObjectToUpdateAtChainEnd either the embarkation updater ( Going from embarked to non-embarked ) or the dead reckon updater ( Going from non-embarked to embarked )

Implements makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::initializeDeadReckonUpdater ( )
protectedvirtual

Build Updaters.

virtual void makVrv::DtEntityKinematicState::buildSurfaceClampingUpdater ( )
protectedvirtual

Built if isamphibious is set in the visualizer definition.

virtual void makVrv::DtEntityKinematicState::buildWaterClampingUpdater ( )
protectedvirtual

Built if ClampWater is set as clamp mode in the visualizer definition.

virtual void makVrv::DtEntityKinematicState::buildGroundClampingUpdater ( )
protectedvirtual

Built if neither surface or water clamping are built and ClampMode != ClampNone.

virtual void makVrv::DtEntityKinematicState::initializeUpdaterChain ( )
protectedvirtual

initializeUpdaterChain calls the following: removeSceneObjectsFromAllUpdaters -> connectUpdaters -> addAllSceneObjectsToCorrectChain This means that extra updaters can be added to the chain by overriding only connectUpdaters

virtual void makVrv::DtEntityKinematicState::connectUpdaters ( )
protectedvirtual

This is only called from initializeUpdaterChain, it should not be called anywhere else.

virtual void makVrv::DtEntityKinematicState::removeSceneObjectsFromAllUpdaters ( )
protectedvirtual

Build Updaters.

virtual void makVrv::DtEntityKinematicState::addAllSceneObjectsToCorrectChain ( )
protectedvirtual

Build Updaters.

virtual void makVrv::DtEntityKinematicState::startEmbarked ( )
overrideprotectedvirtual

Embarkation / Parenting.

Implements makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::endEmbarked ( )
overrideprotectedvirtual

Embarkation / Parenting.

Implements makVrv::DtKinematicState.

virtual void makVrv::DtEntityKinematicState::slot_resetSmoother ( )
protectedvirtual
virtual void makVrv::DtEntityKinematicState::slot_buoyancyDefaultLODDistanceChanged ( float  distance)
protectedvirtual

Buoyancy slots.

virtual void makVrv::DtEntityKinematicState::slot_buoyancyMinimumCullDistanceChanged ( float  distance)
protectedvirtual

Buoyancy slots.

virtual void makVrv::DtEntityKinematicState::slot_buoyancyCullTypeChanged ( makArchives::DtEntitySettingsRecord::BuoyancyCullType  cullType)
protectedvirtual

Buoyancy slots.

virtual void makVrv::DtEntityKinematicState::slot_orientationClampingChanged ( bool  enabled)
protectedvirtual

Change the orientation clamping for all entities.

Member Data Documentation

DtEntityStateListener& makVrv::DtEntityKinematicState::myEntityStateListener
protected
DtDeadReckonUpdaterAgent* makVrv::DtEntityKinematicState::myDeadReckonUpdaterAgent
protected
DtGroundClampingUpdaterAgent* makVrv::DtEntityKinematicState::myGroundClampingUpdaterAgent
protected
DtEmbarkationUpdaterAgent* makVrv::DtEntityKinematicState::myEmbarkationUpdaterAgent
protected
DtSurfaceClampingUpdaterAgent* makVrv::DtEntityKinematicState::mySurfaceClampingUpdaterAgent
protected
DtWaterClampingUpdaterAgent* makVrv::DtEntityKinematicState::myWaterClampingUpdaterAgent
protected
bool makVrv::DtEntityKinematicState::myDrAlgorithmSet
protected
bool makVrv::DtEntityKinematicState::myIsDestroyed
protected
bool makVrv::DtEntityKinematicState::myDRPos
protected
bool makVrv::DtEntityKinematicState::myDRVel
protected
bool makVrv::DtEntityKinematicState::myDROri
protected
bool makVrv::DtEntityKinematicState::myIsAmphibious
protected
bool makVrv::DtEntityKinematicState::myUseDefaultBuoyancyLOD
protected
bool makVrv::DtEntityKinematicState::myDeadReckonIsThreadSafe
protected
bool makVrv::DtEntityKinematicState::myGlobalGroundClampingEnabled
protected

Ground clamping members.

bool makVrv::DtEntityKinematicState::myGroundClampingCullingEnabled
protected
bool makVrv::DtEntityKinematicState::myGlobalBuoyancyEnabled
protected
bool makVrv::DtEntityKinematicState::myWaterClampingPossible
protected
bool makVrv::DtEntityKinematicState::mySmoothingEnabled
protected
bool makVrv::DtEntityKinematicState::myFrozen
protected
float makVrv::DtEntityKinematicState::myGroundClampingScale
protected
float makVrv::DtEntityKinematicState::myBuoyancyLod
protected
float makVrv::DtEntityKinematicState::myWaterlineOriginOffset
protected
float makVrv::DtEntityKinematicState::myBuoyancyMinimumCullDistance
protected
float makVrv::DtEntityKinematicState::mySmoothingPeriod
protected
DtEntitySettingsRecord::BuoyancyCullType makVrv::DtEntityKinematicState::myBuoyancyCullType
protected
DtGroundClampingUpdater::GroundClampingMode makVrv::DtEntityKinematicState::myGroundClampingMode
protected
DtGroundClampingUpdater::GroundClampingMode makVrv::DtEntityKinematicState::myPossibleGroundClampingModes
protected
std::string makVrv::DtEntityKinematicState::myMotionModel
protected

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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)