Public Member Functions | Public Attributes | List of all members
hpp::fcl::BVHShapeCollisionTraversalNode< BV, S > Class Template Reference

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

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

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

Public Member Functions

 BVHShapeCollisionTraversalNode (const CollisionRequest &request)
 
bool isFirstNodeLeaf (int b) const
 Whether the BV node in the first BVH tree is leaf. More...
 
int getFirstLeftChild (int b) const
 Obtain the left child of BV node in the first BVH. More...
 
int getFirstRightChild (int b) const
 Obtain the right child of BV node in the first BVH. More...
 
- Public Member Functions inherited from hpp::fcl::CollisionTraversalNodeBase
 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...
 
- Public Member Functions inherited from hpp::fcl::TraversalNodeBase
virtual ~TraversalNodeBase ()
 
virtual void preprocess ()
 
virtual void postprocess ()
 
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 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 BVHModel< BV > * model1
 
const S * model2
 
BV model2_bv
 
int num_bv_tests
 
int num_leaf_tests
 
FCL_REAL query_time_seconds
 
- Public Attributes inherited from hpp::fcl::CollisionTraversalNodeBase
const CollisionRequestrequest
 request setting for collision More...
 
CollisionResultresult
 collision result kept during the traversal iteration More...
 
bool enable_statistics
 Whether stores statistics. More...
 
- Public Attributes inherited from hpp::fcl::TraversalNodeBase
Transform3f tf1
 configuation of first object More...
 
Transform3f tf2
 configuration of second object More...
 

Detailed Description

template<typename BV, typename S>
class hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >

Traversal node for collision between BVH and shape.

Constructor & Destructor Documentation

template<typename BV, typename S>
hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::BVHShapeCollisionTraversalNode ( const CollisionRequest request)
inline

Member Function Documentation

template<typename BV, typename S>
int hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::getFirstLeftChild ( int  b) const
inlinevirtual

Obtain the left child of BV node in the first BVH.

Reimplemented from hpp::fcl::TraversalNodeBase.

template<typename BV, typename S>
int hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::getFirstRightChild ( int  b) const
inlinevirtual

Obtain the right child of BV node in the first BVH.

Reimplemented from hpp::fcl::TraversalNodeBase.

template<typename BV, typename S>
bool hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::isFirstNodeLeaf ( int  b) const
inlinevirtual

Whether the BV node in the first BVH tree is leaf.

Reimplemented from hpp::fcl::TraversalNodeBase.

Member Data Documentation

template<typename BV, typename S>
const BVHModel<BV>* hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::model1

Referenced by hpp::fcl::BVHShapeCollisionTraversalNode< RSS, S >::BVHShapeCollisionTraversalNode(), hpp::fcl::BVHShapeDistanceTraversalNode< RSS, S >::BVHShapeDistanceTraversalNode(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::BVTesting(), hpp::fcl::BVHShapeDistanceTraversalNode< RSS, S >::BVTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::MeshShapeDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::MeshShapeDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::BVHShapeCollisionTraversalNode< RSS, S >::getFirstLeftChild(), hpp::fcl::BVHShapeDistanceTraversalNode< RSS, S >::getFirstLeftChild(), hpp::fcl::BVHShapeCollisionTraversalNode< RSS, S >::getFirstRightChild(), hpp::fcl::BVHShapeDistanceTraversalNode< RSS, S >::getFirstRightChild(), hpp::fcl::initialize(), hpp::fcl::BVHShapeCollisionTraversalNode< RSS, S >::isFirstNodeLeaf(), hpp::fcl::BVHShapeDistanceTraversalNode< RSS, S >::isFirstNodeLeaf(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::leafTesting(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::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(), hpp::fcl::ShapeMeshDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::ShapeBVHCollisionTraversalNode(), and hpp::fcl::ShapeBVHDistanceTraversalNode< S, RSS >::ShapeBVHDistanceTraversalNode().

template<typename BV, typename S>
const S* hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::model2

Referenced by hpp::fcl::BVHShapeCollisionTraversalNode< RSS, S >::BVHShapeCollisionTraversalNode(), hpp::fcl::BVHShapeDistanceTraversalNode< RSS, S >::BVHShapeDistanceTraversalNode(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::BVTesting(), hpp::fcl::ShapeBVHDistanceTraversalNode< S, RSS >::BVTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeRSS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodekIOS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::ShapeMeshDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::BVTesting(), hpp::fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::getSecondLeftChild(), hpp::fcl::ShapeBVHDistanceTraversalNode< S, RSS >::getSecondLeftChild(), hpp::fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::getSecondRightChild(), hpp::fcl::ShapeBVHDistanceTraversalNode< S, RSS >::getSecondRightChild(), hpp::fcl::initialize(), hpp::fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::isSecondNodeLeaf(), hpp::fcl::ShapeBVHDistanceTraversalNode< S, RSS >::isSecondNodeLeaf(), hpp::fcl::MeshShapeCollisionTraversalNode< kIOS, S, NarrowPhaseSolver, 0 >::leafTesting(), hpp::fcl::ShapeMeshCollisionTraversalNode< S, OBB, NarrowPhaseSolver, 0 >::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(), hpp::fcl::ShapeMeshDistanceTraversalNodeOBBRSS< S, NarrowPhaseSolver >::preprocess(), hpp::fcl::ShapeBVHCollisionTraversalNode< S, kIOS >::ShapeBVHCollisionTraversalNode(), and hpp::fcl::ShapeBVHDistanceTraversalNode< S, RSS >::ShapeBVHDistanceTraversalNode().

template<typename BV, typename S>
BV hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::model2_bv
template<typename BV, typename S>
int hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::num_bv_tests
mutable
template<typename BV, typename S>
int hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::num_leaf_tests
mutable
template<typename BV, typename S>
FCL_REAL hpp::fcl::BVHShapeCollisionTraversalNode< BV, S >::query_time_seconds
mutable