Public Member Functions | Public Attributes | List of all members
fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver > Class Template Reference

Traversal node for octree-mesh collision. More...

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

Inheritance diagram for fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >:
[legend]
Collaboration diagram for fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >:
[legend]

Public Member Functions

 OcTreeMeshCollisionTraversalNode ()
 
bool BVTesting (int, int) const
 BV test between b1 and b2. More...
 
bool BVTesting (int, int, FCL_REAL &) const
 BV test between b1 and b2. More...
 
void leafTesting (int, int, FCL_REAL &) const
 Leaf test between node b1 and b2, if they are both leafs. More...
 
- Public Member Functions inherited from fcl::CollisionTraversalNodeBase
 CollisionTraversalNodeBase (bool enable_distance_lower_bound_=false)
 
virtual ~CollisionTraversalNodeBase ()
 
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

const OcTreemodel1
 
const BVHModel< BV > * model2
 
Transform3f tf1
 
Transform3f tf2
 
const OcTreeSolver< NarrowPhaseSolver > * otsolver
 
- Public Attributes inherited from fcl::CollisionTraversalNodeBase
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

template<typename BV, typename NarrowPhaseSolver>
class fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >

Traversal node for octree-mesh collision.

Constructor & Destructor Documentation

◆ OcTreeMeshCollisionTraversalNode()

template<typename BV, typename NarrowPhaseSolver>
fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::OcTreeMeshCollisionTraversalNode ( )
inline

Member Function Documentation

◆ BVTesting() [1/2]

template<typename BV, typename NarrowPhaseSolver>
bool fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::BVTesting ( int  b1,
int  b2 
) const
inlinevirtual

BV test between b1 and b2.

Implements fcl::CollisionTraversalNodeBase.

◆ BVTesting() [2/2]

template<typename BV, typename NarrowPhaseSolver>
bool fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::BVTesting ( int  b1,
int  b2,
FCL_REAL sqrDistLowerBound 
) const
inlinevirtual

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.

◆ leafTesting()

template<typename BV, typename NarrowPhaseSolver>
void fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::leafTesting ( int  ,
int  ,
FCL_REAL  
) const
inlinevirtual

Leaf test between node b1 and b2, if they are both leafs.

Reimplemented from fcl::CollisionTraversalNodeBase.

Member Data Documentation

◆ model1

template<typename BV, typename NarrowPhaseSolver>
const OcTree* fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::model1

Referenced by fcl::initialize().

◆ model2

template<typename BV, typename NarrowPhaseSolver>
const BVHModel<BV>* fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::model2

Referenced by fcl::initialize().

◆ otsolver

template<typename BV, typename NarrowPhaseSolver>
const OcTreeSolver<NarrowPhaseSolver>* fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::otsolver

Referenced by fcl::initialize().

◆ tf1

template<typename BV, typename NarrowPhaseSolver>
Transform3f fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::tf1

Referenced by fcl::initialize().

◆ tf2

template<typename BV, typename NarrowPhaseSolver>
Transform3f fcl::OcTreeMeshCollisionTraversalNode< BV, NarrowPhaseSolver >::tf2

Referenced by fcl::initialize().