14 #include <biogears/cdm/circuit/SECircuit.inl>
15 #include <biogears/cdm/properties/SEProperty.h>
16 #include <biogears/cdm/utils/unitconversion/UCCommon.h>
18 CDM_BIND_DECL(ScalarData)
21 class SEGenericScalar;
28 virtual ~
NoUnit() =
default;
69 bool IsPositive()
const;
70 bool IsNegative()
const;
71 bool IsZero(
double limit = ZERO_APPROX)
const;
73 void SetReadOnly(
bool b);
74 bool IsReadOnly()
const;
76 virtual double GetValue()
const;
77 virtual void SetValue(
double d);
80 double IncrementValue(
double d);
82 double DecrementValue(
double d);
84 double MultiplyValue(
double d);
86 double DivideValue(
double d);
88 bool Equals(
const SEScalar& to)
const;
90 virtual void ToString(std::ostream& str)
const;
94 static bool IsZero(
double value,
double limit);
95 static bool IsValue(
double target,
double value);
131 inline std::ostream& operator<<(std::ostream& out,
const SEScalar* s)
134 out << SEScalar::NaN << std::flush;
140 inline std::ostream& operator<<(std::ostream& out,
const SEScalar& s)
bool operator>=(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:127
static constexpr double ZERO_APPROX
Definition: SEScalar.h:23
bool operator<=(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:125
bool IsReadOnly() const
Definition: SEScalar.cpp:177
bool m_readOnly
Definition: SEScalar.h:36
Definition: SEProperty.h:19
Definition: SEScalar.h:33
void Copy(const std::vector< T * > &from, std::vector< T * > &to)
Definition: Macros.h:69
void Override(const SEScalar &from, SEScalar &to)
Definition: SEScalar.h:145
virtual void ToString(std::ostream &str) const
Definition: SEScalar.cpp:293
static double NaN
Definition: SEScalar.h:93
SEScalar operator+(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:120
virtual void Invalidate()=0
static const std::string unitless
Definition: SEScalar.h:97
double Multiply(const SEScalar &s)
Definition: SEScalar.cpp:241
CPScalar & operator*=(CPScalar &lhs, const T &rhs)
Definition: PScalar.h:376
bool Set(const SEScalar &s)
Definition: SEScalar.cpp:96
virtual void Unload(CDM::PropertyData &data) const
Definition: SEProperty.cpp:35
double Decrement(const SEScalar &s)
Definition: SEScalar.cpp:227
bool operator!=(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:129
SEScalar operator/(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:122
void ValueOverride(SEScalar &s, double value)
Definition: SEScalar.h:154
SEScalar operator*(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:123
Class corresponding to the ScalarData schema type.
Definition: Properties.hxx:3007
virtual void Clear()
Definition: SEProperty.cpp:26
virtual bool IsValid() const =0
double Increment(const SEScalar &s)
Definition: SEScalar.cpp:207
bool operator==(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:128
bool operator!=(const SEScalar &rhs) const
Definition: SEScalar.h:105
bool operator==(const SEScalar &rhs) const
Definition: SEScalar.h:104
bool operator>(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:126
Definition: SEScalar.h:25
virtual void SetValue(double d)
Definition: SEScalar.cpp:194
virtual bool Load(const CDM::PropertyData &in)
Definition: SEProperty.cpp:30
bool operator<(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:124
static const NoUnit unitless
Definition: SEScalar.h:30
CPScalar & operator/=(CPScalar &lhs, const T &rhs)
Definition: PScalar.h:396
SEScalar operator-(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:121
void SetReadOnly(bool b)
Definition: SEScalar.cpp:172
Definition: SEElectricalCircuit.h:18
void IncrementOverride(SEScalar &s, double value)
Definition: SEScalar.h:162
double m_value
Definition: SEScalar.h:35
double Divide(const SEScalar &s)
Definition: SEScalar.cpp:260
double IncrementValue(double d)
Definition: SEScalar.cpp:217
bool IsInfinity() const
Definition: SEScalar.h:67