#include <propagation_distance_field.h>
Public Member Functions | |
virtual void | addPointsToField (const std::vector< tf::Vector3 > &points) |
Add (and expand) a set of points to the distance field. | |
virtual void | reset () |
Resets the distance field to the max_distance. | |
SignedPropagationDistanceField (double size_x, double size_y, double size_z, double resolution, double origin_x, double origin_y, double origin_z, double max_distance) | |
virtual | ~SignedPropagationDistanceField () |
Private Member Functions | |
int | getDirectionNumber (int dx, int dy, int dz) const |
virtual double | getDistance (const SignedPropDistanceFieldVoxel &object) const |
void | initNeighborhoods () |
Static Private Member Functions | |
static int | eucDistSq (int3 point1, int3 point2) |
Private Attributes | |
std::vector< int3 > | direction_number_to_direction_ |
double | max_distance_ |
int | max_distance_sq_ |
std::vector< std::vector < SignedPropDistanceFieldVoxel * > > | negative_bucket_queue_ |
std::vector< std::vector < std::vector< int3 > > > | neighborhoods_ |
std::vector< std::vector < SignedPropDistanceFieldVoxel * > > | positive_bucket_queue_ |
std::vector< double > | sqrt_table_ |
Definition at line 200 of file propagation_distance_field.h.
distance_field::SignedPropagationDistanceField::SignedPropagationDistanceField | ( | double | size_x, |
double | size_y, | ||
double | size_z, | ||
double | resolution, | ||
double | origin_x, | ||
double | origin_y, | ||
double | origin_z, | ||
double | max_distance | ||
) |
Definition at line 448 of file propagation_distance_field.cpp.
Definition at line 444 of file propagation_distance_field.cpp.
void distance_field::SignedPropagationDistanceField::addPointsToField | ( | const std::vector< tf::Vector3 > & | points | ) | [virtual] |
Add (and expand) a set of points to the distance field.
This function will incrementally add the given points and update the distance field correspondingly. Use the reset() function if you need to remove all points and start afresh.
Implements distance_field::DistanceField< SignedPropDistanceFieldVoxel >.
Definition at line 471 of file propagation_distance_field.cpp.
int distance_field::SignedPropagationDistanceField::eucDistSq | ( | int3 | point1, |
int3 | point2 | ||
) | [static, private] |
Definition at line 463 of file propagation_distance_field.cpp.
int distance_field::SignedPropagationDistanceField::getDirectionNumber | ( | int | dx, |
int | dy, | ||
int | dz | ||
) | const [private] |
Definition at line 749 of file propagation_distance_field.cpp.
double distance_field::SignedPropagationDistanceField::getDistance | ( | const SignedPropDistanceFieldVoxel & | object | ) | const [inline, private, virtual] |
Implements distance_field::DistanceField< SignedPropDistanceFieldVoxel >.
Definition at line 248 of file propagation_distance_field.h.
void distance_field::SignedPropagationDistanceField::initNeighborhoods | ( | ) | [private] |
Definition at line 689 of file propagation_distance_field.cpp.
void distance_field::SignedPropagationDistanceField::reset | ( | ) | [virtual] |
Resets the distance field to the max_distance.
Implements distance_field::DistanceField< SignedPropDistanceFieldVoxel >.
Definition at line 684 of file propagation_distance_field.cpp.
std::vector<int3 > distance_field::SignedPropagationDistanceField::direction_number_to_direction_ [private] |
Definition at line 226 of file propagation_distance_field.h.
double distance_field::SignedPropagationDistanceField::max_distance_ [private] |
Definition at line 215 of file propagation_distance_field.h.
Definition at line 216 of file propagation_distance_field.h.
std::vector<std::vector<SignedPropDistanceFieldVoxel*> > distance_field::SignedPropagationDistanceField::negative_bucket_queue_ [private] |
Definition at line 214 of file propagation_distance_field.h.
std::vector<std::vector<std::vector<int3 > > > distance_field::SignedPropagationDistanceField::neighborhoods_ [private] |
Definition at line 224 of file propagation_distance_field.h.
std::vector<std::vector<SignedPropDistanceFieldVoxel*> > distance_field::SignedPropagationDistanceField::positive_bucket_queue_ [private] |
Definition at line 213 of file propagation_distance_field.h.
std::vector<double> distance_field::SignedPropagationDistanceField::sqrt_table_ [private] |
Definition at line 218 of file propagation_distance_field.h.