#include <CircleIterator.hpp>
Public Member Functions | |
CircleIterator (const GridMap &gridMap, const Position ¢er, const double radius) | |
bool | isPastEnd () const |
bool | operator!= (const CircleIterator &other) const |
const Index & | operator* () const |
CircleIterator & | operator++ () |
CircleIterator & | operator= (const CircleIterator &other) |
Private Member Functions | |
void | findSubmapParameters (const Position ¢er, const double radius, Index &startIndex, Size &bufferSize) const |
bool | isInside () const |
Private Attributes | |
Size | bufferSize_ |
Index | bufferStartIndex_ |
Position | center_ |
Position of the circle center;. | |
std::shared_ptr< SubmapIterator > | internalIterator_ |
Grid submap iterator. // TODO Think of using unique_ptr instead. | |
Length | mapLength_ |
Map information needed to get position from iterator. | |
Position | mapPosition_ |
double | radius_ |
Radius of the circle. | |
double | radiusSquare_ |
Square of the radius (for efficiency). | |
double | resolution_ |
Iterator class to iterate through a circular area of the map.
Definition at line 23 of file CircleIterator.hpp.
grid_map::CircleIterator::CircleIterator | ( | const GridMap & | gridMap, |
const Position & | center, | ||
const double | radius | ||
) |
Constructor.
gridMap | the grid map to iterate on. |
center | the position of the circle center. |
radius | the radius of the circle. |
Definition at line 16 of file CircleIterator.cpp.
void grid_map::CircleIterator::findSubmapParameters | ( | const Position & | center, |
const double | radius, | ||
Index & | startIndex, | ||
Size & | bufferSize | ||
) | const [private] |
Finds the submap that fully contains the circle and returns the parameters.
[in] | center | the position of the circle center. |
[in] | radius | the radius of the circle. |
[out] | startIndex | the start index of the submap. |
[out] | bufferSize | the buffer size of the submap. |
Definition at line 82 of file CircleIterator.cpp.
bool grid_map::CircleIterator::isInside | ( | ) | const [private] |
Check if current index is inside the circle.
Definition at line 74 of file CircleIterator.cpp.
bool grid_map::CircleIterator::isPastEnd | ( | ) | const |
Indicates if iterator is past end.
Definition at line 69 of file CircleIterator.cpp.
bool grid_map::CircleIterator::operator!= | ( | const CircleIterator & | other | ) | const |
Compare to another iterator.
Definition at line 47 of file CircleIterator.cpp.
const Index & grid_map::CircleIterator::operator* | ( | ) | const |
Dereference the iterator with const.
Definition at line 52 of file CircleIterator.cpp.
CircleIterator & grid_map::CircleIterator::operator++ | ( | ) |
Increase the iterator to the next element.
Definition at line 57 of file CircleIterator.cpp.
CircleIterator & grid_map::CircleIterator::operator= | ( | const CircleIterator & | other | ) |
Assignment operator.
iterator | the iterator to copy data from. |
Definition at line 33 of file CircleIterator.cpp.
Size grid_map::CircleIterator::bufferSize_ [private] |
Definition at line 100 of file CircleIterator.hpp.
Definition at line 101 of file CircleIterator.hpp.
Position grid_map::CircleIterator::center_ [private] |
Position of the circle center;.
Definition at line 85 of file CircleIterator.hpp.
std::shared_ptr<SubmapIterator> grid_map::CircleIterator::internalIterator_ [private] |
Grid submap iterator. // TODO Think of using unique_ptr instead.
Definition at line 94 of file CircleIterator.hpp.
Length grid_map::CircleIterator::mapLength_ [private] |
Map information needed to get position from iterator.
Definition at line 97 of file CircleIterator.hpp.
Definition at line 98 of file CircleIterator.hpp.
double grid_map::CircleIterator::radius_ [private] |
Radius of the circle.
Definition at line 88 of file CircleIterator.hpp.
double grid_map::CircleIterator::radiusSquare_ [private] |
Square of the radius (for efficiency).
Definition at line 91 of file CircleIterator.hpp.
double grid_map::CircleIterator::resolution_ [private] |
Definition at line 99 of file CircleIterator.hpp.