38 #ifndef FCL_TRAVERSAL_MESHSHAPEDISTANCETRAVERSALNODE_H 39 #define FCL_TRAVERSAL_MESHSHAPEDISTANCETRAVERSALNODE_H 41 #include "fcl/geometry/shape/utility.h" 42 #include "fcl/narrowphase/detail/traversal/distance/bvh_shape_distance_traversal_node.h" 51 template <
typename BV,
typename Shape,
typename NarrowPhaseSolver>
57 using S =
typename BV::S;
73 const NarrowPhaseSolver* nsolver;
76 template <
typename BV,
typename Shape,
typename NarrowPhaseSolver>
77 void meshShapeDistanceOrientedNodeLeafTesting(
81 Vector3<typename BV::S>* vertices,
83 const Transform3<typename BV::S>&
tf1,
84 const Transform3<typename BV::S>&
tf2,
85 const NarrowPhaseSolver* nsolver,
92 template <
typename BV,
typename Shape,
typename NarrowPhaseSolver>
93 void distancePreprocessOrientedNode(
95 Vector3<typename BV::S>* vertices,
99 const Transform3<typename BV::S>& tf1,
100 const Transform3<typename BV::S>& tf2,
101 const NarrowPhaseSolver* nsolver,
107 template <
typename BV,
typename Shape,
typename NarrowPhaseSolver>
111 Transform3<typename BV::S>& tf1,
113 const Transform3<typename BV::S>& tf2,
114 const NarrowPhaseSolver* nsolver,
117 bool use_refit =
false,
bool refit_bottomup =
false);
120 template <
typename Shape,
typename NarrowPhaseSolver>
123 RSS<typename Shape::S>, Shape, NarrowPhaseSolver>
126 using S =
typename Shape::S;
139 template <
typename Shape,
typename NarrowPhaseSolver>
143 const Transform3<typename Shape::S>& tf1,
145 const Transform3<typename Shape::S>& tf2,
146 const NarrowPhaseSolver* nsolver,
150 template <
typename Shape,
typename NarrowPhaseSolver>
155 using S =
typename Shape::S;
170 template <
typename Shape,
typename NarrowPhaseSolver>
174 const Shape& model2,
const Transform3<typename Shape::S>& tf2,
175 const NarrowPhaseSolver* nsolver,
179 template <
typename Shape,
typename NarrowPhaseSolver>
184 using S =
typename Shape::S;
199 template <
typename Shape,
typename NarrowPhaseSolver>
203 const Transform3<typename Shape::S>& tf1,
205 const Transform3<typename Shape::S>& tf2,
206 const NarrowPhaseSolver* nsolver,
213 #include "fcl/narrowphase/detail/traversal/distance/mesh_shape_distance_traversal_node-inl.h" bool canStop(S c) const
Whether the traversal process can stop early.
Definition: mesh_shape_distance_traversal_node-inl.h:98
Main namespace.
Definition: broadphase_bruteforce-inl.h:45
Traversal node for distance between mesh and shape.
Definition: mesh_shape_distance_traversal_node.h:52
distance result
Definition: distance_request.h:48
Transform3< BV::S > tf2
configuration of second object
Definition: traversal_node_base.h:88
Traversal node for distance computation between BVH and shape.
Definition: bvh_shape_distance_traversal_node.h:52
Triangle with 3 indices for points.
Definition: triangle.h:47
S BVTesting(int b1, int b2) const
BV culling test in one BVTT node.
Definition: bvh_shape_distance_traversal_node-inl.h:85
DistanceRequest< BV::S > request
request setting for distance
Definition: distance_traversal_node_base.h:73
Definition: mesh_shape_distance_traversal_node.h:151
A class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as ...
Definition: BVH_model.h:57
void leafTesting(int b1, int b2) const
Distance testing between leaves (one triangle and one shape)
Definition: mesh_shape_distance_traversal_node-inl.h:67
DistanceResult< BV::S > * result
distance result kept during the traversal iteration
Definition: distance_traversal_node_base.h:76
Transform3< BV::S > tf1
configuation of first object
Definition: traversal_node_base.h:85
request to the distance computation
Definition: distance_request.h:52
bool enable_statistics
Whether stores statistics.
Definition: distance_traversal_node_base.h:79
A class describing the kIOS collision structure, which is a set of spheres.
Definition: kIOS.h:48