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
12 virtual bool SetValues(const vecDouble& values);
13
14 virtual double GetValueFor(double date);
15
16 virtual double GetCurrentValue();
17
18 virtual double GetSum();
19
20 virtual bool SetCursorToDate(double date) = 0;
21
22 virtual bool AdvanceOneTimeStep() = 0;
23
24 virtual double GetStart() = 0;
25
26 virtual double GetEnd() = 0;
27
28 protected:
29 vecDouble m_values;
30 int m_cursor;
31
32 private:
33};
34
36 public:
37 TimeSeriesDataRegular(double start, double end, int timeStep, TimeUnit timeStepUnit);
38
39 ~TimeSeriesDataRegular() override = default;
40
41 bool SetValues(const vecDouble& values) override;
42
43 double GetValueFor(double date) override;
44
45 double GetCurrentValue() override;
46
47 double GetSum() override;
48
49 bool SetCursorToDate(double date) override;
50
51 bool AdvanceOneTimeStep() override;
52
53 double GetStart() override;
54
55 double GetEnd() override;
56
57 protected:
58 double m_start;
59 double m_end;
60 int m_timeStep;
61 TimeUnit m_timeStepUnit;
62
63 private:
64};
65
67 public:
68 explicit TimeSeriesDataIrregular(vecDouble& dates);
69
70 ~TimeSeriesDataIrregular() override = default;
71
72 bool SetValues(const vecDouble& values) override;
73
74 double GetValueFor(double date) override;
75
76 double GetCurrentValue() override;
77
78 double GetSum() override;
79
80 bool SetCursorToDate(double date) override;
81
82 bool AdvanceOneTimeStep() override;
83
84 double GetStart() override;
85
86 double GetEnd() override;
87
88 protected:
89 vecDouble m_dates;
90
91 private:
92};
93
94#endif // HYDROBRICKS_TIME_SERIES_DATA_H
Definition TimeSeriesData.h:66
Definition TimeSeriesData.h:35
Definition TimeSeriesData.h:6