Fix matrix to quaternion (and angleaxis) conversion for matrix expression.

This commit is contained in:
Gael Guennebaud
2015-12-01 09:45:56 +01:00
parent 844561939f
commit 6c02cbbb0f
2 changed files with 8 additions and 1 deletions

View File

@@ -49,6 +49,7 @@ template<typename Scalar, int Options> void quaternion(void)
*/
using std::abs;
typedef Matrix<Scalar,3,1> Vector3;
typedef Matrix<Scalar,3,3> Matrix3;
typedef Matrix<Scalar,4,1> Vector4;
typedef Quaternion<Scalar,Options> Quaternionx;
typedef AngleAxis<Scalar> AngleAxisx;
@@ -101,6 +102,11 @@ template<typename Scalar, int Options> void quaternion(void)
q2 = q1.toRotationMatrix();
VERIFY_IS_APPROX(q1*v1,q2*v1);
Matrix3 rot1(q1);
VERIFY_IS_APPROX(q1*v1,rot1*v1);
Quaternionx q3(rot1.transpose()*rot1);
VERIFY_IS_APPROX(q3*v1,v1);
// angle-axis conversion
AngleAxisx aa = AngleAxisx(q1);