38 #ifndef FCL_TRAVERSAL_SHAPEDISTANCETRAVERSALNODE_INL_H 39 #define FCL_TRAVERSAL_SHAPEDISTANCETRAVERSALNODE_INL_H 50 template <
typename Shape1,
typename Shape2,
typename NarrowPhaseSolver>
61 template <
typename Shape1,
typename Shape2,
typename NarrowPhaseSolver>
69 template <
typename Shape1,
typename Shape2,
typename NarrowPhaseSolver>
73 using S =
typename Shape1::S;
105 template <
typename Shape1,
typename Shape2,
typename NarrowPhaseSolver>
108 const Shape1& shape1,
110 const Shape2& shape2,
112 const NarrowPhaseSolver*
nsolver,
ShapeDistanceTraversalNode()
Traversal node for distance between two shapes.
void leafTesting(int, int) const
Distance testing between leaves (two shapes)
Eigen::Transform< S, 3, Eigen::Isometry > Transform3
Transform3< Shape1::S > tf2
configuration of second object
Eigen::Matrix< S, 3, 1 > Vector3
Node structure encoding the information required for distance traversal.
template bool initialize(MeshCollisionTraversalNodeOBB< double > &node, const BVHModel< OBB< double >> &model1, const Transform3< double > &tf1, const BVHModel< OBB< double >> &model2, const Transform3< double > &tf2, const CollisionRequest< double > &request, CollisionResult< double > &result)
DistanceRequest< Shape1::S > request
request setting for distance
template void distance(DistanceTraversalNodeBase< double > *node, BVHFrontList *front_list, int qsize)
const NarrowPhaseSolver * nsolver
DistanceResult< Shape1::S > * result
distance result kept during the traversal iteration
bool enable_signed_distance
Whether to compute exact negative distance.
Transform3< Shape1::S > tf1
configuation of first object
void update(S distance, const CollisionGeometry< S > *o1_, const CollisionGeometry< S > *o2_, int b1_, int b2_)
add distance information into the result
request to the distance computation
S BVTesting(int, int) const
BV culling test in one BVTT node.