Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
nav_grid_iterators::CircleFill Class Reference

Iterates over all of the valid indexes that lie within a circle in row major order. More...

#include <circle_fill.h>

Inheritance diagram for nav_grid_iterators::CircleFill:
Inheritance graph
[legend]

Public Member Functions

 CircleFill (const CircleFill &other)
 Copy Constructor Required to ensure unique_ptr is set properly. More...
 
 CircleFill (const nav_grid::NavGridInfo *info, double center_x, double center_y, double radius)
 Public Constructor. More...
 
CircleFilloperator= (const CircleFill &other)
 Assignment Operator Required to ensure unique_ptr is set properly. More...
 
Standard BaseIterator Interface
CircleFill begin () const override
 
CircleFill end () const override
 
void increment () override
 Increase the iterator to the next element. More...
 
bool fieldsEqual (const CircleFill &other) override
 Additional check for whether fields of derived iterators are equal. More...
 
- Public Member Functions inherited from nav_grid_iterators::BaseIterator< CircleFill >
 BaseIterator (const nav_grid::NavGridInfo &info)
 Public Constructor. Takes in a reference to the info and starts at the minimum index. More...
 
 BaseIterator (const nav_grid::NavGridInfo *info)
 Public Constructor. Takes in a pointer to the info and starts at the minimum index. More...
 
virtual CircleFill begin () const=0
 Helper function for range-style iteration Equivalent to the above constructor. More...
 
virtual CircleFill end () const=0
 Helper function for range-style iteration. More...
 
bool operator!= (const CircleFill &other)
 Test if two iterators are not equivalent - required for testing if iterator is at the end. More...
 
const nav_grid::Indexoperator* () const
 Dereference the iterator. More...
 
CircleFilloperator++ ()
 Increase the iterator to the next element. More...
 
bool operator== (const CircleFill &other)
 Test if two iterators are equivalent. More...
 
virtual ~BaseIterator ()=default
 Destructor. More...
 

Protected Member Functions

 CircleFill (const nav_grid::NavGridInfo *info, const nav_grid::Index &index, double center_x, double center_y, double radius_sq, unsigned int min_x, unsigned int min_y, unsigned int width, unsigned int height, const nav_grid::Index &start_index)
 Protected constructor that takes in an arbitrary index and other internal parameters. More...
 
bool isInside (unsigned int x, unsigned int y) const
 Check if coordinates are inside the circle. More...
 
- Protected Member Functions inherited from nav_grid_iterators::BaseIterator< CircleFill >
 BaseIterator (const nav_grid::NavGridInfo *info, const nav_grid::Index &index)
 Protected constructor that takes in an arbitrary index. More...
 

Protected Attributes

double center_x_
 
double center_y_
 
unsigned int height_
 
std::unique_ptr< SubGridinternal_iterator_
 
unsigned int min_x_
 
unsigned int min_y_
 
double radius_sq_
 
nav_grid::Index start_index_
 
unsigned int width_
 
- Protected Attributes inherited from nav_grid_iterators::BaseIterator< CircleFill >
nav_grid::Index index_
 
const nav_grid::NavGridInfoinfo_
 

Additional Inherited Members

- Public Types inherited from nav_grid_iterators::BaseIterator< CircleFill >
using difference_type = int
 
using iterator_category = std::input_iterator_tag
 
using pointer = nav_grid::Index *
 
using reference = nav_grid::Index &
 
using self_type = CircleFill
 
using value_type = nav_grid::Index
 

Detailed Description

Iterates over all of the valid indexes that lie within a circle in row major order.

Definition at line 48 of file circle_fill.h.

Constructor & Destructor Documentation

◆ CircleFill() [1/3]

nav_grid_iterators::CircleFill::CircleFill ( const nav_grid::NavGridInfo info,
double  center_x,
double  center_y,
double  radius 
)

Public Constructor.

Parameters
infoNavGridInfo for the grid to iterate over
center_xCenter of the circle (x coordinate)
center_yCenter of the circle (y coordinate)
radiusSize of the circle

Definition at line 40 of file circle_fill.cpp.

