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...
 
virtual ~AbstractLineIterator ()=default
 Public Destructor. 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

◆ difference_type

Definition at line 102 of file bresenham.h.

◆ iterator_category

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

Definition at line 101 of file bresenham.h.

◆ pointer

Definition at line 100 of file bresenham.h.

◆ reference

Definition at line 99 of file bresenham.h.

◆ self_type

Definition at line 97 of file bresenham.h.

◆ value_type

Definition at line 98 of file bresenham.h.

Constructor & Destructor Documentation

◆ Bresenham() [1/2]

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.

◆ Bresenham() [2/2]

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

◆ begin()

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.

◆ end()

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.

◆ getFinalIndex()

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

Implements nav_grid_iterators::AbstractLineIterator.

Definition at line 116 of file bresenham.cpp.

◆ increment()

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.

◆ operator!=()

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.

◆ operator++()

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.

◆ operator==()

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

◆ denominator_

int nav_grid_iterators::Bresenham::denominator_
protected

Definition at line 130 of file bresenham.h.

◆ error_inc_x_

int nav_grid_iterators::Bresenham::error_inc_x_
protected

Definition at line 129 of file bresenham.h.

◆ error_inc_y_

int nav_grid_iterators::Bresenham::error_inc_y_
protected

Definition at line 129 of file bresenham.h.

◆ include_last_index_

bool nav_grid_iterators::Bresenham::include_last_index_
protected

Definition at line 128 of file bresenham.h.

◆ loop_inc_x_

int nav_grid_iterators::Bresenham::loop_inc_x_
protected

Definition at line 129 of file bresenham.h.

◆ loop_inc_y_

int nav_grid_iterators::Bresenham::loop_inc_y_
protected

Definition at line 129 of file bresenham.h.

◆ numerator_

int nav_grid_iterators::Bresenham::numerator_
protected

Definition at line 130 of file bresenham.h.

◆ numerator_inc_

int nav_grid_iterators::Bresenham::numerator_inc_
protected

Definition at line 130 of file bresenham.h.

◆ x0_

int nav_grid_iterators::Bresenham::x0_
protected

Definition at line 127 of file bresenham.h.

◆ x1_

int nav_grid_iterators::Bresenham::x1_
protected

Definition at line 127 of file bresenham.h.

◆ y0_

int nav_grid_iterators::Bresenham::y0_
protected

Definition at line 127 of file bresenham.h.

◆ y1_

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 May 18 2025 02:47:32