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
45 void AddHydroUnit(int id, double area);
46
47 void AddLandCover(const string& name, const string& type = "", double fraction = 1.0);
48
49 void AddHydroUnitPropertyDouble(const string& name, double value, const string& unit = "");
50
51 void AddHydroUnitPropertyString(const string& name, const string& value);
52
53 void Clear();
54
55 void SelectUnit(int index);
56
57 bool Parse(const string& path);
58
59 HydroUnitSettings GetHydroUnitSettings(int index) const {
60 wxASSERT(m_hydroUnits.size() > index);
61 return m_hydroUnits[index];
62 }
63
64 LandCoverSettings GetLandCoverSettings(int index) const {
65 wxASSERT(m_selectedHydroUnit);
66 wxASSERT(m_selectedHydroUnit->landCovers.size() > index);
67 return m_selectedHydroUnit->landCovers[index];
68 }
69
70 SurfaceComponentSettings GetSurfaceComponentSettings(int index) const {
71 wxASSERT(m_selectedHydroUnit);
72 wxASSERT(m_selectedHydroUnit->surfaceComponents.size() > index);
73 return m_selectedHydroUnit->surfaceComponents[index];
74 }
75
76 int GetHydroUnitsNb() const {
77 return int(m_hydroUnits.size());
78 }
79
80 int GetLandCoversNb() const {
81 wxASSERT(m_selectedHydroUnit);
82 return int(m_selectedHydroUnit->landCovers.size());
83 }
84
85 int GetSurfaceComponentsNb() const {
86 wxASSERT(m_selectedHydroUnit);
87 return int(m_selectedHydroUnit->surfaceComponents.size());
88 }
89
90 double GetTotalArea() const;
91
92 protected:
93 private:
94 vector<HydroUnitSettings> m_hydroUnits;
95 HydroUnitSettings* m_selectedHydroUnit;
96};
97
98#endif // HYDROBRICKS_SETTING_BASIN_H
Definition SettingsBasin.h:39
Definition SettingsBasin.h:19
Definition SettingsBasin.h:25
Definition SettingsBasin.h:30
Definition SettingsBasin.h:7
Definition SettingsBasin.h:13