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 | Private Member Functions
makVrv::DtRotorWashProcess Class Reference

DtRotorWashProcess maintains a model of the rotary wing entity's rotor wash, such as speed; dead reckoned position, intensity, and lag, e.g. using information from the entity's parameters and data from it's.

See Also
DtSceneObject. It then updates the currently active rotor wash visual model using that rotor wash's
DtRotorWashDistributor.

Public Member Functions

 DtRotorWashProcess (DtDe &de)
 
virtual ~DtRotorWashProcess ()
 
virtual void setHelicopterId (DtUniqueID helicopterID)
 
virtual bool update (DtTime tNow)
 
virtual DtVector currentHeloPosition () const
 
virtual DtTaitBryan currentHeloOrientation () const
 
virtual void calcRotorWashLagRelOffset (const DtTime &tNow, const DtVector &currentHeliPos, const DtTaitBryan &currentHeliOri, DtVector &outRelativeOffset, double &lagHeliAngleDistToGround)
 
virtual void setRotorWashState (const DtRotorWashState *rwState)
 
virtual DtVector getTerrainOrPropIntersection (void)
 
virtual void addNewRotorWashPoint (DtTime tNow, const DtVector &newPoint)
 
virtual DtVector currentHeliPos () const
 
virtual DtTaitBryan currentHeliOri () const
 
virtual DtVector offsetPos () const
 
virtual float intensity () const
 
virtual float rotorWashSpeed () const
 
virtual DtVector rotorWashPos () const
 
virtual DtVector rotorWashDir () const
 

Protected Member Functions

virtual const DtRotorWashStaterotorWashState ()
 
virtual DtVector calcRotorDownDirection (const DtVector &currentPos, const DtTaitBryan &orientation)
 
virtual double getHeightAboveTerrain (const DtVector &pos)
 
virtual DtVector getHeliVelocity (DtTime tNow)
 
virtual DtVector convertOffset (const DtVector &worldOffset, const DtTaitBryan &heliOri)
 
virtual bool allObservers2D () const
 
virtual void slot_coordinateSystemChanged ()
 
virtual void updateOffsetAndIntensity (DtTime tNow)
 

Protected Attributes

DtDemyDe
 
DtIntersectormyIntersector3dModelSet = nullptr
 
DtSimpleIntersectormyHATIntersector
 
DtRotorWashTrailPoints myRotorWashPoints
 
DtSceneObjectmySceneObject
 
const DtRotorWashStatemyRotorWashState
 
DtVector myCurrentHeliPos
 
DtTaitBryan myCurrentHeliOri
 
DtVector myOffsetFromHeli
 
float myIntensity
 
float myRotorWashSpeed
 
DtVector myRotorWashPos
 
DtVector myRotorWashDir
 
DtVector myCurrentTerrainIntersection
 
DtSignalConnectionManager myConnections
 
DtCoordinateConvertermyCoordinateConverter = nullptr
 
const DtObserverModeManagermyObserverModeManager
 

Private Member Functions

 DtRotorWashProcess ()
 
 DtRotorWashProcess (const DtRotorWashProcess &other)
 
DtRotorWashProcessoperator= (const DtRotorWashProcess &other)
 

Constructor & Destructor Documentation

makVrv::DtRotorWashProcess::DtRotorWashProcess ( DtDe de)

CTOR.

virtual makVrv::DtRotorWashProcess::~DtRotorWashProcess ( )
virtual

Virtual DTOR.

makVrv::DtRotorWashProcess::DtRotorWashProcess ( )
private

Default Constructor not implemented – default constructor not allowed.

makVrv::DtRotorWashProcess::DtRotorWashProcess ( const DtRotorWashProcess other)
private

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

virtual void makVrv::DtRotorWashProcess::setHelicopterId ( DtUniqueID  helicopterID)
virtual

Initializes the scene object for the object id being processed.

virtual bool makVrv::DtRotorWashProcess::update ( DtTime  tNow)
virtual

The update function called by DtTickableManager during update-ticks.

Parameters
[in]tNowis the current time-stamp.
Note
Derived classes should update the rotorWash at the end of their implementation of this function.
virtual DtVector makVrv::DtRotorWashProcess::currentHeloPosition ( ) const
virtual

Retrieve the current helicopter position from the scene object.

virtual DtTaitBryan makVrv::DtRotorWashProcess::currentHeloOrientation ( ) const
virtual

Retrieve the current helicopter orientation from the scene object.

virtual void makVrv::DtRotorWashProcess::calcRotorWashLagRelOffset ( const DtTime tNow,
const DtVector &  currentHeliPos,
const DtTaitBryan &  currentHeliOri,
DtVector &  outRelativeOffset,
double lagHeliAngleDistToGround 
)
virtual

Lag rotorwash based on height and velocity outOffsetPos = the position of the lagged rotorwash based on current helicopter position in coordinates relative to the the helicopter and using DIS (forward, right, down) style lagHeliAngleDistToGround is the distance from the helicopter to the rotorwash at the lag posion.

