14template <
class S,
int XMin,
int XMax,
int YMin,
int YMax>
20 static constexpr auto INVALID_X = XMin - 1;
21 static constexpr auto INVALID_Y = YMin - 1;
23 using pair<S, S>::pair;
31 template <
class T,
class O>
32 [[nodiscard]]
constexpr T
add(
const O& o)
const noexcept
34 return static_cast<T
>(
class_type(this->first + o.first, this->second + o.second));
47 using BoundedPoint<DistanceSize, -1, 1, -1, 1>::BoundedPoint;
49using ROSOffset = std::tuple<Offset>;
50using OffsetSet = vector<ROSOffset>;
66 :
public BoundedPoint<XYSize, 0, MAX_COLUMNS, 0, MAX_ROWS>
69 using BoundedPoint<XYSize, 0, MAX_COLUMNS, 0, MAX_ROWS>::BoundedPoint;
73 return {
static_cast<Idx
>(second),
static_cast<Idx
>(first)};
83 using BoundedPoint<Idx, 0, MAX_COLUMNS, 0, MAX_ROWS>::BoundedPoint;
87 return {
static_cast<Idx
>(second),
static_cast<Idx
>(first)};
constexpr T add(const O &o) const noexcept
Add offset to position and return result.
Definition InnerPos.h:32
Offset from a position.
Definition InnerPos.h:42
The position within the Environment that a spreading point has.
Definition InnerPos.h:81
The position within a Cell that a spreading point has.
Definition InnerPos.h:59
The position within the Environment that a spreading point has.
Definition InnerPos.h:67
Definition Location.h:229
Direction with access to degrees or radians.
Definition Weather.h:64