From e49aa4743000df5786cfe370ca323fae84f1efbe Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Wed, 4 Jan 2012 10:52:15 +0000 Subject: [PATCH] Revert last patch---it was a bad idea. Even though multiplication of Rotations is the same thing as multiplication of Quaternions, in the first case the output is a Rotation class, and in the second on a Quaternion class. [[Imported from SVN: r8343]] --- dune/gfe/rotation.hh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dune/gfe/rotation.hh b/dune/gfe/rotation.hh index ff76ed67..f05cb2c2 100644 --- a/dune/gfe/rotation.hh +++ b/dune/gfe/rotation.hh @@ -208,6 +208,17 @@ public: return id; } + /** \brief Right multiplication */ + Rotation<T,3> mult(const Rotation<T,3>& other) const { + Rotation<T,3> q; + q[0] = (*this)[3]*other[0] - (*this)[2]*other[1] + (*this)[1]*other[2] + (*this)[0]*other[3]; + q[1] = (*this)[2]*other[0] + (*this)[3]*other[1] - (*this)[0]*other[2] + (*this)[1]*other[3]; + q[2] = - (*this)[1]*other[0] + (*this)[0]*other[1] + (*this)[3]*other[2] + (*this)[2]*other[3]; + q[3] = - (*this)[0]*other[0] - (*this)[1]*other[1] - (*this)[2]*other[2] + (*this)[3]*other[3]; + + return q; + } + /** \brief The exponential map from \f$ \mathfrak{so}(3) \f$ to \f$ SO(3) \f$ */ static Rotation<T,3> exp(const SkewMatrix<T,3>& v) { -- GitLab