All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fcl::CollisionTraversalNodeBase Class Referenceabstract

Node structure encoding the information required for collision traversal. More...

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

Inheritance diagram for fcl::CollisionTraversalNodeBase:
Collaboration diagram for fcl::CollisionTraversalNodeBase:

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. More...
 
virtual bool BVTesting (int b1, int b2, FCL_REAL &sqrDistLowerBound) const =0
 BV test between b1 and b2. More...
 
virtual void leafTesting (int b1, int b2, FCL_REAL &sqrDistLowerBound) 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 fcl::TraversalNodeBase
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

CollisionRequest request
 request setting for collision More...
 
CollisionResultresult
 collision result kept during the traversal iteration More...
 
bool enable_statistics
 Whether stores statistics. More...
 
bool enable_distance_lower_bound
 Whether to compute a lower bound on distance between bounding volumes. More...
 
- Public Attributes inherited from fcl::TraversalNodeBase
Transform3f tf1
 configuation of first object More...
 
Transform3f tf2
 configuration of second object More...
 

Detailed Description

Node structure encoding the information required for collision traversal.

Constructor & Destructor Documentation

fcl::CollisionTraversalNodeBase::CollisionTraversalNodeBase ( bool  enable_distance_lower_bound_ = false)
inline
virtual fcl::CollisionTraversalNodeBase::~CollisionTraversalNodeBase ( )
virtual

Member Function Documentation

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 >.

void fcl::CollisionTraversalNodeBase::enableStatistics ( bool  enable)
inlinevirtual

Whether store some statistics information during traversal.

Implements fcl::TraversalNodeBase.

References enable_statistics.

virtual void fcl::CollisionTraversalNodeBase::leafTesting ( int  b1,
int  b2,
FCL_REAL sqrDistLowerBound 
) const
inlinevirtual

Member Data Documentation

bool fcl::CollisionTraversalNodeBase::enable_distance_lower_bound

Whether to compute a lower bound on distance between bounding volumes.

bool fcl::CollisionTraversalNodeBase::enable_statistics

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::MeshContinuousCollisionTraversalNode< BV >::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().

CollisionRequest fcl::CollisionTraversalNodeBase::request

request setting for collision

Referenced by fcl::MeshCollisionTraversalNode< OBBRSS >::canStop(), fcl::MeshShapeCollisionTraversalNode< OBBRSS, S, NarrowPhaseSolver >::canStop(), fcl::MeshContinuousCollisionTraversalNode< BV >::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().