From 87e558c7f66ef31fcd49f57e4bbfa90d0d4da740 Mon Sep 17 00:00:00 2001
From: Florent Lamiraux <florent@laas.fr>
Date: Fri, 7 Dec 2018 22:03:17 +0100
Subject: [PATCH] [doc] Add shape mesh collision call diagram.

---
 doc/shape-mesh-collision-call.dot |  36 ++++++++++++++++++++++++++++++
 doc/shape-mesh-collision-call.pdf | Bin 0 -> 26183 bytes
 2 files changed, 36 insertions(+)
 create mode 100644 doc/shape-mesh-collision-call.dot
 create mode 100644 doc/shape-mesh-collision-call.pdf

diff --git a/doc/shape-mesh-collision-call.dot b/doc/shape-mesh-collision-call.dot
new file mode 100644
index 00000000..839f575a
--- /dev/null
+++ b/doc/shape-mesh-collision-call.dot
@@ -0,0 +1,36 @@
+digraph CD  {
+
+	rankdir = BT
+	compound=true
+        size = 11.7
+
+        "BVHShapeCollider<OBBRSS, Shape, NarrowPhaseSolver>::collide\n(const CollisionGeometry* o1, const Transform3f& tf1,\nconst CollisionGeometry* o2, const Transform3f& tf2,\nconst NarrowPhaseSolver* nsolver,\nconst CollisionRequest& request, CollisionResult& result)\ncollision_func_matrix.cpp" [shape = box]
+        "details::orientedBVHShapeCollide<MeshShapeCollisionTraversalNodeOBBRSS\n<T_SH, NarrowPhaseSolver>, OBBRSS, T_SH, NarrowPhaseSolver>\n(const CollisionGeometry* o1, const Transform3f& tf1,\nconst CollisionGeometry* o2, const Transform3f&tf2,\nNarrowPhaseSolver* nsolver, const CollisionRequest& request,\nCollisionResult& result)\ncollision_func_matrix.cpp" [shape = box]
+        "void collide(CollisionTraversalNodeBase* node,\nconst CollisionRequest& request, CollisionResult& result,\nBVHFrontList* front_list)\ncollision_node.cpp" [shape = box]
+        "void propagateBVHFrontListCollisionRecurse\n(CollisionTraversalNodeBase* node, const CollisionRequest& request,\nCollisionResult& result, BVHFrontList* front_list)\ntraversal/traversal_recurse.cpp" [shape = box]
+        "void collisionRecurse(CollisionTraversalNodeBase* node,\nint b1, int b2, BVHFrontList* front_list,\nFCL_REAL& sqrDistLowerBound)\ntraversal/traversal_recurse.cpp" [shape = box]
+        "virtual bool CollisionTraversalNodeBase::BVTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const = 0\ntraversal/traversal_node_base.h" [shape = box]
+        "virtual void CollisionTraversalNodeBase::leafTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_base.h" [shape = box]
+        "bool MeshShapeCollisionTraversalNodeOBBRSS::BVTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_bvh_shape.h" [shape = box]
+        "bool MeshShapeCollisionTraversalNodeOBBRSS::leafTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_bvh_shape.h" [shape = box]
+        "bool overlap(const Matrix3f& R0, const Vec3f& T0, const OBBRSS& b1,\nconst OBBRSS& b2, const CollisionRequest& request,\nFCL_REAL& sqrDistLowerBound)\nBV/OBBRSS.cpp" [shape = box]
+        "bool overlap(const Matrix3f& R0, const Vec3f& T0, const OBB& b1, const OBB& b2,\nconst CollisionRequest& request, FCL_REAL& sqrDistLowerBound)\nBV/OBB.cpp" [shape = box]
+        "bool obbDisjointAndLowerBoundDistance (const Matrix3f& B, const Vec3f& T,\nconst Vec3f& a, const Vec3f& b,\nconst CollisionRequest& request,\nFCL_REAL& squaredLowerBoundDistance)\nBV/OBB.cpp" [shape = box]
+        "void details::meshShapeCollisionOrientedNodeLeafTesting <OBBRSS, Shape, NarrowPhaseSolver>\n(int b1, int b2, const BVHModel<BV>* model1, const S& model2,\nVec3f* vertices, Triangle* tri_indices, const Transform3f& tf1,\nconst Transform3f& tf2, const NarrowPhaseSolver* nsolver,\nbool enable_statistics, int& num_leaf_tests,\nconst CollisionRequest& request, CollisionResult& result,\nFCL_REAL& sqrDistLowerBound)\ntraversal/traversal_node_bvh_shape.h:293" [shape = box]
+        "bool GJKSolver_indep::shapeTriangleIntersect<Shape>\n(const S& s, const Transform3f& tf,\nconst Vec3f& P1, const Vec3f& P2, const Vec3f& P3,\nFCL_REAL* distance, Vec3f* p1, Vec3f* p2) const\nnarrowphase/narrowphase.h:156" [shape = box]
+
+        "BVHShapeCollider<OBBRSS, Shape, NarrowPhaseSolver>::collide\n(const CollisionGeometry* o1, const Transform3f& tf1,\nconst CollisionGeometry* o2, const Transform3f& tf2,\nconst NarrowPhaseSolver* nsolver,\nconst CollisionRequest& request, CollisionResult& result)\ncollision_func_matrix.cpp" -> "details::orientedBVHShapeCollide<MeshShapeCollisionTraversalNodeOBBRSS\n<T_SH, NarrowPhaseSolver>, OBBRSS, T_SH, NarrowPhaseSolver>\n(const CollisionGeometry* o1, const Transform3f& tf1,\nconst CollisionGeometry* o2, const Transform3f&tf2,\nNarrowPhaseSolver* nsolver, const CollisionRequest& request,\nCollisionResult& result)\ncollision_func_matrix.cpp"
+        "details::orientedBVHShapeCollide<MeshShapeCollisionTraversalNodeOBBRSS\n<T_SH, NarrowPhaseSolver>, OBBRSS, T_SH, NarrowPhaseSolver>\n(const CollisionGeometry* o1, const Transform3f& tf1,\nconst CollisionGeometry* o2, const Transform3f&tf2,\nNarrowPhaseSolver* nsolver, const CollisionRequest& request,\nCollisionResult& result)\ncollision_func_matrix.cpp" -> "void collide(CollisionTraversalNodeBase* node,\nconst CollisionRequest& request, CollisionResult& result,\nBVHFrontList* front_list)\ncollision_node.cpp"
+        "void collide(CollisionTraversalNodeBase* node,\nconst CollisionRequest& request, CollisionResult& result,\nBVHFrontList* front_list)\ncollision_node.cpp" -> "void propagateBVHFrontListCollisionRecurse\n(CollisionTraversalNodeBase* node, const CollisionRequest& request,\nCollisionResult& result, BVHFrontList* front_list)\ntraversal/traversal_recurse.cpp"
+        "void collide(CollisionTraversalNodeBase* node,\nconst CollisionRequest& request, CollisionResult& result,\nBVHFrontList* front_list)\ncollision_node.cpp" -> "void collisionRecurse(CollisionTraversalNodeBase* node,\nint b1, int b2, BVHFrontList* front_list,\nFCL_REAL& sqrDistLowerBound)\ntraversal/traversal_recurse.cpp"
+        "void propagateBVHFrontListCollisionRecurse\n(CollisionTraversalNodeBase* node, const CollisionRequest& request,\nCollisionResult& result, BVHFrontList* front_list)\ntraversal/traversal_recurse.cpp" -> "void collisionRecurse(CollisionTraversalNodeBase* node,\nint b1, int b2, BVHFrontList* front_list,\nFCL_REAL& sqrDistLowerBound)\ntraversal/traversal_recurse.cpp"
+        "void collisionRecurse(CollisionTraversalNodeBase* node,\nint b1, int b2, BVHFrontList* front_list,\nFCL_REAL& sqrDistLowerBound)\ntraversal/traversal_recurse.cpp" -> "virtual bool CollisionTraversalNodeBase::BVTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const = 0\ntraversal/traversal_node_base.h"
+        "void collisionRecurse(CollisionTraversalNodeBase* node,\nint b1, int b2, BVHFrontList* front_list,\nFCL_REAL& sqrDistLowerBound)\ntraversal/traversal_recurse.cpp" -> "virtual void CollisionTraversalNodeBase::leafTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_base.h"
+        "virtual bool CollisionTraversalNodeBase::BVTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const = 0\ntraversal/traversal_node_base.h" -> "bool MeshShapeCollisionTraversalNodeOBBRSS::BVTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_bvh_shape.h" [color=red]
+        "virtual void CollisionTraversalNodeBase::leafTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_base.h" -> "bool MeshShapeCollisionTraversalNodeOBBRSS::leafTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_bvh_shape.h" [color = red]
+        "bool MeshShapeCollisionTraversalNodeOBBRSS::BVTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_bvh_shape.h" -> "bool overlap(const Matrix3f& R0, const Vec3f& T0, const OBBRSS& b1,\nconst OBBRSS& b2, const CollisionRequest& request,\nFCL_REAL& sqrDistLowerBound)\nBV/OBBRSS.cpp"
+        "bool overlap(const Matrix3f& R0, const Vec3f& T0, const OBBRSS& b1,\nconst OBBRSS& b2, const CollisionRequest& request,\nFCL_REAL& sqrDistLowerBound)\nBV/OBBRSS.cpp" -> "bool overlap(const Matrix3f& R0, const Vec3f& T0, const OBB& b1, const OBB& b2,\nconst CollisionRequest& request, FCL_REAL& sqrDistLowerBound)\nBV/OBB.cpp"
+        "bool overlap(const Matrix3f& R0, const Vec3f& T0, const OBB& b1, const OBB& b2,\nconst CollisionRequest& request, FCL_REAL& sqrDistLowerBound)\nBV/OBB.cpp" -> "bool obbDisjointAndLowerBoundDistance (const Matrix3f& B, const Vec3f& T,\nconst Vec3f& a, const Vec3f& b,\nconst CollisionRequest& request,\nFCL_REAL& squaredLowerBoundDistance)\nBV/OBB.cpp"
+        "bool MeshShapeCollisionTraversalNodeOBBRSS::leafTesting\n(int b1, int b2, FCL_REAL& sqrDistLowerBound) const\ntraversal/traversal_node_bvh_shape.h" -> "void details::meshShapeCollisionOrientedNodeLeafTesting <OBBRSS, Shape, NarrowPhaseSolver>\n(int b1, int b2, const BVHModel<BV>* model1, const S& model2,\nVec3f* vertices, Triangle* tri_indices, const Transform3f& tf1,\nconst Transform3f& tf2, const NarrowPhaseSolver* nsolver,\nbool enable_statistics, int& num_leaf_tests,\nconst CollisionRequest& request, CollisionResult& result,\nFCL_REAL& sqrDistLowerBound)\ntraversal/traversal_node_bvh_shape.h:293"
+        "void details::meshShapeCollisionOrientedNodeLeafTesting <OBBRSS, Shape, NarrowPhaseSolver>\n(int b1, int b2, const BVHModel<BV>* model1, const S& model2,\nVec3f* vertices, Triangle* tri_indices, const Transform3f& tf1,\nconst Transform3f& tf2, const NarrowPhaseSolver* nsolver,\nbool enable_statistics, int& num_leaf_tests,\nconst CollisionRequest& request, CollisionResult& result,\nFCL_REAL& sqrDistLowerBound)\ntraversal/traversal_node_bvh_shape.h:293" -> "bool GJKSolver_indep::shapeTriangleIntersect<Shape>\n(const S& s, const Transform3f& tf,\nconst Vec3f& P1, const Vec3f& P2, const Vec3f& P3,\nFCL_REAL* distance, Vec3f* p1, Vec3f* p2) const\nnarrowphase/narrowphase.h:156"
+}
diff --git a/doc/shape-mesh-collision-call.pdf b/doc/shape-mesh-collision-call.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..39c820ffe10b1f5688447fc674c9e78cb3bae5a8
GIT binary patch
literal 26183
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%0AD)7P#DW!}@khhgy#-`oXe
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
DB}xYk

literal 0
HcmV?d00001

-- 
GitLab