38 #ifndef FCL_TRAVERSAL_OCTREE_OCTREESOLVER_H
39 #define FCL_TRAVERSAL_OCTREE_OCTREESOLVER_H
41 #include "fcl/config.h"
42 #if !(FCL_HAVE_OCTOMAP)
43 #error "This header requires fcl to be compiled with octomap support"
58 template <
typename NarrowPhaseSolver>
63 using S =
typename NarrowPhaseSolver::S;
77 void OcTreeIntersect(
const OcTree<S>* tree1,
const OcTree<S>* tree2,
83 void OcTreeDistance(
const OcTree<S>* tree1,
const OcTree<S>* tree2,
89 template <
typename BV>
90 void OcTreeMeshIntersect(
const OcTree<S>* tree1,
const BVHModel<BV>* tree2,
96 template <
typename BV>
97 void OcTreeMeshDistance(
const OcTree<S>* tree1,
const BVHModel<BV>* tree2,
103 template <
typename BV>
104 void MeshOcTreeIntersect(
const BVHModel<BV>* tree1,
const OcTree<S>* tree2,
110 template <
typename BV>
111 void MeshOcTreeDistance(
const BVHModel<BV>* tree1,
const OcTree<S>* tree2,
117 template <
typename Shape>
118 void OcTreeShapeIntersect(
const OcTree<S>* tree,
const Shape& s,
124 template <
typename Shape>
125 void ShapeOcTreeIntersect(
const Shape& s,
const OcTree<S>* tree,
131 template <
typename Shape>
132 void OcTreeShapeDistance(
const OcTree<S>* tree,
const Shape& s,
138 template <
typename Shape>
139 void ShapeOcTreeDistance(
const Shape& s,
const OcTree<S>* tree,
146 template <
typename Shape>
147 bool OcTreeShapeDistanceRecurse(
const OcTree<S>* tree1,
const typename OcTree<S>::OcTreeNode* root1,
const AABB<S>& bv1,
148 const Shape& s,
const AABB<S>& aabb2,
151 template <
typename Shape>
152 bool OcTreeShapeIntersectRecurse(
const OcTree<S>* tree1,
const typename OcTree<S>::OcTreeNode* root1,
const AABB<S>& bv1,
153 const Shape& s,
const OBB<S>& obb2,
156 template <
typename BV>
157 bool OcTreeMeshDistanceRecurse(
const OcTree<S>* tree1,
const typename OcTree<S>::OcTreeNode* root1,
const AABB<S>& bv1,
162 template <
typename BV>
163 bool OcTreeMeshIntersectRecurse(
const OcTree<S>* tree1,
const typename OcTree<S>::OcTreeNode* root1,
const AABB<S>& bv1,
167 bool OcTreeDistanceRecurse(
const OcTree<S>* tree1,
const typename OcTree<S>::OcTreeNode* root1,
const AABB<S>& bv1,
168 const OcTree<S>* tree2,
const typename OcTree<S>::OcTreeNode* root2,
const AABB<S>& bv2,
172 bool OcTreeIntersectRecurse(
const OcTree<S>* tree1,
const typename OcTree<S>::OcTreeNode* root1,
const AABB<S>& bv1,
173 const OcTree<S>* tree2,
const typename OcTree<S>::OcTreeNode* root2,
const AABB<S>& bv2,