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

This is not a typical updater, instead of the usual 1 updater per entity, the DtEntityWheelManager adds entity info to this updater which updates all the entity wheels in one update.

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

Public Member Functions

 DtEntityWheelUpdater (DtDe &de)
 
virtual ~DtEntityWheelUpdater ()
 
virtual void update (DtTime tNow)
 
virtual void setWheelData (std::unordered_map< DtOsgArticulatedModel *, DtEntityWheelData > *wheelMap)
 
- Public Member Functions inherited from makVrv::DtTickable
virtual bool needsUpdate (DtTime tNow)
 
virtual bool updateIfNeeded (DtTime tNow)
 
virtual ~DtTickable ()
 
virtual void setTickableEnabled (bool enabled)
 
virtual void setIsThreadSafe (bool safe)
 
virtual bool isThreadSafe () const
 
virtual void setTickableListState (TickableListState safeList)
 
virtual TickableListState tickableListState () const
 
virtual void setUpdatePeriod (unsigned int period)
 
virtual unsigned int updatePeriod () const
 
virtual bool adaptiveTickLodEnabled () const
 

Protected Member Functions

virtual void updateWheels (DtTime tNow)
 
virtual void updateWheels (DtTime tNow, DtOsgArticulatedModel *model, DtEntityWheelData &wheelData, bool vrvWheelRotationEnabled) const
 
virtual bool calculateVelocity (DtSceneObject *sceneObject, DtDeadReckonUpdater *updater, DtEntityWheelDataCommon &wheelDataCommon, DtTime tNow) const
 
virtual bool calculateHeading (DtSceneObject *sceneObject, DtDeadReckonUpdater *updater, DtEntityWheelDataCommon &wheelDataCommon, DtTime tNow) const
 
virtual float calculateDistanceBetweenWheelAxles (DtOsgArticulatedModel *model, int firstSet, int secondSet) const
 
virtual bool hasAckermanSteering (DtOsgArticulatedModel *model) const
 
virtual bool hasSkidSteering (DtOsgArticulatedModel *model) const
 
virtual bool hasArticulatedWheels (DtOsgArticulatedModel *model) const
 
virtual int numSetOfWheels (const DtEntityWheelData &wheelData) const
 
virtual DtAckermanSteeringVelocity calculateAckermanSteeringVelocity (DtTime tNow, DtOsgArticulatedModel *model, DtEntityWheelData &wheelData, double speed) const
 
virtual DtSkidSteeringSpeed calculateSkidSteeringSpeeds (DtTime tNow, DtOsgArticulatedModel *model, DtEntityWheelData &wheelData) const
 
virtual bool hasTracks (DtOsgArticulatedModel *model) const
 
virtual float calculateTrackWidth (DtOsgArticulatedModel *model) const
 
virtual void printWheelDetails (DtOsgArticulatedModel *model, const DtVector &currVel, int partNum, double speed, double angVel) const
 
virtual void updateWheelsAckerman (DtTime tNow, DtOsgArticulatedModel *model, DtEntityWheelData &wheelData, bool vrvWheelRotationEnabled) const
 
virtual DtSkidSteeringSpeed updateWheelsSkid (DtTime tNow, DtOsgArticulatedModel *model, DtEntityWheelData &wheelData, bool vrvWheelRotationEnabled) const
 
virtual bool isReversing (const DtVector &entityVelocity, const DtTaitBryan &entityHeading) const
 
virtual void slot_coordinateSystemChanged ()
 
virtual void findSceneObjectAndUpdater (DtOsgArticulatedModel *model, DtSceneObject *&sceneObject, DtDeadReckonUpdater *&updater) const
 
- Protected Member Functions inherited from makVrv::DtTickable
 DtTickable (DtTickableManagerInterface *manager)
 
 DtTickable ()=delete
 
virtual void slot_managerAboutToBeDeleted ()
 

Protected Attributes

DtDemyDe
 
DtCoordinateSystemmyCoordinateSystem
 
bool myShouldRotate
 
std::unordered_map
< DtOsgArticulatedModel
*, DtEntityWheelData > * 
myEntityWheelMap
 
- 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
 

Private Member Functions

 DtEntityWheelUpdater ()=delete
 
 DtEntityWheelUpdater (const DtEntityWheelUpdater &)=delete
 
DtEntityWheelUpdateroperator= (const DtEntityWheelUpdater &)=delete
 

Additional Inherited Members

- Public Types inherited from makVrv::DtTickable
enum  TickableListState { TickableNotOnList, TickableOnMainList, TickableOnThreadSafeList }
 

Constructor & Destructor Documentation

makVrv::DtEntityWheelUpdater::DtEntityWheelUpdater ( DtDe de)

CTOR.

virtual makVrv::DtEntityWheelUpdater::~DtEntityWheelUpdater ( )
virtual

DTOR.

makVrv::DtEntityWheelUpdater::DtEntityWheelUpdater ( )
privatedelete

Default Constructor not implemented – default constructor not allowed.

makVrv::DtEntityWheelUpdater::DtEntityWheelUpdater ( const DtEntityWheelUpdater )
privatedelete

Copy Constructor not implemented - Copy not allowed.

Member Function Documentation

DtEntityWheelUpdater& makVrv::DtEntityWheelUpdater::operator= ( const DtEntityWheelUpdater )
privatedelete

Assignment Operator not implemented - Copy not allowed.

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

update per tick.

