diff --git a/include/hpp/fcl/math/transform.h b/include/hpp/fcl/math/transform.h
index a11dc55ccced115f65b975c15e4681f56709d92f..53c07a9ce11a9ee1bce6a1da20273c8f49b29a42 100644
--- a/include/hpp/fcl/math/transform.h
+++ b/include/hpp/fcl/math/transform.h
@@ -132,6 +132,22 @@ public:
     data (other.derived())
   {}
 
+  Quaternion3f(FCL_REAL w, FCL_REAL x, FCL_REAL y, FCL_REAL z)
+  {
+    data[W] = w;
+    data[X] = x;
+    data[Y] = y;
+    data[Z] = z;
+  }
+
+  template<typename Derived>
+  Quaternion3f(FCL_REAL _w, const Eigen::MatrixBase<Derived>& _vec)
+  {
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived, 3);
+    w() = _w;
+    vec().noalias() = _vec;
+  }
+
   /// @brief Whether the rotation is identity
   bool isIdentity() const
   {
@@ -251,22 +267,6 @@ public:
 
 private:
 
-  Quaternion3f(FCL_REAL w, FCL_REAL x, FCL_REAL y, FCL_REAL z)
-  {
-    data[W] = w;
-    data[X] = x;
-    data[Y] = y;
-    data[Z] = z;
-  }
-
-  template<typename Derived>
-  Quaternion3f(FCL_REAL _w, const Eigen::MatrixBase<Derived>& _vec)
-  {
-    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived, 3);
-    w() = _w;
-    vec().noalias() = _vec;
-  }
-
   FCL_REAL operator [] (std::size_t i) const
   {
     return data[i];