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

DtEnvironmentalEmbarkationUpdater is an updater that calculates embarked scene object positions. It is really a DtMultiPointEnvironmentalEmbarkationUpdater. When elements with multiple vertex elements such as an area are embarked onto another element Such as a plane or tank, each vertex offset position has to be calculated separately. As each vertex has three scene objects this updater allows for all scene objects of an embarked multi point element to be updated. Generally a DtShapeEnvironmentKinematicState owns an agent of this updater type, with each DtVertexEnvironmentalKinematicState also holding a pointer to this updater. This updater also supports multiple embarkation modes set via setEmbarkationMode.

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

Public Types

using VertexSceneObjects = std::unordered_map< unsigned int, std::unordered_map< DtUniqueID, DtSceneObject * >>
 
- Public Types inherited from makVrv::DtTickable
enum  TickableListState { TickableNotOnList, TickableOnMainList, TickableOnThreadSafeList }
 

Public Member Functions

 DtEnvironmentalEmbarkationUpdater (DtDe &de, DtUniqueID id)
 
virtual ~DtEnvironmentalEmbarkationUpdater ()
 
 DtEnvironmentalEmbarkationUpdater ()=delete
 
 DtEnvironmentalEmbarkationUpdater (const DtEnvironmentalEmbarkationUpdater &)=delete
 
DtEnvironmentalEmbarkationUpdateroperator= (const DtEnvironmentalEmbarkationUpdater &)=delete
 
 DtEnvironmentalEmbarkationUpdater (const DtEnvironmentalEmbarkationUpdater &&other)=delete
 
DtEnvironmentalEmbarkationUpdateroperator= (const DtEnvironmentalEmbarkationUpdater &&other)=delete
 
virtual VertexSceneObjectsvertexSceneObjects ()
 
virtual const VertexSceneObjectsvertexSceneObjects () const
 
virtual void setEmbarkationMode (DtEmbarkationMode mode)
 
virtual void addVertexSceneObjects (unsigned int index, std::vector< DtUniqueID > &soMap)
 
virtual void removeVertexSceneObjects (unsigned int index)
 
virtual void addVertexSceneObject (unsigned int index, DtUniqueID &soId)
 
virtual void removeVertexSceneObject (unsigned int index, DtUniqueID &soId)
 
- Public Member Functions inherited from makVrv::DtMultiPointEmbarkationUpdater
 DtMultiPointEmbarkationUpdater (DtDe &de, DtUniqueID id)
 
virtual ~DtMultiPointEmbarkationUpdater ()
 
virtual void embark (DtUniqueID uniqueID)
 
virtual void setPositionOffsets (const std::vector< DtVector > &offset)
 
virtual void setPositionOffset (const DtVector &offset)
 
virtual void update (DtTime tNow)
 
- Public Member Functions inherited from makVrv::DtMultiPointSceneObjectUpdater
 DtMultiPointSceneObjectUpdater (DtDe &de, DtUniqueID id)
 
virtual ~DtMultiPointSceneObjectUpdater ()
 
virtual void setInputPositions (const std::vector< DtVector > &positions)
 
virtual void setOutputPositions (const std::vector< DtVector > &positions)
 
virtual void setInputOrientations (const std::vector< DtTaitBryan > &orientations)
 
virtual void setOutputOrientations (const std::vector< DtTaitBryan > &orientations)
 
- 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 setInputPosition (const DtVector &position)
 
virtual void setInputOrientation (const DtTaitBryan &orientation)
 
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 addSceneObjectToUpdate (DtModelSetId modelSet, DtSceneObject *sceneObject, bool addToTickableMgrIfHead=true)
 
virtual void removeSceneObjectToUpdate (DtModelSetId modelSet, DtSceneObject *sceneObject)
 
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 void setOutputPositionsAndOrientations (const std::vector< DtVector > &positions, const std::vector< DtTaitBryan > &orientations)
 
DtSceneObjectfindSceneObjectFromId (DtUniqueID &id)
 
virtual void doEmbarkation (DtTime tNow) override
 
virtual void doSinglePointEmbarkation (DtTime tNow)
 
virtual void doMultiPointEmbarkation (DtTime tNow)
 
virtual void slot_coordinateSystemChanged ()
 
- 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

VertexSceneObjects myVertexSceneObjects
 
DtEmbarkationMode myEmbarkationMode
 
DtCoordinateSystemmyCoordinateSystem
 
- Protected Attributes inherited from makVrv::DtMultiPointEmbarkationUpdater
ObjectEmbarkationPoint myEmbarkationPoint
 
DtVector myLastUpdatedOrigin
 
