VR-Forces 5.0.1 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::DtCigiWatercraftEntity Class Reference

A DtCigiWatercraftEntity is a CIGI entity that manages buoyancy and the the parenting of wake entities for watercraft entities.

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

Public Member Functions

 DtCigiWatercraftEntity (DtCigiConnection &connection, DtAgentManagerInterface &sceneInterface, int entityId, int entityType)
 
virtual ~DtCigiWatercraftEntity ()
 
virtual void init ()
 
virtual void uninit ()
 
virtual void restart ()
 
virtual void setPosition (const DtGeodeticCoord &pos, bool force=false)
 
virtual void setOrientation (const DtTaitBryan &orientation, bool force=false)
 
virtual void setLinearRate (const DtVector &rate, bool useWorldCoordinates, bool force=false)
 
virtual void setWakeEntity (DtCigiWakeEntity *wakeEntity)
 
virtual void startEmbarked ()
 
virtual void endEmbarked ()
 
virtual void startSinking ()
 
virtual void stopSinking ()
 
virtual bool isSinking () const
 
virtual void setWaterlineOriginOffset (float offset)
 
virtual void setBuoyancyEnabled (bool enable)
 
virtual void setBuoyancyLODDistance (double distance)
 
virtual void setIsAmphibious (bool isAmphibious)
 
virtual bool isAmphibious () const
 
- Public Member Functions inherited from makVrv::DtCigiEntity
 DtCigiEntity (DtCigiConnection &connection, DtAgentManagerInterface &mySceneInterface, int entityId, int entityType)
 
virtual ~DtCigiEntity ()
 
virtual void restartRequest ()
 
virtual void setState (int stateId, int stateValue)
 
virtual void setArtPartTranslation (int partId, float xOffset, float yOffset, float zOffset, bool xEnable, bool yEnable, bool zEnable)
 
virtual void setArtPartOrientation (int partId, float yaw, float pitch, float roll, bool yawEnable, bool pitchEnable, bool rollEnable)
 
virtual void setArtPartLinearRate (int partId, float xRate, float yRate, float zRate)
 
virtual void setArtPartAngularRate (int partId, float yawRate, float pitchRate, float rollRate)
 
virtual void setArtPartEnable (int partId, bool trueFalse)
 
virtual void setAnimationSpeed (const std::string &animationName, double speed)
 
virtual void setAnimationFrame (const std::string &animationName, int frame)
 
virtual void setActiveRegionState (const std::string &regionName, bool state)
 
virtual void setAnimationRange (const std::string &animationName, int firstFrameIndex, int lastFrameIndex)
 
virtual void setAnimationState (const std::string &animationName, int stateEnum)
 
virtual int animationState (const std::string &animationName)
 
virtual bool hasAnimations () const
 
virtual DtOsgArticulatedModelfindArticulatedModelInRenderThread (DtUniqueID modelId) const
 
virtual const
DtArticulatedModelAgent & 
articulatedModelAgent () const
 
virtual DtArticulatedModelAgent & articulatedModelAgent ()
 
- Public Member Functions inherited from makVrv::DtCigiBaseEntity
 DtCigiBaseEntity (DtCigiConnection &connection, DtAgentManagerInterface &sceneInterface, int entityId, int entityType)
 
virtual ~DtCigiBaseEntity ()
 
virtual DtUniqueID uniqueId () const
 
virtual DtUniqueID elementId () const
 
virtual int cigiId () const
 
virtual int entityType () const
 
virtual bool extendedEntityTypeOn () const
 
virtual void setExtendedEntityTypeOn (bool onOff)
 
virtual void setExtendedEntityType (DtEntityType &entityType)
 
virtual void setVisible (bool yesNo)
 
virtual bool isVisible () const
 
virtual void setDeadReckoningOn (bool onOff)
 
virtual bool isDeadReckoning () const
 
virtual const DtGeodeticCoord & position () const
 
virtual const DtGeodeticCoord & previousPosition () const
 
