VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDeTimeManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
15 
17 #include <vrvUtil/signalslib.h>
18 #include <math.h>
19 
20 namespace makVrv
21 {
22  class DtDe;
23 
29  {
30  public:
31 
32  enum Month
33  {
34  January = 1,
38  May,
45  December
46  };
47 
48  // Default startup values for Day/Time in VR-Vantage
49  const static int theDefaultYear;
50  const static Month theDefaultMonth;
51  const static int theDefaultDayOfTheMonth;
52  const static int theDefaultHours;
53  const static int theDefaultMinutes;
54  const static double theDefaultSeconds;
55  const static double theDefaultTimeScaleFactor;
56 
57  public:
58  friend class DtDeTimeManagerCreator;
59 
61  virtual ~DtDeTimeManager();
62 
63  protected:
65  DtDeTimeManager(DtDe& de);
66 
67 
68  public:
71  //virtual void setReferenceDateAndTime(int daysAfterEpoch,double secondsInDay);
73  virtual void setReferenceDateAndTime(int year, Month month,int dayOfMonth,
74  int hours, int minutes,double seconds);
75 
77  virtual void getReferenceDateAndTime(int& year, Month& month,int& dayOfMonth,
78  int& hours, int& minutes, double& seconds) const;
79 
81  virtual void syncReferenceDateAndTime();
82 
85  virtual void setUseGlobalTimeZone(bool);
86 
88  virtual bool useGlobalTimeZone() const;
89 
92  virtual void calculateCurrentDateAndTime(int& year, Month& month, int& dayOfMonth,
93  int& hour, int& minutes,double& seconds) const;
94 
96  static bool isYearALeapYear(int year);
97 
100  static int daysInTheMonthOf(int year, Month month);
101 
103  static Month nextMonth(Month month);
104 
106  virtual double timeScale() const;
107 
110  virtual void setTimeScale(double timeScale);
111 
113  virtual void getRecord(makArchives::DtDateTimeRecord& record) const;
114 
116  boost::signalslib::signal<void (int year, Month month, int day)> signal_dateChanged;
117 
119  boost::signalslib::signal<void (bool)> signal_useGlobalTimeZoneChanged;
120 
121  protected:
122 
123  double timeSinceSet() const;
124 
126 
127  int myYear;
130  int myHours;
132  double mySeconds;
133 
134 
138 
141 
144  };
145 
149  {
150 
151  public:
152 
154  static DtDeTimeManagerCreator& instance(DtDe&);
155 
157  static void registerInstance(DtDe& de, DtDeTimeManagerCreator*);
158 
160  virtual DtDeTimeManager* create(DtDe& de);
161 
162  };
163 
164 }
static const int theDefaultYear
Definition: DtDeTimeManager.h:49
Virtual base class.
Definition: DtVirtualBaseClass.h:19
int myMinutes
Definition: DtDeTimeManager.h:131
Definition: DtDeTimeManager.h:38
double mySimulationTimeAtSet
The simulation time when the time was set.
Definition: DtDeTimeManager.h:137
Month
Definition: DtDeTimeManager.h:32
Record of application-wide date/time settings.
Definition: DtDateTimeRecord.h:19
int myHours
Definition: DtDeTimeManager.h:130
Creator class for DtDeTimeManager.
Definition: DtDeTimeManager.h:148
Contains makArchives::DtDateTimeRecord class.
int myYear
Definition: DtDeTimeManager.h:127
Definition: DtDeTimeManager.h:41
double mySeconds
Definition: DtDeTimeManager.h:132
double myTimeScaleFactor
The amount that time scale with simulation time.
Definition: DtDeTimeManager.h:140
int myDayOfTheMonth
Definition: DtDeTimeManager.h:129
Definition: DtDeTimeManager.h:40
static const Month theDefaultMonth
Definition: DtDeTimeManager.h:50
boost::signalslib::signal< void(int year, Month month, int day)> signal_dateChanged
Signal when the date changes.
Definition: DtDeTimeManager.h:116
Month myMonth
Definition: DtDeTimeManager.h:128
static const int theDefaultDayOfTheMonth
Definition: DtDeTimeManager.h:51
Contains makVrv::DtVirtualBaseClass class.
The time manager is responsible for maintaining the currenting date and time of the scene...
Definition: DtDeTimeManager.h:28
static const double theDefaultSeconds
Definition: DtDeTimeManager.h:54
Definition: DtDeTimeManager.h:36
static const int theDefaultMinutes
Definition: DtDeTimeManager.h:53
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
static const double theDefaultTimeScaleFactor
Definition: DtDeTimeManager.h:55
Definition: DtDeTimeManager.h:35
Definition: DtDeTimeManager.h:42
Definition: DtDeTimeManager.h:44
Definition: DtDeTimeManager.h:37
static const int theDefaultHours
Definition: DtDeTimeManager.h:52
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::signalslib::signal< void(bool)> signal_useGlobalTimeZoneChanged
Signal when using GMT time for observer changes.
Definition: DtDeTimeManager.h:119
DtDe & myDe
Definition: DtDeTimeManager.h:125
bool myUseGlobalTimeZone
Whether or not to use GMT time for sun/moon position (if true will)
Definition: DtDeTimeManager.h:143
Definition: DtDeTimeManager.h:43
Definition: DtDeTimeManager.h:39
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)