#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 Index & | operator* () const |
LineIterator & | operator++ () |
LineIterator & | operator= (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. |
Iterator class to iterate over a line in the map. Based on Bresenham Line Drawing algorithm.
Definition at line 22 of file LineIterator.hpp.
grid_map::LineIterator::LineIterator | ( | const grid_map::GridMap & | gridMap, |
const Position & | start, | ||
const Position & | end | ||
) |
Constructor.
gridMap | the grid map to iterate on. |
start | the starting point of the line. |
end | the 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.
gridMap | the grid map to iterate on. |
start | the starting index of the line. |
end | the ending index of the line. |
Definition at line 25 of file LineIterator.cpp.
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.
[in] | gridMap | the grid map that defines the map boundaries. |
[in] | start | the position that will be limited to the map range. |
[in] | end | the ending position of the line. |
[out] | index | the index of the moved start position. |
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.
gridMap | the grid map to iterate on. |
start | the starting index of the line. |
end | the ending index of the line. |
Definition at line 79 of file LineIterator.cpp.
void grid_map::LineIterator::initializeIterationParameters | ( | ) | [private] |
Computes the parameters requires for the line drawing algorithm.
Definition at line 106 of file LineIterator.cpp.
bool grid_map::LineIterator::isPastEnd | ( | ) | const |
Indicates if iterator is past end.
Definition at line 74 of file LineIterator.cpp.
bool grid_map::LineIterator::operator!= | ( | const LineIterator & | other | ) | const |
Compare to another iterator.
Definition at line 50 of file LineIterator.cpp.
const Index & grid_map::LineIterator::operator* | ( | ) | const |
Dereference the iterator with const.
Definition at line 55 of file LineIterator.cpp.
LineIterator & grid_map::LineIterator::operator++ | ( | ) |
Increase the iterator to the next element.
Definition at line 60 of file LineIterator.cpp.
LineIterator & grid_map::LineIterator::operator= | ( | const LineIterator & | other | ) |
Assignment operator.
iterator | the iterator to copy data from. |
Definition at line 30 of file LineIterator.cpp.
Size grid_map::LineIterator::bufferSize_ [private] |
Definition at line 124 of file LineIterator.hpp.
Definition at line 125 of file LineIterator.hpp.
int grid_map::LineIterator::denominator_ [private] |
Definition at line 118 of file LineIterator.hpp.
Index grid_map::LineIterator::end_ [private] |
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.
Size grid_map::LineIterator::increment1_ [private] |
Helper variables for Bresenham Line Drawing algorithm.
Definition at line 117 of file LineIterator.hpp.
Size grid_map::LineIterator::increment2_ [private] |
Definition at line 117 of file LineIterator.hpp.
Index grid_map::LineIterator::index_ [private] |
Current index.
Definition at line 102 of file LineIterator.hpp.
Length grid_map::LineIterator::mapLength_ [private] |
Map information needed to get position from iterator.
Definition at line 121 of file LineIterator.hpp.
Position grid_map::LineIterator::mapPosition_ [private] |
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.
int grid_map::LineIterator::numerator_ [private] |
Definition at line 118 of file LineIterator.hpp.
int grid_map::LineIterator::numeratorAdd_ [private] |
Definition at line 118 of file LineIterator.hpp.
double grid_map::LineIterator::resolution_ [private] |
Definition at line 123 of file LineIterator.hpp.
Index grid_map::LineIterator::start_ [private] |
Starting index of the line.
Definition at line 105 of file LineIterator.hpp.