From 5e5601cbb58f68608131017a895f454156307966 Mon Sep 17 00:00:00 2001
From: Markus Grotz <markus.grotz@kit.edu>
Date: Mon, 15 Jun 2015 14:03:17 +0200
Subject: [PATCH] revised Quaternion class

added convenience function convert ArmarX quaternion variant type to Eigen::Quaternionf
---
 source/RobotAPI/libraries/core/Pose.cpp | 5 +++++
 source/RobotAPI/libraries/core/Pose.h   | 1 +
 2 files changed, 6 insertions(+)

diff --git a/source/RobotAPI/libraries/core/Pose.cpp b/source/RobotAPI/libraries/core/Pose.cpp
index 1464eb5cd..cc4ba42ef 100644
--- a/source/RobotAPI/libraries/core/Pose.cpp
+++ b/source/RobotAPI/libraries/core/Pose.cpp
@@ -222,6 +222,11 @@ namespace armarx
         return rot;
     }
 
+    Eigen::Quaternionf Quaternion::toEigenQuaternion() const
+    {
+        return Quaternionf(this->qw, this->qx, this->qy, this->qz);
+    }
+
     void Quaternion::init(const Matrix3f &m3)
     {
         Quaternionf q;
diff --git a/source/RobotAPI/libraries/core/Pose.h b/source/RobotAPI/libraries/core/Pose.h
index 38a176465..727cac0e2 100644
--- a/source/RobotAPI/libraries/core/Pose.h
+++ b/source/RobotAPI/libraries/core/Pose.h
@@ -188,6 +188,7 @@ namespace armarx
         Quaternion(::Ice::Float qw, ::Ice::Float qx, ::Ice::Float qy, ::Ice::Float qz);
 
         Eigen::Matrix3f toEigen() const;
+        Eigen::Quaternionf toEigenQuaternion() const;
         Eigen::Matrix3f slerp(float, const Eigen::Matrix3f &);
 
         static Eigen::Matrix3f slerp(float, const Eigen::Matrix3f &, const Eigen::Matrix3f &);
-- 
GitLab