#include <base_iterator.h>
Public Types | |
using | difference_type = int |
using | iterator_category = std::input_iterator_tag |
using | pointer = nav_grid::Index * |
using | reference = nav_grid::Index & |
using | self_type = Derived |
using | value_type = nav_grid::Index |
Public Member Functions | |
BaseIterator (const nav_grid::NavGridInfo *info) | |
Public Constructor. Takes in a pointer to the info and starts at the minimum index. More... | |
BaseIterator (const nav_grid::NavGridInfo &info) | |
Public Constructor. Takes in a reference to the info and starts at the minimum index. More... | |
virtual Derived | begin () const =0 |
Helper function for range-style iteration Equivalent to the above constructor. More... | |
virtual Derived | end () const =0 |
Helper function for range-style iteration. More... | |
virtual bool | fieldsEqual (const Derived &other) |
Additional check for whether fields of derived iterators are equal. More... | |
virtual void | increment ()=0 |
Increase the iterator to the next element. More... | |
bool | operator!= (const Derived &other) |
Test if two iterators are not equivalent - required for testing if iterator is at the end. More... | |
const nav_grid::Index & | operator* () const |
Dereference the iterator. More... | |
Derived & | operator++ () |
Increase the iterator to the next element. More... | |
bool | operator== (const Derived &other) |
Test if two iterators are equivalent. More... | |
virtual | ~BaseIterator ()=default |
Destructor. More... | |
Protected Member Functions | |
BaseIterator (const nav_grid::NavGridInfo *info, const nav_grid::Index &index) | |
Protected constructor that takes in an arbitrary index. More... | |
Protected Attributes | |
nav_grid::Index | index_ |
const nav_grid::NavGridInfo * | info_ |
Definition at line 44 of file base_iterator.h.
using nav_grid_iterators::BaseIterator< Derived >::difference_type = int |
Definition at line 123 of file base_iterator.h.
using nav_grid_iterators::BaseIterator< Derived >::iterator_category = std::input_iterator_tag |
Definition at line 122 of file base_iterator.h.
using nav_grid_iterators::BaseIterator< Derived >::pointer = nav_grid::Index* |
Definition at line 121 of file base_iterator.h.
using nav_grid_iterators::BaseIterator< Derived >::reference = nav_grid::Index& |
Definition at line 120 of file base_iterator.h.
using nav_grid_iterators::BaseIterator< Derived >::self_type = Derived |
Definition at line 118 of file base_iterator.h.
using nav_grid_iterators::BaseIterator< Derived >::value_type = nav_grid::Index |
Definition at line 119 of file base_iterator.h.
|
inlineexplicit |
Public Constructor. Takes in a pointer to the info and starts at the minimum index.
info | NavGridInfo for the grid to iterate over |
Definition at line 51 of file base_iterator.h.
|
inlineexplicit |
Public Constructor. Takes in a reference to the info and starts at the minimum index.
info | NavGridInfo for the grid to iterate over |
Definition at line 57 of file base_iterator.h.
|
virtualdefault |
Destructor.
|
inlineprotected |
Protected constructor that takes in an arbitrary index.
info | NavGridInfo for the grid to iterate over |
index | Initial index |
Definition at line 132 of file base_iterator.h.
|
pure virtual |
Helper function for range-style iteration Equivalent to the above constructor.
Implemented in nav_grid_iterators::SubGrid, nav_grid_iterators::CircleOutline, nav_grid_iterators::Line, nav_grid_iterators::CircleFill, nav_grid_iterators::Spiral, nav_grid_iterators::PolygonFill, nav_grid_iterators::PolygonOutline, and nav_grid_iterators::WholeGrid.
|
pure virtual |
Helper function for range-style iteration.
Implemented in nav_grid_iterators::SubGrid, nav_grid_iterators::CircleOutline, nav_grid_iterators::Line, nav_grid_iterators::CircleFill, nav_grid_iterators::Spiral, nav_grid_iterators::PolygonFill, nav_grid_iterators::PolygonOutline, and nav_grid_iterators::WholeGrid.
|
inlinevirtual |
Additional check for whether fields of derived iterators are equal.
Helps make overriding the == operator easy.
Reimplemented in nav_grid_iterators::SubGrid, nav_grid_iterators::CircleOutline, nav_grid_iterators::Line, nav_grid_iterators::CircleFill, nav_grid_iterators::Spiral, nav_grid_iterators::PolygonFill, and nav_grid_iterators::PolygonOutline.
Definition at line 95 of file base_iterator.h.
|
pure virtual |
Increase the iterator to the next element.
Implemented in nav_grid_iterators::SubGrid, nav_grid_iterators::CircleOutline, nav_grid_iterators::Line, nav_grid_iterators::CircleFill, nav_grid_iterators::Spiral, nav_grid_iterators::PolygonFill, nav_grid_iterators::PolygonOutline, and nav_grid_iterators::WholeGrid.
|
inline |
Test if two iterators are not equivalent - required for testing if iterator is at the end.
Definition at line 88 of file base_iterator.h.
|
inline |
Dereference the iterator.
Definition at line 101 of file base_iterator.h.
|
inline |
Increase the iterator to the next element.
Definition at line 107 of file base_iterator.h.
|
inline |
Test if two iterators are equivalent.
Derived classes may want to implement the fieldsEqual function for checking if additional fields beyond the index and info are equal.
Definition at line 83 of file base_iterator.h.
|
protected |
Definition at line 135 of file base_iterator.h.
|
protected |
Definition at line 134 of file base_iterator.h.