summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2015-02-09 17:50:25 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2015-02-14 05:45:00 +0000
commit5d784deb71edd1e6584cd2f118d27dd3be2da5e6 (patch)
tree6152eae42ac7299652fae4475e7d5bc0f5725c94 /tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp
parent255ecba26909408d57c0d58ca211f810c66ce126 (diff)
[QQuaternion] Introduce toAxisAndAngle()
This operation is the exact opposite to QQuaternion::fromAxisAndAngle() (so that it is a way to extract the axis and angle values suitable to create the same quaternion via QQuaternion::fromAxisAndAngle()). Change-Id: I41fda58f5fb2b867cccd6b2faf58ab671fa070da Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Diffstat (limited to 'tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp')
-rw-r--r--tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp b/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp
index f1e91da372..59dcd7a015 100644
--- a/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp
+++ b/tests/auto/gui/math3d/qquaternion/tst_qquaternion.cpp
@@ -721,11 +721,31 @@ void tst_QQuaternion::fromAxisAndAngle()
QVERIFY(qFuzzyCompare(answer.z(), result.z()));
QVERIFY(qFuzzyCompare(answer.scalar(), result.scalar()));
+ {
+ QVector3D answerAxis;
+ float answerAngle;
+ answer.toAxisAndAngle(&answerAxis, &answerAngle);
+ QVERIFY(qFuzzyCompare(answerAxis.x(), vector.x()));
+ QVERIFY(qFuzzyCompare(answerAxis.y(), vector.y()));
+ QVERIFY(qFuzzyCompare(answerAxis.z(), vector.z()));
+ QVERIFY(qFuzzyCompare(answerAngle, angle));
+ }
+
answer = QQuaternion::fromAxisAndAngle(x1, y1, z1, angle);
QVERIFY(qFuzzyCompare(answer.x(), result.x()));
QVERIFY(qFuzzyCompare(answer.y(), result.y()));
QVERIFY(qFuzzyCompare(answer.z(), result.z()));
QVERIFY(qFuzzyCompare(answer.scalar(), result.scalar()));
+
+ {
+ float answerAxisX, answerAxisY, answerAxisZ;
+ float answerAngle;
+ answer.toAxisAndAngle(&answerAxisX, &answerAxisY, &answerAxisZ, &answerAngle);
+ QVERIFY(qFuzzyCompare(answerAxisX, vector.x()));
+ QVERIFY(qFuzzyCompare(answerAxisY, vector.y()));
+ QVERIFY(qFuzzyCompare(answerAxisZ, vector.z()));
+ QVERIFY(qFuzzyCompare(answerAngle, angle));
+ }
}
// Test quaternion convertion to and from rotation matrix.