6#include "roo_logging.h"
10#if defined(ESP32) || defined(ESP8266) || defined(__linux__)
30 return areic_number_ * 0.000000001f;
47 return areic_number_ * 1000000.0f;
69 bool isUnknown()
const {
return std::isnan(areic_number_); }
72 return areic_number_ < other.areic_number_;
76 return areic_number_ == other.areic_number_;
80 return other.areic_number_ < areic_number_;
84 return !(other.areic_number_ < areic_number_);
88 return !(areic_number_ < other.areic_number_);
92 return !(areic_number_ == other.areic_number_);
96 areic_number_ *= multi;
101 areic_number_ /= div;
105#if defined(ESP32) || defined(ESP8266) || defined(__linux__)
107 std::string asString()
const;
111 String asArduinoString()
const;
119 explicit AreicNumber(
float areic_number) : areic_number_(areic_number) {}
243roo_logging::Stream&
operator<<(roo_logging::Stream& os,
244 const AreicNumber& val);
Representation of area, internally stored as floating-point square meters.
float inSquareMeters() const
Returns the area in square meters.
Representation of areic number, a reciprocal of area, internally stored as floating-point units per s...
friend AreicNumber UnknownAreicNumber()
Returns a areic number object representing an unknown areic number.
bool operator!=(const AreicNumber &other) const
float inUnitsPerSquareInch() const
Returns the areic number in units per square inch.
bool operator==(const AreicNumber &other) const
float inMilliUnitsPerSquareMeter() const
Returns the areic number in milli-units per square meter.
float inMegaUnitsPerSquareMeter() const
Returns the areic number in Mega-units per square meter.
float inUnitsPerSquareCentimeter() const
Returns the areic number in units per square centimeter.
AreicNumber()
Creates an areic number object representing an 'unknown' areic number.
friend AreicNumber AreicNumberInUnitsPerSquareMeter(float)
Returns a areic number object equivalent to the specified areic number expressed in units per square ...
bool operator<(const AreicNumber &other) const
AreicNumber & operator/=(float div)
float inUnitsPerSquareKilometer() const
Returns the areic number in units per square kilometer.
float inKiloUnitsPerSquareMeter() const
Returns the areic number in kilo-units per square meter.
float inUnitsPerSquareMillimeter() const
Returns the areic number in units per square millimeter.
float inMicroUnitsPerSquareMeter() const
Returns the areic number in micro-units per square meter.
float inUnitsPerSquareFoot() const
Returns the areic number in units per square foot.
float inUnitsPerSquareMeter() const
Returns the areic number in units per square meter.
float inGigaUnitsPerSquareMeter() const
Returns the areic number in GigaUnitsPerSquareMeter.
AreicNumber & operator*=(float multi)
bool operator>=(const AreicNumber &other) const
bool isUnknown() const
Returns whether the object represents an unknown areic number.
bool operator<=(const AreicNumber &other) const
float inUnitsPerSquareYard() const
Returns the areic number in units per square yard.
bool operator>(const AreicNumber &other) const
Representation of length, internally stored as floating-point meters.
float inMeters() const
Returns the length in meters.
Representation of lineic number, a reciprocal of length, internally stored as floating-point units pe...
For convenience conversion from roo_time::Duration.
AreicNumber UnknownAreicNumber()
Returns a areic number object representing an unknown areic number.
AreicNumber AreicNumberInGigaUnitsPerSquareMeter(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in giga-units per sq...
roo_logging::Stream & operator<<(roo_logging::Stream &os, const Area &val)
AreicNumber AreicNumberInUnitsPerSquareFoot(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in units per square ...
AreicNumber AreicNumberInKiloUnitsPerSquareMeter(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in kilo-units per sq...
Area AreaInSquareMeters(float area)
Returns a area object equivalent to the specified area expressed in square meters.
AreicNumber AreicNumberInUnitsPerSquareMeter(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in units per square ...
AreicNumber AreicNumberInUnitsPerSquareYard(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in units per square ...
AreicNumber AreicNumberInUnitsPerSquareCentimeter(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in units per square ...
LineicNumber LineicNumberInUnitsPerMeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per meter...
AreicNumber AreicNumberInUnitsPerSquareMillimeter(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in units per square ...
AreicNumber AreicNumberInMegaUnitsPerSquareMeter(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in mega-units per sq...
AreicNumber AreicNumberInMilliUnitsPerSquareMeter(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in milli-units per s...
AreicNumber AreicNumberInUnitsPerSquareKilometer(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in units per square ...
Area operator/(Area a, float b)
Area operator*(Area a, float b)
AreicNumber AreicNumberInUnitsPerSquareInch(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in units per square ...
AreicNumber AreicNumberInMicroUnitsPerSquareMeter(float areic_number)
Returns a areic number object equivalent to the specified areic number expressed in micro-units per s...