VR-Forces 4.0.4 Class Documentation
include/vrfcore/exClock.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: exClock.h,v $ $Revision: 1.19 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00017 
00018 #ifndef DtExerciseClock_H_
00019 #define DtExerciseClock_H_
00020 
00021 #include "vrfutil/vlClock.h"
00022 #include "vrfcore/timer.h"
00023 
00024 class DtSimManager;
00025 class DtSimTimeRepository;
00026 class DtString;
00027 class DtSimMessage;
00028 class DtIfSetTimeMultiplier;
00029 
00030 typedef DtRwReal DtRwTime;
00031 
00039 #include "vrfcore/vrfcoreDefines.h"
00040 class DT_DLL_vrfcore DtExerciseClock : public DtSimClock
00041 {
00042 public:
00043 
00045    DtExerciseClock(); 
00046 
00048    DtExerciseClock(DtSimManager *simManager);
00049 
00051    DtExerciseClock(const DtExerciseClock& orig);
00052 
00054    DtExerciseClock& operator=(const DtExerciseClock& orig);
00055 
00056 
00058    virtual ~DtExerciseClock();
00059 
00062    virtual void init();
00063 
00065    virtual void reset();
00066       
00068    virtual void tick();
00069 
00071    virtual void pause();
00072 
00074    virtual void resume();
00075 
00077    virtual bool isPaused() const;
00078 
00081    virtual void setFixedFrameMode(DtTime dT);
00082    virtual bool isFixedFrameMode();
00083 
00085    virtual void setRunToCompleteFrameMode();
00086    virtual bool isRunToCompleteFrameMode();
00087 
00089    virtual void setHybridFrameMode(DtTime dT);
00090    virtual bool isHybridFrameMode();
00091 
00094    virtual void setFixedFrameRate(DtTime dT);
00095 
00098    virtual DtTime fixedFrameRate();
00099 
00103    virtual void setTimeMultiplier(DtFloat64 timeMultiplier);
00104 
00106    virtual DtFloat64 timeMultiplier() const;
00107 
00108 
00110    virtual DtString &elapsedSimTimeString(DtString &strBuffer) const;
00111 
00113    virtual void setExerciseStartTime(DtTime time);
00114 
00116    virtual DtTime exerciseStartTime() const;
00117 
00118    virtual DtString &exerciseStartTimeString(DtString &strBuffer) const;
00119 
00121    virtual DtTime exerciseTime() const;
00122 
00123    virtual DtString &exerciseTimeString(DtString &strBuffer) const;
00124 
00127    virtual void set_dT(DtTime dT); 
00128 
00130    virtual DtTime dT() const;
00131 
00132    virtual double simTimeScale() const;
00133 
00137    virtual void registerInterfaceCallbacks();
00138 
00141    static void setTimeMultiplierCallback(DtSimMessage* msg, void * usr);
00142 
00144    static void frameModeCallback(DtSimMessage* msg, void * usr);
00145 
00146 protected:
00147 
00149    virtual void processSetTimeMultiplier(const DtIfSetTimeMultiplier& 
00150       timeMultiplerData);
00151 
00152 protected:
00153 
00154    enum FrameMode { FmRunToComplete, FmFixed, FmHybrid } myFrameMode;
00155 
00156    bool             myFirstFrame;
00157    bool             myPaused;
00158    DtTime                myLastRealTime;
00159    DtTime                my_dT;
00160    DtFloat64             myTimeMultiplier;
00161    DtSimManager *        mySimManager;
00162    DtTime                myFixedFrameRate;
00163    DtTime                myExerciseStartTime;
00164    double                mySimTimeScale;
00165    DtTime                myLastSetSimTime;
00166 };
00167 
00168 inline bool DtExerciseClock::isPaused() const
00169 {
00170    return myPaused;
00171 }
00172 
00173 #endif

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)