Bresenham's 2D line drawing iterator, one cell at a time. More...
#include <bresenham.hpp>
Classes | |
struct | sentinel |
Past-of-end iterator sentinel. More... | |
Public Types | |
using | difference_type = std::ptrdiff_t |
Iterator difference type (as required by ranges::view_). More... | |
using | iterator_category = std::forward_iterator_tag |
Iterator category tag. More... | |
using | pointer = Vector2 * |
Pointer to iterated value type. More... | |
using | reference = Vector2 & |
Reference to iterated value type. More... | |
using | value_type = Vector2 |
Iterated value type. More... | |
Public Member Functions | |
iterator ()=default | |
Default constructor. More... | |
iterator (const Line *line) | |
Constructs a Bresenham's 2D line iterator. More... | |
bool | operator!= (const iterator &other) const |
Inequality operator overload (as required by std::forward_iterator). More... | |
bool | operator!= (const sentinel &other) const |
Sentinel inequality operator overload. More... | |
const Vector2 & | operator* () const |
Dereference operator overload (only const). More... | |
iterator & | operator++ () |
Prefix operator overload. More... | |
iterator | operator++ (int) |
Post-fix operator overload. More... | |
const Vector2 * | operator-> () const |
Arrow operator overload (only const). More... | |
bool | operator== (const iterator &other) const |
Equality operator overload (as required by std::forward_iterator). More... | |
bool | operator== (const sentinel &) const |
Sentinel equality operator overload. More... | |
Private Member Functions | |
void | step_to (Integer x, Integer y) |
Private Attributes | |
std::size_t | checks_ {0} |
Vector2 | current_point_ {} |
Integer | dxspan_ |
Integer | dyspan_ {} |
Integer | error_ {} |
bool | modified_ {false} |
Integer | prev_error_ {} |
bool | reversed_ {false} |
Integer | step_ {} |
Integer | x_ {} |
Integer | xspan_ {} |
Integer | xstep_ {} |
Integer | y_ {} |
Integer | yspan_ {} |
Integer | ystep_ {} |
Bresenham's 2D line drawing iterator, one cell at a time.
Definition at line 54 of file bresenham.hpp.
using beluga::Bresenham2i::Line< Vector2, Integer >::iterator::difference_type = std::ptrdiff_t |
Iterator difference type (as required by ranges::view_).
Definition at line 69 of file bresenham.hpp.
using beluga::Bresenham2i::Line< Vector2, Integer >::iterator::iterator_category = std::forward_iterator_tag |
Iterator category tag.
Definition at line 66 of file bresenham.hpp.
using beluga::Bresenham2i::Line< Vector2, Integer >::iterator::pointer = Vector2* |
Pointer to iterated value type.
Definition at line 75 of file bresenham.hpp.
using beluga::Bresenham2i::Line< Vector2, Integer >::iterator::reference = Vector2& |
Reference to iterated value type.
Definition at line 78 of file bresenham.hpp.
using beluga::Bresenham2i::Line< Vector2, Integer >::iterator::value_type = Vector2 |
Iterated value type.
Definition at line 72 of file bresenham.hpp.
|
default |
Default constructor.
|
inlineexplicit |
Constructs a Bresenham's 2D line
iterator.
Definition at line 84 of file bresenham.hpp.
|
inline |
Inequality operator overload (as required by std::forward_iterator).
Definition at line 176 of file bresenham.hpp.
|
inline |
Sentinel inequality operator overload.
Definition at line 182 of file bresenham.hpp.
|
inline |
Dereference operator overload (only const).
Definition at line 163 of file bresenham.hpp.
|
inline |
Prefix operator overload.
Definition at line 122 of file bresenham.hpp.
|
inline |
Post-fix operator overload.
Definition at line 115 of file bresenham.hpp.
|
inline |
Arrow operator overload (only const).
Definition at line 166 of file bresenham.hpp.
|
inline |
Equality operator overload (as required by std::forward_iterator).
Definition at line 169 of file bresenham.hpp.
|
inline |
Sentinel equality operator overload.
Definition at line 179 of file bresenham.hpp.
|
inlineprivate |
Definition at line 185 of file bresenham.hpp.
|
private |
Definition at line 201 of file bresenham.hpp.
|
private |
Definition at line 194 of file bresenham.hpp.
|
private |
Definition at line 197 of file bresenham.hpp.
|
private |
Definition at line 197 of file bresenham.hpp.
|
private |
Definition at line 199 of file bresenham.hpp.
|
private |
Definition at line 202 of file bresenham.hpp.
|
private |
Definition at line 199 of file bresenham.hpp.
|
private |
Definition at line 203 of file bresenham.hpp.
|
private |
Definition at line 198 of file bresenham.hpp.
|
private |
Definition at line 195 of file bresenham.hpp.
|
private |
Definition at line 196 of file bresenham.hpp.
|
private |
Definition at line 198 of file bresenham.hpp.
|
private |
Definition at line 195 of file bresenham.hpp.
|
private |
Definition at line 196 of file bresenham.hpp.
|
private |
Definition at line 198 of file bresenham.hpp.