30 #ifndef DOXYGEN_SHOULD_SKIP_THIS 50 struct Iterator :
public std::iterator<std::input_iterator_tag, T> {
59 : index(iteratorIndex)
101 return index != other.index;
111 return index == other.index;
123 return lo <= value && value < hi;
232 struct Iterator :
public std::iterator<std::input_iterator_tag, T> {
243 : range(iteratorRange)
244 , position(iteratorPosition)
286 return position.
x != other.position.x || position.
y != other.position.y;
296 return position.
x == other.position.x && position.
y == other.position.y;
303 if (position.
x >= range.
hi) {
304 position.
x = range.
lo;
333 #ifndef DOXYGEN_SHOULD_SKIP_THIS T x
First coordinate in the (x,y) representation.
Definition: Vector.h:509
A range iterator.
Definition: Range.h:50
constexpr bool operator==(const Iterator &other) const noexcept
Equality operator.
Definition: Range.h:295
constexpr Iterator(T iteratorIndex) noexcept
Constructor.
Definition: Range.h:58
A half-open range of values.
Definition: Range.h:42
constexpr bool operator!=(const Iterator &other) const noexcept
Inequality operator.
Definition: Range.h:100
T operator*() noexcept
Dereference operator.
Definition: Range.h:69
Range< T > first
The range in the first dimension.
Definition: Range.h:226
Iterator & operator++() noexcept
Increment operator (prefix)
Definition: Range.h:263
constexpr bool isEmpty() const noexcept
Check if the range is empty.
Definition: Range.h:161
T lo
The lower endpoint (included)
Definition: Range.h:43
constexpr Iterator end() const noexcept
Get a end iterator.
Definition: Range.h:326
Iterator operator++(int) noexcept
Increment operator (postfix)
Definition: Range.h:88
constexpr bool operator==(const Iterator &other) const noexcept
Equality operator.
Definition: Range.h:110
constexpr Iterator end() const noexcept
Get a end iterator.
Definition: Range.h:142
constexpr bool operator!=(const Iterator &other) const noexcept
Inequality operator.
Definition: Range.h:285
Iterator operator++(int) noexcept
Increment operator (postfix)
Definition: Range.h:273
T y
Second coordinate in the (x,y) representation.
Definition: Vector.h:520
Range< T > second
The range in the second dimension.
Definition: Range.h:227
T hi
The higher endpoint (excluded)
Definition: Range.h:44
An iterator for a 2D range.
Definition: Range.h:232
constexpr bool contains(T value) const noexcept
Check if a value is in a range.
Definition: Range.h:122
constexpr Iterator begin() const noexcept
Get a begin iterator.
Definition: Range.h:132
The namespace for gf classes.
Definition: Action.h:34
Range< T > range
Definition: Range.h:233
A 2D vector.
Definition: Vector.h:316
constexpr Iterator begin() const noexcept
Get a begin iterator.
Definition: Range.h:316
A 2D range.
Definition: Range.h:225
constexpr Iterator(Range< T > iteratorRange, Vector< T, 2 > iteratorPosition) noexcept
Constructor.
Definition: Range.h:242
Vector< T, 2 > position
Definition: Range.h:234
T index
The index in the range.
Definition: Range.h:51
Vector< T, 2 > operator*() noexcept
Dereference operator.
Definition: Range.h:254
constexpr T length() const noexcept
Get the length of the range.
Definition: Range.h:151
Iterator & operator++() noexcept
Increment operator (prefix)
Definition: Range.h:78
constexpr bool isValid() const noexcept
Check is the range is valid.
Definition: Range.h:171