hydrobricks
Loading...
Searching...
No Matches
TimeMachine.h
1#ifndef HYDROBRICKS_TIME_MACHINE_H
2#define HYDROBRICKS_TIME_MACHINE_H
3
4#include "BehavioursManager.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
15 void Initialize(double start, double end, int timeStep, TimeUnit timeStepUnit);
16
17 void Initialize(const TimerSettings& settings);
18
19 void Reset();
20
21 bool IsOver();
22
23 void IncrementTime();
24
25 int GetTimeStepsNb();
26
27 void UpdateTimeStepInDays();
28
29 double GetDate() {
30 return m_date;
31 }
32
33 double GetStart() {
34 return m_start;
35 }
36
37 double GetEnd() {
38 return m_end;
39 }
40
41 double* GetTimeStepPointer() {
42 return &m_timeStepInDays;
43 }
44
45 void SetParametersUpdater(ParametersUpdater* parametersUpdater) {
46 m_parametersUpdater = parametersUpdater;
47 }
48
49 void SetBehavioursManager(BehavioursManager* behavioursManager) {
50 m_behavioursManager = behavioursManager;
51 }
52
53 protected:
54 private:
55 double m_date;
56 double m_start;
57 double m_end;
58 int m_timeStep;
59 TimeUnit m_timeStepUnit;
60 double m_timeStepInDays;
61 ParametersUpdater* m_parametersUpdater;
62 BehavioursManager* m_behavioursManager;
63};
64
65#endif // HYDROBRICKS_TIME_MACHINE_H
Definition BehavioursManager.h:10
Definition ParametersUpdater.h:7
Definition TimeMachine.h:9
Definition SettingsModel.h:13