Node structure encoding the information required for collision traversal. More...
#include <hpp/fcl/traversal/traversal_node_base.h>
Public Member Functions | |
CollisionTraversalNodeBase (bool enable_distance_lower_bound_=false) | |
virtual | ~CollisionTraversalNodeBase () |
virtual bool | BVTesting (int b1, int b2) const =0 |
BV test between b1 and b2. | |
virtual bool | BVTesting (int b1, int b2, FCL_REAL &sqrDistLowerBound) const =0 |
BV test between b1 and b2. | |
virtual void | leafTesting (int, int, FCL_REAL &) const |
Leaf test between node b1 and b2, if they are both leafs. | |
virtual bool | canStop () const |
Check whether the traversal can stop. | |
void | enableStatistics (bool enable) |
Whether store some statistics information during traversal. | |
Public Attributes | |
CollisionRequest | request |
request setting for collision | |
CollisionResult * | result |
collision result kept during the traversal iteration | |
bool | enable_statistics |
Whether stores statistics. | |
bool | enable_distance_lower_bound |
Whether to compute a lower bound on distance between bounding volumes. |
Node structure encoding the information required for collision traversal.
fcl::CollisionTraversalNodeBase::CollisionTraversalNodeBase | ( | bool | enable_distance_lower_bound_ = false | ) | [inline] |
virtual fcl::CollisionTraversalNodeBase::~CollisionTraversalNodeBase | ( | ) | [virtual] |
virtual bool fcl::CollisionTraversalNodeBase::BVTesting | ( | int | b1, |
int | b2 | ||
) | const [pure virtual] |
BV test between b1 and b2.
Implemented in fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >, fcl::MeshOcTreeCollisionTraversalNode< BV, NarrowPhaseSolver >, fcl::OcTreeShapeCollisionTraversalNode< S, NarrowPhaseSolver >, fcl::ShapeOcTreeCollisionTraversalNode< S, NarrowPhaseSolver >, fcl::OcTreeCollisionTraversalNode< NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodekIOS< S, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodeRSS< S, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodeOBB< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodekIOS< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodeRSS< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodeOBB< S, NarrowPhaseSolver >, fcl::MeshCollisionTraversalNodeOBBRSS, fcl::MeshCollisionTraversalNodekIOS, fcl::MeshCollisionTraversalNodeRSS, fcl::MeshCollisionTraversalNodeOBB, fcl::ShapeBVHCollisionTraversalNode< S, BV >, fcl::ShapeBVHCollisionTraversalNode< S, OBB >, fcl::ShapeBVHCollisionTraversalNode< S, OBBRSS >, fcl::ShapeBVHCollisionTraversalNode< S, RSS >, fcl::ShapeBVHCollisionTraversalNode< S, kIOS >, fcl::BVHCollisionTraversalNode< BV >, fcl::BVHCollisionTraversalNode< OBB >, fcl::BVHCollisionTraversalNode< kIOS >, fcl::BVHCollisionTraversalNode< RSS >, fcl::BVHCollisionTraversalNode< OBBRSS >, fcl::BVHShapeCollisionTraversalNode< BV, S >, fcl::BVHShapeCollisionTraversalNode< OBB, S >, fcl::BVHShapeCollisionTraversalNode< kIOS, S >, fcl::BVHShapeCollisionTraversalNode< OBBRSS, S >, fcl::BVHShapeCollisionTraversalNode< RSS, S >, and fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >.
virtual bool fcl::CollisionTraversalNodeBase::BVTesting | ( | int | b1, |
int | b2, | ||
FCL_REAL & | sqrDistLowerBound | ||
) | const [pure virtual] |
BV test between b1 and b2.
b1,b2 | Bounding volumes to test, |
sqrDistLowerBound | square of a lower bound of the minimal distance between bounding volumes. |
Implemented in fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >, fcl::MeshOcTreeCollisionTraversalNode< BV, NarrowPhaseSolver >, fcl::OcTreeShapeCollisionTraversalNode< S, NarrowPhaseSolver >, fcl::ShapeOcTreeCollisionTraversalNode< S, NarrowPhaseSolver >, fcl::OcTreeCollisionTraversalNode< NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >, fcl::MeshCollisionTraversalNodeOBBRSS, fcl::ShapeBVHCollisionTraversalNode< S, BV >, fcl::ShapeBVHCollisionTraversalNode< S, OBB >, fcl::ShapeBVHCollisionTraversalNode< S, OBBRSS >, fcl::ShapeBVHCollisionTraversalNode< S, RSS >, fcl::ShapeBVHCollisionTraversalNode< S, kIOS >, fcl::BVHCollisionTraversalNode< BV >, fcl::BVHCollisionTraversalNode< OBB >, fcl::BVHCollisionTraversalNode< kIOS >, fcl::BVHCollisionTraversalNode< RSS >, fcl::BVHCollisionTraversalNode< OBBRSS >, fcl::BVHShapeCollisionTraversalNode< BV, S >, fcl::BVHShapeCollisionTraversalNode< OBB, S >, fcl::BVHShapeCollisionTraversalNode< kIOS, S >, fcl::BVHShapeCollisionTraversalNode< OBBRSS, S >, fcl::BVHShapeCollisionTraversalNode< RSS, S >, and fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >.
virtual bool fcl::CollisionTraversalNodeBase::canStop | ( | ) | const [virtual] |
Check whether the traversal can stop.
Reimplemented in fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNode< S, RSS, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNode< S, OBBRSS, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNode< BV, S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNode< OBB, S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNode< RSS, S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver >, fcl::MeshCollisionTraversalNode< BV >, fcl::MeshCollisionTraversalNode< OBB >, fcl::MeshCollisionTraversalNode< kIOS >, fcl::MeshCollisionTraversalNode< RSS >, and fcl::MeshCollisionTraversalNode< OBBRSS >.
void fcl::CollisionTraversalNodeBase::enableStatistics | ( | bool | enable | ) | [inline, virtual] |
Whether store some statistics information during traversal.
Implements fcl::TraversalNodeBase.
References enable_statistics.
virtual void fcl::CollisionTraversalNodeBase::leafTesting | ( | int | , |
int | , | ||
FCL_REAL & | |||
) | const [inline, virtual] |
Leaf test between node b1 and b2, if they are both leafs.
Reimplemented in fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >, fcl::MeshOcTreeCollisionTraversalNode< BV, NarrowPhaseSolver >, fcl::OcTreeShapeCollisionTraversalNode< S, NarrowPhaseSolver >, fcl::ShapeOcTreeCollisionTraversalNode< S, NarrowPhaseSolver >, fcl::OcTreeCollisionTraversalNode< NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodekIOS< S, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodeRSS< S, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodeOBB< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodekIOS< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodeRSS< S, NarrowPhaseSolver >, fcl::MeshShapeCollisionTraversalNodeOBB< S, NarrowPhaseSolver >, fcl::MeshCollisionTraversalNodeOBBRSS, fcl::MeshCollisionTraversalNodekIOS, fcl::MeshCollisionTraversalNodeRSS, fcl::MeshCollisionTraversalNodeOBB, fcl::MeshCollisionTraversalNode< BV >, fcl::MeshCollisionTraversalNode< OBB >, fcl::MeshCollisionTraversalNode< kIOS >, fcl::MeshCollisionTraversalNode< RSS >, fcl::MeshCollisionTraversalNode< OBBRSS >, and fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >.
Whether to compute a lower bound on distance between bounding volumes.
Whether stores statistics.
Referenced by fcl::BVHShapeCollisionTraversalNode< RSS, S >::BVTesting(), fcl::BVHCollisionTraversalNode< OBBRSS >::BVTesting(), fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::BVTesting(), fcl::MeshShapeCollisionTraversalNodeOBB< S, NarrowPhaseSolver >::BVTesting(), fcl::MeshShapeCollisionTraversalNodeRSS< S, NarrowPhaseSolver >::BVTesting(), fcl::MeshShapeCollisionTraversalNodekIOS< S, NarrowPhaseSolver >::BVTesting(), fcl::MeshShapeCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >::BVTesting(), fcl::ShapeMeshCollisionTraversalNodeOBB< S, NarrowPhaseSolver >::BVTesting(), fcl::ShapeMeshCollisionTraversalNodeRSS< S, NarrowPhaseSolver >::BVTesting(), fcl::ShapeMeshCollisionTraversalNodekIOS< S, NarrowPhaseSolver >::BVTesting(), fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >::BVTesting(), enableStatistics(), fcl::MeshCollisionTraversalNode< OBBRSS >::leafTesting(), fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeOBB< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNodeOBB< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), and fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting().
request setting for collision
Referenced by fcl::MeshCollisionTraversalNode< OBBRSS >::canStop(), fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver >::canStop(), fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver >::canStop(), fcl::initialize(), fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >::leafTesting(), fcl::MeshCollisionTraversalNode< OBBRSS >::leafTesting(), fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeOBB< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNodeOBB< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::OcTreeCollisionTraversalNode< NarrowPhaseSolver >::leafTesting(), fcl::ShapeOcTreeCollisionTraversalNode< S, NarrowPhaseSolver >::leafTesting(), fcl::OcTreeShapeCollisionTraversalNode< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshOcTreeCollisionTraversalNode< BV, NarrowPhaseSolver >::leafTesting(), and fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::leafTesting().
collision result kept during the traversal iteration
Referenced by fcl::MeshCollisionTraversalNode< OBBRSS >::canStop(), fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver >::canStop(), fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver >::canStop(), fcl::initialize(), fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >::leafTesting(), fcl::MeshCollisionTraversalNode< OBBRSS >::leafTesting(), fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeOBB< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver >::leafTesting(), fcl::OcTreeCollisionTraversalNode< NarrowPhaseSolver >::leafTesting(), fcl::ShapeOcTreeCollisionTraversalNode< S, NarrowPhaseSolver >::leafTesting(), fcl::OcTreeShapeCollisionTraversalNode< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshOcTreeCollisionTraversalNode< BV, NarrowPhaseSolver >::leafTesting(), and fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::leafTesting().