From 77164ead9970263a65aac4689f14dcbbc10b3246 Mon Sep 17 00:00:00 2001 From: Sean Harmer Date: Wed, 11 Nov 2015 16:35:10 +0000 Subject: Add some more quaternion helpers to QTransform Change-Id: I4601f3d7bbf4fbf85c1d68a9f2a840c1c84eccc8 Reviewed-by: Paul Lemire Reviewed-by: Andy Nichols --- src/core/transforms/qtransform.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/core/transforms/qtransform.cpp') 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 -- cgit v1.2.3