virtual const DtVectorlocalPosition () const
 
virtual const DtTaitBryan & orientation () const
 
virtual const DtTaitBryan & localOrientation () const
 
virtual const DtTaitBryan & geocentricOrientation () const
 
virtual const DtVectorlinearRate () const
 
virtual void setAngularRate (const DtVector &rate, bool useWorldCoordinates, bool force=false)
 
virtual const DtVectorangularRate () const
 
virtual void slot_deadReckoningAllowed (bool allowed)
 
virtual void setAlpha (int alpha)
 
virtual int alpha () const
 
virtual void setInheritAlpha (bool inherit)
 
virtual bool isInheritingAlpha () const
 
virtual void slot_alphaChanged (int alpha, DtUniqueID id)
 
virtual void slot_entityToBeDeleted (int cigiEntityId)
 
virtual void setGroundClampingOn (DtGroundClampingUpdater::GroundClampingMode clampType)
 
virtual
DtGroundClampingUpdater::GroundClampingMode 
groundClampingType () const
 
virtual bool getArtPartTranslation (int partId, DtVector &translation)
 
virtual bool getArtPartOrientation (int partId, DtTaitBryan &orientation)
 
virtual bool getArtPartLinearRate (int partId, DtVector &rate)
 
virtual bool getArtPartTranslationAndRate (int partId, DtVector &translation, DtVector &rate)
 
virtual bool getArtPartAngularRate (int partId, DtVector &rate)
 
virtual bool getArtPartOrientationAndRate (int partId, DtTaitBryan &orientation, DtVector &rate)
 
virtual DtSceneObjectAgent * findSceneObjectAgent ()
 
virtual void setRelativeTo (DtCigiBaseEntity *parent)
 
virtual void setRelativePosition (const DtVector &pos)
 
virtual void setRelativeOrientation (const DtTaitBryan &orient)
 
virtual bool isEmbarked () const
 
virtual int embarkedParentId () const
 
virtual const DtVectorrelativePosition () const
 
virtual const DtTaitBryan & relativeOrientation () const
 
virtual void addCollisionSegmentID (unsigned int segmentId)
 
virtual void removeCollisionSegmentID (unsigned int segmentId)
 
virtual void delayedStartEmbarked ()
 

Protected Member Functions

virtual void startDeadReckoning ()
 
virtual void endDeadReckoning ()
 
virtual void startBuoyancy ()
 
virtual void endBuoyancy ()
 
virtual void slot_buoyancyDefaultLODDistanceChanged (float distance)
 
virtual void slot_buoyancyMinimumCullDistanceChanged (float distance)
 
virtual void slot_buoyancyCullTypeChanged (makArchives::DtEntitySettingsRecord::BuoyancyCullType type)
 
- Protected Member Functions inherited from makVrv::DtCigiEntity
virtual void getExtrapolatedValuesAndRestart ()
 
virtual void queryCurrentAnimationFrame (DtUniqueID modelId, std::string animationName)
 
virtual void returnCurrentAnimationFrame (const std::string &animationName, int frameNum)
 
virtual void queryExtrapolatedArtPartTranslation (DtUniqueID modelId, int cigiPartId, int disRprPartId)
 
virtual void returnExtrapolatedArtPartTranslation (int cigiPartId, int disRprPartId, const DtVector &translation)
 
virtual void queryExtrapolatedArtPartOrientation (DtUniqueID modelId, int cigiPartId, int disRprPartId)
 
virtual void returnExtrapolatedArtPartOrientation (int cigiPartId, int disRprPartId, const DtTaitBryan &translation)
 
virtual void queryCurrentAnimationState (DtUniqueID modelId, std::string animationName)
 
virtual void returnCurrentAnimationState (const std::string &animationName, int stateEnum)
 
- Protected Member Functions inherited from makVrv::DtCigiBaseEntity
virtual void startGroundClamping ()
 
virtual void buildGroundClampingUpdater ()
 
virtual void endGroundClamping ()
 
