VR-Forces 4.6.1 Class Documentation
 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 | Static Protected Attributes
makVrv::DtTritonWaterClampingUpdater Class Reference

DtTritonWaterClampingUpdater is a Triton-using re-implementation of the DtWaterClampingUpdater. More...

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

Public Member Functions

 DtTritonWaterClampingUpdater (DtDe &de, DtUniqueID id)
 CTOR.
virtual ~DtTritonWaterClampingUpdater ()
 DTOR.
virtual bool clampToWater (DtTime tNow)
 Clamp an object to the water using the buoyancy model.
virtual void setPaused (bool isPaused)
 Set the simulation paused/unpaused.
virtual void setLOD (float lodDistance)
 override the base class version so myFullyLodDistance can be updated
virtual void setWaterlineOriginOffset (float offset)
 override the base class version so myWaterlineAltitude can be updated
virtual void resetMotionModel (double seaLevel)
 Deletes and recreates the underlying motion model; used when sea level.
- Public Member Functions inherited from makVrv::DtWaterClampingUpdater
 DtWaterClampingUpdater (DtDe &de, DtUniqueID id)
 CTOR.
virtual ~DtWaterClampingUpdater ()
 DTOR.
virtual void update (DtTime tNow)
 do the actual clamping.
virtual void setMinimumCullDistance (float distance)
 Set the distance within which buoyancy won't be frustum culled.
virtual void setCullType (int cullType)
 Sets the type of buoyancy culling used (FrontFacing or None).
virtual void setIsSinking (bool isSinking)
- Public Member Functions inherited from makVrv::DtSceneObjectUpdater
 DtSceneObjectUpdater (DtDe &de, DtUniqueID id)
 CTOR.
virtual ~DtSceneObjectUpdater ()
 Virtual DTOR.
virtual void setNextUpdater (DtSceneObjectUpdater *nextUpdater)
 Set the next updater in the updater chain.
virtual void setPrevUpdater (DtSceneObjectUpdater *prevUpdater)
 Set the previous updater in the updater chain.
virtual bool needsUpdate (DtTime tNow)
 The check function called by DtTickableManager to verify if an update is required.
virtual void setVertexToUpdate (unsigned int vertex)
 Specify which vertex in the scene object this updater updates.
virtual void setInputPosition (const DtVector &position)
 Set the position input to this updater.
virtual void setInputOrientation (const DtTaitBryan &orientation)
 Set the orientation input to this updater.
virtual void setOutputPosition (const DtVector &position)
 Output the resultant position.
virtual void setOutputOrientation (const DtTaitBryan &orientation)
 Output the resultant orientation.
virtual DtTime lastUpdateTime () const
 Get the time-stamp of the last update.
virtual void setSceneObject (DtSceneObject *sceneObject)
 Set the scene object to be updated.
DtUniqueID uniqueId () const
 Returns the distributed object id of this updater.
DtSceneObjectUpdaterfindNextUpdater () const
 Return the next updater in the updater chain.
DtSceneObjectUpdaterfindPrevUpdater () const
 Return the previous updater in the updater chain.
DtSceneObjectfindSceneObject ()
 Get the current scene object for this updater.
DtSceneObject *const findSceneObject () const
 const correct version
- Public Member Functions inherited from makVrv::DtTickable
virtual ~DtTickable ()
 Virtual DTOR.
