A DynamicEDT3D object computes and updates a 3D distance map. More...
#include <dynamicEDT3D.h>

Classes | |
| struct | dataCell |
Public Types | |
| enum | ObstDataState { invalidObstData = INT_MAX } |
Public Member Functions | |
| void | clearCell (int x, int y, int z) |
| remove an obstacle at the specified cell coordinate | |
| DynamicEDT3D (int _maxdist_squared) | |
| void | exchangeObstacles (std::vector< INTPOINT3D > newObstacles) |
| remove old dynamic obstacles and add the new ones | |
| INTPOINT3D | getClosestObstacle (int x, int y, int z) const |
| gets the closest occupied cell for that location | |
| float | getDistance (int x, int y, int z) const |
| returns the obstacle distance at the specified location | |
| unsigned int | getSizeX () const |
| returns the x size of the workspace/map | |
| unsigned int | getSizeY () const |
| returns the y size of the workspace/map | |
| unsigned int | getSizeZ () const |
| returns the z size of the workspace/map | |
| int | getSQCellDistance (int x, int y, int z) const |
| returns the squared obstacle distance in cell units at the specified location | |
| void | initializeEmpty (int _sizeX, int _sizeY, int sizeZ, bool initGridMap=true) |
| Initialization with an empty map. | |
| void | initializeMap (int _sizeX, int _sizeY, int sizeZ, bool ***_gridMap) |
| Initialization with a given binary map (false==free, true==occupied) | |
| bool | isOccupied (int x, int y, int z) const |
| checks whether the specficied location is occupied | |
| void | occupyCell (int x, int y, int z) |
| add an obstacle at the specified cell coordinate | |
| virtual void | update (bool updateRealDist=true) |
| update distance map to reflect the changes | |
| ~DynamicEDT3D () | |
Static Public Attributes | |
| static int | distanceInCellsValue_Error = -1 |
| distance value returned when requesting distance in cell units for a cell outside the map | |
| static float | distanceValue_Error = -1.0 |
| distance value returned when requesting distance for a cell outside the map | |
Protected Types | |
| enum | QueueingState { fwNotQueued = 1, fwQueued = 2, fwProcessed = 3, bwQueued = 4, bwProcessed = 1 } |
| enum | State { free = 0, occupied = 1 } |
Protected Member Functions | |
| void | inspectCellPropagate (int &nx, int &ny, int &nz, dataCell &c, bool updateRealDist) |
| void | inspectCellRaise (int &nx, int &ny, int &nz, bool updateRealDist) |
| void | propagateCell (INTPOINT3D &p, dataCell &c, bool updateRealDist) |
| void | raiseCell (INTPOINT3D &p, dataCell &c, bool updateRealDist) |
| void | removeObstacle (int x, int y, int z) |
| void | setObstacle (int x, int y, int z) |
Protected Attributes | |
| dataCell *** | data |
| double | doubleThreshold |
| bool *** | gridMap |
| double | maxDist |
| int | maxDist_squared |
| int | padding |
| int | sizeX |
| int | sizeXm1 |
| int | sizeY |
| int | sizeYm1 |
| int | sizeZ |
| int | sizeZm1 |
| double | sqrt2 |
Private Member Functions | |
| void | commitAndColorize (bool updateRealDist=true) |
| bool | isOccupied (int &x, int &y, int &z, dataCell &c) |
Private Attributes | |
| std::vector< INTPOINT3D > | addList |
| std::vector< INTPOINT3D > | lastObstacles |
| BucketPrioQueue< INTPOINT3D > | open |
| std::vector< INTPOINT3D > | removeList |
A DynamicEDT3D object computes and updates a 3D distance map.
dynamicEDT3D: A library for incrementally updatable Euclidean distance transforms in 3D.
Definition at line 47 of file dynamicEDT3D.h.
Definition at line 86 of file dynamicEDT3D.h.
enum DynamicEDT3D::QueueingState [protected] |
Definition at line 105 of file dynamicEDT3D.h.
enum DynamicEDT3D::State [protected] |
Definition at line 104 of file dynamicEDT3D.h.
| DynamicEDT3D::DynamicEDT3D | ( | int | _maxdist_squared | ) |
Definition at line 109 of file dynamicEDT3D.cpp.
Definition at line 117 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::clearCell | ( | int | x, |
| int | y, | ||
| int | z | ||
| ) |
remove an obstacle at the specified cell coordinate
Definition at line 260 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::commitAndColorize | ( | bool | updateRealDist = true | ) | [private] |
Definition at line 544 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::exchangeObstacles | ( | std::vector< INTPOINT3D > | newObstacles | ) |
remove old dynamic obstacles and add the new ones
Definition at line 288 of file dynamicEDT3D.cpp.
| INTPOINT3D DynamicEDT3D::getClosestObstacle | ( | int | x, |
| int | y, | ||
| int | z | ||
| ) | const |
gets the closest occupied cell for that location
Definition at line 528 of file dynamicEDT3D.cpp.
| float DynamicEDT3D::getDistance | ( | int | x, |
| int | y, | ||
| int | z | ||
| ) | const |
returns the obstacle distance at the specified location
Definition at line 521 of file dynamicEDT3D.cpp.
| unsigned int DynamicEDT3D::getSizeX | ( | ) | const [inline] |
returns the x size of the workspace/map
Definition at line 80 of file dynamicEDT3D.h.
| unsigned int DynamicEDT3D::getSizeY | ( | ) | const [inline] |
returns the y size of the workspace/map
Definition at line 82 of file dynamicEDT3D.h.
| unsigned int DynamicEDT3D::getSizeZ | ( | ) | const [inline] |
returns the z size of the workspace/map
Definition at line 84 of file dynamicEDT3D.h.
| int DynamicEDT3D::getSQCellDistance | ( | int | x, |
| int | y, | ||
| int | z | ||
| ) | const |
returns the squared obstacle distance in cell units at the specified location
Definition at line 536 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::initializeEmpty | ( | int | _sizeX, |
| int | _sizeY, | ||
| int | sizeZ, | ||
| bool | initGridMap = true |
||
| ) |
Initialization with an empty map.
Definition at line 139 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::initializeMap | ( | int | _sizeX, |
| int | _sizeY, | ||
| int | sizeZ, | ||
| bool *** | _gridMap | ||
| ) |
Initialization with a given binary map (false==free, true==occupied)
Definition at line 209 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::inspectCellPropagate | ( | int & | nx, |
| int & | ny, | ||
| int & | nz, | ||
| dataCell & | c, | ||
| bool | updateRealDist | ||
| ) | [inline, protected] |
Definition at line 480 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::inspectCellRaise | ( | int & | nx, |
| int & | ny, | ||
| int & | nz, | ||
| bool | updateRealDist | ||
| ) | [inline, protected] |
Definition at line 362 of file dynamicEDT3D.cpp.
| bool DynamicEDT3D::isOccupied | ( | int | x, |
| int | y, | ||
| int | z | ||
| ) | const |
checks whether the specficied location is occupied
Definition at line 584 of file dynamicEDT3D.cpp.
| bool DynamicEDT3D::isOccupied | ( | int & | x, |
| int & | y, | ||
| int & | z, | ||
| dataCell & | c | ||
| ) | [inline, private] |
Definition at line 589 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::occupyCell | ( | int | x, |
| int | y, | ||
| int | z | ||
| ) |
add an obstacle at the specified cell coordinate
Definition at line 255 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::propagateCell | ( | INTPOINT3D & | p, |
| dataCell & | c, | ||
| bool | updateRealDist | ||
| ) | [inline, protected] |
Definition at line 385 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::raiseCell | ( | INTPOINT3D & | p, |
| dataCell & | c, | ||
| bool | updateRealDist | ||
| ) | [inline, protected] |
Definition at line 338 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::removeObstacle | ( | int | x, |
| int | y, | ||
| int | z | ||
| ) | [protected] |
Definition at line 276 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::setObstacle | ( | int | x, |
| int | y, | ||
| int | z | ||
| ) | [protected] |
Definition at line 265 of file dynamicEDT3D.cpp.
| void DynamicEDT3D::update | ( | bool | updateRealDist = true | ) | [virtual] |
update distance map to reflect the changes
Reimplemented in DynamicEDTOctomap.
Definition at line 313 of file dynamicEDT3D.cpp.
std::vector<INTPOINT3D> DynamicEDT3D::addList [private] |
Definition at line 125 of file dynamicEDT3D.h.
dataCell*** DynamicEDT3D::data [protected] |
Definition at line 137 of file dynamicEDT3D.h.
int DynamicEDT3D::distanceInCellsValue_Error = -1 [static] |
distance value returned when requesting distance in cell units for a cell outside the map
Reimplemented in DynamicEDTOctomap.
Definition at line 91 of file dynamicEDT3D.h.
float DynamicEDT3D::distanceValue_Error = -1.0 [static] |
distance value returned when requesting distance for a cell outside the map
Reimplemented in DynamicEDTOctomap.
Definition at line 89 of file dynamicEDT3D.h.
double DynamicEDT3D::doubleThreshold [protected] |
Definition at line 142 of file dynamicEDT3D.h.
bool*** DynamicEDT3D::gridMap [protected] |
Definition at line 138 of file dynamicEDT3D.h.
std::vector<INTPOINT3D> DynamicEDT3D::lastObstacles [private] |
Definition at line 126 of file dynamicEDT3D.h.
double DynamicEDT3D::maxDist [protected] |
Definition at line 145 of file dynamicEDT3D.h.
int DynamicEDT3D::maxDist_squared [protected] |
Definition at line 146 of file dynamicEDT3D.h.
BucketPrioQueue<INTPOINT3D> DynamicEDT3D::open [private] |
Definition at line 122 of file dynamicEDT3D.h.
int DynamicEDT3D::padding [protected] |
Definition at line 141 of file dynamicEDT3D.h.
std::vector<INTPOINT3D> DynamicEDT3D::removeList [private] |
Definition at line 124 of file dynamicEDT3D.h.
int DynamicEDT3D::sizeX [protected] |
Definition at line 130 of file dynamicEDT3D.h.
int DynamicEDT3D::sizeXm1 [protected] |
Definition at line 133 of file dynamicEDT3D.h.
int DynamicEDT3D::sizeY [protected] |
Definition at line 131 of file dynamicEDT3D.h.
int DynamicEDT3D::sizeYm1 [protected] |
Definition at line 134 of file dynamicEDT3D.h.
int DynamicEDT3D::sizeZ [protected] |
Definition at line 132 of file dynamicEDT3D.h.
int DynamicEDT3D::sizeZm1 [protected] |
Definition at line 135 of file dynamicEDT3D.h.
double DynamicEDT3D::sqrt2 [protected] |
Definition at line 144 of file dynamicEDT3D.h.