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::DtSurfaceClampingUpdater Class Reference

DtSurfaceClampingUpdater is an updater that is given a position and orientation, and will clamp those to dynamic ocean if it exists and the scene object is currently at sea level (or below). If not clamped to water, the scene object may be clamped to the underlying terrain, depending on how it is configured.

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

Public Member Functions

 DtSurfaceClampingUpdater (DtDe &de, DtUniqueID id)
 
virtual ~DtSurfaceClampingUpdater ()
 
virtual void setGroundClampingUpdater (DtGroundClampingUpdater *gndUpdater)
 
virtual DtGroundClampingUpdaterfindGroundClampingUpdater () const
 
virtual void setWaterClampingUpdater (DtWaterClampingUpdater *waterUpdater)
 
virtual DtWaterClampingUpdaterfindWaterClampingUpdater () const
 
virtual void update (DtTime tNow)
 
virtual void setVertexToUpdate (unsigned int vertex)
 
virtual void setNextUpdater (DtSceneObjectUpdater *nextUpdater)
 
virtual void setInputPosition (const DtVector &position)
 
virtual void setInputOrientation (const DtTaitBryan &orientation)
 
virtual void setPaused (bool isPaused)
 
virtual void setIsAmphibious (bool isAmphibious)
 
virtual void setIsSinking (bool isSinking)
 
virtual DtOverWaterUpdatercreateOverWaterUpdater ()
 
virtual void addSceneObjectToUpdate (DtModelSetId modelSet, DtSceneObject *sceneObject, bool addToTickableMgrIfHead=true) override
 
virtual void removeSceneObjectToUpdate (DtModelSetId modelSet, DtSceneObject *sceneObject)
 
virtual unsigned int landCheckInterval () const
 
virtual void setLandCheckInterval (unsigned int frames)
 
- Public Member Functions inherited from makVrv::DtSceneObjectUpdater
 DtSceneObjectUpdater (DtDe &de, DtUniqueID id)
 
virtual ~DtSceneObjectUpdater ()
 
virtual void setPrevUpdater (DtSceneObjectUpdater *prevUpdater)
 
virtual bool needsUpdate (DtTime tNow)
 
virtual void updateAdaptiveTickrate (const DtVector &lastPos, const DtTime &deltaTime)
 
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 bool haveOcean () 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

DtGroundClampingUpdatermyGroundClampingUpdater
 
DtWaterClampingUpdatermyWaterClampingUpdater
 
DtDynamicOceanObjectManagermyDynamicOceanObjectManager
 
double myLastLandCheckTime
 
bool myIsOnWater
 
bool myIsSinking
 
DtOverWaterUpdatermyOverWaterUpdater
 
unsigned int myLandCheckInterval
 
- 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::DtSurfaceClampingUpdater::DtSurfaceClampingUpdater ( DtDe de,
DtUniqueID  id 
)

CTOR.

virtual makVrv::DtSurfaceClampingUpdater::~DtSurfaceClampingUpdater ( )
virtual

DTOR.

Member Function Documentation

virtual void makVrv::DtSurfaceClampingUpdater::setGroundClampingUpdater ( DtGroundClampingUpdater gndUpdater)
virtual

Set the ground clamping updater to be used when the object to update is not on water.

virtual DtGroundClampingUpdater* makVrv::DtSurfaceClampingUpdater::findGroundClampingUpdater ( ) const
virtual

Get the ground clamping updater used when the object to update is not on water.

virtual void makVrv::DtSurfaceClampingUpdater::setWaterClampingUpdater ( DtWaterClampingUpdater waterUpdater)
virtual

Set the water clamping updater to be used when the object to update is on water.

virtual DtWaterClampingUpdater* makVrv::DtSurfaceClampingUpdater::findWaterClampingUpdater ( ) const
virtual

Get the water clamping updater used when the object to update is on water.

virtual void makVrv::DtSurfaceClampingUpdater::update ( DtTime  tNow)
virtual

Calls doGroundClamp()

Reimplemented from makVrv::DtSceneObjectUpdater.

virtual void makVrv::DtSurfaceClampingUpdater::setVertexToUpdate ( unsigned int  vertex)
virtual

Specify which vertex in the scene object this updater updates.

Reimplemented from makVrv::DtSceneObjectUpdater.

virtual void makVrv::DtSurfaceClampingUpdater::setNextUpdater ( DtSceneObjectUpdater nextUpdater)
virtual

Set the next updater in the updater chain.

Reimplemented from makVrv::DtSceneObjectUpdater.

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

Add/Remove a scene object to be updated.

Parameters
[in]sceneObjectis the scene object to receive updates.

Reimplemented from makVrv::DtSceneObjectUpdater.

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

Add/Remove a scene object to be updated.

Parameters
[in]sceneObjectis the scene object to receive updates.

Reimplemented from makVrv::DtSceneObjectUpdater.

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

Set the position input to this updater.

Reimplemented from makVrv::DtSceneObjectUpdater.

virtual void makVrv::DtSurfaceClampingUpdater::setInputOrientation ( const DtTaitBryan &  orientation)
virtual

Set the orientation input to this updater.

Reimplemented from makVrv::DtSceneObjectUpdater.

virtual void makVrv::DtSurfaceClampingUpdater::setPaused ( bool  isPaused)
virtual

Pause surface clamping.

virtual void makVrv::DtSurfaceClampingUpdater::setIsAmphibious ( bool  isAmphibious)
virtual

Set whether the object being updated needs to check for ocean and use the water clamping updater if it is.

virtual void makVrv::DtSurfaceClampingUpdater::setIsSinking ( bool  isSinking)
virtual

Set whether a buoyant object is currently sinking.

virtual unsigned int makVrv::DtSurfaceClampingUpdater::landCheckInterval ( ) const
virtual

Get/set the interval at which the updater checks to see if it is over land or water.

virtual void makVrv::DtSurfaceClampingUpdater::setLandCheckInterval ( unsigned int  frames)
virtual

Get/set the interval at which the updater checks to see if it is over land or water.

virtual DtOverWaterUpdater* makVrv::DtSurfaceClampingUpdater::createOverWaterUpdater ( )
virtual

Create an instance of a DtOverWaterUpdater that will be used to determine when an amphibous entity needs a buoyancy updater.

virtual bool makVrv::DtSurfaceClampingUpdater::haveOcean ( ) const
protectedvirtual

Member Data Documentation

DtGroundClampingUpdater* makVrv::DtSurfaceClampingUpdater::myGroundClampingUpdater
protected
DtWaterClampingUpdater* makVrv::DtSurfaceClampingUpdater::myWaterClampingUpdater
protected
DtDynamicOceanObjectManager& makVrv::DtSurfaceClampingUpdater::myDynamicOceanObjectManager
protected
double makVrv::DtSurfaceClampingUpdater::myLastLandCheckTime
protected
bool makVrv::DtSurfaceClampingUpdater::myIsOnWater
protected
bool makVrv::DtSurfaceClampingUpdater::myIsSinking
protected
DtOverWaterUpdater* makVrv::DtSurfaceClampingUpdater::myOverWaterUpdater
protected
unsigned int makVrv::DtSurfaceClampingUpdater::myLandCheckInterval
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)