1#ifndef HYDROBRICKS_FLUX_H
2#define HYDROBRICKS_FLUX_H
4#include "../base/ContentTypes.h"
9class Flux :
public wxObject {
13 ~Flux()
override =
default;
20 [[nodiscard]]
virtual bool IsValid()
const = 0;
116 return _needsWeighting;
125 _needsWeighting = value;
134 _fractionUnitArea = value;
144 _fractionLandCover = value;
152 _fractionTotal = _fractionUnitArea * _fractionLandCover;
179 return _changeRate !=
nullptr;
188 return _modifier !=
nullptr;
193 double* _changeRate{};
195 bool _needsWeighting{};
196 double _fractionUnitArea{1.0};
197 double _fractionLandCover{1.0};
198 double _fractionTotal{1.0};
200 ContentType _type{ContentType::Water};
bool HasChangeRate() const
Definition Flux.h:178
bool NeedsWeighting() const
Definition Flux.h:115
void LinkChangeRate(double *rate)
Definition Flux.h:54
virtual void Reset()
Definition Flux.cpp:16
virtual bool IsForcing() const
Definition Flux.h:81
virtual void UpdateFlux(double amount)
Definition Flux.cpp:20
virtual bool IsInstantaneous() const
Definition Flux.h:90
bool HasModifier() const
Definition Flux.h:187
double * GetChangeRatePointer()
Definition Flux.h:63
double * GetAmountPointer()
Definition Flux.h:72
void SetFractionLandCover(double value)
Definition Flux.h:143
ContentType GetType() const
Definition Flux.h:160
void SetType(const ContentType type)
Definition Flux.h:169
bool IsStatic() const
Definition Flux.h:106
void SetFractionUnitArea(double value)
Definition Flux.h:133
virtual bool IsValid() const =0
virtual void Validate() const
Definition Flux.cpp:28
void UpdateFractionTotal()
Definition Flux.h:151
void SetAsStatic()
Definition Flux.h:97
virtual double GetAmount()=0
void NeedsWeighting(bool value)
Definition Flux.h:124