A GridDecomposition is a Decomposition implemented using a grid. More...
#include <GridDecomposition.h>
Public Member Functions | |
GridDecomposition (const int len, const std::size_t dim, const base::RealVectorBounds &b) | |
Constructor. Creates a GridDecomposition as a hypercube with a given dimension, side length, and bounds. | |
virtual double | getRegionVolume (const int rid) const |
Returns the volume of a given region in this Decomposition. | |
virtual void | getNeighbors (const int rid, std::vector< int > &neighbors) const |
Stores a given region's neighbors into a given vector. | |
virtual int | locateRegion (const base::State *s) const |
Returns the index of the region containing a given State. Most often, this is obtained by first calling project(). | |
virtual const base::RealVectorBounds & | getRegionBounds (const int rid) |
Returns the bounds of a given region in this Decomposition. | |
![]() | |
Decomposition (const int n, const std::size_t dim, const base::RealVectorBounds &b) | |
Constructor. Creates a Decomposition with a given number of regions, a given dimension, and a given set of bounds. | |
virtual int | getNumRegions () const |
Returns the number of regions in this Decomposition. | |
virtual std::size_t | getDimension () const |
Returns the dimension of this Decomposition. | |
virtual const base::RealVectorBounds & | getBounds () const |
Returns the bounds of this Decomposition. | |
virtual void | project (const base::State *s, std::vector< double > &coord) const =0 |
Project a given State to a set of coordinates in R^k, where k is the dimension of this Decomposition. | |
virtual void | sampleFromRegion (const int rid, const base::StateSamplerPtr &sampler, base::State *s)=0 |
Samples a State from a given region using a given StateSampler. |
Protected Member Functions | |
void | regionToCoord (int rid, std::vector< int > &coord) const |
Converts a given region to a coordinate in the grid. | |
int | coordToRegion (const std::vector< int > &coord) const |
Converts the given coordinate to the region in the grid. | |
void | computeGridNeighbors (int rid, std::vector< int > &neighbors) const |
Computes the neighbors of the given region in a n-dimensional grid. | |
void | computeGridNeighborsSub (const std::vector< int > &coord, std::vector< int > &neighbors, unsigned int dim, std::vector< int > &candidate) const |
Protected Attributes | |
const int | length_ |
double | cellVolume_ |
boost::unordered_map< int, boost::shared_ptr < base::RealVectorBounds > > | regToBounds_ |
![]() | |
const int | numRegions_ |
const std::size_t | dimension_ |
const base::RealVectorBounds | bounds_ |
A GridDecomposition is a Decomposition implemented using a grid.
Definition at line 52 of file GridDecomposition.h.
|
protected |
Recursive subroutine for grid neighbor computation
Definition at line 159 of file GridDecomposition.cpp.