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 _date;
63 }
64
70 double GetStart() {
71 return _start;
72 }
73
79 double GetEnd() {
80 return _end;
81 }
82
89 return &_timeStepInDays;
90 }
91
97 void SetParametersUpdater(ParametersUpdater* parametersUpdater) {
98 _parametersUpdater = parametersUpdater;
99 }
100
106 void SetActionsManager(ActionsManager* actionsManager) {
107 _actionsManager = actionsManager;
108 }
109
110 private:
111 double _date;
112 double _start;
113 double _end;
114 int _timeStep;
115 TimeUnit _timeStepUnit;
116 double _timeStepInDays;
117 ParametersUpdater* _parametersUpdater;
118 ActionsManager* _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