#include <line_iterator.hpp>
Public Member Functions | |
bool | isPastEnd () const |
LineIterator (const cost_map::CostMap &gridMap, const Position &start, const Position &end) | |
LineIterator (const cost_map::CostMap &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 cost_map::CostMap &cost_map, const Position &start, const Position &end, Index &index) |
bool | initialize (const cost_map::CostMap &cost_map, 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 17 of file line_iterator.hpp.
cost_map::LineIterator::LineIterator | ( | const cost_map::CostMap & | 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 src/lib/iterators/line_iterator.cpp.
cost_map::LineIterator::LineIterator | ( | const cost_map::CostMap & | 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 26 of file src/lib/iterators/line_iterator.cpp.
bool cost_map::LineIterator::getIndexLimitedToMapRange | ( | const cost_map::CostMap & | cost_map, |
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] | cost_map | 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 93 of file src/lib/iterators/line_iterator.cpp.
bool cost_map::LineIterator::initialize | ( | const cost_map::CostMap & | cost_map, |
const Index & | start, | ||
const Index & | end | ||
) | [private] |
Construct function.
cost_map | the grid map to iterate on. |
start | the starting index of the line. |
end | the ending index of the line. |
Definition at line 78 of file src/lib/iterators/line_iterator.cpp.
void cost_map::LineIterator::initializeIterationParameters | ( | ) | [private] |
Computes the parameters requires for the line drawing algorithm.
Definition at line 107 of file src/lib/iterators/line_iterator.cpp.
bool cost_map::LineIterator::isPastEnd | ( | ) | const |
Indicates if iterator is past end.
Definition at line 73 of file src/lib/iterators/line_iterator.cpp.
bool cost_map::LineIterator::operator!= | ( | const LineIterator & | other | ) | const |
Compare to another iterator.
Definition at line 51 of file src/lib/iterators/line_iterator.cpp.
const Index & cost_map::LineIterator::operator* | ( | ) | const |
Dereference the iterator with const.
Definition at line 56 of file src/lib/iterators/line_iterator.cpp.
LineIterator & cost_map::LineIterator::operator++ | ( | ) |
Increase the iterator to the next element.
Definition at line 61 of file src/lib/iterators/line_iterator.cpp.
LineIterator & cost_map::LineIterator::operator= | ( | const LineIterator & | other | ) |
Assignment operator.
iterator | the iterator to copy data from. |
Definition at line 31 of file src/lib/iterators/line_iterator.cpp.
Size cost_map::LineIterator::bufferSize_ [private] |
Definition at line 117 of file line_iterator.hpp.
Definition at line 118 of file line_iterator.hpp.
int cost_map::LineIterator::denominator_ [private] |
Definition at line 111 of file line_iterator.hpp.
Index cost_map::LineIterator::end_ [private] |
Ending index of the line.
Definition at line 101 of file line_iterator.hpp.
unsigned int cost_map::LineIterator::iCell_ [private] |
Current cell number.
Definition at line 104 of file line_iterator.hpp.
Size cost_map::LineIterator::increment1_ [private] |
Helper variables for Bresenham Line Drawing algorithm.
Definition at line 110 of file line_iterator.hpp.
Size cost_map::LineIterator::increment2_ [private] |
Definition at line 110 of file line_iterator.hpp.
Index cost_map::LineIterator::index_ [private] |
Current index.
Definition at line 95 of file line_iterator.hpp.
Length cost_map::LineIterator::mapLength_ [private] |
Map information needed to get position from iterator.
Definition at line 114 of file line_iterator.hpp.
Position cost_map::LineIterator::mapPosition_ [private] |
Definition at line 115 of file line_iterator.hpp.
unsigned int cost_map::LineIterator::nCells_ [private] |
Number of cells in the line.
Definition at line 107 of file line_iterator.hpp.
int cost_map::LineIterator::numerator_ [private] |
Definition at line 111 of file line_iterator.hpp.
int cost_map::LineIterator::numeratorAdd_ [private] |
Definition at line 111 of file line_iterator.hpp.
double cost_map::LineIterator::resolution_ [private] |
Definition at line 116 of file line_iterator.hpp.
Index cost_map::LineIterator::start_ [private] |
Starting index of the line.
Definition at line 98 of file line_iterator.hpp.