Node structure encoding the information required for collision traversal. More...
#include <hpp/fcl/traversal/traversal_node_base.h>
Public Member Functions | |
CollisionTraversalNodeBase (const CollisionRequest &request_) | |
virtual | ~CollisionTraversalNodeBase () |
virtual bool | BVTesting (int b1, int b2) const =0 |
BV test between b1 and b2. More... | |
virtual bool | BVTesting (int b1, int b2, FCL_REAL &sqrDistLowerBound) const =0 |
BV test between b1 and b2. More... | |
virtual void | leafTesting (int, int, FCL_REAL &) const |
Leaf test between node b1 and b2, if they are both leafs. More... | |
virtual bool | canStop () const |
Check whether the traversal can stop. More... | |
void | enableStatistics (bool enable) |
Whether store some statistics information during traversal. More... | |
![]() | |
virtual | ~TraversalNodeBase () |
virtual void | preprocess () |
virtual void | postprocess () |
virtual bool | isFirstNodeLeaf (int b) const |
Whether b is a leaf node in the first BVH tree. More... | |
virtual bool | isSecondNodeLeaf (int b) const |
Whether b is a leaf node in the second BVH tree. More... | |
virtual bool | firstOverSecond (int b1, int b2) const |
Traverse the subtree of the node in the first tree first. More... | |
virtual int | getFirstLeftChild (int b) const |
Get the left child of the node b in the first tree. More... | |
virtual int | getFirstRightChild (int b) const |
Get the right child of the node b in the first tree. More... | |
virtual int | getSecondLeftChild (int b) const |
Get the left child of the node b in the second tree. More... | |
virtual int | getSecondRightChild (int b) const |
Get the right child of the node b in the second tree. More... | |
Public Attributes | |
const CollisionRequest & | request |
request setting for collision More... | |
CollisionResult * | result |
collision result kept during the traversal iteration More... | |
bool | enable_statistics |
Whether stores statistics. More... | |
![]() | |
Transform3f | tf1 |
configuation of first object More... | |
Transform3f | tf2 |
configuration of second object More... | |
Node structure encoding the information required for collision traversal.
|
inline |
|
virtual |
|
pure virtual |
BV test between b1 and b2.
Implemented in hpp::fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >, hpp::fcl::MeshOcTreeCollisionTraversalNode< BV, NarrowPhaseSolver >, hpp::fcl::OcTreeShapeCollisionTraversalNode< S, NarrowPhaseSolver >, hpp::fcl::ShapeOcTreeCollisionTraversalNode< S, NarrowPhaseSolver >, hpp::fcl::OcTreeCollisionTraversalNode< NarrowPhaseSolver >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, RSS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBBRSS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< BV, S, NarrowPhaseSolver, _Options >, hpp::fcl::MeshShapeCollisionTraversalNode< RSS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< OBB, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshCollisionTraversalNode< BV, _Options >, and hpp::fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >.
|
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 hpp::fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >, hpp::fcl::MeshOcTreeCollisionTraversalNode< BV, NarrowPhaseSolver >, hpp::fcl::OcTreeShapeCollisionTraversalNode< S, NarrowPhaseSolver >, hpp::fcl::ShapeOcTreeCollisionTraversalNode< S, NarrowPhaseSolver >, hpp::fcl::OcTreeCollisionTraversalNode< NarrowPhaseSolver >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, RSS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBBRSS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< BV, S, NarrowPhaseSolver, _Options >, hpp::fcl::MeshShapeCollisionTraversalNode< RSS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< OBB, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshCollisionTraversalNode< BV, _Options >, and hpp::fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >.
|
virtual |
Check whether the traversal can stop.
Reimplemented in hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, RSS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBBRSS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >, hpp::fcl::MeshCollisionTraversalNode< BV, _Options >, hpp::fcl::MeshShapeCollisionTraversalNode< BV, S, NarrowPhaseSolver, _Options >, hpp::fcl::MeshShapeCollisionTraversalNode< RSS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< OBB, S, NarrowPhaseSolver, 0 >, and hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >.
|
inlinevirtual |
Whether store some statistics information during traversal.
Implements hpp::fcl::TraversalNodeBase.
|
inlinevirtual |
Leaf test between node b1 and b2, if they are both leafs.
Reimplemented in hpp::fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >, hpp::fcl::MeshOcTreeCollisionTraversalNode< BV, NarrowPhaseSolver >, hpp::fcl::OcTreeShapeCollisionTraversalNode< S, NarrowPhaseSolver >, hpp::fcl::ShapeOcTreeCollisionTraversalNode< S, NarrowPhaseSolver >, hpp::fcl::OcTreeCollisionTraversalNode< NarrowPhaseSolver >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, RSS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBBRSS, NarrowPhaseSolver, 0 >, hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >, hpp::fcl::MeshCollisionTraversalNode< BV, _Options >, hpp::fcl::MeshShapeCollisionTraversalNode< BV, S, NarrowPhaseSolver, _Options >, hpp::fcl::MeshShapeCollisionTraversalNode< RSS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< OBB, S, NarrowPhaseSolver, 0 >, hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >, and hpp::fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >.
bool hpp::fcl::CollisionTraversalNodeBase::enable_statistics |
Whether stores statistics.
Referenced by hpp::fcl::MeshCollisionTraversalNode< BV, _Options >::BVTesting(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::BVTesting(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::BVTesting(), hpp::fcl::BVHDistanceTraversalNode< OBBRSS >::BVTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::MeshShapeDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::leafTesting(), hpp::fcl::MeshCollisionTraversalNode< BV, _Options >::leafTesting(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::leafTesting(), hpp::fcl::MeshDistanceTraversalNode< OBBRSS >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNode< OBBRSS, S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNode< S, kIOS, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), and hpp::fcl::ShapeMeshDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting().
const CollisionRequest& hpp::fcl::CollisionTraversalNodeBase::request |
request setting for collision
Referenced by hpp::fcl::MeshCollisionTraversalNode< BV, _Options >::BVTesting(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::BVTesting(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::canStop(), hpp::fcl::MeshCollisionTraversalNode< BV, _Options >::canStop(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::canStop(), hpp::fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::leafTesting(), hpp::fcl::MeshCollisionTraversalNode< BV, _Options >::leafTesting(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshDistanceTraversalNode< OBBRSS >::MeshDistanceTraversalNode(), hpp::fcl::MeshShapeDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::MeshShapeDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::MeshShapeDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::ShapeMeshDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::preprocess(), and hpp::fcl::details::DistanceTraversalBVTesting_impl< OBB >::run().
CollisionResult* hpp::fcl::CollisionTraversalNodeBase::result |
collision result kept during the traversal iteration
Referenced by hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::canStop(), hpp::fcl::MeshCollisionTraversalNode< BV, _Options >::canStop(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::canStop(), hpp::fcl::MeshDistanceTraversalNode< OBBRSS >::canStop(), hpp::fcl::MeshShapeDistanceTraversalNode< OBBRSS, S, NarrowPhaseSolver >::canStop(), hpp::fcl::ShapeMeshDistanceTraversalNode< S, kIOS, NarrowPhaseSolver >::canStop(), hpp::fcl::initialize(), hpp::fcl::ShapeCollisionTraversalNode< S1, S2, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeDistanceTraversalNode< S1, S2, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::leafTesting(), hpp::fcl::MeshCollisionTraversalNode< BV, _Options >::leafTesting(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::leafTesting(), hpp::fcl::MeshDistanceTraversalNode< OBBRSS >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNode< OBBRSS, S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNode< S, kIOS, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::MeshShapeDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::MeshShapeDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::ShapeMeshDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::ShapeMeshDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::preprocess(), and hpp::fcl::ShapeMeshDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::preprocess().