virtual bool isGroundClamping () const
 
virtual void queryExtrapolatedPositionAndOrientation (DtUniqueID drAgentId, bool relative)
 
virtual void returnExtrapolatedPositionAndOrientation (const DtVector &resultPos, const DtTaitBryan &resultOri, bool relative, bool invokeRestart)
 
virtual DtDeadReckonUpdaterfindDRUpdaterInRenderThread (DtUniqueID drAgentId) const
 

Protected Attributes

DtSurfaceClampingUpdaterAgent * mySurfaceClampingUpdaterAgent
 
DtWaterClampingUpdaterAgent * myWaterClampingUpdaterAgent
 
DtCigiWakeEntitymyWakeEntity
 
bool myIsSinking
 
bool myIsMoving
 
DtSignalConnectionManager myConnections
 
boost::signalslib::connection myBuoyancyLODDistanceChangedConnection
 
bool myIsAmphibious
 
bool myIsBuoyant
 
bool myBuoyancyCullType
 
float myBuoyancyLodRange
 
float myBuoyancyMinimumCullDistance
 
float myWaterlineOriginOffset
 
bool myWaterlineOriginOverridden
 
bool myBuoyancyLODDistanceOverridden
 
- Protected Attributes inherited from makVrv::DtCigiEntity
DtArticulatedModelAgent * myArticulatedModel
 
StateMap myStateMap
 
AnimationFrameMap myAnimationCurrentFrameMap
 
AnimationSpeedMap myAnimationSpeedMap
 
AnimationRangeMap myAnimationRangeMap
 
AnimationStateMap myAnimationStateMap
 
DynamicRegionMap myDynamicRegionMap
 
- Protected Attributes inherited from makVrv::DtCigiBaseEntity
DtSceneObjectAgent * mySceneObject
 
DtModelAgent * myModel
 
std::string myEntityModelDefName
 
DtDeadReckonUpdaterAgent * myDeadReckonUpdaterAgent
 
DtGroundClampingUpdaterAgent * myGroundClampingUpdaterAgent
 
DtEmbarkationUpdaterAgent * myEmbarkationUpdaterAgent
 
bool myDeadReckoningOn
 
bool myEmbarked
 
DtGroundClampingUpdater::GroundClampingMode myGroundClampingType
 
DtGeodeticCoord myLastPosition
 
DtVector myLastLocalPosition
 
DtTaitBryan myLastOrientation
 
DtTaitBryan myLastLocalOrientation
 
DtTaitBryan myLastGeocentricOrientation
 
DtVector myLastRelativePosition
 
DtTaitBryan myLastRelativeOrientation
 
DtVector myLastVelocity
 
bool myLastVelocityWorldCoordinates
 
DtVector myLastAngularVelocity
 
bool myLastAngularVelocityWorldCoordinates
 
DtCigiConnectionmyConnection
 
DtAgentManagerInterfacemySceneInterface
 
int myEntityId
 
int myEntityType
 
bool myExtendedEntityTypeOn
 
DtEntityType * myExtendedEntityType
 
DtCigiBaseEntitymyParent
 
int myEmbarkedParentID
 
bool myInheritAlpha
 
int myAlpha
 
bool myVisiblity
 
bool myPositionSet
 
bool myOrientationSet
 
std::map< int, DtTaitBryan > myLastArtPartOrientation
 
std::map< int, DtVectormyLastArtPartTranslation
 
std::map< int, DtVectormyArtPartAngularRate
 
std::map< int, DtVectormyArtPartLinearRate
 
std::list< unsigned intmyCollisionSegmentIdList
 
DtSignalConnectionManager mySignalConnections
 

Additional Inherited Members

- Public Types inherited from makVrv::DtCigiBaseEntity
enum  AnimationStateGroup { Stop = 0, Pause = 1, Play = 2, Continue = 3 }
 
- Public Attributes inherited from makVrv::DtCigiBaseEntity
boost::signalslib::signal
< void(int, DtUniqueID)> 
signal_alphaChanged
 
