From caeec612484099b6a8a3043573f9b8c0d2d9d80f Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Tue, 9 May 2017 18:34:42 +0200
Subject: [PATCH] Revert "Tranform3f::transform returns an Eigen expression"

This reverts commit c2aafe321783668bc18d10b1d0031db402402b1e.

Conflicts:
	include/hpp/fcl/math/transform.h
---
 include/hpp/fcl/math/transform.h | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/include/hpp/fcl/math/transform.h b/include/hpp/fcl/math/transform.h
index e7f2266b..5191121d 100644
--- a/include/hpp/fcl/math/transform.h
+++ b/include/hpp/fcl/math/transform.h
@@ -243,35 +243,28 @@ template<typename RhsType> struct quaternion_transform_return_type :
   typename quat_traits::Cross_t m_uCrossV;
 };
 
-template<typename LhsType, typename RhsType, bool hasTemp> struct translate_return_type :
-  translate_return_type_traits<LhsType, RhsType, hasTemp>::storage_type,
-  translate_return_type_traits<LhsType, RhsType, hasTemp>::type
+template<typename LhsType, typename RhsType> struct translate_return_type :
+  translate_return_type_traits<LhsType, RhsType>::type
 {
-  typedef translate_return_type_traits<LhsType, RhsType, hasTemp> trans_traits;
+  typedef translate_return_type_traits<LhsType, RhsType> trans_traits;
 
   typedef typename trans_traits::type Base;
-  typedef typename trans_traits::storage_type storage_type;
 
   EIGEN_GENERIC_PUBLIC_INTERFACE(translate_return_type)
 
   EIGEN_STRONG_INLINE translate_return_type(const quaternion_transform_return_type<LhsType>& rv, const RhsType& T) :
     Base (rv, T)
   {}
-
-  EIGEN_STRONG_INLINE translate_return_type(const Quaternion3f&q, const Eigen::MatrixBase<LhsType>& v, const RhsType& T) :
-    storage_type (q, v),
-    Base (this->store_lhs, T)
-  {}
 };
 
 template<typename Derived, typename OtherDerived>
-const translate_return_type<Derived, OtherDerived, false>
+const translate_return_type<Derived, OtherDerived>
 operator+ (const quaternion_transform_return_type<Derived>& rv,
            const Eigen::MatrixBase<OtherDerived>& T)
 {
   EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived, 3);
   EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived, 3);
-  return translate_return_type<Derived, OtherDerived, false>(rv, T.derived());
+  return translate_return_type<Derived, OtherDerived>(rv, T.derived());
 }
 
 template<typename Derived>
@@ -429,9 +422,9 @@ public:
 
   /// @brief transform a given vector by the transform
   template <typename Derived>
-  inline const translate_return_type<Derived, Vec3f, true> transform(const Eigen::MatrixBase<Derived>& v) const
+  inline Vec3f transform(const Eigen::MatrixBase<Derived>& v) const
   {
-    return translate_return_type<Derived, Vec3f, true>(q, v, T);
+    return q.transform(v) + T;
   }
 
   /// @brief inverse transform
-- 
GitLab