hydrobricks
Loading...
Searching...
No Matches
Parameter.h
1#ifndef HYDROBRICKS_PARAMETER_H
2#define HYDROBRICKS_PARAMETER_H
3
4#include "Includes.h"
5#include "ParameterModifier.h"
6
7class Parameter : public wxObject {
8 public:
9 explicit Parameter(const string& name, float val = NAN_F);
10
11 ~Parameter() override;
12
18 string GetName() const {
19 return _name;
20 }
21
27 void SetName(const string& name) {
28 _name = name;
29 }
30
36 float GetValue() const {
37 return _value;
38 }
39
45 const float* GetValuePointer() const {
46 return &_value;
47 }
48
54 void SetValue(float val) {
55 _value = val;
56 }
57
63 void SetModifier(const ParameterModifier& modifier) {
64 _modifier = modifier;
65 _hasModifier = true;
66 }
67
74 return _hasModifier ? &_modifier : nullptr;
75 }
76
83 return _hasModifier ? &_modifier : nullptr;
84 }
85
91 bool HasModifier() const {
92 return _hasModifier;
93 }
94
101 bool UpdateFromModifier(double date);
102
109 [[nodiscard]] virtual bool IsValid() const;
110
117 void Validate() const;
118
119 protected:
120 string _name;
121 float _value;
122 ParameterModifier _modifier;
123 bool _hasModifier = false;
124};
125
126#endif // HYDROBRICKS_PARAMETER_H
Definition ParameterModifier.h:19
Definition Parameter.h:7
virtual bool IsValid() const
Definition Parameter.cpp:25
const ParameterModifier * GetModifier() const
Definition Parameter.h:82
void SetName(const string &name)
Definition Parameter.h:27
bool UpdateFromModifier(double date)
Definition Parameter.cpp:11
ParameterModifier * GetModifier()
Definition Parameter.h:73
const float * GetValuePointer() const
Definition Parameter.h:45
string GetName() const
Definition Parameter.h:18
bool HasModifier() const
Definition Parameter.h:91
void SetModifier(const ParameterModifier &modifier)
Definition Parameter.h:63
float GetValue() const
Definition Parameter.h:36
void Validate() const
Definition Parameter.cpp:41
void SetValue(float val)
Definition Parameter.h:54