virtual void makVrv::DtRotorWashProcess::setRotorWashState ( const DtRotorWashState rwState)
virtual

Set the parameters for the current active rotorwash.

virtual DtVector makVrv::DtRotorWashProcess::currentHeliPos ( ) const
virtual

Accessors for the DtRotorWashProcess Current helicopter position.

virtual DtTaitBryan makVrv::DtRotorWashProcess::currentHeliOri ( ) const
virtual

Current helicopter orientation.

virtual DtVector makVrv::DtRotorWashProcess::offsetPos ( ) const
virtual

Position of rotorwash relative to helicopter.

virtual float makVrv::DtRotorWashProcess::intensity ( ) const
virtual

0 - no rotorwash to 1 - full rotorwash

virtual float makVrv::DtRotorWashProcess::rotorWashSpeed ( ) const
virtual

Rotorwash speed in meters per second (default 100 m/s)

virtual DtVector makVrv::DtRotorWashProcess::rotorWashPos ( ) const
virtual

Position of rotorwash on the ground in the world.

virtual DtVector makVrv::DtRotorWashProcess::rotorWashDir ( ) const
virtual

Direction of rotorwash on the ground in the world.

virtual DtVector makVrv::DtRotorWashProcess::getTerrainOrPropIntersection ( void  )
virtual

vrvCore version - Get an intersection with the ground to place the effect (not currently used, intersection info is from VRF)

virtual void makVrv::DtRotorWashProcess::addNewRotorWashPoint ( DtTime  tNow,
const DtVector &  newPoint 
)
virtual

add a new rotor was point and update offset and intensity

DtRotorWashProcess& makVrv::DtRotorWashProcess::operator= ( const DtRotorWashProcess other)
private

Assignment Operator Not implemented – Assignment Not Allowed.

virtual const DtRotorWashState* makVrv::DtRotorWashProcess::rotorWashState ( )
protectedvirtual

Helper method to return a properly cast version of the rotorWash model supplied.

virtual DtVector makVrv::DtRotorWashProcess::calcRotorDownDirection ( const DtVector &  currentPos,
const DtTaitBryan &  orientation 
)
protectedvirtual

Calculate a normalized helo down vector.

virtual double makVrv::DtRotorWashProcess::getHeightAboveTerrain ( const DtVector &  pos)
protectedvirtual

Calculate the height straight down (without regard to orientation) for the helicopter.

virtual DtVector makVrv::DtRotorWashProcess::getHeliVelocity ( DtTime  tNow)
protectedvirtual

Get the velocity of the helicopter.

virtual DtVector makVrv::DtRotorWashProcess::convertOffset ( const DtVector &  worldOffset,
const DtTaitBryan &  heliOri 
)
protectedvirtual

Convert an offset calculated in world coordinates to a DIS style (forward, right, down) offset relative to the helicopter.

virtual bool makVrv::DtRotorWashProcess::allObservers2D ( ) const
protectedvirtual

Determine if all observers are 2D so we can skip updating (The rotorwash will appear to start again when switching to 3D)

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

slot for when the coordinate system changes

virtual void makVrv::DtRotorWashProcess::updateOffsetAndIntensity ( DtTime  tNow)
protectedvirtual

update the offset and the intensity of the rotor wash

Member Data Documentation

DtDe& makVrv::DtRotorWashProcess::myDe
protected

The display engine.

DtIntersector* makVrv::DtRotorWashProcess::myIntersector3dModelSet = nullptr
protected
DtSimpleIntersector& makVrv::DtRotorWashProcess::myHATIntersector
protected
DtRotorWashTrailPoints makVrv::DtRotorWashProcess::myRotorWashPoints
protected
DtSceneObject* makVrv::DtRotorWashProcess::mySceneObject
protected
const DtRotorWashState* makVrv::DtRotorWashProcess::myRotorWashState
protected
DtVector makVrv::DtRotorWashProcess::myCurrentHeliPos
protected
DtTaitBryan makVrv::DtRotorWashProcess::myCurrentHeliOri
protected
DtVector makVrv::DtRotorWashProcess::myOffsetFromHeli
protected
float makVrv::DtRotorWashProcess::myIntensity
protected
float makVrv::DtRotorWashProcess::myRotorWashSpeed
protected
DtVector makVrv::DtRotorWashProcess::myRotorWashPos
protected
DtVector makVrv::DtRotorWashProcess::myRotorWashDir
protected
DtVector makVrv::DtRotorWashProcess::myCurrentTerrainIntersection
protected
DtSignalConnectionManager makVrv::DtRotorWashProcess::myConnections
protected
DtCoordinateConverter* makVrv::DtRotorWashProcess::myCoordinateConverter = nullptr
protected
const DtObserverModeManager& makVrv::DtRotorWashProcess::myObserverModeManager
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)