VR-Forces 5.0.1 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_1516_EVOLVED
16 #include "RTI/LogicalTime.h"
17 #include "RTI/LogicalTimeInterval.h"
18 namespace RTI=rti1516e;
19 #else
20 #include "RTI/LogicalTime.h"
21 #include "RTI/logicalTimeImpl.h"
22 #include "RTI/logicalTimeIntervalImpl.h"
23 namespace RTI=rti1516;
24 #endif
25 #endif
26 
27 class DtExerciseConn;
29 
33 namespace makVrf
34 {
36  {
37  public:
38 
40  DtHlaExerciseClock(DtExerciseConn* exerciseConn);
41 
43  virtual ~DtHlaExerciseClock();
44 
45  virtual void init();
46 
49  virtual void tick();
50 
52  virtual DtTime fedTime() const;
53 
54  virtual DtTime lookahead() const;
55 
60  virtual DtTime effectiveSimTime() const;
61 
65  virtual void setInitialSimTime(DtTime time);
66 
69  virtual bool enableTimeManagementMode(DtTime lookaheadInterval);
70  virtual bool disableTimeManagementMode();
71  virtual bool isInTimeManagementMode() const;
72 
75  static void timeAdvanceGrantedCb(DtTimeManagementControl* tmControl,
76  void* usr);
77 
78  protected:
79 
82  virtual bool startRegulatingTime(DtTime lookaheadInterval);
83  virtual bool stopRegulatingTime();
84  virtual bool isTimeRegulating() const;
85 
87  virtual bool enableTimeConstrainedMode();
88  virtual bool disableTimeConstrainedMode();
89  virtual bool isTimeConstrained() const;
90 
92  #if !DtHLA_1516
93  virtual RTI::FedTime* createFederationTime(DtTime time = 0.0) const;
94  #else
95  virtual RTI::LogicalTime* createFederationTime(DtTime time = 0.0) const;
96  #endif
97 
99  #if !DtHLA_1516
100  virtual RTI::FedTime* createFederationTimeInterval(DtTime time = 0.0) const;
101  #else
102  virtual RTI::LogicalTimeInterval* createFederationTimeInterval(DtTime time = 0.0) const;
103  #endif
104 
107  virtual DtTimeManagementControl* createTimeManagementControl() const;
108 
111  virtual void processTimeAdvanceGrantedCb(DtTimeManagementControl* tmControl);
112 
113  private:
114 
117 
119  DtHlaExerciseClock& operator=(const DtHlaExerciseClock& orig);
120 
121  protected:
122 
123  DtExerciseConn* myExerciseConn;
124 
126 
129  #if !DtHLA_1516
130  RTI::FedTime* myInitialFederationTime;
131  #else
132  RTI::LogicalTime* myInitialFederationTime;
133  #endif
134 
136 
137  #if !DtHLA_1516
138  RTI::FedTime* myFederationTime;
140  #else
141  RTI::LogicalTime* myFederationTime;
142  RTI::LogicalTime* myEffectiveFederationTime;
143  #endif
144 
145  #if !DtHLA_1516
146  RTI::FedTime* myLookahead;
147  #else
148  RTI::LogicalTimeInterval* myLookahead;
149  DtTime myVrlLookahead;
150  #endif
151  };
152 }
153 
154 #endif
RTI::FedTime * myLookahead
Definition: hlaExerciseClock.h:146
RTI::FedTime * myEffectiveFederationTime
Definition: hlaExerciseClock.h:139
RTI::FedTime * myInitialFederationTime
This time is set when simulation start time is set. Used to compute the current simulation time...
Definition: hlaExerciseClock.h:130
DtTimeManagementControl * myTimeManagementControl
Definition: hlaExerciseClock.h:125
DtTime myInitialSimTime
Definition: hlaExerciseClock.h:135
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: hlaExerciseClock.h:35
RTI::FedTime * myFederationTime
Definition: hlaExerciseClock.h:138
Definition: timeManagementControlHLA.h:50
DtExerciseConn * myExerciseConn
Definition: hlaExerciseClock.h:123
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:26

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)