38 #ifndef FCL_TRAVERSAL_MESHSHAPECONSERVATIVEADVANCEMENTTRAVERSALNODE_H 39 #define FCL_TRAVERSAL_MESHSHAPECONSERVATIVEADVANCEMENTTRAVERSALNODE_H 41 #include "fcl/narrowphase/detail/traversal/distance/conservative_advancement_stack_data.h" 42 #include "fcl/narrowphase/detail/traversal/distance/mesh_shape_distance_traversal_node.h" 51 template <
typename BV,
typename Shape,
typename NarrowPhaseSolver>
57 using S =
typename BV::S;
70 mutable S min_distance;
72 mutable Vector3<S> closest_p1, closest_p2;
74 mutable int last_tri_id;
90 mutable std::vector<ConservativeAdvancementStackData<S>> stack;
93 template <
typename BV,
typename Shape,
typename NarrowPhaseSolver>
97 const Transform3<typename BV::S>&
tf1,
99 const Transform3<typename BV::S>&
tf2,
100 const NarrowPhaseSolver* nsolver,
101 typename BV::S
w = 1,
102 bool use_refit =
false,
103 bool refit_bottomup =
false);
105 template <
typename BV,
typename Shape,
typename NarrowPhaseSolver>
106 void meshShapeConservativeAdvancementOrientedNodeLeafTesting(
112 Vector3<typename BV::S>* vertices,
114 const Transform3<typename BV::S>&
tf1,
115 const Transform3<typename BV::S>&
tf2,
118 const NarrowPhaseSolver* nsolver,
120 typename BV::S& min_distance,
121 Vector3<typename BV::S>& p1,
122 Vector3<typename BV::S>& p2,
125 int& num_leaf_tests);
127 template <
typename BV,
typename Shape>
128 bool meshShapeConservativeAdvancementOrientedNodeCanStop(
130 typename BV::S min_distance,
131 typename BV::S abs_err,
132 typename BV::S rel_err,
142 template <
typename Shape,
typename NarrowPhaseSolver>
145 RSS<typename Shape::S>, Shape, NarrowPhaseSolver>
149 using S =
typename Shape::S;
160 template <
typename Shape,
typename NarrowPhaseSolver>
164 const Transform3<typename Shape::S>&
tf1,
166 const Transform3<typename Shape::S>&
tf2,
167 const NarrowPhaseSolver* nsolver,
168 typename Shape::S
w = 1);
170 template <
typename Shape,
typename NarrowPhaseSolver>
173 OBBRSS<typename Shape::S>, Shape, NarrowPhaseSolver>
177 using S =
typename Shape::S;
188 template <
typename Shape,
typename NarrowPhaseSolver>
192 const Transform3<typename Shape::S>& tf1,
194 const Transform3<typename Shape::S>& tf2,
195 const NarrowPhaseSolver* nsolver,
196 typename Shape::S
w = 1);
201 #include "fcl/narrowphase/detail/traversal/distance/mesh_shape_conservative_advancement_traversal_node-inl.h" S delta_t
The delta_t each step.
Definition: mesh_shape_conservative_advancement_traversal_node.h:84
Main namespace.
Definition: broadphase_bruteforce-inl.h:45
Traversal node for distance between mesh and shape.
Definition: mesh_shape_distance_traversal_node.h:52
S BVTesting(int b1, int b2) const
BV culling test in one BVTT node.
Definition: mesh_shape_conservative_advancement_traversal_node-inl.h:69
S toc
The time from beginning point.
Definition: mesh_shape_conservative_advancement_traversal_node.h:80
Transform3< BV::S > tf2
configuration of second object
Definition: traversal_node_base.h:88
Traversal node for conservative advancement computation between BVH and shape.
Definition: mesh_shape_conservative_advancement_traversal_node.h:52
Triangle with 3 indices for points.
Definition: triangle.h:47
bool canStop(S c) const
Whether the traversal process can stop early.
Definition: mesh_shape_conservative_advancement_traversal_node-inl.h:131
void leafTesting(int b1, int b2) const
Conservative advancement testing between leaves (one triangle and one shape)
Definition: mesh_shape_conservative_advancement_traversal_node-inl.h:83
Definition: bv_motion_bound_visitor.h:45
Definition: conservative_advancement_stack_data.h:50
A class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as ...
Definition: BVH_model.h:57
Transform3< BV::S > tf1
configuation of first object
Definition: traversal_node_base.h:85
S w
CA controlling variable: early stop for the early iterations of CA.
Definition: mesh_shape_conservative_advancement_traversal_node.h:77
const MotionBase< S > * motion1
Motions for the two objects in query.
Definition: mesh_shape_conservative_advancement_traversal_node.h:87
bool enable_statistics
Whether stores statistics.
Definition: distance_traversal_node_base.h:79