hydrobricks
Loading...
Searching...
No Matches
ParametersUpdater.h
1#ifndef HYDROBRICKS_PARAMETERS_UPDATER_H
2#define HYDROBRICKS_PARAMETERS_UPDATER_H
3
4#include "Includes.h"
5
6class Parameter;
7
9 public:
11
12 virtual ~ParametersUpdater() = default;
13
19 void AddParameter(Parameter* parameter);
20
29 void AddUnitMonthlyOverride(float* target, const vecFloat* values);
30
37 void Reset();
38
44 void DateUpdate(double date);
45
51 double GetPreviousDate() const {
52 return _previousDate;
53 }
54
55 protected:
61 void ChangingYear(double date);
62
68 void ChangingMonth(double date);
69
75 void ChangingDate(double date);
76
77 private:
78 bool _active;
79 double _previousDate;
80 vector<Parameter*> _parametersYearly; // non-owning, parameters with yearly modifiers
81 vector<Parameter*> _parametersMonthly; // non-owning, parameters with monthly modifiers
82 vector<Parameter*> _parametersDates; // non-owning, parameters with date modifiers
83 // non-owning, per-unit monthly overrides: value to write and the 12 monthly values
84 vector<std::pair<float*, const vecFloat*>> _unitMonthlyOverrides;
85};
86
87#endif // HYDROBRICKS_PARAMETERS_UPDATER_H
Definition Parameter.h:7
Definition ParametersUpdater.h:8
void AddUnitMonthlyOverride(float *target, const vecFloat *values)
Definition ParametersUpdater.cpp:33
void ChangingDate(double date)
Definition ParametersUpdater.cpp:92
double GetPreviousDate() const
Definition ParametersUpdater.h:51
void DateUpdate(double date)
Definition ParametersUpdater.cpp:51
void ChangingMonth(double date)
Definition ParametersUpdater.cpp:79
void ChangingYear(double date)
Definition ParametersUpdater.cpp:73
void Reset()
Definition ParametersUpdater.cpp:42
void AddParameter(Parameter *parameter)
Definition ParametersUpdater.cpp:10