DtTaitBryan myLastUpdatedOrientation
 
- Protected Attributes inherited from makVrv::DtMultiPointSceneObjectUpdater
std::vector< DtVector > myInputPositions
 
std::vector< DtTaitBryan > myInputOrientations
 
- 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 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 >
 

Member Typedef Documentation

Vector of vertex scene objects.

Constructor & Destructor Documentation

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

CTOR.

virtual makVrv::DtEnvironmentalEmbarkationUpdater::~DtEnvironmentalEmbarkationUpdater ( )
virtual

DTOR.

makVrv::DtEnvironmentalEmbarkationUpdater::DtEnvironmentalEmbarkationUpdater ( )
delete

default constructor - not allowed

makVrv::DtEnvironmentalEmbarkationUpdater::DtEnvironmentalEmbarkationUpdater ( const DtEnvironmentalEmbarkationUpdater )
delete

copy constuctor - not allowed

makVrv::DtEnvironmentalEmbarkationUpdater::DtEnvironmentalEmbarkationUpdater ( const DtEnvironmentalEmbarkationUpdater &&  other)
delete

move constructor - move not allowed

Member Function Documentation

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

equals operator - not allowed

DtEnvironmentalEmbarkationUpdater& makVrv::DtEnvironmentalEmbarkationUpdater::operator= ( const DtEnvironmentalEmbarkationUpdater &&  other)
delete

move assignment operator - not allowed

virtual VertexSceneObjects& makVrv::DtEnvironmentalEmbarkationUpdater::vertexSceneObjects ( )
virtual

Returns map of vectors of scene objects.

virtual const VertexSceneObjects& makVrv::DtEnvironmentalEmbarkationUpdater::vertexSceneObjects ( ) const
virtual
virtual void makVrv::DtEnvironmentalEmbarkationUpdater::addVertexSceneObjects ( unsigned int  index,
std::vector< DtUniqueID > &  soMap 
)
virtual

Add/Remove Vertex Scene ObjectsAdd vector of scene objects to update Uses the IDs to find the scene objects.

virtual void makVrv::DtEnvironmentalEmbarkationUpdater::removeVertexSceneObjects ( unsigned int  index)
virtual

Remove all scene objects associated with the in param index.

virtual void makVrv::DtEnvironmentalEmbarkationUpdater::addVertexSceneObject ( unsigned int  index,
DtUniqueID soId 
)
virtual

Add/Remove Vertex Scene ObjectsAdd vector of scene objects to update Uses the IDs to find the scene objects.

virtual void makVrv::DtEnvironmentalEmbarkationUpdater::removeVertexSceneObject ( unsigned int  index,
DtUniqueID soId 
)
virtual

Add/Remove Vertex Scene ObjectsAdd vector of scene objects to update Uses the IDs to find the scene objects.

virtual void makVrv::DtEnvironmentalEmbarkationUpdater::setEmbarkationMode ( DtEmbarkationMode  mode)
virtual

Set embarkation mode See DtEmbarkationMode.

virtual void makVrv::DtEnvironmentalEmbarkationUpdater::setOutputPositionsAndOrientations ( const std::vector< DtVector > &  positions,
const std::vector< DtTaitBryan > &  orientations 
)
protectedvirtual
DtSceneObject* makVrv::DtEnvironmentalEmbarkationUpdater::findSceneObjectFromId ( DtUniqueID id)
protected
virtual void makVrv::DtEnvironmentalEmbarkationUpdater::doEmbarkation ( DtTime  tNow)
overrideprotectedvirtual

Find the actual position and orientation and update the scene objects.

Reimplemented from makVrv::DtMultiPointEmbarkationUpdater.

virtual void makVrv::DtEnvironmentalEmbarkationUpdater::doSinglePointEmbarkation ( DtTime  tNow)
protectedvirtual

For the likes of embarked waypoints Single point embarkation does not support embarkation modes.

virtual void makVrv::DtEnvironmentalEmbarkationUpdater::doMultiPointEmbarkation ( DtTime  tNow)
protectedvirtual

Multi point objects like areas & lines.

virtual void makVrv::DtEnvironmentalEmbarkationUpdater::slot_coordinateSystemChanged ( )
protectedvirtual

Slot for when the coordinate system changes.

Member Data Documentation

VertexSceneObjects makVrv::DtEnvironmentalEmbarkationUpdater::myVertexSceneObjects
protected
DtEmbarkationMode makVrv::DtEnvironmentalEmbarkationUpdater::myEmbarkationMode
protected
DtCoordinateSystem* makVrv::DtEnvironmentalEmbarkationUpdater::myCoordinateSystem
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)