◆ CircleFill() [2/3]

nav_grid_iterators::CircleFill::CircleFill ( const CircleFill other)

Copy Constructor Required to ensure unique_ptr is set properly.

Definition at line 71 of file circle_fill.cpp.

◆ CircleFill() [3/3]

nav_grid_iterators::CircleFill::CircleFill ( const nav_grid::NavGridInfo info,
const nav_grid::Index index,
double  center_x,
double  center_y,
double  radius_sq,
unsigned int  min_x,
unsigned int  min_y,
unsigned int  width,
unsigned int  height,
const nav_grid::Index start_index 
)
protected

Protected constructor that takes in an arbitrary index and other internal parameters.

Parameters
infoNavGridInfo for the grid to iterate over
indexInitial index
center_xCenter of the circle (x coordinate)
center_yCenter of the circle (y coordinate)
radius_sqSquare of the size of the circle
min_xMinimum valid index that is within the circle (x coordinate)
min_yMinimum valid index that is within the circle (y coordinate)
widthMaximum number of valid indexes in a row of the circle
heightMaximum number of of valid indexes in a column of the circle
start_indexThe first valid index in the minimum row

Definition at line 77 of file circle_fill.cpp.

Member Function Documentation

◆ begin()

CircleFill nav_grid_iterators::CircleFill::begin ( ) const
override

Definition at line 111 of file circle_fill.cpp.

◆ end()

CircleFill nav_grid_iterators::CircleFill::end ( ) const
override

Definition at line 117 of file circle_fill.cpp.

◆ fieldsEqual()

bool nav_grid_iterators::CircleFill::fieldsEqual ( const CircleFill other)
overridevirtual

Additional check for whether fields of derived iterators are equal.

Helps make overriding the == operator easy.

Reimplemented from nav_grid_iterators::BaseIterator< CircleFill >.

Definition at line 136 of file circle_fill.cpp.

◆ increment()

void nav_grid_iterators::CircleFill::increment ( )
overridevirtual

Increase the iterator to the next element.

Implements nav_grid_iterators::BaseIterator< CircleFill >.

Definition at line 123 of file circle_fill.cpp.

◆ isInside()

bool nav_grid_iterators::CircleFill::isInside ( unsigned int  x,
unsigned int  y 
) const
protected

Check if coordinates are inside the circle.

Returns
true if inside, false otherwise.

Definition at line 102 of file circle_fill.cpp.

◆ operator=()

CircleFill & nav_grid_iterators::CircleFill::operator= ( const CircleFill other)

Assignment Operator Required to ensure unique_ptr is set properly.

Definition at line 86 of file circle_fill.cpp.

Member Data Documentation

◆ center_x_

double nav_grid_iterators::CircleFill::center_x_
protected

Definition at line 105 of file circle_fill.h.

◆ center_y_

double nav_grid_iterators::CircleFill::center_y_
protected

Definition at line 105 of file circle_fill.h.

◆ height_

unsigned int nav_grid_iterators::CircleFill::height_
protected

Definition at line 106 of file circle_fill.h.

◆ internal_iterator_

std::unique_ptr<SubGrid> nav_grid_iterators::CircleFill::internal_iterator_
protected

Definition at line 108 of file circle_fill.h.

◆ min_x_

unsigned int nav_grid_iterators::CircleFill::min_x_
protected

Definition at line 106 of file circle_fill.h.

◆ min_y_

unsigned int nav_grid_iterators::CircleFill::min_y_
protected

Definition at line 106 of file circle_fill.h.

◆ radius_sq_

double nav_grid_iterators::CircleFill::radius_sq_
protected

Definition at line 105 of file circle_fill.h.

◆ start_index_

nav_grid::Index nav_grid_iterators::CircleFill::start_index_
protected

Definition at line 107 of file circle_fill.h.

◆ width_

unsigned int nav_grid_iterators::CircleFill::width_
protected

Definition at line 106 of file circle_fill.h.


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


nav_grid_iterators
Author(s):
autogenerated on Sun May 18 2025 02:47:32