VR-Forces 4.1 Class Documentation
List of all members | 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]

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.
- Public Member Functions inherited from DtSimClock
 DtSimClock ()
 DtSimClock (const DtSimClock &orig)
DtSimClockoperator= (const DtSimClock &orig)
virtual ~DtSimClock ()

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.
- Static Public Member Functions inherited from DtSimClock
static DtTime stringToSeconds (const DtString &timeString)
 static conversion functions
static DtStringsecondsToElapsedTimeString (DtTime seconds, DtString &strBuffer)
static DtStringsecondsToExerciseTimeString (DtTime seconds, DtString &strBuffer)
static void secondsToDaysHoursMinutesSeconds (DtTime secondsInput, int &days, int &hours, int &minutes, DtTime &seconds)
static DtTime daysHoursMinutesSecondsToSeconds (DtTime days, DtTime hours, DtTime minutes, DtTime seconds)
static bool processElapsedTimeString (const char *input, int &numDigitsFound, int &value1, int &value2, int &value3, int &value4)

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

Enumerator:
FmRunToComplete 
FmFixed 
FmHybrid 

Constructor & Destructor Documentation

DtExerciseClock::DtExerciseClock ( )

default constructor

DtExerciseClock::DtExerciseClock ( DtSimManager simManager)

useful constructor

DtExerciseClock::DtExerciseClock ( const DtExerciseClock orig)

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
inlinevirtual

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 bool DtExerciseClock::isRunToCompleteFrameMode ( )
virtual
virtual void DtExerciseClock::setHybridFrameMode ( DtTime  dT)
virtual

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

virtual bool DtExerciseClock::isHybridFrameMode ( )
virtual
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)
protectedvirtual

Sets time multiplier with value given in message.

Reimplemented in DtHlaExerciseClock.

Member Data Documentation

enum DtExerciseClock::FrameMode DtExerciseClock::myFrameMode
protected
bool DtExerciseClock::myFirstFrame
protected
bool DtExerciseClock::myPaused
protected

Referenced by isPaused().

DtTime DtExerciseClock::myLastRealTime
protected
DtTime DtExerciseClock::my_dT
protected
DtFloat64 DtExerciseClock::myTimeMultiplier
protected
DtSimManager* DtExerciseClock::mySimManager
protected
DtTime DtExerciseClock::myFixedFrameRate
protected
DtTime DtExerciseClock::myExerciseStartTime
protected
double DtExerciseClock::mySimTimeScale
protected
DtTime DtExerciseClock::myLastSetSimTime
protected

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

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)