See Also
DtTickable::update.

Implements makVrv::DtTickable.

virtual void makVrv::DtEntityWheelUpdater::setWheelData ( std::unordered_map< DtOsgArticulatedModel *, DtEntityWheelData > *  wheelMap)
virtual

Give the updater a pointer to the manager's wheel data map.

virtual void makVrv::DtEntityWheelUpdater::updateWheels ( DtTime  tNow)
protectedvirtual

internal. update the wheels that are art parts,

virtual void makVrv::DtEntityWheelUpdater::updateWheels ( DtTime  tNow,
DtOsgArticulatedModel model,
DtEntityWheelData wheelData,
bool  vrvWheelRotationEnabled 
) const
protectedvirtual

internal

virtual bool makVrv::DtEntityWheelUpdater::calculateVelocity ( DtSceneObject sceneObject,
DtDeadReckonUpdater updater,
DtEntityWheelDataCommon wheelDataCommon,
DtTime  tNow 
) const
protectedvirtual

calculate the velocity of the entity Use the updater/dead reckoner of the velocity if present Else, use the last position/time (stored in wheel data common)

virtual bool makVrv::DtEntityWheelUpdater::calculateHeading ( DtSceneObject sceneObject,
DtDeadReckonUpdater updater,
DtEntityWheelDataCommon wheelDataCommon,
DtTime  tNow 
) const
protectedvirtual

calculate the heading of the entity

virtual float makVrv::DtEntityWheelUpdater::calculateDistanceBetweenWheelAxles ( DtOsgArticulatedModel model,
int  firstSet,
int  secondSet 
) const
protectedvirtual

internal function to calculate distance between 2 sets of wheel axles

virtual bool makVrv::DtEntityWheelUpdater::hasAckermanSteering ( DtOsgArticulatedModel model) const
protectedvirtual

is regular vehicle?

virtual bool makVrv::DtEntityWheelUpdater::hasSkidSteering ( DtOsgArticulatedModel model) const
protectedvirtual

is tracked vehicle?

virtual bool makVrv::DtEntityWheelUpdater::hasArticulatedWheels ( DtOsgArticulatedModel model) const
protectedvirtual

has articulated wheels?

virtual int makVrv::DtEntityWheelUpdater::numSetOfWheels ( const DtEntityWheelData wheelData) const
protectedvirtual

how many set of wheels does it have? (e.g. 4 wheeler has 2 sets of wheels, a stryker has 4)

virtual DtAckermanSteeringVelocity makVrv::DtEntityWheelUpdater::calculateAckermanSteeringVelocity ( DtTime  tNow,
DtOsgArticulatedModel model,
DtEntityWheelData wheelData,
double  speed 
) const
protectedvirtual

calculate the steering velocity required for the first (and optionally the 2nd) set of wheels given the current time, speed returns pair<first set speed, second set speed(or 0)>

virtual DtSkidSteeringSpeed makVrv::DtEntityWheelUpdater::calculateSkidSteeringSpeeds ( DtTime  tNow,
DtOsgArticulatedModel model,
DtEntityWheelData wheelData 
) const
protectedvirtual

calculate the linear speed of the left and right side of the tracks returns pair<first set speed, >

virtual bool makVrv::DtEntityWheelUpdater::hasTracks ( DtOsgArticulatedModel model) const
protectedvirtual

does it have tracks? (sequences or scrollable uvs)

virtual float makVrv::DtEntityWheelUpdater::calculateTrackWidth ( DtOsgArticulatedModel model) const
protectedvirtual

internal function to calculate distance between the tracks of the tracked vehicle

virtual void makVrv::DtEntityWheelUpdater::printWheelDetails ( DtOsgArticulatedModel model,
const DtVector currVel,
int  partNum,
double  speed,
double  angVel 
) const
protectedvirtual

for debugging

virtual void makVrv::DtEntityWheelUpdater::updateWheelsAckerman ( DtTime  tNow,
DtOsgArticulatedModel model,
DtEntityWheelData wheelData,
bool  vrvWheelRotationEnabled 
) const
protectedvirtual

internal

virtual DtSkidSteeringSpeed makVrv::DtEntityWheelUpdater::updateWheelsSkid ( DtTime  tNow,
DtOsgArticulatedModel model,
DtEntityWheelData wheelData,
bool  vrvWheelRotationEnabled 
) const
protectedvirtual

internal

virtual bool makVrv::DtEntityWheelUpdater::isReversing ( const DtVector entityVelocity,
const DtTaitBryan &  entityHeading 
) const
protectedvirtual

Determine if the entity is reversing.

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

Updates the coordinate system clone when the system changes.

virtual void makVrv::DtEntityWheelUpdater::findSceneObjectAndUpdater ( DtOsgArticulatedModel model,
DtSceneObject *&  sceneObject,
DtDeadReckonUpdater *&  updater 
) const
protectedvirtual

Find the scene object and updater from the model if they exist.

Member Data Documentation

DtDe& makVrv::DtEntityWheelUpdater::myDe
protected
DtCoordinateSystem* makVrv::DtEntityWheelUpdater::myCoordinateSystem
protected
bool makVrv::DtEntityWheelUpdater::myShouldRotate
protected
std::unordered_map<DtOsgArticulatedModel*, DtEntityWheelData>* makVrv::DtEntityWheelUpdater::myEntityWheelMap
protected

map of entities to corresponding wheel data art parts


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)