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

#include <CircleIterator.hpp>

Public Member Functions

 CircleIterator (const GridMap &gridMap, const Position &center, double radius)
 
bool isPastEnd () const
 
bool operator!= (const CircleIterator &other) const
 
const Indexoperator* () const
 
CircleIteratoroperator++ ()
 

Private Member Functions

void findSubmapParameters (const Position &center, double radius, Index &startIndex, Size &bufferSize) const
 
bool isInside () const
 

Private Attributes

Size bufferSize_
 
Index bufferStartIndex_
 
Position center_
 Position of the circle center;. More...
 
std::shared_ptr< SubmapIteratorinternalIterator_
 Grid submap iterator. // TODO Think of using unique_ptr instead. More...
 
Length mapLength_
 Map information needed to get position from iterator. More...
 
Position mapPosition_
 
double radius_
 Radius of the circle. More...
 
double radiusSquare_
 Square of the radius (for efficiency). More...
 
double resolution_
 

Detailed Description

Iterator class to iterate through a circular area of the map.

Definition at line 23 of file CircleIterator.hpp.

Constructor & Destructor Documentation

◆ CircleIterator()

grid_map::CircleIterator::CircleIterator ( const GridMap gridMap,
const Position center,
double  radius 
)

Constructor.

Parameters
gridMapthe grid map to iterate on.
centerthe position of the circle center.
radiusthe radius of the circle.

Definition at line 16 of file CircleIterator.cpp.

Member Function Documentation

◆ findSubmapParameters()

void grid_map::CircleIterator::findSubmapParameters ( const Position center,
double  radius,
Index startIndex,
Size bufferSize 
) const
private

Finds the submap that fully contains the circle and returns the parameters.

Parameters
[in]centerthe position of the circle center.
[in]radiusthe radius of the circle.
[out]startIndexthe start index of the submap.
[out]bufferSizethe buffer size of the submap.

Definition at line 74 of file CircleIterator.cpp.

◆ isInside()

bool grid_map::CircleIterator::isInside ( ) const
private

Check if current index is inside the circle.

Returns
true if inside, false otherwise.

Definition at line 66 of file CircleIterator.cpp.

◆ isPastEnd()

bool grid_map::CircleIterator::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 61 of file CircleIterator.cpp.

◆ operator!=()

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

Compare to another iterator.

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

Definition at line 35 of file CircleIterator.cpp.

◆ operator*()

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

Dereference the iterator with const.

Returns
the value to which the iterator is pointing.

Definition at line 40 of file CircleIterator.cpp.

◆ operator++()

CircleIterator & grid_map::CircleIterator::operator++ ( )

Increase the iterator to the next element.

Returns
a reference to the updated iterator.

Definition at line 45 of file CircleIterator.cpp.

Member Data Documentation

◆ bufferSize_

Size grid_map::CircleIterator::bufferSize_
private

Definition at line 93 of file CircleIterator.hpp.

◆ bufferStartIndex_

Index grid_map::CircleIterator::bufferStartIndex_
private

Definition at line 94 of file CircleIterator.hpp.

◆ center_

Position grid_map::CircleIterator::center_
private

Position of the circle center;.

Definition at line 78 of file CircleIterator.hpp.

◆ internalIterator_

std::shared_ptr<SubmapIterator> grid_map::CircleIterator::internalIterator_
private

Grid submap iterator. // TODO Think of using unique_ptr instead.

Definition at line 87 of file CircleIterator.hpp.

◆ mapLength_

Length grid_map::CircleIterator::mapLength_
private

Map information needed to get position from iterator.

Definition at line 90 of file CircleIterator.hpp.

◆ mapPosition_

Position grid_map::CircleIterator::mapPosition_
private

Definition at line 91 of file CircleIterator.hpp.

◆ radius_

double grid_map::CircleIterator::radius_
private

Radius of the circle.

Definition at line 81 of file CircleIterator.hpp.

◆ radiusSquare_

double grid_map::CircleIterator::radiusSquare_
private

Square of the radius (for efficiency).

Definition at line 84 of file CircleIterator.hpp.

◆ resolution_

double grid_map::CircleIterator::resolution_
private

Definition at line 92 of file CircleIterator.hpp.


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


grid_map_core
Author(s): Péter Fankhauser
autogenerated on Wed Jul 5 2023 02:23:35