- Protected Types inherited from makVrv::DtCigiEntity
typedef boost::unordered_map
< int, int
StateMap
 
typedef boost::unordered_map
< std::string, int
AnimationFrameMap
 
typedef boost::unordered_map
< std::string, double
AnimationSpeedMap
 
typedef boost::unordered_map
< std::string, AnimationRange
AnimationRangeMap
 
typedef boost::unordered_map
< std::string,
DtCigiBaseEntity::AnimationStateGroup
AnimationStateMap
 
typedef boost::unordered_map
< std::string, bool
DynamicRegionMap
 

Constructor & Destructor Documentation

makVrv::DtCigiWatercraftEntity::DtCigiWatercraftEntity ( DtCigiConnection connection,
DtAgentManagerInterface sceneInterface,
int  entityId,
int  entityType 
)

Constructor.

virtual makVrv::DtCigiWatercraftEntity::~DtCigiWatercraftEntity ( )
virtual

Destructor.

Member Function Documentation

virtual void makVrv::DtCigiWatercraftEntity::init ( )
virtual

Calls down to DtCigiEntity::init(), and then sets up buoyancy based on model definition parameters.

Reimplemented from makVrv::DtCigiEntity.

virtual void makVrv::DtCigiWatercraftEntity::uninit ( )
virtual

Calls down to DtCigiEntity::uninit() and then deletes the updater for buoyancy.

Reimplemented from makVrv::DtCigiEntity.

virtual void makVrv::DtCigiWatercraftEntity::restart ( )
virtual

Calls down to DtCigiEntity::restart() and then restores any waterline offset if set.

Reimplemented from makVrv::DtCigiEntity.

virtual void makVrv::DtCigiWatercraftEntity::setPosition ( const DtGeodeticCoord &  pos,
bool  force = false 
)
virtual

Set the entity's geodetic position.

Parameters
[in]posis the position set from the CIGI entity control message.
[in]forceis a flag to force handling even if position has not changed.

Reimplemented from makVrv::DtCigiBaseEntity.

virtual void makVrv::DtCigiWatercraftEntity::setOrientation ( const DtTaitBryan &  orientation,
bool  force = false 
)
virtual

Set the entity's orientation.

Parameters
[in]orientationis the orientation set from the CIGI entity control message.
[in]forceis a flag to force handling even if orientation has not changed.

Reimplemented from makVrv::DtCigiBaseEntity.

virtual void makVrv::DtCigiWatercraftEntity::setLinearRate ( const DtVector rate,
bool  useWorldCoordinates,
bool  force = false 
)
virtual

Sets the entity's linear rate. If useWorldCoordinates is set to true, sets the velocity according to the entity's rate with respect to the tangential reference plane of the entity. Otherwise, sets the velocity with respect to the entity's coordinate system.

Reimplemented from makVrv::DtCigiBaseEntity.

virtual void makVrv::DtCigiWatercraftEntity::setWakeEntity ( DtCigiWakeEntity wakeEntity)
virtual

Tell the entity if it is the parent of a wake entity.

virtual void makVrv::DtCigiWatercraftEntity::startEmbarked ( )
virtual

Override to prevent amphibious behavior when embarked.

Reimplemented from makVrv::DtCigiBaseEntity.

virtual void makVrv::DtCigiWatercraftEntity::endEmbarked ( )
virtual

Override to restore amphibious behavior when disembarked.

Reimplemented from makVrv::DtCigiBaseEntity.

virtual void makVrv::DtCigiWatercraftEntity::startSinking ( )
virtual

Start sinking the ship (by telling the world that the ship is destroyed)

virtual void makVrv::DtCigiWatercraftEntity::stopSinking ( )
virtual

