diff options
Diffstat (limited to 'src/gui/math3d')
-rw-r--r-- | src/gui/math3d/qgenericmatrix.h | 2 | ||||
-rw-r--r-- | src/gui/math3d/qquaternion.cpp | 14 | ||||
-rw-r--r-- | src/gui/math3d/qquaternion.h | 22 | ||||
-rw-r--r-- | src/gui/math3d/qvector2d.h | 2 | ||||
-rw-r--r-- | src/gui/math3d/qvector4d.h | 2 |
5 files changed, 30 insertions, 12 deletions
diff --git a/src/gui/math3d/qgenericmatrix.h b/src/gui/math3d/qgenericmatrix.h index c08faaaa8b..19809056fd 100644 --- a/src/gui/math3d/qgenericmatrix.h +++ b/src/gui/math3d/qgenericmatrix.h @@ -57,7 +57,7 @@ public: void fill(T value); - QGenericMatrix<M, N, T> transposed() const; + QGenericMatrix<M, N, T> transposed() const Q_REQUIRED_RESULT; QGenericMatrix<N, M, T>& operator+=(const QGenericMatrix<N, M, T>& other); QGenericMatrix<N, M, T>& operator-=(const QGenericMatrix<N, M, T>& other); diff --git a/src/gui/math3d/qquaternion.cpp b/src/gui/math3d/qquaternion.cpp index 4b35ee4e79..0e73f79ac0 100644 --- a/src/gui/math3d/qquaternion.cpp +++ b/src/gui/math3d/qquaternion.cpp @@ -301,13 +301,21 @@ void QQuaternion::normalize() */ /*! - \fn QQuaternion QQuaternion::conjugate() const + \fn QQuaternion QQuaternion::conjugated() const + \since 5.5 Returns the conjugate of this quaternion, which is (-x, -y, -z, scalar). */ /*! + \fn QQuaternion QQuaternion::conjugate() const + \obsolete + + Use conjugated() instead. +*/ + +/*! Rotates \a vector with this quaternion to produce a new vector in 3D space. The following code: @@ -318,12 +326,12 @@ void QQuaternion::normalize() is equivalent to the following: \code - QVector3D result = (q * QQuaternion(0, vector) * q.conjugate()).vector(); + QVector3D result = (q * QQuaternion(0, vector) * q.conjugated()).vector(); \endcode */ QVector3D QQuaternion::rotatedVector(const QVector3D& vector) const { - return (*this * QQuaternion(0, vector) * conjugate()).vector(); + return (*this * QQuaternion(0, vector) * conjugated()).vector(); } /*! diff --git a/src/gui/math3d/qquaternion.h b/src/gui/math3d/qquaternion.h index 52c717072d..5b0006ac56 100644 --- a/src/gui/math3d/qquaternion.h +++ b/src/gui/math3d/qquaternion.h @@ -83,12 +83,15 @@ public: float length() const; float lengthSquared() const; - QQuaternion normalized() const; + QQuaternion normalized() const Q_REQUIRED_RESULT; void normalize(); inline QQuaternion inverted() const; - QQuaternion conjugate() const; + QQuaternion conjugated() const Q_REQUIRED_RESULT; +#if QT_DEPRECATED_SINCE(5, 5) + QT_DEPRECATED QQuaternion conjugate() const Q_REQUIRED_RESULT; +#endif QVector3D rotatedVector(const QVector3D& vector) const; @@ -161,12 +164,12 @@ inline QQuaternion::QQuaternion(float aScalar, float xpos, float ypos, float zpo inline bool QQuaternion::isNull() const { - return qIsNull(xp) && qIsNull(yp) && qIsNull(zp) && qIsNull(wp); + return xp == 0.0f && yp == 0.0f && zp == 0.0f && wp == 0.0f; } inline bool QQuaternion::isIdentity() const { - return qIsNull(xp) && qIsNull(yp) && qIsNull(zp) && wp == 1.0f; + return xp == 0.0f && yp == 0.0f && zp == 0.0f && wp == 1.0f; } inline float QQuaternion::x() const { return xp; } @@ -196,11 +199,18 @@ inline QQuaternion QQuaternion::inverted() const return QQuaternion(0.0f, 0.0f, 0.0f, 0.0f); } -inline QQuaternion QQuaternion::conjugate() const +inline QQuaternion QQuaternion::conjugated() const { return QQuaternion(wp, -xp, -yp, -zp); } +#if QT_DEPRECATED_SINCE(5, 5) +inline QQuaternion QQuaternion::conjugate() const +{ + return conjugated(); +} +#endif + inline QQuaternion &QQuaternion::operator+=(const QQuaternion &quaternion) { xp += quaternion.xp; @@ -230,9 +240,9 @@ inline QQuaternion &QQuaternion::operator*=(float factor) inline const QQuaternion operator*(const QQuaternion &q1, const QQuaternion& q2) { - float ww = (q1.zp + q1.xp) * (q2.xp + q2.yp); float yy = (q1.wp - q1.yp) * (q2.wp + q2.zp); float zz = (q1.wp + q1.yp) * (q2.wp - q2.zp); + float ww = (q1.zp + q1.xp) * (q2.xp + q2.yp); float xx = ww + yy + zz; float qq = 0.5 * (xx + (q1.zp - q1.xp) * (q2.xp - q2.yp)); diff --git a/src/gui/math3d/qvector2d.h b/src/gui/math3d/qvector2d.h index 20264fa84f..137142f381 100644 --- a/src/gui/math3d/qvector2d.h +++ b/src/gui/math3d/qvector2d.h @@ -75,7 +75,7 @@ public: float length() const; float lengthSquared() const; //In Qt 6 convert to inline and constexpr - QVector2D normalized() const; + QVector2D normalized() const Q_REQUIRED_RESULT; void normalize(); float distanceToPoint(const QVector2D &point) const; diff --git a/src/gui/math3d/qvector4d.h b/src/gui/math3d/qvector4d.h index aa69104f55..72db8ac754 100644 --- a/src/gui/math3d/qvector4d.h +++ b/src/gui/math3d/qvector4d.h @@ -81,7 +81,7 @@ public: float length() const; float lengthSquared() const; //In Qt 6 convert to inline and constexpr - QVector4D normalized() const; + QVector4D normalized() const Q_REQUIRED_RESULT; void normalize(); QVector4D &operator+=(const QVector4D &vector); |