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