hydrobricks
Loading...
Searching...
No Matches
TimeMachine.h
1#ifndef HYDROBRICKS_TIME_MACHINE_H
2#define HYDROBRICKS_TIME_MACHINE_H
3
4#include "ActionsManager.h"
5#include "Includes.h"
6#include "ParametersUpdater.h"
7#include "SettingsModel.h"
8
9class TimeMachine : public wxObject {
10 public:
12
13 ~TimeMachine() override = default;
14
23 void Initialize(double start, double end, int timeStep, TimeUnit timeStepUnit);
24
30 void Initialize(const TimerSettings& settings);
31
35 void Reset();
36
42 bool IsOver();
43
47 void IncrementTime();
48
54 int GetTimeStepsNb();
55
61 double GetDate() {
62 return m_date;
63 }
64
70 double GetStart() {
71 return m_start;
72 }
73
79 double GetEnd() {
80 return m_end;
81 }
82
89 return &m_timeStepInDays;
90 }
91
97 void SetParametersUpdater(ParametersUpdater* parametersUpdater) {
98 m_parametersUpdater = parametersUpdater;
99 }
100
106 void SetActionsManager(ActionsManager* actionsManager) {
107 m_actionsManager = actionsManager;
108 }
109
110 private:
111 double m_date;
112 double m_start;
113 double m_end;
114 int m_timeStep;
115 TimeUnit m_timeStepUnit;
116 double m_timeStepInDays;
117 ParametersUpdater* m_parametersUpdater;
118 ActionsManager* m_actionsManager;
119
123 void UpdateTimeStepInDays();
124};
125
126#endif // HYDROBRICKS_TIME_MACHINE_H
Definition ActionsManager.h:10
Definition ParametersUpdater.h:7
Definition TimeMachine.h:9
double * GetTimeStepPointer()
Definition TimeMachine.h:88
void Initialize(double start, double end, int timeStep, TimeUnit timeStepUnit)
Definition TimeMachine.cpp:13
void IncrementTime()
Definition TimeMachine.cpp:49
double GetStart()
Definition TimeMachine.h:70
void Reset()
Definition TimeMachine.cpp:41
void SetParametersUpdater(ParametersUpdater *parametersUpdater)
Definition TimeMachine.h:97
double GetDate()
Definition TimeMachine.h:61
double GetEnd()
Definition TimeMachine.h:79
int GetTimeStepsNb()
Definition TimeMachine.cpp:61
void SetActionsManager(ActionsManager *actionsManager)
Definition TimeMachine.h:106
bool IsOver()
Definition TimeMachine.cpp:45
Definition SettingsModel.h:13