From 175bc9ea15bdfe767d23b5a5b82f261014884ff6 Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Fri, 10 Jun 2016 18:13:53 +0200
Subject: [PATCH] Minor optimizations

---
 src/BV/OBB.cpp        | 4 ++--
 src/BV/kIOS.cpp       | 2 +-
 src/BVH/BVH_model.cpp | 6 ++++--
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/BV/OBB.cpp b/src/BV/OBB.cpp
index 2628e921..14b256d5 100644
--- a/src/BV/OBB.cpp
+++ b/src/BV/OBB.cpp
@@ -562,7 +562,7 @@ bool OBB::overlap(const OBB& other) const
 
 bool OBB::contain(const Vec3f& p) const
 {
-  Vec3f local_p = p - To;
+  Vec3f local_p (p - To);
   FCL_REAL proj = local_p.dot(axes.col(0));
   if((proj > extent[0]) || (proj < -extent[0]))
     return false;
@@ -581,7 +581,7 @@ bool OBB::contain(const Vec3f& p) const
 OBB& OBB::operator += (const Vec3f& p)
 {
   OBB bvp;
-  bvp.To.noalias() = p;
+  bvp.To = p;
   bvp.axes.noalias() = axes;
   bvp.extent.setZero();
 
diff --git a/src/BV/kIOS.cpp b/src/BV/kIOS.cpp
index a482c4d0..b523f455 100644
--- a/src/BV/kIOS.cpp
+++ b/src/BV/kIOS.cpp
@@ -183,7 +183,7 @@ bool overlap(const Matrix3f& R0, const Vec3f& T0, const kIOS& b1, const kIOS& b2
 
   
   b2_temp.obb.To = R0 * b2_temp.obb.To + T0;
-  b2_temp.obb.axes = R0 * b2_temp.obb.axes;
+  b2_temp.obb.axes.applyOnTheLeft(R0);
 
   return b1.overlap(b2_temp);
 }
diff --git a/src/BVH/BVH_model.cpp b/src/BVH/BVH_model.cpp
index ae4e903d..28d762b5 100644
--- a/src/BVH/BVH_model.cpp
+++ b/src/BVH/BVH_model.cpp
@@ -890,7 +890,8 @@ void BVHModel<OBB>::makeParentRelativeRecurse(int bv_id, Matrix3f& parent_axes,
   }
 
   // make self parent relative
-  obb.axes = parent_axes.transpose() * obb.axes;
+  // obb.axes = parent_axes.transpose() * obb.axes;
+  obb.axes.applyOnTheLeft(parent_axes.transpose());
 
   Vec3f t (obb.To - parent_c);
   obb.To.noalias() = parent_axes.transpose() * t;
@@ -908,7 +909,8 @@ void BVHModel<RSS>::makeParentRelativeRecurse(int bv_id, Matrix3f& parent_axes,
   }
 
   // make self parent relative
-  rss.axes = parent_axes.transpose() * rss.axes;
+  // rss.axes = parent_axes.transpose() * rss.axes;
+  rss.axes.applyOnTheLeft(parent_axes.transpose());
 
   Vec3f t (rss.Tr - parent_c);
   rss.Tr.noalias() = parent_axes.transpose() * t;
-- 
GitLab