summaryrefslogtreecommitdiffstats
path: root/src/core/transforms/qtransform.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2015-11-11 16:35:10 +0000
committerAndy Nichols <andy.nichols@theqtcompany.com>2015-11-16 16:11:12 +0000
commit77164ead9970263a65aac4689f14dcbbc10b3246 (patch)
tree553f3ae7b760b4361aad021bcb622dbe74ca54bf /src/core/transforms/qtransform.cpp
parent0b41fa923de9f3562845e0532d5ce2992a7856dc (diff)
Add some more quaternion helpers to QTransform
Change-Id: I4601f3d7bbf4fbf85c1d68a9f2a840c1c84eccc8 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/core/transforms/qtransform.cpp')
-rw-r--r--src/core/transforms/qtransform.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/core/transforms/qtransform.cpp b/src/core/transforms/qtransform.cpp
index 7727bf9c7..aeb9a57f7 100644
--- a/src/core/transforms/qtransform.cpp
+++ b/src/core/transforms/qtransform.cpp
@@ -237,6 +237,34 @@ QQuaternion QTransform::fromAxisAndAngle(float x, float y, float z, float angle)
return QQuaternion::fromAxisAndAngle(x, y, z, angle);
}
+QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1,
+ const QVector3D &axis2, float angle2)
+{
+ const QQuaternion q1 = QQuaternion::fromAxisAndAngle(axis1, angle1);
+ const QQuaternion q2 = QQuaternion::fromAxisAndAngle(axis2, angle2);
+ return q2 * q1;
+}
+
+QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1,
+ const QVector3D &axis2, float angle2,
+ const QVector3D &axis3, float angle3)
+{
+ const QQuaternion q1 = QQuaternion::fromAxisAndAngle(axis1, angle1);
+ const QQuaternion q2 = QQuaternion::fromAxisAndAngle(axis2, angle2);
+ const QQuaternion q3 = QQuaternion::fromAxisAndAngle(axis3, angle3);
+ return q3 * q2 * q1;
+}
+
+QQuaternion QTransform::fromEulerAngles(const QVector3D &eulerAngles)
+{
+ return QQuaternion::fromEulerAngles(eulerAngles);
+}
+
+QQuaternion QTransform::fromEulerAngles(float pitch, float yaw, float roll)
+{
+ return QQuaternion::fromEulerAngles(pitch, yaw, roll);
+}
+
} // namespace Qt3DCore
QT_END_NAMESPACE