Gamedev Framework (gf)  0.12.0
A C++14 framework for 2D games
Public Types | Public Member Functions | Public Attributes | Related Functions | List of all members
gf::PositionRange< T >::Iterator Struct Reference

An iterator for a 2D range. More...

#include <gf/Range.h>

Public Types

using difference_type = std::ptrdiff_t
 
using value_type = Vector< T, 2 >
 
using pointer = value_type
 
using reference = value_type
 
using iterator_category = std::forward_iterator_tag
 

Public Member Functions

constexpr Iterator (Range< T > iteratorRange, Vector< T, 2 > iteratorPosition) noexcept
 Constructor. More...
 
void swap (Iterator &other) noexcept
 Swap the iterator with another iterator. More...
 
reference operator* () noexcept
 Dereference operator. More...
 
pointer operator-> () noexcept
 Pointer operator. More...
 
Iteratoroperator++ () noexcept
 Increment operator (prefix) More...
 
Iterator operator++ (int) noexcept
 Increment operator (postfix) More...
 
constexpr bool operator!= (const Iterator &other) const noexcept
 Inequality operator. More...
 
constexpr bool operator== (const Iterator &other) const noexcept
 Equality operator. More...
 

Public Attributes

Range< Trange
 
Vector< T, 2 > position
 

Related Functions

(Note that these are not member functions.)

template<typename T >
void swap (typename PositionRange< T >::Iterator &lhs, typename PositionRange< T >::Iterator &rhs) noexcept
 Swap two range iterators. More...
 

Detailed Description

template<typename T>
struct gf::PositionRange< T >::Iterator

An iterator for a 2D range.

Member Typedef Documentation

◆ difference_type

template<typename T>
using gf::PositionRange< T >::Iterator::difference_type = std::ptrdiff_t

◆ iterator_category

template<typename T>
using gf::PositionRange< T >::Iterator::iterator_category = std::forward_iterator_tag

◆ pointer

template<typename T>
using gf::PositionRange< T >::Iterator::pointer = value_type

◆ reference

template<typename T>
using gf::PositionRange< T >::Iterator::reference = value_type

◆ value_type

template<typename T>
using gf::PositionRange< T >::Iterator::value_type = Vector<T, 2>

Constructor & Destructor Documentation

◆ Iterator()

template<typename T>
constexpr gf::PositionRange< T >::Iterator::Iterator ( Range< T iteratorRange,
Vector< T, 2 >  iteratorPosition 
)
inlinenoexcept

Constructor.

Parameters
iteratorRangeThe range in the first dimension
iteratorPositionThe current position in 2D

Member Function Documentation

◆ operator!=()

template<typename T>
constexpr bool gf::PositionRange< T >::Iterator::operator!= ( const Iterator other) const
inlinenoexcept

Inequality operator.

Parameters
otherAnother iterator
Returns
True if the iterator are different

◆ operator*()

template<typename T>
reference gf::PositionRange< T >::Iterator::operator* ( )
inlinenoexcept

Dereference operator.

Returns
The position

◆ operator++() [1/2]

template<typename T>
Iterator& gf::PositionRange< T >::Iterator::operator++ ( )
inlinenoexcept

Increment operator (prefix)

Returns
The iterator

◆ operator++() [2/2]

template<typename T>
Iterator gf::PositionRange< T >::Iterator::operator++ ( int  )
inlinenoexcept

Increment operator (postfix)

Returns
The iterator

◆ operator->()

template<typename T>
pointer gf::PositionRange< T >::Iterator::operator-> ( )
inlinenoexcept

Pointer operator.

Returns
The position

◆ operator==()

template<typename T>
constexpr bool gf::PositionRange< T >::Iterator::operator== ( const Iterator other) const
inlinenoexcept

Equality operator.

Parameters
otherAnother iterator
Returns
True if the iterator are the same

◆ swap()

template<typename T>
void gf::PositionRange< T >::Iterator::swap ( Iterator other)
inlinenoexcept

Swap the iterator with another iterator.

Friends And Related Function Documentation

◆ swap()

template<typename T >
void swap ( typename PositionRange< T >::Iterator lhs,
typename PositionRange< T >::Iterator rhs 
)
related

Swap two range iterators.

Member Data Documentation

◆ position

template<typename T>
Vector<T, 2> gf::PositionRange< T >::Iterator::position

◆ range

template<typename T>
Range<T> gf::PositionRange< T >::Iterator::range