Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
nav_grid_iterators::Bresenham Class Reference

Line Iterator using Bresenham's algorithm (no subpixel precision) More...

#include <bresenham.h>

Inheritance diagram for nav_grid_iterators::Bresenham:
Inheritance graph
[legend]

Public Types

using difference_type = int
 
using iterator_category = std::input_iterator_tag
 
using pointer = nav_grid::SignedIndex *
 
using reference = nav_grid::SignedIndex &
 
using self_type = Bresenham
 
using value_type = nav_grid::SignedIndex
 

Public Member Functions

Bresenham begin () const
 Helper function for range-style iteration. More...
 
 Bresenham (int x0, int y0, int x1, int y1, bool include_last_index=true)
 Public constructor. More...
 
Bresenham end () const
 Helper function for range-style iteration. More...
 
nav_grid::SignedIndex getFinalIndex () const override
 
void increment () override
 Increase the iterator to the next element. More...
 
bool operator!= (const Bresenham &other)
 Test if two iterators are not equivalent - required for testing if iterator is at the end. More...
 
Bresenhamoperator++ ()
 Increase the iterator to the next element. More...
 
bool operator== (const Bresenham &other)
 Test if two iterators are equivalent. More...
 
- Public Member Functions inherited from nav_grid_iterators::AbstractLineIterator
 AbstractLineIterator ()
 Public Constructor. More...
 
bool isFinished ()
 
const nav_grid::SignedIndexoperator* () const
 Dereference the iterator. More...
 

Protected Member Functions

 Bresenham (const nav_grid::SignedIndex &index, int x0, int y0, int x1, int y1, bool include_last_index, int error_inc_x, int loop_inc_x, int error_inc_y, int loop_inc_y, int denominator, int numerator, int numerator_inc)
 Protected constructor that takes in an arbitrary index and other internal parameters. More...
 
- Protected Member Functions inherited from nav_grid_iterators::AbstractLineIterator
 AbstractLineIterator (nav_grid::SignedIndex index)
 Protected Constructor - takes arbitrary index. More...
 

Protected Attributes

int denominator_
 
int error_inc_x_
 
int error_inc_y_
 
bool include_last_index_
 
int loop_inc_x_
 
int loop_inc_y_
 
int numerator_
 
int numerator_inc_
 
int x0_
 
int x1_
 
int y0_
 
int y1_
 
- Protected Attributes inherited from nav_grid_iterators::AbstractLineIterator
nav_grid::SignedIndex index_
 

Detailed Description

Line Iterator using Bresenham's algorithm (no subpixel precision)

Definition at line 46 of file bresenham.h.

Member Typedef Documentation

Definition at line 102 of file bresenham.h.

using nav_grid_iterators::Bresenham::iterator_category = std::input_iterator_tag

Definition at line 101 of file bresenham.h.

Definition at line 100 of file bresenham.h.

Definition at line 99 of file bresenham.h.

Definition at line 97 of file bresenham.h.

Definition at line 98 of file bresenham.h.

Constructor & Destructor Documentation

nav_grid_iterators::Bresenham::Bresenham ( int  x0,
int  y0,
int  x1,
int  y1,
bool  include_last_index = true 
)

Public constructor.

Parameters
x0Start x coordinate
y0Start y coordinate
x1End x coordinate
y1End y coordinate
include_last_indexIf true, will include the end coordinates.

Definition at line 41 of file bresenham.cpp.

nav_grid_iterators::Bresenham::Bresenham ( const nav_grid::SignedIndex index,
int  x0,
int  y0,
int  x1,
int  y1,
bool  include_last_index,
int  error_inc_x,
int  loop_inc_x,
int  error_inc_y,
int  loop_inc_y,
int  denominator,
int  numerator,
int  numerator_inc 
)
protected

Protected constructor that takes in an arbitrary index and other internal parameters.

Parameters
indexInitial index
x0Start x coordinate
y0Start y coordinate
x1End x coordinate
y1End y coordinate
include_last_indexIf true, will include the end coordinates.
error_inc_x
loop_inc_x
error_inc_y
loop_inc_y
denominator
numerator
numerator_inc

Definition at line 74 of file bresenham.cpp.

Member Function Documentation

Bresenham nav_grid_iterators::Bresenham::begin ( ) const

Helper function for range-style iteration.

Returns
Iterator representing beginning of the iteration

Definition at line 84 of file bresenham.cpp.

Bresenham nav_grid_iterators::Bresenham::end ( ) const

Helper function for range-style iteration.

Returns
Iterator representing end of the iteration, with an invalid index

Definition at line 91 of file bresenham.cpp.

nav_grid::SignedIndex nav_grid_iterators::Bresenham::getFinalIndex ( ) const
overridevirtual

Implements nav_grid_iterators::AbstractLineIterator.

Definition at line 116 of file bresenham.cpp.

void nav_grid_iterators::Bresenham::increment ( )
overridevirtual

Increase the iterator to the next element.

Implements nav_grid_iterators::AbstractLineIterator.

Definition at line 103 of file bresenham.cpp.

bool nav_grid_iterators::Bresenham::operator!= ( const Bresenham other)
inline

Test if two iterators are not equivalent - required for testing if iterator is at the end.

Definition at line 70 of file bresenham.h.

Bresenham& nav_grid_iterators::Bresenham::operator++ ( )
inline

Increase the iterator to the next element.

Returns
a reference to the updated iterator.

Definition at line 91 of file bresenham.h.

bool nav_grid_iterators::Bresenham::operator== ( const Bresenham other)
inline

Test if two iterators are equivalent.

Definition at line 62 of file bresenham.h.

Member Data Documentation

int nav_grid_iterators::Bresenham::denominator_
protected

Definition at line 130 of file bresenham.h.

int nav_grid_iterators::Bresenham::error_inc_x_
protected

Definition at line 129 of file bresenham.h.

int nav_grid_iterators::Bresenham::error_inc_y_
protected

Definition at line 129 of file bresenham.h.

bool nav_grid_iterators::Bresenham::include_last_index_
protected

Definition at line 128 of file bresenham.h.

int nav_grid_iterators::Bresenham::loop_inc_x_
protected

Definition at line 129 of file bresenham.h.

int nav_grid_iterators::Bresenham::loop_inc_y_
protected

Definition at line 129 of file bresenham.h.

int nav_grid_iterators::Bresenham::numerator_
protected

Definition at line 130 of file bresenham.h.

int nav_grid_iterators::Bresenham::numerator_inc_
protected

Definition at line 130 of file bresenham.h.

int nav_grid_iterators::Bresenham::x0_
protected

Definition at line 127 of file bresenham.h.

int nav_grid_iterators::Bresenham::x1_
protected

Definition at line 127 of file bresenham.h.

int nav_grid_iterators::Bresenham::y0_
protected

Definition at line 127 of file bresenham.h.

int nav_grid_iterators::Bresenham::y1_
protected

Definition at line 127 of file bresenham.h.


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


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