Go to the documentation of this file.
25 #include "spdlog/fmt/ostr.h"
26 #include "spdlog/spdlog.h"
45 #define AD_MAP_POINT_ECEFCOORDINATE_THROWS_EXCEPTION 1
47 #if SAFE_DATATYPES_EXPLICIT_CONVERSION
51 #define _AD_MAP_POINT_ECEFCOORDINATE_EXPLICIT_CONVERSION_ explicit
56 #define _AD_MAP_POINT_ECEFCOORDINATE_EXPLICIT_CONVERSION_
94 : mECEFCoordinate(std::numeric_limits<double>::quiet_NaN())
104 : mECEFCoordinate(iECEFCoordinate)
147 return std::fabs(mECEFCoordinate - other.mECEFCoordinate) <
cPrecisionValue;
175 return (mECEFCoordinate > other.mECEFCoordinate) &&
operator!=(other);
191 return (mECEFCoordinate < other.mECEFCoordinate) &&
operator!=(other);
207 return ((mECEFCoordinate > other.mECEFCoordinate) ||
operator==(other));
223 return ((mECEFCoordinate < other.mECEFCoordinate) ||
operator==(other));
240 ECEFCoordinate const result(mECEFCoordinate + other.mECEFCoordinate);
259 mECEFCoordinate += other.mECEFCoordinate;
278 ECEFCoordinate const result(mECEFCoordinate - other.mECEFCoordinate);
297 mECEFCoordinate -= other.mECEFCoordinate;
353 double const result = mECEFCoordinate / other.mECEFCoordinate;
381 return mECEFCoordinate;
393 auto const valueClass = std::fpclassify(mECEFCoordinate);
394 return ((valueClass == FP_NORMAL) || (valueClass == FP_ZERO)) && (
cMinValue <= mECEFCoordinate)
408 spdlog::info(
"ensureValid(::ad::map::point::ECEFCoordinate)>> {} value out of range", *
this);
409 #if (AD_MAP_POINT_ECEFCOORDINATE_THROWS_EXCEPTION == 1)
410 throw std::out_of_range(
"ECEFCoordinate value out of range");
426 spdlog::info(
"ensureValid(::ad::map::point::ECEFCoordinate)>> {} value is zero", *
this);
427 #if (AD_MAP_POINT_ECEFCOORDINATE_THROWS_EXCEPTION == 1)
428 throw std::out_of_range(
"ECEFCoordinate value is zero");
461 double mECEFCoordinate;
480 return value.operator*(other);
491 inline ::ad::map::point::ECEFCoordinate
fabs(const ::ad::map::point::ECEFCoordinate other)
511 static inline ::ad::map::point::ECEFCoordinate
lowest()
513 return ::ad::map::point::ECEFCoordinate::getMin();
518 static inline ::ad::map::point::ECEFCoordinate
max()
520 return ::ad::map::point::ECEFCoordinate::getMax();
526 static inline ::ad::map::point::ECEFCoordinate
epsilon()
528 return ::ad::map::point::ECEFCoordinate::getPrecision();
537 #ifndef GEN_GUARD_AD_MAP_POINT_ECEFCOORDINATE
538 #define GEN_GUARD_AD_MAP_POINT_ECEFCOORDINATE
565 return os << double(_value);
578 return to_string(
static_cast<double>(value));
581 #endif // GEN_GUARD_AD_MAP_POINT_ECEFCOORDINATE
namespace ad
Definition: GeometryStoreItem.hpp:28
bool operator>(const ECEFCoordinate &other) const
standard comparison operator
Definition: ECEFCoordinate.hpp:171
ECEFCoordinate operator-=(const ECEFCoordinate &other)
standard arithmetic operator
Definition: ECEFCoordinate.hpp:293
std::ostream & operator<<(std::ostream &os, Altitude const &_value)
standard ostream operator
Definition: Altitude.hpp:562
ECEFCoordinate & operator=(const ECEFCoordinate &other)=default
standard assignment operator
static ECEFCoordinate getMax()
get maximum valid ECEFCoordinate (i.e. cMaxValue)
Definition: ECEFCoordinate.hpp:444
static inline ::ad::map::point::ECEFCoordinate max()
Definition: ECEFCoordinate.hpp:518
bool operator==(const ECEFCoordinate &other) const
standard comparison operator
Definition: ECEFCoordinate.hpp:143
ECEFCoordinate operator+(const ECEFCoordinate &other) const
standard arithmetic operator
Definition: ECEFCoordinate.hpp:236
ECEFCoordinate operator-() const
standard arithmetic operator
Definition: ECEFCoordinate.hpp:365
double operator/(const ECEFCoordinate &other) const
standard arithmetic operator
Definition: ECEFCoordinate.hpp:349
static const double cPrecisionValue
constant defining the assumed ECEFCoordinate value accuracy (used in comparison operator==(),...
Definition: ECEFCoordinate.hpp:85
bool operator>=(const ECEFCoordinate &other) const
standard comparison operator
Definition: ECEFCoordinate.hpp:203
inline ::ad::map::point::Longitude fabs(const ::ad::map::point::Longitude other)
overload of the std::fabs for Longitude
Definition: Longitude.hpp:488
std::string to_string(::ad::map::access::GeometryStoreItem const &value)
overload of the std::to_string for GeometryStoreItem
Definition: GeometryStoreItem.hpp:183
ECEFCoordinate operator/(const double &scalar) const
standard arithmetic operator
Definition: ECEFCoordinate.hpp:330
DataType ECEFCoordinate.
Definition: ECEFCoordinate.hpp:68
static inline ::ad::map::point::ECEFCoordinate lowest()
Definition: ECEFCoordinate.hpp:511
bool operator!=(const ECEFCoordinate &other) const
standard comparison operator
Definition: ECEFCoordinate.hpp:157
#define _AD_MAP_POINT_ECEFCOORDINATE_EXPLICIT_CONVERSION_
Enable/Disable explicit conversion. Currently set to "implicit conversion allowed".
Definition: ECEFCoordinate.hpp:56
bool operator<(const ECEFCoordinate &other) const
standard comparison operator
Definition: ECEFCoordinate.hpp:187
bool isValid() const
Definition: ECEFCoordinate.hpp:391
ECEFCoordinate operator-(const ECEFCoordinate &other) const
standard arithmetic operator
Definition: ECEFCoordinate.hpp:274
ECEFCoordinate()
default constructor
Definition: ECEFCoordinate.hpp:93
static inline ::ad::map::point::ECEFCoordinate epsilon()
Definition: ECEFCoordinate.hpp:526
static const double cMaxValue
constant defining the maximum valid ECEFCoordinate value (used in isValid())
Definition: ECEFCoordinate.hpp:79
static ECEFCoordinate getPrecision()
get assumed accuracy of ECEFCoordinate (i.e. cPrecisionValue)
Definition: ECEFCoordinate.hpp:452
void ensureValidNonZero() const
ensure that the ECEFCoordinate is valid and non zero
Definition: ECEFCoordinate.hpp:421
static const double cMinValue
constant defining the minimum valid ECEFCoordinate value (used in isValid())
Definition: ECEFCoordinate.hpp:74
void ensureValid() const
ensure that the ECEFCoordinate is valid
Definition: ECEFCoordinate.hpp:404
_AD_MAP_POINT_ECEFCOORDINATE_EXPLICIT_CONVERSION_ ECEFCoordinate(double const iECEFCoordinate)
standard constructor
Definition: ECEFCoordinate.hpp:103
ECEFCoordinate & operator+=(const ECEFCoordinate &other)
standard arithmetic operator
Definition: ECEFCoordinate.hpp:255
ECEFCoordinate operator*(const double &scalar) const
standard arithmetic operator
Definition: ECEFCoordinate.hpp:312
bool operator<=(const ECEFCoordinate &other) const
standard comparison operator
Definition: ECEFCoordinate.hpp:219
inline ::ad::map::point::ECEFCoordinate operator*(const double &other, ::ad::map::point::ECEFCoordinate const &value)
standard arithmetic operator
Definition: ECEFCoordinate.hpp:478
inline ::ad::map::point::Altitude fabs(const ::ad::map::point::Altitude other)
overload of the std::fabs for Altitude
Definition: Altitude.hpp:490
static ECEFCoordinate getMin()
get minimum valid ECEFCoordinate (i.e. cMinValue)
Definition: ECEFCoordinate.hpp:436