VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
hlaExerciseClock.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2011 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 #if DtHLA
8 
11 
12 #if !DtHLA_1516
13 #include "fedtime.hh"
14 #else
15 #if DtHLA_4
16 #include "RTI/time/LogicalTime.h"
17 #include "RTI/time/LogicalTimeInterval.h"
18 namespace RTI = rti1516_2025;
19 #else
20 #if DtHLA_1516_EVOLVED
21 #include "RTI/LogicalTime.h"
22 #include "RTI/LogicalTimeInterval.h"
23 namespace RTI = rti1516e;
24 #else
25 #include "RTI/LogicalTime.h"
26 #include "RTI/logicalTimeImpl.h"
27 #include "RTI/logicalTimeIntervalImpl.h"
28 namespace RTI = rti1516;
29 #endif
30 #endif
31 #endif
32 
33 class DtExerciseConn;
35 
39 namespace makVrf
40 {
42  {
43  public:
44 
46  DtHlaExerciseClock(DtExerciseConn* exerciseConn);
47 
49  virtual ~DtHlaExerciseClock() override;
50 
51  virtual void init() override;
52 
55  virtual void tick(DtCommunicationManagerPerformanceTimerInformation* performanceTimerInformation = nullptr) override;
56 
58  virtual DtTime fedTime() const;
59 
60  virtual DtTime lookahead() const;
61 
62  virtual DtTime epsilon() const;
63 
68  virtual DtTime effectiveSimTime() const;
69 
73  virtual void setInitialSimTime(DtTime time);
74 
77  virtual bool enableTimeManagementMode(DtTime lookaheadInterval);
78  virtual bool disableTimeManagementMode();
79  virtual bool isInTimeManagementMode() const;
80 
83  static void timeAdvanceGrantedCb(DtTimeManagementControl* tmControl,
84  void* usr);
85 
86  protected:
87 
90  virtual bool startRegulatingTime(DtTime lookaheadInterval);
91  virtual bool stopRegulatingTime();
92  virtual bool isTimeRegulating() const;
93 
95  virtual bool enableTimeConstrainedMode();
96  virtual bool disableTimeConstrainedMode();
97  virtual bool isTimeConstrained() const;
98 
100 #if !DtHLA_1516
101  virtual RTI::FedTime* createFederationTime(DtTime time = 0.0) const;
102 #else
103  virtual RTI::LogicalTime* createFederationTime(DtTime time = 0.0) const;
104 #endif
105 
107 #if !DtHLA_1516
108  virtual RTI::FedTime* createFederationTimeInterval(DtTime time = 0.0) const;
109 #else
110  virtual RTI::LogicalTimeInterval* createFederationTimeInterval(DtTime time = 0.0) const;
111 #endif
112 
115  virtual DtTimeManagementControl* createTimeManagementControl() const;
116 
119  virtual void processTimeAdvanceGrantedCb(DtTimeManagementControl* tmControl);
120 
121  private:
122 
125 
127  DtHlaExerciseClock& operator=(const DtHlaExerciseClock& orig);
128 
129  protected:
130 
131  DtExerciseConn* myExerciseConn;
132 
134 
137 #if !DtHLA_1516
138  RTI::FedTime* myInitialFederationTime;
139 #else
140  RTI::LogicalTime* myInitialFederationTime;
141 #endif
142 
144 
145 #if !DtHLA_1516
146  RTI::FedTime* myFederationTime;
148 #else
149  RTI::LogicalTime* myFederationTime;
150  RTI::LogicalTime* myEffectiveFederationTime;
151 #endif
152 
153 #if !DtHLA_1516
154  RTI::FedTime* myLookahead;
155 #else
156  RTI::LogicalTimeInterval* myLookahead;
157  DtTime myVrlLookahead;
158 #endif
159 
160 #if !DtHLA_1516
162 #else
163  DtTime myEpsilon;
164 #endif
165  };
166 }
167 
168 #endif
RTI::FedTime * myLookahead
Definition: hlaExerciseClock.h:154
RTI::FedTime * myEffectiveFederationTime
Definition: hlaExerciseClock.h:147
RTI::FedTime * myInitialFederationTime
This time is set when simulation start time is set. Used to compute the current simulation time...
Definition: hlaExerciseClock.h:138
DtTimeManagementControl * myTimeManagementControl
Definition: hlaExerciseClock.h:133
Definition: communicationManager.h:38
DtTime myInitialSimTime
Definition: hlaExerciseClock.h:143
DtTime myEpsilon
Definition: hlaExerciseClock.h:161
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: hlaExerciseClock.h:41
RTI::FedTime * myFederationTime
Definition: hlaExerciseClock.h:146
Definition: timeManagementControlHLA.h:52
DtExerciseConn * myExerciseConn
Definition: hlaExerciseClock.h:131
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.
Definition: exerciseClock.h:27

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)