diff --git a/source/RobotAPI/libraries/core/Pose.cpp b/source/RobotAPI/libraries/core/Pose.cpp index f0ef6e15b45ca5766d16e7a1d3e2c0add055b58c..f1370001de11c7ddabc21403e637215e5a050220 100644 --- a/source/RobotAPI/libraries/core/Pose.cpp +++ b/source/RobotAPI/libraries/core/Pose.cpp @@ -173,7 +173,7 @@ namespace armarx } - Quaternion::Quaternion() + Quaternion::Quaternion() : Quaternion(Eigen::Quaternionf::Identity()) { } @@ -203,13 +203,7 @@ namespace armarx Matrix3f Quaternion::toEigen() const { - Matrix3f rot; - rot = Quaternionf( - this->qw, - this->qx, - this->qy, - this->qz); - return rot; + return toEigenQuaternion().toRotationMatrix(); } Eigen::Quaternionf Quaternion::toEigenQuaternion() const @@ -274,6 +268,14 @@ namespace armarx qw = obj->getFloat("qw"); } + + Pose::Pose() + { + this->orientation = new Quaternion(); + this->position = new Vector3(); + init(); + } + Pose::Pose(const Eigen::Matrix3f& m, const Eigen::Vector3f& v) { this->orientation = new Quaternion(m); @@ -288,13 +290,6 @@ namespace armarx init(); } - Pose::Pose() - { - this->orientation = new Quaternion(); - this->position = new Vector3(); - init(); - } - Pose::Pose(const Pose& source) : IceUtil::Shared(source), PoseBase(source) diff --git a/source/RobotAPI/libraries/core/Pose.h b/source/RobotAPI/libraries/core/Pose.h index 1573d2da69f9bdf97b9dc90958133b1129a2bcec..74be8b0fa09652a0b9db2dba733d5fdb93305a76 100644 --- a/source/RobotAPI/libraries/core/Pose.h +++ b/source/RobotAPI/libraries/core/Pose.h @@ -160,6 +160,8 @@ namespace armarx virtual public QuaternionBase { public: + + /// Construct an identity quaternion. Quaternion(); Quaternion(const Eigen::Matrix4f&); Quaternion(const Eigen::Matrix3f&);