Octree is one type of collision geometry which can encode uncertainty information in the sensor data. More...
#include <hpp/fcl/octree.h>
Public Types | |
typedef octomap::OcTreeNode | OcTreeNode |
Public Member Functions | |
OcTree (FCL_REAL resolution) | |
construct octree with a given resolution More... | |
OcTree (const boost::shared_ptr< const octomap::OcTree > &tree_) | |
construct octree from octomap More... | |
void | computeLocalAABB () |
compute the AABB for the octree in its local coordinate system More... | |
AABB | getRootBV () const |
get the bounding volume for the root More... | |
OcTreeNode * | getRoot () const |
get the root node of the octree More... | |
bool | isNodeOccupied (const OcTreeNode *node) const |
whether one node is completely occupied More... | |
bool | isNodeFree (const OcTreeNode *node) const |
whether one node is completely free More... | |
bool | isNodeUncertain (const OcTreeNode *node) const |
whether one node is uncertain More... | |
std::vector< boost::array< FCL_REAL, 6 > > | toBoxes () const |
transform the octree into a bunch of boxes; uncertainty information is kept in the boxes. More... | |
FCL_REAL | getOccupancyThres () const |
the threshold used to decide whether one node is occupied, this is NOT the octree occupied_thresold More... | |
FCL_REAL | getFreeThres () const |
the threshold used to decide whether one node is occupied, this is NOT the octree free_threshold More... | |
FCL_REAL | getDefaultOccupancy () const |
void | setCellDefaultOccupancy (FCL_REAL d) |
void | setOccupancyThres (FCL_REAL d) |
void | setFreeThres (FCL_REAL d) |
OcTreeNode * | getNodeChild (OcTreeNode *node, unsigned int childIdx) |
const OcTreeNode * | getNodeChild (const OcTreeNode *node, unsigned int childIdx) const |
bool | nodeChildExists (const OcTreeNode *node, unsigned int childIdx) const |
return true if the child at childIdx exists More... | |
bool | nodeHasChildren (const OcTreeNode *node) const |
return true if node has at least one child More... | |
OBJECT_TYPE | getObjectType () const |
return object type, it is an octree More... | |
NODE_TYPE | getNodeType () const |
return node type, it is an octree More... | |
![]() | |
CollisionGeometry () | |
virtual | ~CollisionGeometry () |
void * | getUserData () const |
get user data in geometry More... | |
void | setUserData (void *data) |
set user data in geometry More... | |
bool | isOccupied () const HPP_FCL_DEPRECATED |
whether the object is completely occupied More... | |
bool | isFree () const HPP_FCL_DEPRECATED |
whether the object is completely free More... | |
bool | isUncertain () const HPP_FCL_DEPRECATED |
whether the object has some uncertainty More... | |
virtual Vec3f | computeCOM () const |
compute center of mass More... | |
virtual Matrix3f | computeMomentofInertia () const |
compute the inertia matrix, related to the origin More... | |
virtual FCL_REAL | computeVolume () const |
compute the volume More... | |
virtual Matrix3f | computeMomentofInertiaRelatedToCOM () const |
compute the inertia matrix, related to the com More... | |
Additional Inherited Members | |
![]() | |
Vec3f | aabb_center |
AABB center in local coordinate. More... | |
FCL_REAL | aabb_radius |
AABB radius. More... | |
AABB | aabb_local |
AABB in local coordinate, used for tight AABB when only translation transform. More... | |
void * | user_data |
pointer to user defined data specific to this object More... | |
FCL_REAL | cost_density |
collision cost for unit volume More... | |
FCL_REAL | threshold_occupied |
threshold for occupied ( >= is occupied) More... | |
FCL_REAL | threshold_free |
threshold for free (<= is free) More... | |
Octree is one type of collision geometry which can encode uncertainty information in the sensor data.
typedef octomap::OcTreeNode hpp::fcl::OcTree::OcTreeNode |
|
inline |
construct octree with a given resolution
|
inline |
construct octree from octomap
|
inlinevirtual |
compute the AABB for the octree in its local coordinate system
Implements hpp::fcl::CollisionGeometry.
References hpp::fcl::CollisionGeometry::aabb_center, hpp::fcl::CollisionGeometry::aabb_local, hpp::fcl::CollisionGeometry::aabb_radius, hpp::fcl::AABB::center(), getRootBV(), and hpp::fcl::AABB::min_.
|
inline |
|
inline |
the threshold used to decide whether one node is occupied, this is NOT the octree free_threshold
|
inline |
Referenced by hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance().
|
inline |
|
inlinevirtual |
return node type, it is an octree
Reimplemented from hpp::fcl::CollisionGeometry.
References hpp::fcl::GEOM_OCTREE.
|
inlinevirtual |
return object type, it is an octree
Reimplemented from hpp::fcl::CollisionGeometry.
References hpp::fcl::OT_OCTREE.
|
inline |
the threshold used to decide whether one node is occupied, this is NOT the octree occupied_thresold
|
inline |
get the root node of the octree
Referenced by hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeDistance(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeIntersect(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeDistance(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeIntersect(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshDistance(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshIntersect(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeDistance(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeIntersect(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance(), and hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeIntersect().
|
inline |
get the bounding volume for the root
Referenced by computeLocalAABB(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeDistance(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeIntersect(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeDistance(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeIntersect(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshDistance(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshIntersect(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeDistance(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeIntersect(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance(), and hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeIntersect().
|
inline |
whether one node is completely free
Referenced by isNodeUncertain(), and hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance().
|
inline |
whether one node is completely occupied
Referenced by isNodeUncertain(), hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance(), and toBoxes().
|
inline |
whether one node is uncertain
References isNodeFree(), and isNodeOccupied().
Referenced by hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance().
|
inline |
return true if the child at childIdx exists
Referenced by hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance().
|
inline |
return true if node has at least one child
Referenced by hpp::fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance().
|
inline |
|
inline |
|
inline |
|
inline |
transform the octree into a bunch of boxes; uncertainty information is kept in the boxes.
However, we only keep the occupied boxes (i.e., the boxes whose occupied probability is higher enough).
References isNodeOccupied().