Public Member Functions | Public Attributes
fcl::ShapeBVHCollisionTraversalNode< S, BV > Class Template Reference

Traversal node for collision between shape and BVH. More...

#include <hpp/fcl/traversal/traversal_node_bvh_shape.h>

Inheritance diagram for fcl::ShapeBVHCollisionTraversalNode< S, BV >:
[legend]
Collaboration diagram for fcl::ShapeBVHCollisionTraversalNode< S, BV >:
[legend]

List of all members.

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

Detailed Description

template<typename S, typename BV>
class fcl::ShapeBVHCollisionTraversalNode< S, BV >

Traversal node for collision between shape and BVH.


Constructor & Destructor Documentation

template<typename S, typename BV>
fcl::ShapeBVHCollisionTraversalNode< S, BV >::ShapeBVHCollisionTraversalNode ( ) [inline]

Member Function Documentation

template<typename S, typename BV>
bool fcl::ShapeBVHCollisionTraversalNode< S, BV >::BVTesting ( int  b1,
int  b2 
) const [inline, virtual]
template<typename S, typename BV>
bool fcl::ShapeBVHCollisionTraversalNode< S, BV >::BVTesting ( int  b1,
int  b2,
FCL_REAL sqrDistLowerBound 
) const [inline, virtual]

BV test between b1 and b2.

Parameters:
b1,b2Bounding volumes to test,
Return values:
sqrDistLowerBoundsquare of a lower bound of the minimal distance between bounding volumes.

Implements fcl::CollisionTraversalNodeBase.

Reimplemented in fcl::ShapeMeshCollisionTraversalNodeOBBRSS< S, NarrowPhaseSolver >.

template<typename S, typename BV>
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.

template<typename S, typename BV>
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.

template<typename S, typename BV>
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.

template<typename S, typename BV>
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.


Member Data Documentation

template<typename S, typename BV>
const S* fcl::ShapeBVHCollisionTraversalNode< S, BV >::model1
template<typename S, typename BV>
BV fcl::ShapeBVHCollisionTraversalNode< S, BV >::model1_bv
template<typename S, typename BV>
const BVHModel<BV>* fcl::ShapeBVHCollisionTraversalNode< S, BV >::model2
template<typename S, typename BV>
int fcl::ShapeBVHCollisionTraversalNode< S, BV >::num_bv_tests [mutable]
template<typename S, typename BV>
int fcl::ShapeBVHCollisionTraversalNode< S, BV >::num_leaf_tests [mutable]
template<typename S, typename BV>
FCL_REAL fcl::ShapeBVHCollisionTraversalNode< S, BV >::query_time_seconds [mutable]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines