Traversal node for collision between shape and BVH. More...
#include <hpp/fcl/traversal/traversal_node_bvh_shape.h>
Public Member Functions | |
ShapeBVHCollisionTraversalNode () | |
bool | firstOverSecond (int, int) const |
Alway extend the second model, which is a BVH model. | |
bool | isSecondNodeLeaf (int b) const |
Whether the BV node in the second BVH tree is leaf. | |
int | getSecondLeftChild (int b) const |
Obtain the left child of BV node in the second BVH. | |
int | getSecondRightChild (int b) const |
Obtain the right child of BV node in the second BVH. | |
bool | BVTesting (int b1, int b2) const |
BV test between b1 and b2. | |
bool | BVTesting (int b1, int b2, FCL_REAL &sqrDistLowerBound) const |
BV test between b1 and b2. | |
Public Attributes | |
const S * | model1 |
const BVHModel< BV > * | model2 |
BV | model1_bv |
int | num_bv_tests |
int | num_leaf_tests |
FCL_REAL | query_time_seconds |
Traversal node for collision between shape and BVH.
fcl::ShapeBVHCollisionTraversalNode< S, BV >::ShapeBVHCollisionTraversalNode | ( | ) | [inline] |
bool fcl::ShapeBVHCollisionTraversalNode< S, BV >::BVTesting | ( | int | b1, |
int | b2 | ||
) | const [inline, virtual] |
BV test between b1 and b2.
b1,b2 | Bounding volumes to test, |
Implements fcl::CollisionTraversalNodeBase.
Reimplemented in fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodekIOS< S, NarrowPhaseSolver >, fcl::ShapeMeshCollisionTraversalNodeRSS< S, NarrowPhaseSolver >, and fcl::ShapeMeshCollisionTraversalNodeOBB< S, NarrowPhaseSolver >.
bool fcl::ShapeBVHCollisionTraversalNode< S, BV >::BVTesting | ( | int | b1, |
int | b2, | ||
FCL_REAL & | sqrDistLowerBound | ||
) | const [inline, 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. |
Implements fcl::CollisionTraversalNodeBase.
Reimplemented in fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >.
bool fcl::ShapeBVHCollisionTraversalNode< S, BV >::firstOverSecond | ( | int | , |
int | |||
) | const [inline, virtual] |
Alway extend the second model, which is a BVH model.
Reimplemented from fcl::TraversalNodeBase.
int fcl::ShapeBVHCollisionTraversalNode< S, BV >::getSecondLeftChild | ( | int | b | ) | const [inline, virtual] |
Obtain the left child of BV node in the second BVH.
Reimplemented from fcl::TraversalNodeBase.
int fcl::ShapeBVHCollisionTraversalNode< S, BV >::getSecondRightChild | ( | int | b | ) | const [inline, virtual] |
Obtain the right child of BV node in the second BVH.
Reimplemented from fcl::TraversalNodeBase.
bool fcl::ShapeBVHCollisionTraversalNode< S, BV >::isSecondNodeLeaf | ( | int | b | ) | const [inline, virtual] |
Whether the BV node in the second BVH tree is leaf.
Reimplemented from fcl::TraversalNodeBase.
const S* fcl::ShapeBVHCollisionTraversalNode< S, BV >::model1 |
BV fcl::ShapeBVHCollisionTraversalNode< S, BV >::model1_bv |
Referenced by fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::BVTesting(), and fcl::initialize().
const BVHModel<BV>* fcl::ShapeBVHCollisionTraversalNode< S, BV >::model2 |
Referenced by fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::BVTesting(), fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::getSecondLeftChild(), fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::getSecondRightChild(), fcl::initialize(), fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::isSecondNodeLeaf(), fcl::ShapeMeshCollisionTraversalNode< S, kIOS, NarrowPhaseSolver >::leafTesting(), and fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::ShapeBVHCollisionTraversalNode().
int fcl::ShapeBVHCollisionTraversalNode< S, BV >::num_bv_tests [mutable] |
int fcl::ShapeBVHCollisionTraversalNode< S, BV >::num_leaf_tests [mutable] |
FCL_REAL fcl::ShapeBVHCollisionTraversalNode< S, BV >::query_time_seconds [mutable] |