VR-Forces 4.10 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::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. More...

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

Public Member Functions

 DtEntityWheelUpdater (DtDe &de)
 CTOR. More...
 
virtual ~DtEntityWheelUpdater ()
 DTOR. More...
 
virtual void update (DtTime tNow)
 update per tick. More...
 
virtual void setWheelData (std::unordered_map< DtOsgArticulatedModel *, DtEntityWheelData > *wheelMap)
 Give the updater a pointer to the manager's wheel data map. More...
 
virtual void setWheelData (std::unordered_map< DtOsgArticulatedModel *, DtEntityWheelDataCommon > *wheelFlipBookMap)
 Give the updater a pointer to the manager's wheel data map (flip books) More...
 
virtual void setWheelDataScrollableTexture (std::unordered_map< DtOsgArticulatedModel *, DtEntityWheelDataCommon > *wheelScrollableTextureMap)
 Give the updater a pointer to the manager's wheel data map (scrollable textures) More...
 
- 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 void updateWheels (DtTime tNow)
 internal. update the wheels that are art parts, More...
 
virtual void updateWheelsFlipBookAnimations (DtTime tNow)
 internal. update the wheels that are flip book animations. More...
 
virtual void updateWheelsScrollableTextures (DtTime tNow)
 internal. update the wheels that are scrollable textures. More...
 
virtual bool calculateVelocity (DtVector &velocity, DtOsgArticulatedModel *model, DtEntityWheelDataCommon &wheelDataCommon, DtTime tNow) const
 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) More...
 
virtual bool calculateHeading (DtTaitBryan &heading, DtOsgArticulatedModel *model, DtTime tNow)
 calculate the heading of the entity More...
 
virtual float calculateDistanceBetweenWheelAxles (DtOsgArticulatedModel *model, int firstSet, int secondSet)
 internal function to calculate distance between 2 sets of wheel axles More...
 
virtual bool hasAckermanSteering (DtOsgArticulatedModel *model) const
 is regular vehicle? More...
 
virtual int numSetOfWheels (const DtEntityWheelData &wheelData) const
 how many set of wheels does it have? (e.g. 4 wheeler has 2 sets of wheels, a stryker has 4) More...
 
virtual std::pair< double, doublecalculateAckermanSteeringVelocity (DtTime tNow, DtOsgArticulatedModel *model, DtEntityWheelData &wheelData, double speed)
 calculate the steering velocity required for the first (and optionally the 2nd) set of wheels given the current time, speed More...
 
- Protected Member Functions inherited from makVrv::DtTickable
 DtTickable (DtTickableManagerInterface *manager)
 CTOR. More...
 
 DtTickable ()
 Unimplemented default CTOR. More...
 
virtual void slot_managerAboutToBeDeleted ()
 

Protected Attributes

DtDemyDe
 
bool myShouldRotate
 
std::unordered_map
< DtOsgArticulatedModel
*, DtEntityWheelData > * 
myEntityWheelMap
 map of entities to corresponding wheel data art parts More...
 
std::unordered_map
< DtOsgArticulatedModel
*, DtEntityWheelDataCommon > * 
myEntityWheelFlipBookMap
 map of entities that have wheels as flip book animation and some common data for each (last position, last update) More...
 
std::unordered_map
< DtOsgArticulatedModel
*, DtEntityWheelDataCommon > * 
myEntityWheelScrollableTextureMap
 
std::unordered_map
< DtOsgArticulatedModel
*, DtVector
myCachedVelocities
 cache velocities 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

 DtEntityWheelUpdater ()=delete
 Default Constructor not implemented – default constructor not allowed. More...
 
 DtEntityWheelUpdater (const DtEntityWheelUpdater &)=delete
 Copy Constructor not implemented - Copy not allowed. More...
 
DtEntityWheelUpdateroperator= (const DtEntityWheelUpdater &)=delete
 Assignment Operator not implemented - Copy 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

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.

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::setWheelData ( std::unordered_map< DtOsgArticulatedModel *, DtEntityWheelDataCommon > *  wheelFlipBookMap)
virtual

Give the updater a pointer to the manager's wheel data map (flip books)

virtual void makVrv::DtEntityWheelUpdater::setWheelDataScrollableTexture ( std::unordered_map< DtOsgArticulatedModel *, DtEntityWheelDataCommon > *  wheelScrollableTextureMap)
virtual

Give the updater a pointer to the manager's wheel data map (scrollable textures)

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

internal. update the wheels that are art parts,

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

internal. update the wheels that are flip book animations.

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

internal. update the wheels that are scrollable textures.

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 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 std::pair<double, double> 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

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*, DtEntityWheelDataCommon>* makVrv::DtEntityWheelUpdater::myEntityWheelFlipBookMap
protected

map of entities that have wheels as flip book animation and some common data for each (last position, last update)

std::unordered_map<DtOsgArticulatedModel*, DtEntityWheelDataCommon>* makVrv::DtEntityWheelUpdater::myEntityWheelScrollableTextureMap
protected
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 Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)