38 #ifndef HPP_FCL_BROAD_PHASE_DYNAMIC_AABB_TREE_INL_H
39 #define HPP_FCL_BROAD_PHASE_DYNAMIC_AABB_TREE_INL_H
45 #if HPP_FCL_HAVE_OCTOMAP
56 namespace dynamic_AABB_tree {
58 #if HPP_FCL_HAVE_OCTOMAP
61 template <
typename Derived>
65 const Eigen::MatrixBase<Derived>& translation2,
73 if (root1->
bv.overlap(root2_bv_t)) {
77 tf2.translation() = translation2;
88 if (collisionRecurse_(root1->
children[0], tree2,
nullptr, root2_bv,
91 if (collisionRecurse_(root1->
children[1], tree2,
nullptr, root2_bv,
102 if (root1->
bv.overlap(root2_bv_t)) {
106 tf2.translation() = translation2;
109 box->cost_density = root2->getOccupancy();
121 if (tree2->
isNodeFree(root2) || !root1->
bv.overlap(root2_bv_t))
return false;
124 (!root1->
isLeaf() && (root1->
bv.size() > root2_bv.
size()))) {
125 if (collisionRecurse_(root1->
children[0], tree2, root2, root2_bv,
128 if (collisionRecurse_(root1->
children[1], tree2, root2, root2_bv,
132 for (
unsigned int i = 0; i < 8; ++i) {
138 if (collisionRecurse_(root1, tree2, child, child_bv, translation2,
144 if (collisionRecurse_(root1, tree2,
nullptr, child_bv, translation2,
154 template <
typename Derived>
157 const AABB& root2_bv,
158 const Eigen::MatrixBase<Derived>& translation2,
165 tf2.translation() = translation2;
177 (!root1->
isLeaf() && (root1->
bv.size() > root2_bv.
size()))) {
184 if (distanceRecurse_(root1->
children[1], tree2, root2, root2_bv,
190 if (distanceRecurse_(root1->
children[0], tree2, root2, root2_bv,
196 if (distanceRecurse_(root1->
children[0], tree2, root2, root2_bv,
202 if (distanceRecurse_(root1->
children[1], tree2, root2, root2_bv,
208 for (
unsigned int i = 0; i < 8; ++i) {
218 if (distanceRecurse_(root1, tree2, child, child_bv, translation2,