hydrobricks
Loading...
Searching...
No Matches
SettingsBasin.h
1#ifndef HYDROBRICKS_SETTING_BASIN_H
2#define HYDROBRICKS_SETTING_BASIN_H
3
4#include "Includes.h"
5#include "Parameter.h"
6
8 string name;
9 string type;
10 double fraction;
11};
12
14 string name;
15 string type;
16 double fraction;
17};
18
20 string name;
21 double value;
22 string unit;
23};
24
26 string name;
27 string value;
28};
29
31 int id;
32 double area;
33 vector<LandCoverSettings> landCovers;
34 vector<SurfaceComponentSettings> surfaceComponents;
35 vector<HydroUnitPropertyDouble> propertiesDouble;
36 vector<HydroUnitPropertyString> propertiesString;
37};
38
39class SettingsBasin : public wxObject {
40 public:
41 explicit SettingsBasin();
42
43 ~SettingsBasin() override;
44
51 void AddHydroUnit(int id, double area);
52
60 void AddLandCover(const string& name, const string& type = "", double fraction = 1.0);
61
69 void AddHydroUnitPropertyDouble(const string& name, double value, const string& unit = "");
70
77 void AddHydroUnitPropertyString(const string& name, const string& value);
78
82 void Clear();
83
89 void SelectUnit(int index);
90
94 bool Parse(const string& path);
95
103 wxASSERT(m_hydroUnits.size() > index);
104 return m_hydroUnits[index];
105 }
106
114 wxASSERT(m_selectedHydroUnit);
115 wxASSERT(m_selectedHydroUnit->landCovers.size() > index);
116 return m_selectedHydroUnit->landCovers[index];
117 }
118
126 wxASSERT(m_selectedHydroUnit);
127 wxASSERT(m_selectedHydroUnit->surfaceComponents.size() > index);
128 return m_selectedHydroUnit->surfaceComponents[index];
129 }
130
136 int GetHydroUnitsNb() const {
137 return static_cast<int>(m_hydroUnits.size());
138 }
139
145 int GetLandCoversNb() const {
146 wxASSERT(m_selectedHydroUnit);
147 return static_cast<int>(m_selectedHydroUnit->landCovers.size());
148 }
149
156 wxASSERT(m_selectedHydroUnit);
157 return static_cast<int>(m_selectedHydroUnit->surfaceComponents.size());
158 }
159
165 double GetTotalArea() const;
166
167 private:
168 vector<HydroUnitSettings> m_hydroUnits;
169 HydroUnitSettings* m_selectedHydroUnit;
170};
171
172#endif // HYDROBRICKS_SETTING_BASIN_H
Definition SettingsBasin.h:39
void AddHydroUnitPropertyString(const string &name, const string &value)
Definition SettingsBasin.cpp:38
void SelectUnit(int index)
Definition SettingsBasin.cpp:52
SurfaceComponentSettings GetSurfaceComponentSettings(int index) const
Definition SettingsBasin.h:125
int GetSurfaceComponentsNb() const
Definition SettingsBasin.h:155
void Clear()
Definition SettingsBasin.cpp:47
int GetLandCoversNb() const
Definition SettingsBasin.h:145
LandCoverSettings GetLandCoverSettings(int index) const
Definition SettingsBasin.h:113
double GetTotalArea() const
Definition SettingsBasin.cpp:142
void AddHydroUnitPropertyDouble(const string &name, double value, const string &unit="")
Definition SettingsBasin.cpp:28
void AddLandCover(const string &name, const string &type="", double fraction=1.0)
Definition SettingsBasin.cpp:19
HydroUnitSettings GetHydroUnitSettings(int index) const
Definition SettingsBasin.h:102
void AddHydroUnit(int id, double area)
Definition SettingsBasin.cpp:11
int GetHydroUnitsNb() const
Definition SettingsBasin.h:136
bool Parse(const string &path)
Definition SettingsBasin.cpp:57
Definition SettingsBasin.h:19
Definition SettingsBasin.h:25
Definition SettingsBasin.h:30
Definition SettingsBasin.h:7
Definition SettingsBasin.h:13