hydrobricks
Loading...
Searching...
No Matches
TimeSeriesData.h
1#ifndef HYDROBRICKS_TIME_SERIES_DATA_H
2#define HYDROBRICKS_TIME_SERIES_DATA_H
3
4#include "Includes.h"
5
6class TimeSeriesData : public wxObject {
7 public:
9
10 ~TimeSeriesData() override = default;
11
18 virtual bool SetValues(const vecDouble& values);
19
26 virtual double GetValueFor(double date);
27
33 virtual double GetCurrentValue();
34
40 virtual double GetSum();
41
48 virtual bool SetCursorToDate(double date) = 0;
49
55 virtual bool AdvanceOneTimeStep() = 0;
56
62 virtual double GetStart() = 0;
63
69 virtual double GetEnd() = 0;
70
71 protected:
72 vecDouble m_values;
73 int m_cursor;
74};
75
77 public:
78 TimeSeriesDataRegular(double start, double end, int timeStep, TimeUnit timeStepUnit);
79
80 ~TimeSeriesDataRegular() override = default;
81
85 bool SetValues(const vecDouble& values) override;
86
90 double GetValueFor(double date) override;
91
95 double GetCurrentValue() override;
96
100 double GetSum() override;
101
105 bool SetCursorToDate(double date) override;
106
110 bool AdvanceOneTimeStep() override;
111
115 double GetStart() override;
116
120 double GetEnd() override;
121
122 protected:
123 double m_start;
124 double m_end;
125 int m_timeStep;
126 TimeUnit m_timeStepUnit;
127};
128
130 public:
131 explicit TimeSeriesDataIrregular(vecDouble& dates);
132
133 ~TimeSeriesDataIrregular() override = default;
134
138 bool SetValues(const vecDouble& values) override;
139
143 double GetValueFor(double date) override;
144
148 double GetCurrentValue() override;
149
153 double GetSum() override;
154
158 bool SetCursorToDate(double date) override;
159
163 bool AdvanceOneTimeStep() override;
164
168 double GetStart() override;
169
173 double GetEnd() override;
174
175 protected:
176 vecDouble m_dates;
177};
178
179#endif // HYDROBRICKS_TIME_SERIES_DATA_H
Definition TimeSeriesData.h:129
double GetStart() override
Definition TimeSeriesData.cpp:153
double GetSum() override
Definition TimeSeriesData.cpp:141
bool AdvanceOneTimeStep() override
Definition TimeSeriesData.cpp:149
double GetEnd() override
Definition TimeSeriesData.cpp:158
bool SetCursorToDate(double date) override
Definition TimeSeriesData.cpp:145
bool SetValues(const vecDouble &values) override
Definition TimeSeriesData.cpp:122
double GetCurrentValue() override
Definition TimeSeriesData.cpp:136
double GetValueFor(double date) override
Definition TimeSeriesData.cpp:132
Definition TimeSeriesData.h:76
double GetSum() override
Definition TimeSeriesData.cpp:60
double GetEnd() override
Definition TimeSeriesData.cpp:110
double GetValueFor(double date) override
Definition TimeSeriesData.cpp:50
bool AdvanceOneTimeStep() override
Definition TimeSeriesData.cpp:96
double GetStart() override
Definition TimeSeriesData.cpp:106
double GetCurrentValue() override
Definition TimeSeriesData.cpp:55
bool SetValues(const vecDouble &values) override
Definition TimeSeriesData.cpp:38
bool SetCursorToDate(double date) override
Definition TimeSeriesData.cpp:67
Definition TimeSeriesData.h:6
virtual bool AdvanceOneTimeStep()=0
virtual double GetStart()=0
virtual double GetValueFor(double date)
Definition TimeSeriesData.cpp:15
virtual double GetEnd()=0
virtual double GetSum()
Definition TimeSeriesData.cpp:23
virtual double GetCurrentValue()
Definition TimeSeriesData.cpp:19
virtual bool SetValues(const vecDouble &values)
Definition TimeSeriesData.cpp:10
virtual bool SetCursorToDate(double date)=0