Go to the documentation of this file.
25 #include "spdlog/fmt/ostr.h"
26 #include "spdlog/spdlog.h"
45 #define AD_MAP_POINT_ALTITUDE_THROWS_EXCEPTION 1
47 #if SAFE_DATATYPES_EXPLICIT_CONVERSION
51 #define _AD_MAP_POINT_ALTITUDE_EXPLICIT_CONVERSION_ explicit
56 #define _AD_MAP_POINT_ALTITUDE_EXPLICIT_CONVERSION_
93 : mAltitude(std::numeric_limits<double>::quiet_NaN())
103 : mAltitude(iAltitude)
174 return (mAltitude > other.mAltitude) &&
operator!=(other);
190 return (mAltitude < other.mAltitude) &&
operator!=(other);
206 return ((mAltitude > other.mAltitude) ||
operator==(other));
222 return ((mAltitude < other.mAltitude) ||
operator==(other));
239 Altitude const result(mAltitude + other.mAltitude);
258 mAltitude += other.mAltitude;
277 Altitude const result(mAltitude - other.mAltitude);
296 mAltitude -= other.mAltitude;
314 Altitude const result(mAltitude * scalar);
331 Altitude const scalarAltitude(scalar);
332 Altitude const result(
operator/(scalarAltitude));
352 double const result = mAltitude / other.mAltitude;
392 auto const valueClass = std::fpclassify(mAltitude);
393 return ((valueClass == FP_NORMAL) || (valueClass == FP_ZERO)) && (
cMinValue <= mAltitude)
407 spdlog::info(
"ensureValid(::ad::map::point::Altitude)>> {} value out of range", *
this);
408 #if (AD_MAP_POINT_ALTITUDE_THROWS_EXCEPTION == 1)
409 throw std::out_of_range(
"Altitude value out of range");
425 spdlog::info(
"ensureValid(::ad::map::point::Altitude)>> {} value is zero", *
this);
426 #if (AD_MAP_POINT_ALTITUDE_THROWS_EXCEPTION == 1)
427 throw std::out_of_range(
"Altitude value is zero");
479 return value.operator*(other);
490 inline ::ad::map::point::Altitude
fabs(const ::ad::map::point::Altitude other)
510 static inline ::ad::map::point::Altitude
lowest()
512 return ::ad::map::point::Altitude::getMin();
517 static inline ::ad::map::point::Altitude
max()
519 return ::ad::map::point::Altitude::getMax();
525 static inline ::ad::map::point::Altitude
epsilon()
527 return ::ad::map::point::Altitude::getPrecision();
536 #ifndef GEN_GUARD_AD_MAP_POINT_ALTITUDE
537 #define GEN_GUARD_AD_MAP_POINT_ALTITUDE
564 return os << double(_value);
577 return to_string(
static_cast<double>(value));
580 #endif // GEN_GUARD_AD_MAP_POINT_ALTITUDE
namespace ad
Definition: GeometryStoreItem.hpp:28
bool operator<=(const Altitude &other) const
standard comparison operator
Definition: Altitude.hpp:218
std::ostream & operator<<(std::ostream &os, Altitude const &_value)
standard ostream operator
Definition: Altitude.hpp:562
double operator/(const Altitude &other) const
standard arithmetic operator
Definition: Altitude.hpp:348
static const double cPrecisionValue
constant defining the assumed Altitude value accuracy (used in comparison operator==(),...
Definition: Altitude.hpp:84
Altitude operator*(const double &scalar) const
standard arithmetic operator
Definition: Altitude.hpp:311
static Altitude getMin()
get minimum valid Altitude (i.e. cMinValue)
Definition: Altitude.hpp:435
Altitude operator/(const double &scalar) const
standard arithmetic operator
Definition: Altitude.hpp:329
Altitude & operator=(const Altitude &other)=default
standard assignment operator
Altitude & operator+=(const Altitude &other)
standard arithmetic operator
Definition: Altitude.hpp:254
void ensureValidNonZero() const
ensure that the Altitude is valid and non zero
Definition: Altitude.hpp:420
inline ::ad::map::point::Longitude fabs(const ::ad::map::point::Longitude other)
overload of the std::fabs for Longitude
Definition: Longitude.hpp:488
#define _AD_MAP_POINT_ALTITUDE_EXPLICIT_CONVERSION_
Enable/Disable explicit conversion. Currently set to "implicit conversion allowed".
Definition: Altitude.hpp:56
std::string to_string(::ad::map::access::GeometryStoreItem const &value)
overload of the std::to_string for GeometryStoreItem
Definition: GeometryStoreItem.hpp:183
Altitude()
default constructor
Definition: Altitude.hpp:92
bool isValid() const
Definition: Altitude.hpp:390
bool operator>(const Altitude &other) const
standard comparison operator
Definition: Altitude.hpp:170
Altitude operator-() const
standard arithmetic operator
Definition: Altitude.hpp:364
static const double cMinValue
constant defining the minimum valid Altitude value (used in isValid())
Definition: Altitude.hpp:73
static inline ::ad::map::point::Altitude epsilon()
Definition: Altitude.hpp:525
static Altitude getPrecision()
get assumed accuracy of Altitude (i.e. cPrecisionValue)
Definition: Altitude.hpp:451
bool operator<(const Altitude &other) const
standard comparison operator
Definition: Altitude.hpp:186
static inline ::ad::map::point::Altitude max()
Definition: Altitude.hpp:517
Altitude operator-=(const Altitude &other)
standard arithmetic operator
Definition: Altitude.hpp:292
bool operator!=(const Altitude &other) const
standard comparison operator
Definition: Altitude.hpp:156
inline ::ad::map::point::Altitude operator*(const double &other, ::ad::map::point::Altitude const &value)
standard arithmetic operator
Definition: Altitude.hpp:477
bool operator>=(const Altitude &other) const
standard comparison operator
Definition: Altitude.hpp:202
static Altitude getMax()
get maximum valid Altitude (i.e. cMaxValue)
Definition: Altitude.hpp:443
Altitude operator-(const Altitude &other) const
standard arithmetic operator
Definition: Altitude.hpp:273
DataType Altitude.
Definition: Altitude.hpp:67
static inline ::ad::map::point::Altitude lowest()
Definition: Altitude.hpp:510
void ensureValid() const
ensure that the Altitude is valid
Definition: Altitude.hpp:403
static const double cMaxValue
constant defining the maximum valid Altitude value (used in isValid())
Definition: Altitude.hpp:78
Altitude operator+(const Altitude &other) const
standard arithmetic operator
Definition: Altitude.hpp:235
_AD_MAP_POINT_ALTITUDE_EXPLICIT_CONVERSION_ Altitude(double const iAltitude)
standard constructor
Definition: Altitude.hpp:102
bool operator==(const Altitude &other) const
standard comparison operator
Definition: Altitude.hpp:142
inline ::ad::map::point::Altitude fabs(const ::ad::map::point::Altitude other)
overload of the std::fabs for Altitude
Definition: Altitude.hpp:490