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

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

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

Inheritance diagram for hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >:
[legend]
Collaboration diagram for hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >:
[legend]

Public Types

enum  {
  Options = _Options,
  RTIsIdentity = _Options & RelativeTransformationIsIdentity
}
 

Public Member Functions

 ShapeMeshCollisionTraversalNode ()
 
bool BVTesting (int, int b2) const
 BV test between b1 and b2. More...
 
bool BVTesting (int, int b2, FCL_REAL &sqrDistLowerBound) const
 BV test between b1 and b2. More...
 
void leafTesting (int, int b2, FCL_REAL &sqrDistLowerBound) const
 Intersection testing between leaves (one shape and one triangle) More...
 
bool canStop () const
 Whether the traversal process can stop early. More...
 
- Public Member Functions inherited from hpp::fcl::ShapeBVHCollisionTraversalNode< S, BV >
 ShapeBVHCollisionTraversalNode (const CollisionRequest &request)
 
bool firstOverSecond (int, int) const
 Alway extend the second model, which is a BVH model. More...
 
bool isSecondNodeLeaf (int b) const
 Whether the BV node in the second BVH tree is leaf. More...
 
int getSecondLeftChild (int b) const
 Obtain the left child of BV node in the second BVH. More...
 
int getSecondRightChild (int b) const
 Obtain the right child of BV node in the second BVH. More...
 
- Public Member Functions inherited from hpp::fcl::CollisionTraversalNodeBase
 CollisionTraversalNodeBase (const CollisionRequest &request_)
 
virtual ~CollisionTraversalNodeBase ()
 
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 isFirstNodeLeaf (int b) const
 Whether b is a leaf node in the first BVH tree. 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...
 

Public Attributes

Vec3fvertices
 
Triangletri_indices
 
const NarrowPhaseSolver * nsolver
 
- Public Attributes inherited from hpp::fcl::ShapeBVHCollisionTraversalNode< S, BV >
const S * model1
 
const BVHModel< BV > * model2
 
BV model1_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 S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
class hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >

Traversal node for collision between shape and mesh.

Member Enumeration Documentation

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
anonymous enum
Enumerator
Options 
RTIsIdentity 

Constructor & Destructor Documentation

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >::ShapeMeshCollisionTraversalNode ( )
inline

Member Function Documentation

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
bool hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >::BVTesting ( int  ,
int  b2 
) const
inlinevirtual

BV test between b1 and b2.

Parameters
b2Bounding volumes to test,

Implements hpp::fcl::CollisionTraversalNodeBase.

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
bool hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >::BVTesting ( int  ,
int  b2,
FCL_REAL sqrDistLowerBound 
) const
inlinevirtual

BV test between b1 and b2.

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

Implements hpp::fcl::CollisionTraversalNodeBase.

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
bool hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >::canStop ( ) const
inlinevirtual

Whether the traversal process can stop early.

Reimplemented from hpp::fcl::CollisionTraversalNodeBase.

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
void hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >::leafTesting ( int  ,
int  b2,
FCL_REAL sqrDistLowerBound 
) const
inlinevirtual

Intersection testing between leaves (one shape and one triangle)

Reimplemented from hpp::fcl::CollisionTraversalNodeBase.

Member Data Documentation

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
const NarrowPhaseSolver* hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >::nsolver

Referenced by hpp::fcl::initialize().

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
Triangle* hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >::tri_indices

Referenced by hpp::fcl::initialize().

template<typename S, typename BV, typename NarrowPhaseSolver, int _Options = RelativeTransformationIsIdentity>
Vec3f* hpp::fcl::ShapeMeshCollisionTraversalNode< S, BV, NarrowPhaseSolver, _Options >::vertices

Referenced by hpp::fcl::initialize().