VR-Forces 4.8 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 | Private Member Functions
makVrv::DtParticleRotorWashUpdater Class Reference

Updater for particle rotor wash. More...

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

Public Member Functions

 DtParticleRotorWashUpdater (DtDe &de, DtUniqueID id)
 CTOR. More...
 
virtual ~DtParticleRotorWashUpdater ()
 Virtual DTOR. More...
 
virtual void update (DtTime tNow)
 The update function called by DtTickableManager during update-ticks. More...
 
void calcRotorWashLagPos (DtOsgRotorWashModel *rwModel, const DtTime &tNow, const DtVector &currentHeliPos, DtVector &outOffsetPos, double &lagHeliAngleDistToGround)
 Lag rotorwash based on height and velocity outOffsetPos = the position of the lagged rotorwash based on current helicopter position lagHeliAngleDistToGround is the distance from the helicopter to the rotorwash at the lag posion. More...
 
- Public Member Functions inherited from makVrv::DtRotorWashUpdater
 DtRotorWashUpdater (DtDe &de, DtUniqueID id)
 CTOR. More...
 
virtual ~DtRotorWashUpdater ()
 Virtual DTOR. More...
 
virtual DtTime lastUpdateTime () const
 Get the time-stamp of the last update. More...
 
virtual void setRotorWashModel (DtModel *rotorWashModel)
 Set the rotorWash model to be updated. More...
 
DtUniqueID uniqueId () const
 Returns the distributed object id of this updater. More...
 
virtual unsigned int landCheckInterval () const
 Get/set the interval at which the updater checks to see if it is over land or water, in frames. More...
 
virtual void setLandCheckInterval (unsigned int frames)
 
- Public Member Functions inherited from makVrv::DtTickable
virtual bool needsUpdate (DtTime tNow)
 The check function called by DtTickableManager to verify if an update is required. More...
 
virtual bool updateIfNeeded (DtTime tNow)
 Calls needsUpdate(), and then calls update() if needsUpdate() is true. More...
 
virtual ~DtTickable ()
 Virtual DTOR. More...
 
virtual void setIsThreadSafe (bool safe)
 Get/set whether this tickable can be updated in parallel with other tickables. More...
 
virtual bool isThreadSafe () const
 
virtual void setTickableListState (TickableListState safeList)
 Track which tickable list (if any) this tickable is on Since the tickable constructor puts ALL tickables on the main (unThreadSafe) to start we need a way to check which list a tickable is on (and this way we can request removals from the correct list instead of having to call DtTickableManager::removeTickableObject(), which tries both lists). More...
 
virtual TickableListState tickableListState () const
 
