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,
Eigen::Transform< S, 3, Eigen::Isometry > Transform3
DistanceResult< S > * dresult
Parameters for performing collision request.
Algorithms for collision related with octree.
const DistanceRequest< S > * drequest
const NarrowPhaseSolver * solver
A class describing the bounding hierarchy of a mesh model or a point cloud model (which is viewed as ...
const CollisionRequest< S > * crequest
CollisionResult< S > * cresult
request to the distance computation
typename NarrowPhaseSolver::S S