virtual void setUpdatePeriod (unsigned int period)
 Specify how often (in # of frames) this tickable should call update.
virtual unsigned int updatePeriod () const

Protected Member Functions

virtual double altitudeAt (const DtVector &pos)
 Get the altitude at a point.
virtual void addAltitude (DtVector &pos, float altitudeToAdd)
 Add the specified altitude to pos.
virtual DtVector moveToAltitude (const DtVector &pos, double alt)
 Move a point to the specified altitude.
virtual DtTaitBryan computeMotionOrientation ()
 Compute the orientation for the motion model.
virtual bool isFullyImmersed ()
 Are we under water?
virtual void adjustSinkingSpeedScale (const DtVector &inputPosition, const DtVector &currentPosition)
virtual void smoothMotionAndSeaLevel (double percent, DtVector &outputPos, DtTaitBryan &outputOri)
 Percent 0 = myLastMotionPos/Ori Percent 1 = mySeaLevelPosition/myInputOrientation linear interpolation between the two for values in between 0 and 1.
virtual void slot_oceanLayerSeaLevelChanged (double sealevel)
virtual void updateWaterLineAltitude (double sealevel)
virtual bool initializeExtents (double sealevel)
virtual bool checkCull (DtObserverObject *const observer, const DtVector &eyeToShip) const
virtual void slot_coordinateSystemChanged ()

Protected Attributes

DtRk4MotionModelmyMotionModel
DtTime myLastTickTime
bool myExtentsSet
bool myIsPaused
double myLastSinkingDiff
bool mySmallObject
DtTritonManagermyTritonManager
DtVector myLastMotionPos
DtTaitBryan myLastMotionOri
DtVector myLastOutputPos
DtVector myLastAltitudeAdjustedPos
float myWaterlineAltitude
DtVector myLastInputPosition
DtVector mySeaLevelPosition
bool mySeaLevelPositionDirty
DtTime myLastLODTickTime
float mySeaLevelClampDistance
bool myLodedOut
DtSignalConnectionManager myConnections
bool myCoordinateSystemChanged
- Protected Attributes inherited from makVrv::DtWaterClampingUpdater
float myWaterlineOriginOffset
float myLodDistance
float myMinimumCullDistance
DtEntitySettingsRecord::BuoyancyCullType myCullType
bool myIsSinking
- Protected Attributes inherited from makVrv::DtSceneObjectUpdater
DtDemyDe
 The display engine.
DtUniqueID myUniqueId
 This distributed object's unique identifier.
DtSceneObjectmySceneObject
 A pointer to the current scene object being updated.
boost::signalslib::connection mySceneObjectConnection
DtTime myLastUpdateTime
 The last time stamp when the update()
DtSceneObjectUpdatermyNextUpdater
 The next updater in the chain (or NULL)
DtSceneObjectUpdatermyPrevUpdater
 The previous updater in the chain (or NULL)
unsigned int myVertexToUpdate
 The default scene object vertex to update.
DtVector myInputPosition
 Input position.
DtTaitBryan myInputOrientation
 Input Orientation.
bool myPositionDataOutputted
 Flag to indicate if setOutputPosition has been called this tick.
bool myOrientationDataOutputted
 Flag to indicate if setOutputOrientation has been called this tick.
- Protected Attributes inherited from makVrv::DtTickable
DtTickableManagerInterfacemyManager
 Pointer to manager for removal during destruction.
DtSignalConnectionManager myConnections
unsigned int myFrameCounter
unsigned int myFrameToUpdate
unsigned int myUpdatePeriod

Static Protected Attributes

static const double theMotionTimeout
static const double theSmoothTime
static const double theFullyLodScaler

Additional Inherited Members

- Public Attributes inherited from makVrv::DtSceneObjectUpdater
boost::signal< void(const
DtUniqueID &) > 
signal_updaterToBeDeleted

Detailed Description

DtTritonWaterClampingUpdater is a Triton-using re-implementation of the DtWaterClampingUpdater.

It provides a physics-based buoyancy model that is used to determine the position and altitude of a scene object that is on Triton dynamic ocean

Constructor & Destructor Documentation

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

CTOR.

virtual makVrv::DtTritonWaterClampingUpdater::~DtTritonWaterClampingUpdater ( )
virtual

DTOR.

Member Function Documentation

virtual bool makVrv::DtTritonWaterClampingUpdater::clampToWater ( DtTime  tNow)
virtual

Clamp an object to the water using the buoyancy model.

Reimplemented from makVrv::DtWaterClampingUpdater.

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

Set the simulation paused/unpaused.

Reimplemented from makVrv::DtWaterClampingUpdater.

virtual void makVrv::DtTritonWaterClampingUpdater::setLOD ( float  lodDistance)
virtual

override the base class version so myFullyLodDistance can be updated

Reimplemented from makVrv::DtWaterClampingUpdater.

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

override the base class version so myWaterlineAltitude can be updated

Reimplemented from makVrv::DtWaterClampingUpdater.

virtual void makVrv::DtTritonWaterClampingUpdater::resetMotionModel ( double  seaLevel)
virtual

Deletes and recreates the underlying motion model; used when sea level.

virtual double makVrv::DtTritonWaterClampingUpdater::altitudeAt ( const DtVector pos)
protectedvirtual

Get the altitude at a point.

virtual void makVrv::DtTritonWaterClampingUpdater::addAltitude ( DtVector pos,
float  altitudeToAdd 
)
protectedvirtual

Add the specified altitude to pos.

virtual DtVector makVrv::DtTritonWaterClampingUpdater::moveToAltitude ( const DtVector pos,
double  alt 
)
protectedvirtual

Move a point to the specified altitude.

virtual DtTaitBryan makVrv::DtTritonWaterClampingUpdater::computeMotionOrientation ( )
protectedvirtual

Compute the orientation for the motion model.

Combines heading from unclamped orientation and pitch/roll from motion orientation

virtual bool makVrv::DtTritonWaterClampingUpdater::isFullyImmersed ( )
protectedvirtual

Are we under water?

virtual void makVrv::DtTritonWaterClampingUpdater::adjustSinkingSpeedScale ( const DtVector inputPosition,
const DtVector currentPosition 
)
protectedvirtual
virtual void makVrv::DtTritonWaterClampingUpdater::smoothMotionAndSeaLevel ( double  percent,
DtVector outputPos,
DtTaitBryan &  outputOri 
)
protectedvirtual

Percent 0 = myLastMotionPos/Ori Percent 1 = mySeaLevelPosition/myInputOrientation linear interpolation between the two for values in between 0 and 1.

virtual void makVrv::DtTritonWaterClampingUpdater::slot_oceanLayerSeaLevelChanged ( double  sealevel)
protectedvirtual
virtual void makVrv::DtTritonWaterClampingUpdater::updateWaterLineAltitude ( double  sealevel)
protectedvirtual
virtual bool makVrv::DtTritonWaterClampingUpdater::initializeExtents ( double  sealevel)
protectedvirtual
virtual bool makVrv::DtTritonWaterClampingUpdater::checkCull ( DtObserverObject *const  observer,
const DtVector eyeToShip 
) const
protectedvirtual
virtual void makVrv::DtTritonWaterClampingUpdater::slot_coordinateSystemChanged ( )
protectedvirtual

Member Data Documentation

const double makVrv::DtTritonWaterClampingUpdater::theMotionTimeout
staticprotected
const double makVrv::DtTritonWaterClampingUpdater::theSmoothTime
staticprotected
const double makVrv::DtTritonWaterClampingUpdater::theFullyLodScaler
staticprotected
DtRk4MotionModel* makVrv::DtTritonWaterClampingUpdater::myMotionModel
protected
DtTime makVrv::DtTritonWaterClampingUpdater::myLastTickTime
protected
bool makVrv::DtTritonWaterClampingUpdater::myExtentsSet
protected
bool makVrv::DtTritonWaterClampingUpdater::myIsPaused
protected
double makVrv::DtTritonWaterClampingUpdater::myLastSinkingDiff
protected
bool makVrv::DtTritonWaterClampingUpdater::mySmallObject
protected
DtTritonManager& makVrv::DtTritonWaterClampingUpdater::myTritonManager
protected
DtVector makVrv::DtTritonWaterClampingUpdater::myLastMotionPos
protected
DtTaitBryan makVrv::DtTritonWaterClampingUpdater::myLastMotionOri
protected
DtVector makVrv::DtTritonWaterClampingUpdater::myLastOutputPos
protected
DtVector makVrv::DtTritonWaterClampingUpdater::myLastAltitudeAdjustedPos
protected
float makVrv::DtTritonWaterClampingUpdater::myWaterlineAltitude
protected
DtVector makVrv::DtTritonWaterClampingUpdater::myLastInputPosition
protected
DtVector makVrv::DtTritonWaterClampingUpdater::mySeaLevelPosition
protected
bool makVrv::DtTritonWaterClampingUpdater::mySeaLevelPositionDirty
protected
DtTime makVrv::DtTritonWaterClampingUpdater::myLastLODTickTime
protected
float makVrv::DtTritonWaterClampingUpdater::mySeaLevelClampDistance
protected
bool makVrv::DtTritonWaterClampingUpdater::myLodedOut
protected
DtSignalConnectionManager makVrv::DtTritonWaterClampingUpdater::myConnections
protected
bool makVrv::DtTritonWaterClampingUpdater::myCoordinateSystemChanged
protected

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

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)