digraph CD  {

	rankdir = BT
	compound=true
        size = 11.7

        "std::size_t BVHCollide(const CollisionGeometry* o1,\nconst Transform3s& tf1, const CollisionGeometry* o2,\nconst Transform3s& tf2, const CollisionRequest& request,\nCollisionResult& result)" [shape = box]
        "bool OBB::overlap(const OBB& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const" [shape = box]
        "bool OBBRSS::overlap(const OBBRSS& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const" [shape = box]
        "bool overlap(const Matrix3s& R0, const Vec3s& T0,\n const OBB& b1, const OBB& b2,\n const CollisionRequest& request, Scalar& sqrDistLowerBound)" [shape = box]
        "bool overlap(const Matrix3s& R0, const Vec3s& T0,\n const OBBRSS& b1, const OBBRSS& b2,\nconst CollisionRequest& request, Scalar& sqrDistLowerBound)" [shape = box]
        "bool BVNode::overlap(const BVNode& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const" [shape = box]
        "bool BVHCollisionTraversalNode::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" [shape = box]
        "bool MeshCollisionTraversalNode<T_BVH>::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" [shape = box]
        "void collide(MeshCollisionTraversalNode<T_BVH>* node,\n const CollisionRequest& request, CollisionResult& result,\nBVHFrontList* front_list)" [shape = box]
        "void collisionRecurse(MeshCollisionTraversalNode<T_BVH>* node,\n int b1, int b2, BVHFrontList* front_list, Scalar& sqrDistLowerBound)" [shape = box]
        "void propagateBVHFrontListCollisionRecurse(MeshCollisionTraversalNode<T_BVH>* node\n, BVHFrontList* front_list, const CollisionRequest& request, CollisionResult& result)" [shape = box]
        "bool MeshCollisionTraversalNodeOBBRSS::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" [shape = box]
        "MeshCollisionTraversalNode<T_BVH>::leafTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" [shape = box]
        "bool obbDisjointAndLowerBoundDistance\n(const Matrix3s& B, const Vec3s& T, const Vec3s& a, const Vec3s& b,\n Scalar& squaredLowerBoundDistance)" [shape = box]

         "std::size_t BVHCollide(const CollisionGeometry* o1,\nconst Transform3s& tf1, const CollisionGeometry* o2,\nconst Transform3s& tf2, const CollisionRequest& request,\nCollisionResult& result)" -> "void collide(MeshCollisionTraversalNode<T_BVH>* node,\n const CollisionRequest& request, CollisionResult& result,\nBVHFrontList* front_list)"
        "bool OBB::overlap(const OBB& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const" -> "bool obbDisjointAndLowerBoundDistance\n(const Matrix3s& B, const Vec3s& T, const Vec3s& a, const Vec3s& b,\n Scalar& squaredLowerBoundDistance)"
        "bool overlap(const Matrix3s& R0, const Vec3s& T0,\n const OBB& b1, const OBB& b2,\n const CollisionRequest& request, Scalar& sqrDistLowerBound)" -> "bool obbDisjointAndLowerBoundDistance\n(const Matrix3s& B, const Vec3s& T, const Vec3s& a, const Vec3s& b,\n Scalar& squaredLowerBoundDistance)"
        "bool overlap(const Matrix3s& R0, const Vec3s& T0,\n const OBBRSS& b1, const OBBRSS& b2,\nconst CollisionRequest& request, Scalar& sqrDistLowerBound)" -> "bool overlap(const Matrix3s& R0, const Vec3s& T0,\n const OBB& b1, const OBB& b2,\n const CollisionRequest& request, Scalar& sqrDistLowerBound)"
        "void collide(MeshCollisionTraversalNode<T_BVH>* node,\n const CollisionRequest& request, CollisionResult& result,\nBVHFrontList* front_list)"-> "void propagateBVHFrontListCollisionRecurse(MeshCollisionTraversalNode<T_BVH>* node\n, BVHFrontList* front_list, const CollisionRequest& request, CollisionResult& result)"
        "void collide(MeshCollisionTraversalNode<T_BVH>* node,\n const CollisionRequest& request, CollisionResult& result,\nBVHFrontList* front_list)" -> "void collisionRecurse(MeshCollisionTraversalNode<T_BVH>* node,\n int b1, int b2, BVHFrontList* front_list, Scalar& sqrDistLowerBound)"
        "void collisionRecurse(MeshCollisionTraversalNode<T_BVH>* node,\n int b1, int b2, BVHFrontList* front_list, Scalar& sqrDistLowerBound)" -> "bool MeshCollisionTraversalNode<T_BVH>::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result"
        "void collisionRecurse(MeshCollisionTraversalNode<T_BVH>* node,\n int b1, int b2, BVHFrontList* front_list, Scalar& sqrDistLowerBound)" -> "MeshCollisionTraversalNode<T_BVH>::leafTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result"
        "void propagateBVHFrontListCollisionRecurse(MeshCollisionTraversalNode<T_BVH>* node\n, BVHFrontList* front_list, const CollisionRequest& request, CollisionResult& result)" -> "void collisionRecurse(MeshCollisionTraversalNode<T_BVH>* node,\n int b1, int b2, BVHFrontList* front_list, Scalar& sqrDistLowerBound)"
        "void propagateBVHFrontListCollisionRecurse(MeshCollisionTraversalNode<T_BVH>* node\n, BVHFrontList* front_list, const CollisionRequest& request, CollisionResult& result)" -> "bool MeshCollisionTraversalNode<T_BVH>::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result"
"bool MeshCollisionTraversalNodeOBBRSS::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" -> "bool overlap(const Matrix3s& R0, const Vec3s& T0,\n const OBBRSS& b1, const OBBRSS& b2,\nconst CollisionRequest& request, Scalar& sqrDistLowerBound)"
      "bool MeshCollisionTraversalNode<T_BVH>::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" -> "bool MeshCollisionTraversalNodeOBBRSS::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" [color=red]
      "bool MeshCollisionTraversalNode<T_BVH>::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" -> "bool BVHCollisionTraversalNode::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" [color = red]
      "bool OBBRSS::overlap(const OBBRSS& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const" -> "bool OBB::overlap(const OBB& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const"
      "bool BVNode::overlap(const BVNode& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const" -> "bool OBB::overlap(const OBB& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const"
      "bool BVHCollisionTraversalNode::BVTesting\n(int b1, int b2, Scalar& sqrDistLowerBound) const\n  -request\n  - result" -> "bool BVNode::overlap(const BVNode& other,\nconst CollisionRequest& request,\nScalar& sqrDistLowerBound) const"
}