Go to the documentation of this file.
25 #include "spdlog/fmt/ostr.h"
26 #include "spdlog/spdlog.h"
45 #define AD_MAP_POINT_ENUCOORDINATE_THROWS_EXCEPTION 1
47 #if SAFE_DATATYPES_EXPLICIT_CONVERSION
51 #define _AD_MAP_POINT_ENUCOORDINATE_EXPLICIT_CONVERSION_ explicit
56 #define _AD_MAP_POINT_ENUCOORDINATE_EXPLICIT_CONVERSION_
91 : mENUCoordinate(std::numeric_limits<double>::quiet_NaN())
101 : mENUCoordinate(iENUCoordinate)
144 return std::fabs(mENUCoordinate - other.mENUCoordinate) <
cPrecisionValue;
172 return (mENUCoordinate > other.mENUCoordinate) &&
operator!=(other);
188 return (mENUCoordinate < other.mENUCoordinate) &&
operator!=(other);
204 return ((mENUCoordinate > other.mENUCoordinate) ||
operator==(other));
220 return ((mENUCoordinate < other.mENUCoordinate) ||
operator==(other));
237 ENUCoordinate const result(mENUCoordinate + other.mENUCoordinate);
256 mENUCoordinate += other.mENUCoordinate;
275 ENUCoordinate const result(mENUCoordinate - other.mENUCoordinate);
294 mENUCoordinate -= other.mENUCoordinate;
350 double const result = mENUCoordinate / other.mENUCoordinate;
378 return mENUCoordinate;
390 auto const valueClass = std::fpclassify(mENUCoordinate);
391 return ((valueClass == FP_NORMAL) || (valueClass == FP_ZERO)) && (
cMinValue <= mENUCoordinate)
405 spdlog::info(
"ensureValid(::ad::map::point::ENUCoordinate)>> {} value out of range", *
this);
406 #if (AD_MAP_POINT_ENUCOORDINATE_THROWS_EXCEPTION == 1)
407 throw std::out_of_range(
"ENUCoordinate value out of range");
423 spdlog::info(
"ensureValid(::ad::map::point::ENUCoordinate)>> {} value is zero", *
this);
424 #if (AD_MAP_POINT_ENUCOORDINATE_THROWS_EXCEPTION == 1)
425 throw std::out_of_range(
"ENUCoordinate value is zero");
458 double mENUCoordinate;
477 return value.operator*(other);
488 inline ::ad::map::point::ENUCoordinate
fabs(const ::ad::map::point::ENUCoordinate other)
508 static inline ::ad::map::point::ENUCoordinate
lowest()
510 return ::ad::map::point::ENUCoordinate::getMin();
515 static inline ::ad::map::point::ENUCoordinate
max()
517 return ::ad::map::point::ENUCoordinate::getMax();
523 static inline ::ad::map::point::ENUCoordinate
epsilon()
525 return ::ad::map::point::ENUCoordinate::getPrecision();
534 #ifndef GEN_GUARD_AD_MAP_POINT_ENUCOORDINATE
535 #define GEN_GUARD_AD_MAP_POINT_ENUCOORDINATE
562 return os << double(_value);
575 return to_string(
static_cast<double>(value));
578 #endif // GEN_GUARD_AD_MAP_POINT_ENUCOORDINATE
namespace ad
Definition: GeometryStoreItem.hpp:28
static ENUCoordinate getMax()
get maximum valid ENUCoordinate (i.e. cMaxValue)
Definition: ENUCoordinate.hpp:441
bool operator<=(const ENUCoordinate &other) const
standard comparison operator
Definition: ENUCoordinate.hpp:216
std::ostream & operator<<(std::ostream &os, Altitude const &_value)
standard ostream operator
Definition: Altitude.hpp:562
bool operator==(const ENUCoordinate &other) const
standard comparison operator
Definition: ENUCoordinate.hpp:140
ENUCoordinate operator/(const double &scalar) const
standard arithmetic operator
Definition: ENUCoordinate.hpp:327
ENUCoordinate operator-=(const ENUCoordinate &other)
standard arithmetic operator
Definition: ENUCoordinate.hpp:290
ENUCoordinate operator-() const
standard arithmetic operator
Definition: ENUCoordinate.hpp:362
ENUCoordinate operator-(const ENUCoordinate &other) const
standard arithmetic operator
Definition: ENUCoordinate.hpp:271
static const double cMaxValue
constant defining the maximum valid ENUCoordinate value (used in isValid())
Definition: ENUCoordinate.hpp:76
static ENUCoordinate getPrecision()
get assumed accuracy of ENUCoordinate (i.e. cPrecisionValue)
Definition: ENUCoordinate.hpp:449
ENUCoordinate operator+(const ENUCoordinate &other) const
standard arithmetic operator
Definition: ENUCoordinate.hpp:233
void ensureValidNonZero() const
ensure that the ENUCoordinate is valid and non zero
Definition: ENUCoordinate.hpp:418
static const double cMinValue
constant defining the minimum valid ENUCoordinate value (used in isValid())
Definition: ENUCoordinate.hpp:71
#define _AD_MAP_POINT_ENUCOORDINATE_EXPLICIT_CONVERSION_
Enable/Disable explicit conversion. Currently set to "implicit conversion allowed".
Definition: ENUCoordinate.hpp:56
inline ::ad::map::point::Longitude fabs(const ::ad::map::point::Longitude other)
overload of the std::fabs for Longitude
Definition: Longitude.hpp:488
double operator/(const ENUCoordinate &other) const
standard arithmetic operator
Definition: ENUCoordinate.hpp:346
static inline ::ad::map::point::ENUCoordinate max()
Definition: ENUCoordinate.hpp:515
inline ::ad::map::point::ENUCoordinate operator*(const double &other, ::ad::map::point::ENUCoordinate const &value)
standard arithmetic operator
Definition: ENUCoordinate.hpp:475
std::string to_string(::ad::map::access::GeometryStoreItem const &value)
overload of the std::to_string for GeometryStoreItem
Definition: GeometryStoreItem.hpp:183
ENUCoordinate()
default constructor
Definition: ENUCoordinate.hpp:90
ENUCoordinate & operator=(const ENUCoordinate &other)=default
standard assignment operator
_AD_MAP_POINT_ENUCOORDINATE_EXPLICIT_CONVERSION_ ENUCoordinate(double const iENUCoordinate)
standard constructor
Definition: ENUCoordinate.hpp:100
static inline ::ad::map::point::ENUCoordinate lowest()
Definition: ENUCoordinate.hpp:508
void ensureValid() const
ensure that the ENUCoordinate is valid
Definition: ENUCoordinate.hpp:401
bool operator!=(const ENUCoordinate &other) const
standard comparison operator
Definition: ENUCoordinate.hpp:154
static const double cPrecisionValue
constant defining the assumed ENUCoordinate value accuracy (used in comparison operator==(),...
Definition: ENUCoordinate.hpp:82
static ENUCoordinate getMin()
get minimum valid ENUCoordinate (i.e. cMinValue)
Definition: ENUCoordinate.hpp:433
bool operator<(const ENUCoordinate &other) const
standard comparison operator
Definition: ENUCoordinate.hpp:184
bool isValid() const
Definition: ENUCoordinate.hpp:388
static inline ::ad::map::point::ENUCoordinate epsilon()
Definition: ENUCoordinate.hpp:523
bool operator>(const ENUCoordinate &other) const
standard comparison operator
Definition: ENUCoordinate.hpp:168
ENUCoordinate operator*(const double &scalar) const
standard arithmetic operator
Definition: ENUCoordinate.hpp:309
ENUCoordinate & operator+=(const ENUCoordinate &other)
standard arithmetic operator
Definition: ENUCoordinate.hpp:252
bool operator>=(const ENUCoordinate &other) const
standard comparison operator
Definition: ENUCoordinate.hpp:200
inline ::ad::map::point::Altitude fabs(const ::ad::map::point::Altitude other)
overload of the std::fabs for Altitude
Definition: Altitude.hpp:490
DataType ENUCoordinate.
Definition: ENUCoordinate.hpp:65