VR-Forces 5.0.3 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 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 lodSystemEnabled () const
 

Protected Member Functions

virtual void updateWheels (DtTime tNow)
 
virtual bool calculateVelocity (DtVector &velocity, DtOsgArticulatedModel *model, DtEntityWheelDataCommon &wheelDataCommon, DtTime tNow) const
 
virtual bool calculateHeading (DtTaitBryan &heading, DtOsgArticulatedModel *model, DtTime tNow)
 
virtual float calculateDistanceBetweenWheelAxles (DtOsgArticulatedModel *model, int firstSet, int secondSet)
 
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)
 
virtual DtSkidSteeringSpeed calculateSkidSteeringSpeeds (DtTime tNow, DtOsgArticulatedModel *model, DtEntityWheelData &wheelData, double speed)
 
virtual bool hasTracks (DtOsgArticulatedModel *model) const
 
virtual float calculateTrackWidth (DtOsgArticulatedModel *model) const
 
- Protected Member Functions inherited from makVrv::DtTickable
 DtTickable (DtTickableManagerInterface *manager)
 
 DtTickable ()
 
virtual void slot_managerAboutToBeDeleted ()
 

Protected Attributes

DtDemyDe
 
bool myShouldRotate
 
std::unordered_map
< DtOsgArticulatedModel
*, DtEntityWheelData > * 
myEntityWheelMap
 
std::unordered_map
< DtOsgArticulatedModel
*, DtVector
myCachedVelocities
 
- Protected Attributes inherited from makVrv::DtTickable
DtTickableManagerInterfacemyManager
 
DtSignalConnectionManager myConnections
 
unsigned int myFrameCounter
 
unsigned int myFrameToUpdate
 
unsigned int myUpdatePeriod
 
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 bool makVrv::DtEntityWheelUpdater::calculateVelocity ( DtVector velocity,
DtOsgArticulatedModel model,
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 ( DtTaitBryan &  heading,
DtOsgArticulatedModel model,
DtTime  tNow 
)
protectedvirtual

calculate the heading of the entity

virtual float makVrv::DtEntityWheelUpdater::calculateDistanceBetweenWheelAxles ( DtOsgArticulatedModel model,
int  firstSet,
int  secondSet 
)
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 
)
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,
double  speed 
)
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

Member Data Documentation

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

map of entities to corresponding wheel data art parts

std::unordered_map< DtOsgArticulatedModel*, DtVector> makVrv::DtEntityWheelUpdater::myCachedVelocities
protected

cache velocities


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

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)