Public Member Functions | Private Member Functions | Private Attributes | List of all members
grid_map::LineIterator Class Reference

#include <LineIterator.hpp>

Public Member Functions

bool isPastEnd () const
 
 LineIterator (const grid_map::GridMap &gridMap, const Position &start, const Position &end)
 
 LineIterator (const grid_map::GridMap &gridMap, const Index &start, const Index &end)
 
bool operator!= (const LineIterator &other) const
 
const Indexoperator* () const
 
LineIteratoroperator++ ()
 
LineIteratoroperator= (const LineIterator &other)
 

Private Member Functions

bool getIndexLimitedToMapRange (const grid_map::GridMap &gridMap, const Position &start, const Position &end, Index &index)
 
bool initialize (const grid_map::GridMap &gridMap, const Index &start, const Index &end)
 
void initializeIterationParameters ()
 

Private Attributes

Size bufferSize_
 
Index bufferStartIndex_
 
int denominator_
 
Index end_
 Ending index of the line. More...
 
unsigned int iCell_ = 0
 Current cell number. More...
 
Size increment1_
 Helper variables for Bresenham Line Drawing algorithm. More...
 
Size increment2_
 
Index index_
 Current index. More...
 
Length mapLength_
 Map information needed to get position from iterator. More...
 
Position mapPosition_
 
unsigned int nCells_ = 0
 Number of cells in the line. More...
 
int numerator_
 
int numeratorAdd_
 
double resolution_
 
Index start_
 Starting index of the line. More...
 

Detailed Description

Iterator class to iterate over a line in the map. Based on Bresenham Line Drawing algorithm.

Definition at line 22 of file LineIterator.hpp.

Constructor & Destructor Documentation

grid_map::LineIterator::LineIterator ( const grid_map::GridMap gridMap,
const Position start,
const Position end 
)

Constructor.

Parameters
gridMapthe grid map to iterate on.
startthe starting point of the line.
endthe ending point of the line.
Exceptions
std::invalid_argumentif start and end impose an ill conditioned line iteration.

Definition at line 16 of file LineIterator.cpp.

grid_map::LineIterator::LineIterator ( const grid_map::GridMap gridMap,
const Index start,
const Index end 
)

Constructor.

Parameters
gridMapthe grid map to iterate on.
startthe starting index of the line.
endthe ending index of the line.

Definition at line 29 of file LineIterator.cpp.

Member Function Documentation

bool grid_map::LineIterator::getIndexLimitedToMapRange ( const grid_map::GridMap gridMap,
const Position start,
const Position end,
Index index 
)
private

Finds the index of a position on a line within the limits of the map.

Parameters
[in]gridMapthe grid map that defines the map boundaries.
[in]startthe position that will be limited to the map range.
[in]endthe ending position of the line.
[out]indexthe index of the moved start position.
Returns
true if successful, false otherwise.

Definition at line 96 of file LineIterator.cpp.

bool grid_map::LineIterator::initialize ( const grid_map::GridMap gridMap,
const Index start,
const Index end 
)
private

Construct function.

Parameters
gridMapthe grid map to iterate on.
startthe starting index of the line.
endthe ending index of the line.
Returns
true if successful, false otherwise.

Definition at line 83 of file LineIterator.cpp.

void grid_map::LineIterator::initializeIterationParameters ( )
private

Computes the parameters requires for the line drawing algorithm.

Definition at line 110 of file LineIterator.cpp.

bool grid_map::LineIterator::isPastEnd ( ) const

Indicates if iterator is past end.

Returns
true if iterator is out of scope, false if end has not been reached.

Definition at line 78 of file LineIterator.cpp.

bool grid_map::LineIterator::operator!= ( const LineIterator other) const

Compare to another iterator.

Returns
whether the current iterator points to a different address than the other one.

Definition at line 54 of file LineIterator.cpp.

const Index & grid_map::LineIterator::operator* ( ) const

Dereference the iterator with const.

Returns
the value to which the iterator is pointing.

Definition at line 59 of file LineIterator.cpp.

LineIterator & grid_map::LineIterator::operator++ ( )

Increase the iterator to the next element.

Returns
a reference to the updated iterator.

Definition at line 64 of file LineIterator.cpp.

LineIterator & grid_map::LineIterator::operator= ( const LineIterator other)

Assignment operator.

Parameters
iteratorthe iterator to copy data from.
Returns
a reference to *this.

Definition at line 34 of file LineIterator.cpp.

Member Data Documentation

Size grid_map::LineIterator::bufferSize_
private

Definition at line 125 of file LineIterator.hpp.

Index grid_map::LineIterator::bufferStartIndex_
private

Definition at line 126 of file LineIterator.hpp.

int grid_map::LineIterator::denominator_
private

Definition at line 119 of file LineIterator.hpp.

Index grid_map::LineIterator::end_
private

Ending index of the line.

Definition at line 109 of file LineIterator.hpp.

unsigned int grid_map::LineIterator::iCell_ = 0
private

Current cell number.

Definition at line 112 of file LineIterator.hpp.

Size grid_map::LineIterator::increment1_
private

Helper variables for Bresenham Line Drawing algorithm.

Definition at line 118 of file LineIterator.hpp.

Size grid_map::LineIterator::increment2_
private

Definition at line 118 of file LineIterator.hpp.

Index grid_map::LineIterator::index_
private

Current index.

Definition at line 103 of file LineIterator.hpp.

Length grid_map::LineIterator::mapLength_
private

Map information needed to get position from iterator.

Definition at line 122 of file LineIterator.hpp.

Position grid_map::LineIterator::mapPosition_
private

Definition at line 123 of file LineIterator.hpp.

unsigned int grid_map::LineIterator::nCells_ = 0
private

Number of cells in the line.

Definition at line 115 of file LineIterator.hpp.

int grid_map::LineIterator::numerator_
private

Definition at line 119 of file LineIterator.hpp.

int grid_map::LineIterator::numeratorAdd_
private

Definition at line 119 of file LineIterator.hpp.

double grid_map::LineIterator::resolution_
private

Definition at line 124 of file LineIterator.hpp.

Index grid_map::LineIterator::start_
private

Starting index of the line.

Definition at line 106 of file LineIterator.hpp.


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


grid_map_core
Author(s): P├ęter Fankhauser
autogenerated on Sun Oct 25 2020 03:14:42