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