Go to the documentation of this file.
26 #include "spdlog/fmt/ostr.h"
27 #include "spdlog/spdlog.h"
46 #define AD_MAP_LANDMARK_LANDMARKID_THROWS_EXCEPTION 1
48 #if SAFE_DATATYPES_EXPLICIT_CONVERSION
52 #define _AD_MAP_LANDMARK_LANDMARKID_EXPLICIT_CONVERSION_ explicit
57 #define _AD_MAP_LANDMARK_LANDMARKID_EXPLICIT_CONVERSION_
86 : mLandmarkId(std::numeric_limits<uint64_t>::quiet_NaN())
96 : mLandmarkId(iLandmarkId)
139 return mLandmarkId == other.mLandmarkId;
167 return (mLandmarkId > other.mLandmarkId) &&
operator!=(other);
183 return (mLandmarkId < other.mLandmarkId) &&
operator!=(other);
199 return ((mLandmarkId > other.mLandmarkId) ||
operator==(other));
215 return ((mLandmarkId < other.mLandmarkId) ||
operator==(other));
232 LandmarkId const result(mLandmarkId + other.mLandmarkId);
251 mLandmarkId += other.mLandmarkId;
270 LandmarkId const result(mLandmarkId - other.mLandmarkId);
289 mLandmarkId -= other.mLandmarkId;
314 auto const valueClass = std::fpclassify(mLandmarkId);
315 return ((valueClass == FP_NORMAL) || (valueClass == FP_ZERO)) && (
cMinValue <= mLandmarkId)
329 spdlog::info(
"ensureValid(::ad::map::landmark::LandmarkId)>> {} value out of range", *
this);
330 #if (AD_MAP_LANDMARK_LANDMARKID_THROWS_EXCEPTION == 1)
331 throw std::out_of_range(
"LandmarkId value out of range");
347 spdlog::info(
"ensureValid(::ad::map::landmark::LandmarkId)>> {} value is zero", *
this);
348 #if (AD_MAP_LANDMARK_LANDMARKID_THROWS_EXCEPTION == 1)
349 throw std::out_of_range(
"LandmarkId value is zero");
374 uint64_t mLandmarkId;
399 static inline ::ad::map::landmark::LandmarkId
lowest()
401 return ::ad::map::landmark::LandmarkId::getMin();
406 static inline ::ad::map::landmark::LandmarkId
max()
408 return ::ad::map::landmark::LandmarkId::getMax();
414 static inline ::ad::map::landmark::LandmarkId
epsilon()
416 return ::ad::map::landmark::LandmarkId(0);
425 #ifndef GEN_GUARD_AD_MAP_LANDMARK_LANDMARKID
426 #define GEN_GUARD_AD_MAP_LANDMARK_LANDMARKID
453 return os << uint64_t(_value);
466 return to_string(
static_cast<uint64_t
>(value));
469 #endif // GEN_GUARD_AD_MAP_LANDMARK_LANDMARKID
namespace ad
Definition: GeometryStoreItem.hpp:28
static inline ::ad::map::landmark::LandmarkId max()
Definition: LandmarkId.hpp:406
std::ostream & operator<<(std::ostream &os, ENULandmark const &_value)
standard ostream operator
Definition: ENULandmark.hpp:179
bool operator<(const LandmarkId &other) const
standard comparison operator
Definition: LandmarkId.hpp:179
static const uint64_t cMaxValue
constant defining the maximum valid LandmarkId value (used in isValid())
Definition: LandmarkId.hpp:77
LandmarkId & operator+=(const LandmarkId &other)
standard arithmetic operator
Definition: LandmarkId.hpp:247
_AD_MAP_LANDMARK_LANDMARKID_EXPLICIT_CONVERSION_ LandmarkId(uint64_t const iLandmarkId)
standard constructor
Definition: LandmarkId.hpp:95
bool operator>(const LandmarkId &other) const
standard comparison operator
Definition: LandmarkId.hpp:163
bool operator==(const LandmarkId &other) const
standard comparison operator
Definition: LandmarkId.hpp:135
DataType LandmarkId.
Definition: LandmarkId.hpp:66
LandmarkId()
default constructor
Definition: LandmarkId.hpp:85
std::string to_string(::ad::map::access::GeometryStoreItem const &value)
overload of the std::to_string for GeometryStoreItem
Definition: GeometryStoreItem.hpp:183
static inline ::ad::map::landmark::LandmarkId epsilon()
Definition: LandmarkId.hpp:414
LandmarkId & operator=(const LandmarkId &other)=default
standard assignment operator
bool isValid() const
Definition: LandmarkId.hpp:312
static LandmarkId getMax()
get maximum valid LandmarkId (i.e. cMaxValue)
Definition: LandmarkId.hpp:365
static LandmarkId getMin()
get minimum valid LandmarkId (i.e. cMinValue)
Definition: LandmarkId.hpp:357
bool operator>=(const LandmarkId &other) const
standard comparison operator
Definition: LandmarkId.hpp:195
static const uint64_t cMinValue
constant defining the minimum valid LandmarkId value (used in isValid())
Definition: LandmarkId.hpp:72
LandmarkId operator+(const LandmarkId &other) const
standard arithmetic operator
Definition: LandmarkId.hpp:228
bool operator<=(const LandmarkId &other) const
standard comparison operator
Definition: LandmarkId.hpp:211
#define _AD_MAP_LANDMARK_LANDMARKID_EXPLICIT_CONVERSION_
Enable/Disable explicit conversion. Currently set to "implicit conversion allowed".
Definition: LandmarkId.hpp:57
LandmarkId operator-(const LandmarkId &other) const
standard arithmetic operator
Definition: LandmarkId.hpp:266
LandmarkId operator-=(const LandmarkId &other)
standard arithmetic operator
Definition: LandmarkId.hpp:285
void ensureValidNonZero() const
ensure that the LandmarkId is valid and non zero
Definition: LandmarkId.hpp:342
bool operator!=(const LandmarkId &other) const
standard comparison operator
Definition: LandmarkId.hpp:149
static inline ::ad::map::landmark::LandmarkId lowest()
Definition: LandmarkId.hpp:399
void ensureValid() const
ensure that the LandmarkId is valid
Definition: LandmarkId.hpp:325