From 5f69c16853b67962df316803d1ee9a7824c557bb Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Thu, 14 Nov 2019 14:16:19 +0100
Subject: [PATCH] Bug fix in propagateBVHFrontListCollisionRecurse + unit-tests

---
 src/traversal/traversal_recurse.cpp | 2 +-
 test/frontlist.cpp                  | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/traversal/traversal_recurse.cpp b/src/traversal/traversal_recurse.cpp
index 84fb992e..cf4c8227 100644
--- a/src/traversal/traversal_recurse.cpp
+++ b/src/traversal/traversal_recurse.cpp
@@ -382,7 +382,7 @@ void propagateBVHFrontListCollisionRecurse
         front_iter->valid = false;
         if(node->firstOverSecond(b1, b2)) {
           int c1 = node->getFirstLeftChild(b1);
-          int c2 = node->getFirstRightChild(b2);
+          int c2 = node->getFirstRightChild(b1);
 
           collisionRecurse(node, c1, b2, front_list, sqrDistLowerBound1);
           collisionRecurse(node, c2, b2, front_list, sqrDistLowerBound2);
diff --git a/test/frontlist.cpp b/test/frontlist.cpp
index c46aca48..9762d69b 100644
--- a/test/frontlist.cpp
+++ b/test/frontlist.cpp
@@ -84,7 +84,11 @@ BOOST_AUTO_TEST_CASE(front_list)
   std::vector<Transform3f> transforms2; // t1
   FCL_REAL extents[] = {-3000, -3000, 0, 3000, 3000, 3000};
   FCL_REAL delta_trans[] = {1, 1, 1};
-  std::size_t n = 10;
+#ifdef NDEBUG
+  std::size_t n = 20;
+#else
+  std::size_t n = 5;
+#endif
   bool verbose = false;
 
   generateRandomTransforms(extents, delta_trans, 0.005 * 2 * 3.1415, transforms, transforms2, n);
-- 
GitLab