Public Member Functions | Private Member Functions | Private Attributes
grid_map::LineIterator Class Reference

#include <LineIterator.hpp>

List of all members.

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.
unsigned int iCell_
 Current cell number.
Size increment1_
 Helper variables for Bresenham Line Drawing algorithm.
Size increment2_
Index index_
 Current index.
Length mapLength_
 Map information needed to get position from iterator.
Position mapPosition_
unsigned int nCells_
 Number of cells in the line.
int numerator_
int numeratorAdd_
double resolution_
Index start_
 Starting index of the line.

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.

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 25 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 92 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 79 of file LineIterator.cpp.

Computes the parameters requires for the line drawing algorithm.

Definition at line 106 of file LineIterator.cpp.

Indicates if iterator is past end.

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

Definition at line 74 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 50 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 55 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 60 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 30 of file LineIterator.cpp.


Member Data Documentation

Definition at line 124 of file LineIterator.hpp.

Definition at line 125 of file LineIterator.hpp.

Definition at line 118 of file LineIterator.hpp.

Ending index of the line.

Definition at line 108 of file LineIterator.hpp.

unsigned int grid_map::LineIterator::iCell_ [private]

Current cell number.

Definition at line 111 of file LineIterator.hpp.

Helper variables for Bresenham Line Drawing algorithm.

Definition at line 117 of file LineIterator.hpp.

Definition at line 117 of file LineIterator.hpp.

Current index.

Definition at line 102 of file LineIterator.hpp.

Map information needed to get position from iterator.

Definition at line 121 of file LineIterator.hpp.

Definition at line 122 of file LineIterator.hpp.

unsigned int grid_map::LineIterator::nCells_ [private]

Number of cells in the line.

Definition at line 114 of file LineIterator.hpp.

Definition at line 118 of file LineIterator.hpp.

Definition at line 118 of file LineIterator.hpp.

Definition at line 123 of file LineIterator.hpp.

Starting index of the line.

Definition at line 105 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 Tue Jul 9 2019 05:06:13