Go to the documentation of this file.
26 #include "spdlog/fmt/ostr.h"
27 #include "spdlog/spdlog.h"
46 #define AD_MAP_LANE_LANEID_THROWS_EXCEPTION 1
48 #if SAFE_DATATYPES_EXPLICIT_CONVERSION
52 #define _AD_MAP_LANE_LANEID_EXPLICIT_CONVERSION_ explicit
57 #define _AD_MAP_LANE_LANEID_EXPLICIT_CONVERSION_
86 : mLaneId(std::numeric_limits<uint64_t>::quiet_NaN())
139 return mLaneId == other.mLaneId;
167 return (mLaneId > other.mLaneId) &&
operator!=(other);
183 return (mLaneId < other.mLaneId) &&
operator!=(other);
199 return ((mLaneId > other.mLaneId) ||
operator==(other));
215 return ((mLaneId < other.mLaneId) ||
operator==(other));
232 LaneId const result(mLaneId + other.mLaneId);
251 mLaneId += other.mLaneId;
270 LaneId const result(mLaneId - other.mLaneId);
289 mLaneId -= other.mLaneId;
314 auto const valueClass = std::fpclassify(mLaneId);
315 return ((valueClass == FP_NORMAL) || (valueClass == FP_ZERO)) && (
cMinValue <= mLaneId) && (mLaneId <=
cMaxValue);
328 spdlog::info(
"ensureValid(::ad::map::lane::LaneId)>> {} value out of range", *
this);
329 #if (AD_MAP_LANE_LANEID_THROWS_EXCEPTION == 1)
330 throw std::out_of_range(
"LaneId value out of range");
344 if (
operator==(
LaneId(0)))
346 spdlog::info(
"ensureValid(::ad::map::lane::LaneId)>> {} value is zero", *
this);
347 #if (AD_MAP_LANE_LANEID_THROWS_EXCEPTION == 1)
348 throw std::out_of_range(
"LaneId value is zero");
398 static inline ::ad::map::lane::LaneId
lowest()
400 return ::ad::map::lane::LaneId::getMin();
405 static inline ::ad::map::lane::LaneId
max()
407 return ::ad::map::lane::LaneId::getMax();
413 static inline ::ad::map::lane::LaneId
epsilon()
415 return ::ad::map::lane::LaneId(0);
424 #ifndef GEN_GUARD_AD_MAP_LANE_LANEID
425 #define GEN_GUARD_AD_MAP_LANE_LANEID
452 return os << uint64_t(_value);
465 return to_string(
static_cast<uint64_t
>(value));
468 #endif // GEN_GUARD_AD_MAP_LANE_LANEID
namespace ad
Definition: GeometryStoreItem.hpp:28
LaneId & operator+=(const LaneId &other)
standard arithmetic operator
Definition: LaneId.hpp:247
LaneId operator-=(const LaneId &other)
standard arithmetic operator
Definition: LaneId.hpp:285
bool isValid() const
Definition: LaneId.hpp:312
#define _AD_MAP_LANE_LANEID_EXPLICIT_CONVERSION_
Enable/Disable explicit conversion. Currently set to "implicit conversion allowed".
Definition: LaneId.hpp:57
LaneId operator-(const LaneId &other) const
standard arithmetic operator
Definition: LaneId.hpp:266
void ensureValidNonZero() const
ensure that the LaneId is valid and non zero
Definition: LaneId.hpp:341
bool operator>(const LaneId &other) const
standard comparison operator
Definition: LaneId.hpp:163
std::string to_string(::ad::map::access::GeometryStoreItem const &value)
overload of the std::to_string for GeometryStoreItem
Definition: GeometryStoreItem.hpp:183
bool operator>=(const LaneId &other) const
standard comparison operator
Definition: LaneId.hpp:195
LaneId()
default constructor
Definition: LaneId.hpp:85
LaneId & operator=(const LaneId &other)=default
standard assignment operator
static const uint64_t cMaxValue
constant defining the maximum valid LaneId value (used in isValid())
Definition: LaneId.hpp:77
DataType LaneId.
Definition: LaneId.hpp:66
static LaneId getMax()
get maximum valid LaneId (i.e. cMaxValue)
Definition: LaneId.hpp:364
static inline ::ad::map::lane::LaneId max()
Definition: LaneId.hpp:405
bool operator==(const LaneId &other) const
standard comparison operator
Definition: LaneId.hpp:135
std::ostream & operator<<(std::ostream &os, ContactLane const &_value)
standard ostream operator
Definition: ContactLane.hpp:182
LaneId operator+(const LaneId &other) const
standard arithmetic operator
Definition: LaneId.hpp:228
static LaneId getMin()
get minimum valid LaneId (i.e. cMinValue)
Definition: LaneId.hpp:356
bool operator!=(const LaneId &other) const
standard comparison operator
Definition: LaneId.hpp:149
bool operator<(const LaneId &other) const
standard comparison operator
Definition: LaneId.hpp:179
void ensureValid() const
ensure that the LaneId is valid
Definition: LaneId.hpp:324
static const uint64_t cMinValue
constant defining the minimum valid LaneId value (used in isValid())
Definition: LaneId.hpp:72
static inline ::ad::map::lane::LaneId epsilon()
Definition: LaneId.hpp:413
_AD_MAP_LANE_LANEID_EXPLICIT_CONVERSION_ LaneId(uint64_t const iLaneId)
standard constructor
Definition: LaneId.hpp:95
bool operator<=(const LaneId &other) const
standard comparison operator
Definition: LaneId.hpp:211
static inline ::ad::map::lane::LaneId lowest()
Definition: LaneId.hpp:398