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 double elevation;
34 vector<LandCoverSettings> landCovers;
35 vector<SurfaceComponentSettings> surfaceComponents;
36 vector<HydroUnitPropertyDouble> propertiesDouble;
37 vector<HydroUnitPropertyString> propertiesString;
38};
39
41 string type;
42 int giverHydroUnitId;
43 int receiverHydroUnitId;
44 double fraction;
45};
46
47class SettingsBasin : public wxObject {
48 public:
49 explicit SettingsBasin();
50
51 ~SettingsBasin() override;
52
60 void AddHydroUnit(int id, double area, double elevation = -9999);
61
69 void AddLandCover(const string& name, const string& type = "", double fraction = 1.0);
70
78 void AddHydroUnitPropertyDouble(const string& name, double value, const string& unit = "");
79
86 void AddHydroUnitPropertyString(const string& name, const string& value);
87
97 void AddLateralConnection(int giverHydroUnitId, int receiverHydroUnitId, double fraction, const string& type = "");
98
102 void Clear();
103
109 void SelectUnit(int index);
110
114 bool Parse(const string& path);
115
123 wxASSERT(_hydroUnits.size() > index);
124 return _hydroUnits[index];
125 }
126
134 wxASSERT(_selectedHydroUnit);
135 wxASSERT(_selectedHydroUnit->landCovers.size() > index);
136 return _selectedHydroUnit->landCovers[index];
137 }
138
146 wxASSERT(_selectedHydroUnit);
147 wxASSERT(_selectedHydroUnit->surfaceComponents.size() > index);
148 return _selectedHydroUnit->surfaceComponents[index];
149 }
150
156 vector<LateralConnectionSettings> GetLateralConnections() const {
157 return _lateralConnections;
158 }
159
165 int GetHydroUnitsNb() const {
166 return static_cast<int>(_hydroUnits.size());
167 }
168
174 int GetLandCoversNb() const {
175 wxASSERT(_selectedHydroUnit);
176 return static_cast<int>(_selectedHydroUnit->landCovers.size());
177 }
178
185 wxASSERT(_selectedHydroUnit);
186 return static_cast<int>(_selectedHydroUnit->surfaceComponents.size());
187 }
188
195 return static_cast<int>(_lateralConnections.size());
196 }
197
203 double GetTotalArea() const;
204
205 private:
206 vector<HydroUnitSettings> _hydroUnits;
207 vector<LateralConnectionSettings> _lateralConnections;
208 HydroUnitSettings* _selectedHydroUnit;
209};
210
211#endif // HYDROBRICKS_SETTING_BASIN_H
Definition SettingsBasin.h:47
void AddHydroUnitPropertyString(const string &name, const string &value)
Definition SettingsBasin.cpp:40
void SelectUnit(int index)
Definition SettingsBasin.cpp:65
SurfaceComponentSettings GetSurfaceComponentSettings(int index) const
Definition SettingsBasin.h:145
int GetSurfaceComponentsNb() const
Definition SettingsBasin.h:184
void Clear()
Definition SettingsBasin.cpp:60
int GetLandCoversNb() const
Definition SettingsBasin.h:174
LandCoverSettings GetLandCoverSettings(int index) const
Definition SettingsBasin.h:133
void AddLateralConnection(int giverHydroUnitId, int receiverHydroUnitId, double fraction, const string &type="")
Definition SettingsBasin.cpp:49
int GetLateralConnectionsNb() const
Definition SettingsBasin.h:194
double GetTotalArea() const
Definition SettingsBasin.cpp:155
void AddHydroUnitPropertyDouble(const string &name, double value, const string &unit="")
Definition SettingsBasin.cpp:30
void AddLandCover(const string &name, const string &type="", double fraction=1.0)
Definition SettingsBasin.cpp:20
void AddHydroUnit(int id, double area, double elevation=-9999)
Definition SettingsBasin.cpp:11
HydroUnitSettings GetHydroUnitSettings(int index) const
Definition SettingsBasin.h:122
int GetHydroUnitsNb() const
Definition SettingsBasin.h:165
vector< LateralConnectionSettings > GetLateralConnections() const
Definition SettingsBasin.h:156
bool Parse(const string &path)
Definition SettingsBasin.cpp:70
Definition SettingsBasin.h:19
Definition SettingsBasin.h:25
Definition SettingsBasin.h:30
Definition SettingsBasin.h:7
Definition SettingsBasin.h:40
Definition SettingsBasin.h:13