VR-Forces 4.0.4 Class Documentation
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
DtExerciseClock Class Reference

Description: The Exercise Clock keeps track of current simulated time. More...

Inheritance diagram for DtExerciseClock:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DtExerciseClock ()
 default constructor
 DtExerciseClock (DtSimManager *simManager)
 useful constructor
 DtExerciseClock (const DtExerciseClock &orig)
 copy constructor
DtExerciseClockoperator= (const DtExerciseClock &orig)
 assignment operator
virtual ~DtExerciseClock ()
 destructor
virtual void init ()
 Initializes the clock - must be called before any other member functions are called.
virtual void reset ()
 Initialize the clock to 00:00:00 elapsed time.
virtual void tick ()
 Advance simulation time, if not paused.
virtual void pause ()
 Tell tick() not to advance simulation time.
virtual void resume ()
 Tells tick() to resume advancing simluation time.
virtual bool isPaused () const
 Returns true if system is paused, false otherwise.
virtual void setFixedFrameMode (DtTime dT)
 Tells the exercise clock to use a best effort fixed frame (constant dT).
virtual bool isFixedFrameMode ()
virtual void setRunToCompleteFrameMode ()
 Go into variable frame (run to complete) mode.
virtual bool isRunToCompleteFrameMode ()
virtual void setHybridFrameMode (DtTime dT)
 Go into a hybrid mode of fixed dT run-to complete.
virtual bool isHybridFrameMode ()
virtual void setFixedFrameRate (DtTime dT)
 Change the value to be used in fixed frame or hybrid frame mode.
virtual DtTime fixedFrameRate ()
 Get the curent rate if in fixed frame or hybrid frame mode; otherwise, returns 0.0.
virtual void setTimeMultiplier (DtFloat64 timeMultiplier)
 Set faster or slower than real-time operation (the range of values for which the system will perform in a rational manner have yet to be determined.)
virtual DtFloat64 timeMultiplier () const
 Returns time multiplier, a real scalar.
virtual DtStringelapsedSimTimeString (DtString &strBuffer) const
 Returns elapsed time as a string in the form ddd:hh:mm:ss.
virtual void setExerciseStartTime (DtTime time)
 Set exercise start time in seconds.
virtual DtTime exerciseStartTime () const
 Use this to get the time the exercise started, expressed in seconds.
virtual DtStringexerciseStartTimeString (DtString &strBuffer) const
virtual DtTime exerciseTime () const
 Returns current exercise time (exercise start time + elapsed time).
virtual DtStringexerciseTimeString (DtString &strBuffer) const
virtual void set_dT (DtTime dT)
 Force a dT value (if called after tick!); note - this does not update elapsed time.
virtual DtTime dT () const
 Returns dT, in seconds.
virtual double simTimeScale () const
virtual void registerInterfaceCallbacks ()
 Register callbacks on the sim manager's interface message executive.

Static Public Member Functions

static void setTimeMultiplierCallback (DtSimMessage *msg, void *usr)
 Callback registered on the simManager's Message executive.
static void frameModeCallback (DtSimMessage *msg, void *usr)
 Callback registered on the simManager's Message executive.

Protected Types

enum  FrameMode { FmRunToComplete, FmFixed, FmHybrid }

Protected Member Functions

virtual void processSetTimeMultiplier (const DtIfSetTimeMultiplier &timeMultiplerData)
 Sets time multiplier with value given in message.

Protected Attributes

enum DtExerciseClock::FrameMode myFrameMode
bool myFirstFrame
bool myPaused
DtTime myLastRealTime
DtTime my_dT
DtFloat64 myTimeMultiplier
DtSimManagermySimManager
DtTime myFixedFrameRate
DtTime myExerciseStartTime
double mySimTimeScale
DtTime myLastSetSimTime

Detailed Description

Description: The Exercise Clock keeps track of current simulated time.

When 'ticked', it advances simulation time based on elapsed real time since the last time it was ticked and a time-multiplier that allows the exercise clock to run faster or slower than real-time. The exercise clock also supports a pause/resume capability.


Member Enumeration Documentation

enum DtExerciseClock::FrameMode [protected]
Enumerator:
FmRunToComplete 
FmFixed 
FmHybrid 

Constructor & Destructor Documentation

default constructor

useful constructor

copy constructor

virtual DtExerciseClock::~DtExerciseClock ( ) [virtual]

destructor


Member Function Documentation