virtual void setUpdatePeriod (unsigned int period)
 Specify how often (in # of frames) this tickable should call update. More...
 
virtual unsigned int updatePeriod () const
 
virtual bool lodSystemEnabled () const
 is the update LOD system enabled, overridden by subclasses More...
 

Protected Member Functions

virtual DtOsgRotorWashModelrotorWashModel ()
 Helper method to return a properly cast version of the rotorWash model supplied. More...
 
virtual DtVector calcRotorDownDirection (const DtVector &currentPos, const DtTaitBryan &orientation)
 Calculate a normalized helo down vector. More...
 
virtual double getHeightAboveTerrain (const DtVector &pos)
 Calculate the height straight down (without regard to orientation) for the helicopter. More...
 
virtual bool getTerrainOrPropIntersection (const osg::Vec3d &startPos, const osg::Vec3d &endPos, osg::Vec3d &result)
 Get an intersection with the ground to place the effect (not currently used, intersection info is from VRF) More...
 
virtual DtVector getHeliVelocity (DtSceneObject *sceneObj, DtTime tNow)
 Get the velocity of the helicopter. More...
 
- Protected Member Functions inherited from makVrv::DtTickable
 DtTickable (DtTickableManagerInterface *manager)
 CTOR. More...
 
 DtTickable ()
 Unimplemented default CTOR. More...
 
virtual void slot_managerAboutToBeDeleted ()
 

Protected Attributes

DtOsgIntersectormyIntersector
 
DtSimpleIntersectormyHATIntersector
 
DtSceneRootList myRoots
 
DtParticleRotorWashModelInstancemyLastParticleRotorWashInstance
 
DtRotorWashTrailPoints myRotorWashPoints
 
- Protected Attributes inherited from makVrv::DtRotorWashUpdater
DtDemyDe
 The display engine. More...
 
DtUniqueID myUniqueId
 This distributed object's unique identifier. More...
 
DtModelmyRotorWashModel
 A pointer to the current rotorWash model being updated. More...
 
DtTime myLastUpdateTime
 The last time stamp when the update() was called. More...
 
unsigned int myLandCheckInterval
 How often to check if over water (default every 60 frames) More...
 
- Protected Attributes inherited from makVrv::DtTickable
DtTickableManagerInterfacemyManager
 Pointer to manager for removal during destruction. More...
 
DtSignalConnectionManager myConnections
 
unsigned int myFrameCounter
 
unsigned int myFrameToUpdate
 
unsigned int myUpdatePeriod
 
DtTime myLastUpdateTime
 
bool myIsThreadSafe
 
TickableListState myTickableListState
 

Private Member Functions

 DtParticleRotorWashUpdater (const DtParticleRotorWashUpdater &other)
 Copy Constructor not implemented – Copy Not Allowed. More...
 
DtParticleRotorWashUpdateroperator= (const DtParticleRotorWashUpdater &other)
 Assignment Operator Not implemented – Assignment Not Allowed. More...
 

Additional Inherited Members

- Public Types inherited from makVrv::DtTickable
enum  TickableListState { TickableNotOnList, TickableOnMainList, TickableOnThreadSafeList }
 Enumeration used to indicate which DtTickableManager's tickable list the tickable is on, if any. More...
 

Detailed Description

Updater for particle rotor wash.

DtParticleRotorWashUpdaters are distributed objects, managed by DtTickableManager. This class updates the rotorwash of DtRotorWashModels using particle type rotorwashes. Triton rotor wash is a separate updater. For particles, the collision object position/orientation is updated during the manager 'tick' update.

Constructor & Destructor Documentation

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

CTOR.

Parameters
[in]deis the display engine.
[in]idis a unique identifier for this distributed object.
virtual makVrv::DtParticleRotorWashUpdater::~DtParticleRotorWashUpdater ( )
virtual

Virtual DTOR.

makVrv::DtParticleRotorWashUpdater::DtParticleRotorWashUpdater ( const DtParticleRotorWashUpdater other)
private

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

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

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtParticleRotorWashUpdater::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.

Reimplemented from makVrv::DtRotorWashUpdater.

void makVrv::DtParticleRotorWashUpdater::calcRotorWashLagPos ( DtOsgRotorWashModel rwModel,
const DtTime tNow,
const DtVector currentHeliPos,
DtVector outOffsetPos,
double lagHeliAngleDistToGround 
)

Lag rotorwash based on height and velocity outOffsetPos = the position of the lagged rotorwash based on current helicopter position lagHeliAngleDistToGround is the distance from the helicopter to the rotorwash at the lag posion.

virtual DtOsgRotorWashModel* makVrv::DtParticleRotorWashUpdater::rotorWashModel ( )
protectedvirtual

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

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

Calculate a normalized helo down vector.

virtual double makVrv::DtParticleRotorWashUpdater::getHeightAboveTerrain ( const DtVector pos)
protectedvirtual

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

virtual bool makVrv::DtParticleRotorWashUpdater::getTerrainOrPropIntersection ( const osg::Vec3d &  startPos,
const osg::Vec3d &  endPos,
osg::Vec3d &  result 
)
protectedvirtual

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

virtual DtVector makVrv::DtParticleRotorWashUpdater::getHeliVelocity ( DtSceneObject sceneObj,
DtTime  tNow 
)
protectedvirtual

Get the velocity of the helicopter.

Member Data Documentation

DtOsgIntersector* makVrv::DtParticleRotorWashUpdater::myIntersector
protected
DtSimpleIntersector* makVrv::DtParticleRotorWashUpdater::myHATIntersector
protected
DtSceneRootList makVrv::DtParticleRotorWashUpdater::myRoots
protected
DtParticleRotorWashModelInstance* makVrv::DtParticleRotorWashUpdater::myLastParticleRotorWashInstance
protected
DtRotorWashTrailPoints makVrv::DtParticleRotorWashUpdater::myRotorWashPoints
protected

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

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)