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