hydrobricks
Loading...
Searching...
No Matches
SurfaceComponent.h
1#ifndef HYDROBRICKS_SURFACE_COMPONENT_H
2#define HYDROBRICKS_SURFACE_COMPONENT_H
3
4#include "Brick.h"
5#include "Includes.h"
6#include "LandCover.h"
7
8class HydroUnit;
9
10class SurfaceComponent : public Brick {
11 public:
13
17 [[nodiscard]] bool CanHaveAreaFraction() const override {
18 return true;
19 }
20
26 double GetAreaFraction() const {
27 return _areaFraction;
28 }
29
35 void SetAreaFraction(double value);
36
42 double GetParentAreaFraction() const;
43
47 [[nodiscard]] bool IsNull() const override;
48
54 [[nodiscard]] bool HasParent() const {
55 return _parent != nullptr;
56 }
57
64 return _parent;
65 }
66
72 virtual void SetParent(LandCover* parent) {
73 _parent = parent;
74 _parent->SurfaceComponentAdded(this);
75 }
76
77 protected:
78 LandCover* _parent; // non-owning reference
79 double _areaFraction;
80};
81
82#endif // HYDROBRICKS_SURFACE_COMPONENT_H
Definition Brick.h:24
Definition HydroUnit.h:18
Definition LandCover.h:10
virtual void SurfaceComponentAdded(SurfaceComponent *brick)
Definition LandCover.cpp:24
Definition SurfaceComponent.h:10
bool IsNull() const override
Definition SurfaceComponent.cpp:31
double GetParentAreaFraction() const
Definition SurfaceComponent.cpp:26
void SetAreaFraction(double value)
Definition SurfaceComponent.cpp:12
double GetAreaFraction() const
Definition SurfaceComponent.h:26
virtual void SetParent(LandCover *parent)
Definition SurfaceComponent.h:72
LandCover * GetParent() const
Definition SurfaceComponent.h:63
bool CanHaveAreaFraction() const override
Definition SurfaceComponent.h:17
bool HasParent() const
Definition SurfaceComponent.h:54