Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
nav_grid_iterators::BaseIterator< Derived > Class Template Referenceabstract

#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::Indexoperator* () 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::NavGridInfoinfo_
 

Detailed Description

template<class Derived>
class nav_grid_iterators::BaseIterator< Derived >

Definition at line 44 of file base_iterator.h.

Member Typedef Documentation

template<class Derived>
using nav_grid_iterators::BaseIterator< Derived >::difference_type = int

Definition at line 123 of file base_iterator.h.

template<class Derived>
using nav_grid_iterators::BaseIterator< Derived >::iterator_category = std::input_iterator_tag

Definition at line 122 of file base_iterator.h.

template<class Derived>
using nav_grid_iterators::BaseIterator< Derived >::pointer = nav_grid::Index*

Definition at line 121 of file base_iterator.h.

template<class Derived>
using nav_grid_iterators::BaseIterator< Derived >::reference = nav_grid::Index&

Definition at line 120 of file base_iterator.h.

template<class Derived>
using nav_grid_iterators::BaseIterator< Derived >::self_type = Derived

Definition at line 118 of file base_iterator.h.

template<class Derived>
using nav_grid_iterators::BaseIterator< Derived >::value_type = nav_grid::Index

Definition at line 119 of file base_iterator.h.

Constructor & Destructor Documentation

template<class Derived>
nav_grid_iterators::BaseIterator< Derived >::BaseIterator ( const nav_grid::NavGridInfo info)
inlineexplicit

Public Constructor. Takes in a pointer to the info and starts at the minimum index.

Parameters
infoNavGridInfo for the grid to iterate over

Definition at line 51 of file base_iterator.h.

template<class Derived>
nav_grid_iterators::BaseIterator< Derived >::BaseIterator ( const nav_grid::NavGridInfo info)
inlineexplicit

Public Constructor. Takes in a reference to the info and starts at the minimum index.

Parameters
infoNavGridInfo for the grid to iterate over

Definition at line 57 of file base_iterator.h.

template<class Derived>
virtual nav_grid_iterators::BaseIterator< Derived >::~BaseIterator ( )
virtualdefault

Destructor.

template<class Derived>
nav_grid_iterators::BaseIterator< Derived >::BaseIterator ( const nav_grid::NavGridInfo info,
const nav_grid::Index index 
)
inlineprotected

Protected constructor that takes in an arbitrary index.

Parameters
infoNavGridInfo for the grid to iterate over
indexInitial index

Definition at line 132 of file base_iterator.h.

Member Function Documentation

template<class Derived>
virtual Derived nav_grid_iterators::BaseIterator< Derived >::begin ( ) const
pure virtual

Helper function for range-style iteration Equivalent to the above constructor.

Returns
Iterator representing beginning of the 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.

template<class Derived>
virtual Derived nav_grid_iterators::BaseIterator< Derived >::end ( ) const
pure virtual
template<class Derived>
virtual bool nav_grid_iterators::BaseIterator< Derived >::fieldsEqual ( const Derived &  other)
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.

template<class Derived>
virtual void nav_grid_iterators::BaseIterator< Derived >::increment ( )
pure virtual
template<class Derived>
bool nav_grid_iterators::BaseIterator< Derived >::operator!= ( const Derived &  other)
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.

template<class Derived>
const nav_grid::Index& nav_grid_iterators::BaseIterator< Derived >::operator* ( ) const
inline

Dereference the iterator.

Returns
the index to which the iterator is pointing.

Definition at line 101 of file base_iterator.h.

template<class Derived>
Derived& nav_grid_iterators::BaseIterator< Derived >::operator++ ( )
inline

Increase the iterator to the next element.

Returns
a reference to the updated iterator.

Definition at line 107 of file base_iterator.h.

template<class Derived>
bool nav_grid_iterators::BaseIterator< Derived >::operator== ( const Derived &  other)
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.

Member Data Documentation

template<class Derived>
nav_grid::Index nav_grid_iterators::BaseIterator< Derived >::index_
protected

Definition at line 135 of file base_iterator.h.

template<class Derived>
const nav_grid::NavGridInfo* nav_grid_iterators::BaseIterator< Derived >::info_
protected

Definition at line 134 of file base_iterator.h.


The documentation for this class was generated from the following file:


nav_grid_iterators
Author(s):
autogenerated on Sun Jan 10 2021 04:08:42