38 #ifndef FCL_TRAVERSAL_MESHCOLLISIONTRAVERSALNODE_H 39 #define FCL_TRAVERSAL_MESHCOLLISIONTRAVERSALNODE_H 41 #include "fcl/math/bv/OBB.h" 42 #include "fcl/math/bv/RSS.h" 43 #include "fcl/math/bv/OBBRSS.h" 44 #include "fcl/math/bv/kIOS.h" 45 #include "fcl/narrowphase/contact.h" 46 #include "fcl/narrowphase/cost_source.h" 47 #include "fcl/narrowphase/detail/traversal/collision/intersect.h" 48 #include "fcl/narrowphase/detail/traversal/collision/bvh_collision_traversal_node.h" 57 template <
typename BV>
62 using S =
typename BV::S;
72 Vector3<S>* vertices1;
73 Vector3<S>* vertices2;
83 template <
typename BV>
87 Transform3<typename BV::S>&
tf1,
89 Transform3<typename BV::S>&
tf2,
92 bool use_refit =
false,
93 bool refit_bottomup =
false);
107 bool BVTesting(
int b1,
int b2,
const Matrix3<S>& Rc,
const Vector3<S>& Tc)
const;
109 bool BVTesting(
int b1,
int b2,
const Transform3<S>& tf)
const;
111 void leafTesting(
int b1,
int b2,
const Matrix3<S>& Rc,
const Vector3<S>& Tc)
const;
113 void leafTesting(
int b1,
int b2,
const Transform3<S>& tf)
const;
118 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
126 template <
typename S>
130 const Transform3<S>& tf1,
132 const Transform3<S>& tf2,
136 template <
typename S>
149 bool BVTesting(
int b1,
int b2,
const Transform3<S>& tf)
const;
154 void leafTesting(
int b1,
int b2,
const Transform3<S>& tf)
const;
159 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
167 template <
typename S>
171 const Transform3<S>& tf1,
173 const Transform3<S>& tf2,
177 template <
typename S>
190 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
198 template <
typename S>
202 const Transform3<S>& tf1,
204 const Transform3<S>& tf2,
208 template <
typename S>
222 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
230 template <
typename S>
234 const Transform3<S>& tf1,
236 const Transform3<S>& tf2,
240 template <
typename BV>
241 void meshCollisionOrientedNodeLeafTesting(
246 Vector3<typename BV::S>* vertices1,
247 Vector3<typename BV::S>* vertices2,
250 const Matrix3<typename BV::S>& R,
251 const Vector3<typename BV::S>& T,
252 const Transform3<typename BV::S>& tf1,
253 const Transform3<typename BV::S>& tf2,
255 typename BV::S cost_density,
260 template <
typename BV>
261 void meshCollisionOrientedNodeLeafTesting(
266 Vector3<typename BV::S>* vertices1,
267 Vector3<typename BV::S>* vertices2,
270 const Transform3<typename BV::S>& tf,
271 const Transform3<typename BV::S>& tf1,
272 const Transform3<typename BV::S>& tf2,
273 bool enable_statistics,
274 typename BV::S cost_density,
282 #include "fcl/narrowphase/detail/traversal/collision/mesh_collision_traversal_node-inl.h" bool enable_statistics
Whether stores statistics.
Definition: collision_traversal_node_base.h:78
Main namespace.
Definition: broadphase_bruteforce-inl.h:45
collision result
Definition: collision_request.h:48
void leafTesting(int b1, int b2) const
Intersection testing between leaves (two triangles)
Definition: mesh_collision_traversal_node-inl.h:124
Transform3< BV::S > tf2
configuration of second object
Definition: traversal_node_base.h:88
CollisionRequest< BV::S > request
request setting for collision
Definition: collision_traversal_node_base.h:72
const BVHModel< BV > * model1
The first BVH model.
Definition: bvh_collision_traversal_node.h:86
Triangle with 3 indices for points.
Definition: triangle.h:47
Definition: mesh_collision_traversal_node.h:178
request to the collision algorithm
Definition: collision_request.h:52
Traversal node for collision between BVH models.
Definition: bvh_collision_traversal_node.h:52
Traversal node for collision between two meshes.
Definition: mesh_collision_traversal_node.h:58
A class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as ...
Definition: BVH_model.h:57
CollisionResult< BV::S > * result
collision result kept during the traversal iteration
Definition: collision_traversal_node_base.h:75
Transform3< BV::S > tf1
configuation of first object
Definition: traversal_node_base.h:85
bool canStop() const
Whether the traversal process can stop early.
Definition: mesh_collision_traversal_node-inl.h:202
const BVHModel< BV > * model2
The second BVH model.
Definition: bvh_collision_traversal_node.h:89
Traversal node for collision between two meshes if their underlying BVH node is oriented node (OBB...
Definition: mesh_collision_traversal_node.h:98
bool BVTesting(int b1, int b2) const
BV culling test in one BVTT node.
Definition: bvh_collision_traversal_node-inl.h:121