Stop sinking the ship (and restore to normal buoyancy.

virtual bool makVrv::DtCigiWatercraftEntity::isSinking ( ) const
virtual

Are we currently sinking (destroyed)?

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

Set the amount that a bouyant entity's origin is offset from the waterline.

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

This is used by wake and buoyancy model to indicate if checks need to be made for being over land. When false (default) use assumes responsibility for keeping entity over water (note that the test for land is expensive, so keep this false unless you need it for an amphibious entity)

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

This is used by wake and buoyancy model to indicate if checks need to be made for being over land. When false (default) use assumes responsibility for keeping entity over water (note that the test for land is expensive, so keep this false unless you need it for an amphibious entity)

virtual void makVrv::DtCigiWatercraftEntity::setBuoyancyEnabled ( bool  enable)
virtual
virtual void makVrv::DtCigiWatercraftEntity::setBuoyancyLODDistance ( double  distance)
virtual

Set the distance beyond which buoyancy is disabled. Normally the value in the wake model definition is used. If that is not set, then the default wake LOD distance entity setting is used. If this method is called and the default wake LOD distance was being used the entity will disconnect from the defaultWakeLODDistance signal and use the value passed here instead.

virtual void makVrv::DtCigiWatercraftEntity::startDeadReckoning ( )
protectedvirtual

Create and set up Dead Reckoning updater.

Reimplemented from makVrv::DtCigiBaseEntity.

virtual void makVrv::DtCigiWatercraftEntity::endDeadReckoning ( )
protectedvirtual

Remove the Dead Reckoning updater.

Reimplemented from makVrv::DtCigiBaseEntity.

virtual void makVrv::DtCigiWatercraftEntity::startBuoyancy ( )
protectedvirtual

Create and set up the water clamping updater.

virtual void makVrv::DtCigiWatercraftEntity::endBuoyancy ( )
protectedvirtual

Remove the water clamping updater.

virtual void makVrv::DtCigiWatercraftEntity::slot_buoyancyDefaultLODDistanceChanged ( float  distance)
protectedvirtual
virtual void makVrv::DtCigiWatercraftEntity::slot_buoyancyMinimumCullDistanceChanged ( float  distance)
protectedvirtual

function called when the shared entity settings signal signal_buoyancyMinimumCullDistanceChanged is raised. The new cull distance is communicated to the water clamping updater

virtual void makVrv::DtCigiWatercraftEntity::slot_buoyancyCullTypeChanged ( makArchives::DtEntitySettingsRecord::BuoyancyCullType  type)
protectedvirtual

function called when the shared entity settings signal signal_buoyancyCullTypeChanged is raised. The new buoyancy cull type is communicated to the water clamping updater

Member Data Documentation

DtSurfaceClampingUpdaterAgent* makVrv::DtCigiWatercraftEntity::mySurfaceClampingUpdaterAgent
protected
DtWaterClampingUpdaterAgent* makVrv::DtCigiWatercraftEntity::myWaterClampingUpdaterAgent
protected
DtCigiWakeEntity* makVrv::DtCigiWatercraftEntity::myWakeEntity
protected
bool makVrv::DtCigiWatercraftEntity::myIsSinking
protected
bool makVrv::DtCigiWatercraftEntity::myIsMoving
protected
DtSignalConnectionManager makVrv::DtCigiWatercraftEntity::myConnections
protected
boost::signalslib::connection makVrv::DtCigiWatercraftEntity::myBuoyancyLODDistanceChangedConnection
protected
bool makVrv::DtCigiWatercraftEntity::myIsAmphibious
protected
bool makVrv::DtCigiWatercraftEntity::myIsBuoyant
protected
bool makVrv::DtCigiWatercraftEntity::myBuoyancyCullType
protected
float makVrv::DtCigiWatercraftEntity::myBuoyancyLodRange
protected
float makVrv::DtCigiWatercraftEntity::myBuoyancyMinimumCullDistance
protected
float makVrv::DtCigiWatercraftEntity::myWaterlineOriginOffset
protected
bool makVrv::DtCigiWatercraftEntity::myWaterlineOriginOverridden
protected
bool makVrv::DtCigiWatercraftEntity::myBuoyancyLODDistanceOverridden
protected

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

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)