hydrobricks
Loading...
Searching...
No Matches
SubBasin.h
1#ifndef HYDROBRICKS_SUBBASIN_H
2#define HYDROBRICKS_SUBBASIN_H
3
4#include "Connector.h"
5#include "HydroUnit.h"
6#include "Includes.h"
7#include "SettingsBasin.h"
8#include "TimeMachine.h"
9
10class SubBasin : public wxObject {
11 public:
12 SubBasin();
13
14 ~SubBasin() override;
15
22 bool Initialize(SettingsBasin& basinSettings);
23
29 void BuildBasin(SettingsBasin& basinSettings);
30
37 bool AssignFractions(SettingsBasin& basinSettings);
38
42 void Reset();
43
47 void SaveAsInitialState();
48
54 bool IsOk();
55
61 void AddBrick(Brick* brick);
62
68 void AddSplitter(Splitter* splitter);
69
75 void AddHydroUnit(HydroUnit* unit);
76
82 int GetHydroUnitsNb();
83
90 HydroUnit* GetHydroUnit(int index);
91
99
105 vecInt GetHydroUnitIds();
106
112 vecDouble GetHydroUnitAreas();
113
119 int GetBricksCount();
120
126 int GetSplittersCount();
127
134 Brick* GetBrick(int index);
135
142 bool HasBrick(const string& name);
143
150 Brick* GetBrick(const string& name);
151
158 Splitter* GetSplitter(int index);
159
166 bool HasSplitter(const string& name);
167
174 Splitter* GetSplitter(const string& name);
175
181 bool HasIncomingFlow();
182
188 void AddInputConnector(Connector* connector);
189
195 void AddOutputConnector(Connector* connector);
196
202 void AttachOutletFlux(Flux* pFlux);
203
210 double* GetValuePointer(const string& name);
211
218
224 double GetArea() {
225 return m_area;
226 }
227
228 protected:
229 double m_area; // m2
230 double m_outletTotal;
231 bool m_needsCleanup;
232 vector<Brick*> m_bricks;
233 vector<Splitter*> m_splitters;
234 vector<HydroUnit*> m_hydroUnits;
235 vector<Connector*> m_inConnectors;
236 vector<Connector*> m_outConnectors;
237 vector<Flux*> m_outletFluxes;
238};
239
240#endif
Definition Brick.h:10
Definition Connector.h:8
Definition Flux.h:8
Definition HydroUnit.h:13
Definition SettingsBasin.h:39
Definition Splitter.h:11
Definition SubBasin.h:10
bool ComputeOutletDischarge()
Definition SubBasin.cpp:254
HydroUnit * GetHydroUnitById(int id)
Definition SubBasin.cpp:136
Brick * GetBrick(int index)
Definition SubBasin.cpp:174
int GetBricksCount()
Definition SubBasin.cpp:166
vecInt GetHydroUnitIds()
Definition SubBasin.cpp:146
void AddSplitter(Splitter *splitter)
Definition SubBasin.cpp:115
void SaveAsInitialState()
Definition SubBasin.cpp:83
double GetArea()
Definition SubBasin.h:224
bool HasSplitter(const string &name)
Definition SubBasin.cpp:207
void BuildBasin(SettingsBasin &basinSettings)
Definition SubBasin.cpp:30
void AddHydroUnit(HydroUnit *unit)
Definition SubBasin.cpp:120
HydroUnit * GetHydroUnit(int index)
Definition SubBasin.cpp:129
int GetSplittersCount()
Definition SubBasin.cpp:170
bool HasIncomingFlow()
Definition SubBasin.cpp:226
void Reset()
Definition SubBasin.cpp:71
bool IsOk()
Definition SubBasin.cpp:92
Splitter * GetSplitter(int index)
Definition SubBasin.cpp:200
bool AssignFractions(SettingsBasin &basinSettings)
Definition SubBasin.cpp:42
bool HasBrick(const string &name)
Definition SubBasin.cpp:181
void AddBrick(Brick *brick)
Definition SubBasin.cpp:110
bool Initialize(SettingsBasin &basinSettings)
Definition SubBasin.cpp:19
int GetHydroUnitsNb()
Definition SubBasin.cpp:125
void AttachOutletFlux(Flux *pFlux)
Definition SubBasin.cpp:240
void AddInputConnector(Connector *connector)
Definition SubBasin.cpp:230
void AddOutputConnector(Connector *connector)
Definition SubBasin.cpp:235
vecDouble GetHydroUnitAreas()
Definition SubBasin.cpp:156
double * GetValuePointer(const string &name)
Definition SubBasin.cpp:245