hydrobricks
Loading...
Searching...
No Matches
LandCover.h
1#ifndef HYDROBRICKS_BASE_LAND_COVER_H
2#define HYDROBRICKS_BASE_LAND_COVER_H
3
4#include "Brick.h"
5#include "Includes.h"
6
7class HydroUnit;
9
10class LandCover : public Brick {
11 public:
12 LandCover();
13
21 void Reset() override;
22
28 void SaveAsInitialState() override;
29
33 [[nodiscard]] bool CanHaveAreaFraction() const override {
34 return true;
35 }
36
42 double GetAreaFraction() const {
43 return _areaFraction;
44 }
45
52 return &_areaFraction;
53 }
54
60 void SetAreaFraction(double value);
61
68 void SetInitialAreaFraction(double value) {
69 _initialAreaFraction = value;
70 }
71
78 SetAreaFraction(_initialAreaFraction);
79 }
80
84 [[nodiscard]] bool IsLandCover() const override {
85 return true;
86 }
87
91 [[nodiscard]] bool IsNull() const override {
92 return NearlyZero(_areaFraction, PRECISION);
93 }
94
100 virtual void SurfaceComponentAdded(SurfaceComponent* brick);
101
102 protected:
103 double _areaFraction;
104 double _initialAreaFraction;
105};
106
107#endif // HYDROBRICKS_BASE_LAND_COVER_H
Definition Brick.h:22
Definition HydroUnit.h:18
Definition LandCover.h:10
void RestoreInitialAreaFraction()
Definition LandCover.h:77
void SetInitialAreaFraction(double value)
Definition LandCover.h:68
virtual void SurfaceComponentAdded(SurfaceComponent *brick)
Definition LandCover.cpp:39
bool CanHaveAreaFraction() const override
Definition LandCover.h:33
void SetAreaFraction(double value)
Definition LandCover.cpp:27
bool IsNull() const override
Definition LandCover.h:91
double GetAreaFraction() const
Definition LandCover.h:42
void Reset() override
Definition LandCover.cpp:13
void SaveAsInitialState() override
Definition LandCover.cpp:21
double * GetAreaFractionPointer()
Definition LandCover.h:51
bool IsLandCover() const override
Definition LandCover.h:84
Definition SurfaceComponent.h:10