VR-Forces 4.8 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) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
15 
17 #include <boost/signal.hpp>
18 #include <math.h>
19 
20 namespace makVrv
21 {
22  class DtDe;
23 
29  {
30  public:
31 
32 
33  enum Month
34  {
35  January = 1,
39  May,
46  December
47  };
48 
49 
50  public:
51  friend class DtDeTimeManagerCreator;
52 
54  virtual ~DtDeTimeManager();
55 
56  protected:
58  DtDeTimeManager(DtDe& de);
59 
60 
61  public:
64  //virtual void setReferenceDateAndTime(int daysAfterEpoch,double secondsInDay);
66  virtual void setReferenceDateAndTime(int year, Month month,int dayOfMonth,
67  int hours, int minutes,double seconds);
68 
70  virtual void getReferenceDateAndTime(int& year, Month& month,int& dayOfMonth,
71  int& hours, int& minutes, double& seconds) const;
72 
74  virtual void syncReferenceDateAndTime();
75 
78  virtual void setUseGlobalTimeZone(bool);
79 
81  virtual bool useGlobalTimeZone() const;
82 
85  virtual void calculateCurrentDateAndTime(int& year, Month& month, int& dayOfMonth,
86  int& hour, int& minutes,double& seconds) const;
87 
89  static bool isYearALeapYear(int year);
90 
93  static int daysInTheMonthOf(int year, Month month);
94 
96  static Month nextMonth(Month month);
97 
99  virtual double timeScale() const;
100 
103  virtual void setTimeScale(double timeScale);
104 
106  virtual void getRecord(makArchives::DtDateTimeRecord& record) const;
107 
109  boost::signal<void (int year, Month month, int day)> signal_dateChanged;
110 
112  boost::signal<void (bool)> signal_useGlobalTimeZoneChanged;
113 
114  protected:
115 
116  double timeSinceSet() const;
117 
119 
120  int myYear;
123  int myHours;
125  double mySeconds;
126 
127 
131 
134 
137  };
138 
142  {
143 
144  public:
145 
147  static DtDeTimeManagerCreator& instance(DtDe&);
148 
150  static void registerInstance(DtDe& de, DtDeTimeManagerCreator*);
151 
153  virtual DtDeTimeManager* create(DtDe& de);
154 
155  };
156 
157 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
int myMinutes
Definition: DtDeTimeManager.h:124
Definition: DtDeTimeManager.h:39
double mySimulationTimeAtSet
The simulation time when the time was set.
Definition: DtDeTimeManager.h:130
Month
Definition: DtDeTimeManager.h:33
Record of application-wide date/time settings.
Definition: DtDateTimeRecord.h:22
int myHours
Definition: DtDeTimeManager.h:123
Creator class for DtDeTimeManager.
Definition: DtDeTimeManager.h:141
Contains makArchives::DtDateTimeRecord class.
int myYear
Definition: DtDeTimeManager.h:120
Definition: DtDeTimeManager.h:42
double mySeconds
Definition: DtDeTimeManager.h:125
double myTimeScaleFactor
The amount that time scale with simulation time.
Definition: DtDeTimeManager.h:133
int myDayOfTheMonth
Definition: DtDeTimeManager.h:122
Definition: DtDeTimeManager.h:41
boost::signal< void(bool)> signal_useGlobalTimeZoneChanged
Signal when using GMT time for observer changes.
Definition: DtDeTimeManager.h:112
Month myMonth
Definition: DtDeTimeManager.h:121
Contains makVrv::DtVirtualBaseClass class.
The time manager is responsible for maintaining the currenting date and time of the scene...
Definition: DtDeTimeManager.h:28
Definition: DtDeTimeManager.h:37
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Definition: DtDeTimeManager.h:36
boost::signal< void(int year, Month month, int day)> signal_dateChanged
Signal when the date changes.
Definition: DtDeTimeManager.h:109
Definition: DtDeTimeManager.h:43
Definition: DtDeTimeManager.h:45
Definition: DtDeTimeManager.h:38
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtDe & myDe
Definition: DtDeTimeManager.h:118
bool myUseGlobalTimeZone
Whether or not to use GMT time for sun/moon position (if true will)
Definition: DtDeTimeManager.h:136
Definition: DtDeTimeManager.h:44
Definition: DtDeTimeManager.h:40
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)