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 |
OcTreeNode must implement the following interfaces: 1) childExists(i) 2) getChild(i) 3) hasChildren() More... | |
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) |
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 |
whether the object is completely occupied More... | |
bool | isFree () const |
whether the object is completely free More... | |
bool | isUncertain () const |
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 fcl::OcTree::OcTreeNode |
OcTreeNode must implement the following interfaces: 1) childExists(i) 2) getChild(i) 3) hasChildren()
|
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 fcl::CollisionGeometry.
References fcl::CollisionGeometry::aabb_center, fcl::CollisionGeometry::aabb_local, fcl::CollisionGeometry::aabb_radius, fcl::AABB::center(), getRootBV(), and fcl::AABB::min_.
|
inline |
|
inline |
the threshold used to decide whether one node is occupied, this is NOT the octree free_threshold
|
inlinevirtual |
return node type, it is an octree
Reimplemented from fcl::CollisionGeometry.
References fcl::GEOM_OCTREE.
|
inlinevirtual |
return object type, it is an octree
Reimplemented from fcl::CollisionGeometry.
References 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 fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeDistance(), fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeIntersect(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeDistance(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeIntersect(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshDistance(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshIntersect(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeDistance(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeIntersect(), fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance(), and fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeIntersect().
|
inline |
get the bounding volume for the root
Referenced by computeLocalAABB(), fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeDistance(), fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeIntersect(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeDistance(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeIntersect(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshDistance(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshIntersect(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeDistance(), fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeIntersect(), fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance(), and fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeIntersect().
|
inline |
whether one node is completely free
Referenced by isNodeUncertain().
|
inline |
whether one node is completely occupied
Referenced by isNodeUncertain(), and toBoxes().
|
inline |
whether one node is uncertain
References isNodeFree(), and isNodeOccupied().
|
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().