$search
A DistanceField implementation that uses a vector propagation method. More...
#include <propagation_distance_field.h>
Public Member Functions | |
virtual void | addPointsToField (const std::vector< btVector3 > points) |
Add (and expand) a set of points to the distance field. | |
PropagationDistanceField (double size_x, double size_y, double size_z, double resolution, double origin_x, double origin_y, double origin_z, double max_distance) | |
Constructor for the DistanceField. | |
virtual void | reset () |
Resets the distance field to the max_distance. | |
virtual | ~PropagationDistanceField () |
Private Member Functions | |
int | getDirectionNumber (int dx, int dy, int dz) const |
virtual double | getDistance (const PropDistanceFieldVoxel &object) const |
void | initNeighborhoods () |
Static Private Member Functions | |
static int | eucDistSq (int *point1, int *point2) |
Private Attributes | |
std::vector< std::vector < PropDistanceFieldVoxel * > > | bucket_queue_ |
std::vector< std::vector< int > > | direction_number_to_direction_ |
double | max_distance_ |
int | max_distance_sq_ |
std::vector< std::vector < std::vector< std::vector < int > > > > | neighborhoods_ |
std::vector< double > | sqrt_table_ |
A DistanceField implementation that uses a vector propagation method.
It computes the distance transform of the input points, and stores the distance to the closest obstacle in each voxel. Also available is the location of the closest point, and the gradient of the field at a point. Expansion of obstacles is performed upto a given radius.
Definition at line 86 of file propagation_distance_field.h.
distance_field::PropagationDistanceField::PropagationDistanceField | ( | double | size_x, | |
double | size_y, | |||
double | size_z, | |||
double | resolution, | |||
double | origin_x, | |||
double | origin_y, | |||
double | origin_z, | |||
double | max_distance | |||
) |
Constructor for the DistanceField.
Definition at line 47 of file propagation_distance_field.cpp.
distance_field::PropagationDistanceField::~PropagationDistanceField | ( | ) | [virtual] |
Definition at line 43 of file propagation_distance_field.cpp.
void distance_field::PropagationDistanceField::addPointsToField | ( | const std::vector< btVector3 > | points | ) | [virtual] |
Add (and expand) a set of points to the distance field.
Implements distance_field::DistanceField< PropDistanceFieldVoxel >.
Definition at line 70 of file propagation_distance_field.cpp.
int distance_field::PropagationDistanceField::eucDistSq | ( | int * | point1, | |
int * | point2 | |||
) | [static, private] |
Definition at line 62 of file propagation_distance_field.cpp.
int distance_field::PropagationDistanceField::getDirectionNumber | ( | int | dx, | |
int | dy, | |||
int | dz | |||
) | const [private] |
Definition at line 237 of file propagation_distance_field.cpp.
double distance_field::PropagationDistanceField::getDistance | ( | const PropDistanceFieldVoxel & | object | ) | const [inline, private, virtual] |
Implements distance_field::DistanceField< PropDistanceFieldVoxel >.
Definition at line 144 of file propagation_distance_field.h.
void distance_field::PropagationDistanceField::initNeighborhoods | ( | ) | [private] |
Definition at line 173 of file propagation_distance_field.cpp.
void distance_field::PropagationDistanceField::reset | ( | ) | [virtual] |
Resets the distance field to the max_distance.
Implements distance_field::DistanceField< PropDistanceFieldVoxel >.
Definition at line 168 of file propagation_distance_field.cpp.
std::vector<std::vector<PropDistanceFieldVoxel*> > distance_field::PropagationDistanceField::bucket_queue_ [private] |
Definition at line 110 of file propagation_distance_field.h.
std::vector<std::vector<int> > distance_field::PropagationDistanceField::direction_number_to_direction_ [private] |
Definition at line 123 of file propagation_distance_field.h.
double distance_field::PropagationDistanceField::max_distance_ [private] |
Definition at line 111 of file propagation_distance_field.h.
Definition at line 112 of file propagation_distance_field.h.
std::vector<std::vector<std::vector<std::vector<int> > > > distance_field::PropagationDistanceField::neighborhoods_ [private] |
Definition at line 121 of file propagation_distance_field.h.
std::vector<double> distance_field::PropagationDistanceField::sqrt_table_ [private] |
Definition at line 114 of file propagation_distance_field.h.