6#include "roo_logging.h"
9#if defined(ESP32) || defined(ESP8266) || defined(__linux__)
67 bool isUnknown()
const {
return std::isnan(lineic_number_); }
70 return lineic_number_ < other.lineic_number_;
74 return lineic_number_ == other.lineic_number_;
78 return other.lineic_number_ < lineic_number_;
82 return !(other.lineic_number_ < lineic_number_);
86 return !(lineic_number_ < other.lineic_number_);
90 return !(lineic_number_ == other.lineic_number_);
94 lineic_number_ *= multi;
99 lineic_number_ /= div;
103#if defined(ESP32) || defined(ESP8266) || defined(__linux__)
105 std::string asString()
const;
109 String asArduinoString()
const;
117 explicit LineicNumber(
float lineic_number) : lineic_number_(lineic_number) {}
120 float lineic_number_;
233roo_logging::Stream&
operator<<(roo_logging::Stream& os,
234 const LineicNumber& val);
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...
float inUnitsPerCentimeter() const
Returns the lineic number in units per centimeter.
bool operator==(const LineicNumber &other) const
friend LineicNumber UnknownLineicNumber()
Returns a lineic number object representing an unknown lineic number.
LineicNumber()
Creates a lineic number object representing an 'unknown' lineic number.
float inDPI() const
Returns the lineic number in units per inch (DPI).
bool operator<(const LineicNumber &other) const
friend LineicNumber LineicNumberInUnitsPerMeter(float)
Returns a lineic number object equivalent to the specified lineic number expressed in units per meter...
float inUnitsPerKilometer() const
Returns the lineic number in units per kilometer.
bool isUnknown() const
Returns whether the object represents an unknown lineic number.
float inUnitsPerFoot() const
Returns the lineic number in units per foot.
float inUnitsPerInch() const
Returns the lineic number in units per inch (DPI).
float inGigaUnitsPerMeter() const
Returns the lineic number in GigaUnitsPerMeter.
float inUnitsPerMillimeter() const
Returns the lineic number in units per millimeter.
LineicNumber & operator/=(float div)
bool operator>=(const LineicNumber &other) const
float inMicroUnitsPerMeter() const
Returns the lineic number in micro-units per meter.
float inMegaUnitsPerMeter() const
Returns the lineic number in Mega-units per meter.
bool operator>(const LineicNumber &other) const
float inMilliUnitsPerMeter() const
Returns the lineic number in milli-units per meter.
bool operator!=(const LineicNumber &other) const
LineicNumber & operator*=(float multi)
float inUnitsPerYard() const
Returns the lineic number in units per yard.
float inKiloUnitsPerMeter() const
Returns the lineic number in kilo-units per meter.
bool operator<=(const LineicNumber &other) const
float inUnitsPerMeter() const
Returns the lineic number in units per meter.
For convenience conversion from roo_time::Duration.
LineicNumber UnknownLineicNumber()
Returns a lineic number object representing an unknown lineic number.
Length LengthInMeters(float length)
Returns a length object equivalent to the specified length expressed in meters.
roo_logging::Stream & operator<<(roo_logging::Stream &os, const Area &val)
LineicNumber LineicNumberInUnitsPerMillimeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per milli...
LineicNumber LineicNumberInMilliUnitsPerMeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in milli-units per...
LineicNumber LineicNumberInUnitsPerKilometer(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per kilom...
LineicNumber LineicNumberInMicroUnitsPerMeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in micro-units per...
LineicNumber LineicNumberInUnitsPerMeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per meter...
LineicNumber LineicNumberInMegaUnitsPerMeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in mega-units per ...
LineicNumber LineicNumberInUnitsPerYard(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per yard.
LineicNumber LineicNumberInUnitsPerInch(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per inch.
LineicNumber LineicNumberInGigaUnitsPerMeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in giga-units per ...
LineicNumber LineicNumberInUnitsPerCentimeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per centi...
LineicNumber LineicNumberInUnitsPerFoot(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per foot.
LineicNumber LineicNumberInKiloUnitsPerMeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in kilo-units per ...
Area operator/(Area a, float b)
Area operator*(Area a, float b)