6#include "roo_logging.h"
10#if defined(ESP32) || defined(ESP8266) || defined(__linux__)
30 return volumic_number_ * 0.000000001f;
47 return volumic_number_ * 1000000.0f;
58 return volumic_number_ * 0.000001f;
63 return volumic_number_ * 0.000000001f;
68 return volumic_number_ * 1000000000.0f;
81 bool isUnknown()
const {
return std::isnan(volumic_number_); }
84 return volumic_number_ < other.volumic_number_;
88 return volumic_number_ == other.volumic_number_;
92 return other.volumic_number_ < volumic_number_;
96 return !(other.volumic_number_ < volumic_number_);
100 return !(volumic_number_ < other.volumic_number_);
104 return !(volumic_number_ == other.volumic_number_);
108 volumic_number_ *= multi;
113 volumic_number_ /= div;
117#if defined(ESP32) || defined(ESP8266) || defined(__linux__)
119 std::string asString()
const;
123 String asArduinoString()
const;
132 : volumic_number_(volumic_number) {}
135 float volumic_number_;
147 float volumic_number) {
154 float volumic_number) {
161 float volumic_number) {
174 float volumic_number) {
181 float volumic_number) {
188 float volumic_number) {
201 float volumic_number) {
208 float volumic_number) {
215 float volumic_number) {
277roo_logging::Stream&
operator<<(roo_logging::Stream& os,
278 const VolumicNumber& 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...
Representation of volume, internally stored as floating-point cubic meters.
float inCubicMeters() const
Returns the volume in cubic meters.
Representation of volumic number, a reciprocal of volume, internally stored as floating-point units p...
bool operator>=(const VolumicNumber &other) const
float inUnitsPerCubicYard() const
Returns the volumic number in units per cubic yard.
VolumicNumber()
Creates an volumic number object representing an 'unknown' volumic number.
VolumicNumber & operator/=(float div)
bool isUnknown() const
Returns whether the object represents an unknown volumic number.
bool operator==(const VolumicNumber &other) const
float inUnitsPerCubicFoot() const
Returns the volumic number in units per cubic foot.
bool operator>(const VolumicNumber &other) const
float inMicroUnitsPerCubicMeter() const
Returns the volumic number in micro-units per cubic meter.
float inMegaUnitsPerCubicMeter() const
Returns the volumic number in Mega-units per cubic meter.
float inUnitsPerCubicMeter() const
Returns the volumic number in units per cubic meter.
bool operator<=(const VolumicNumber &other) const
float inMilliUnitsPerCubicMeter() const
Returns the volumic number in milli-units per cubic meter.
bool operator<(const VolumicNumber &other) const
VolumicNumber & operator*=(float multi)
float inUnitsPerCubicMillimeter() const
Returns the volumic number in units per cubic millimeter.
float inGigaUnitsPerCubicMeter() const
Returns the volumic number in GigaUnitsPerCubicMeter.
float inUnitsPerCubicCentimeter() const
Returns the volumic number in units per cubic centimeter.
float inUnitsPerLiter() const
Returns the volumic number in units per cubic decimeter (liter).
friend VolumicNumber VolumicNumberInUnitsPerCubicMeter(float)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
float inUnitsPerCubicDecimeter() const
Returns the volumic number in units per cubic decimeter (liter).
bool operator!=(const VolumicNumber &other) const
float inUnitsPerCubicInch() const
Returns the volumic number in units per cubic inch.
float inUnitsPerCubicKilometer() const
Returns the volumic number in units per cubic kilometer.
friend VolumicNumber UnknownVolumicNumber()
Returns a volumic number object representing an unknown volumic number.
float inKiloUnitsPerCubicMeter() const
Returns the volumic number in kilo-units per cubic meter.
For convenience conversion from roo_time::Duration.
VolumicNumber VolumicNumberInKiloUnitsPerCubicMeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in kilo-units pe...
roo_logging::Stream & operator<<(roo_logging::Stream &os, const Area &val)
VolumicNumber VolumicNumberInUnitsPerCubicMeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
VolumicNumber VolumicNumberInGigaUnitsPerCubicMeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in giga-units pe...
VolumicNumber VolumicNumberInUnitsPerCubicCentimeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
VolumicNumber VolumicNumberInMilliUnitsPerCubicMeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in milli-units p...
VolumicNumber VolumicNumberInUnitsPerCubicKilometer(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
Volume VolumeInCubicMeters(float volume)
Returns a volume object equivalent to the specified volume expressed in cubic meters.
VolumicNumber VolumicNumberInUnitsPerCubicInch(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
VolumicNumber VolumicNumberInUnitsPerLiter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
LineicNumber LineicNumberInUnitsPerMeter(float lineic_number)
Returns a lineic number object equivalent to the specified lineic number expressed in units per meter...
VolumicNumber VolumicNumberInUnitsPerCubicYard(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
Area operator/(Area a, float b)
VolumicNumber VolumicNumberInMegaUnitsPerCubicMeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in mega-units pe...
VolumicNumber VolumicNumberInUnitsPerCubicMillimeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
Area operator*(Area a, float b)
VolumicNumber VolumicNumberInUnitsPerCubicDecimeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
VolumicNumber UnknownVolumicNumber()
Returns a volumic number object representing an unknown volumic number.
VolumicNumber VolumicNumberInUnitsPerCubicFoot(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in units per cub...
VolumicNumber VolumicNumberInMicroUnitsPerCubicMeter(float volumic_number)
Returns a volumic number object equivalent to the specified volumic number expressed in micro-units p...