DtExerciseClock& DtExerciseClock::operator= ( const DtExerciseClock orig)

assignment operator

virtual void DtExerciseClock::init ( ) [virtual]

Initializes the clock - must be called before any other member functions are called.

Reimplemented in DtHlaExerciseClock.

virtual void DtExerciseClock::reset ( ) [virtual]

Initialize the clock to 00:00:00 elapsed time.

virtual void DtExerciseClock::tick ( ) [virtual]

Advance simulation time, if not paused.

Reimplemented in DtHlaExerciseClock.

virtual void DtExerciseClock::pause ( ) [virtual]

Tell tick() not to advance simulation time.

virtual void DtExerciseClock::resume ( ) [virtual]

Tells tick() to resume advancing simluation time.

bool DtExerciseClock::isPaused ( ) const [inline, virtual]

Returns true if system is paused, false otherwise.

References myPaused.

virtual void DtExerciseClock::setFixedFrameMode ( DtTime  dT) [virtual]

Tells the exercise clock to use a best effort fixed frame (constant dT).

virtual bool DtExerciseClock::isFixedFrameMode ( ) [virtual]
virtual void DtExerciseClock::setRunToCompleteFrameMode ( ) [virtual]

Go into variable frame (run to complete) mode.

virtual void DtExerciseClock::setHybridFrameMode ( DtTime  dT) [virtual]

Go into a hybrid mode of fixed dT run-to complete.

virtual void DtExerciseClock::setFixedFrameRate ( DtTime  dT) [virtual]

Change the value to be used in fixed frame or hybrid frame mode.

This will have no effect in run to complete frame mode.

virtual DtTime DtExerciseClock::fixedFrameRate ( ) [virtual]

Get the curent rate if in fixed frame or hybrid frame mode; otherwise, returns 0.0.

virtual void DtExerciseClock::setTimeMultiplier ( DtFloat64  timeMultiplier) [virtual]

Set faster or slower than real-time operation (the range of values for which the system will perform in a rational manner have yet to be determined.)

virtual DtFloat64 DtExerciseClock::timeMultiplier ( ) const [virtual]

Returns time multiplier, a real scalar.

virtual DtString& DtExerciseClock::elapsedSimTimeString ( DtString strBuffer) const [virtual]

Returns elapsed time as a string in the form ddd:hh:mm:ss.

virtual void DtExerciseClock::setExerciseStartTime ( DtTime  time) [virtual]

Set exercise start time in seconds.

virtual DtTime DtExerciseClock::exerciseStartTime ( ) const [virtual]

Use this to get the time the exercise started, expressed in seconds.

virtual DtString& DtExerciseClock::exerciseStartTimeString ( DtString strBuffer) const [virtual]
virtual DtTime DtExerciseClock::exerciseTime ( ) const [virtual]

Returns current exercise time (exercise start time + elapsed time).

virtual DtString& DtExerciseClock::exerciseTimeString ( DtString strBuffer) const [virtual]
virtual void DtExerciseClock::set_dT ( DtTime  dT) [virtual]

Force a dT value (if called after tick!); note - this does not update elapsed time.

virtual DtTime DtExerciseClock::dT ( ) const [virtual]

Returns dT, in seconds.

virtual double DtExerciseClock::simTimeScale ( ) const [virtual]
virtual void DtExerciseClock::registerInterfaceCallbacks ( ) [virtual]

Register callbacks on the sim manager's interface message executive.

If you override this, make sure you call the base function, or the entity manager will stop responding to those messages.

static void DtExerciseClock::setTimeMultiplierCallback ( DtSimMessage msg,
void *  usr 
) [static]

Callback registered on the simManager's Message executive.

Calls processSetTimeMultipler().

static void DtExerciseClock::frameModeCallback ( DtSimMessage msg,
void *  usr 
) [static]

Callback registered on the simManager's Message executive.

virtual void DtExerciseClock::processSetTimeMultiplier ( const DtIfSetTimeMultiplier timeMultiplerData) [protected, virtual]

Sets time multiplier with value given in message.

Reimplemented in DtHlaExerciseClock.


Member Data Documentation

Referenced by isPaused().

DtTime DtExerciseClock::myLastRealTime [protected]
DtTime DtExerciseClock::my_dT [protected]
DtFloat64 DtExerciseClock::myTimeMultiplier [protected]
double DtExerciseClock::mySimTimeScale [protected]

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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)