summaryrefslogtreecommitdiffstats
path: root/src/gui/math3d/qquaternion.h
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-10-27 23:59:16 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-10-29 08:51:44 +0100
commit7372dde4ec6cb32448ea026f48b5f5ea517f778d (patch)
tree3600af1e40442b8ff5a320c60cf37427848fb4b8 /src/gui/math3d/qquaternion.h
parent2222e695fcb547ed6c08f290b3b34bf36013eaad (diff)
Math 3D classes: make comparison operators hidden friends
Reduce ADL noise from QVector2/3/4D and from QQuaternion. Also mark as noexcept. Task-number: QTBUG-87973 Change-Id: Id14fd17c0da43517766b218ed85c3b41f91b43c8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/gui/math3d/qquaternion.h')
-rw-r--r--src/gui/math3d/qquaternion.h24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/gui/math3d/qquaternion.h b/src/gui/math3d/qquaternion.h
index be8951145d..99ee9085f9 100644
--- a/src/gui/math3d/qquaternion.h
+++ b/src/gui/math3d/qquaternion.h
@@ -105,8 +105,18 @@ public:
QQuaternion &operator*=(const QQuaternion &quaternion);
QQuaternion &operator/=(float divisor);
- friend inline bool operator==(const QQuaternion &q1, const QQuaternion &q2);
- friend inline bool operator!=(const QQuaternion &q1, const QQuaternion &q2);
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_FLOAT_COMPARE
+ friend inline bool operator==(const QQuaternion &q1, const QQuaternion &q2) noexcept
+ {
+ return q1.wp == q2.wp && q1.xp == q2.xp && q1.yp == q2.yp && q1.zp == q2.zp;
+ }
+ friend inline bool operator!=(const QQuaternion &q1, const QQuaternion &q2) noexcept
+ {
+ return !(q1 == q2);
+ }
+QT_WARNING_POP
+
friend inline const QQuaternion operator+(const QQuaternion &q1, const QQuaternion &q2);
friend inline const QQuaternion operator-(const QQuaternion &q1, const QQuaternion &q2);
friend inline const QQuaternion operator*(float factor, const QQuaternion &quaternion);
@@ -177,11 +187,6 @@ inline bool QQuaternion::isIdentity() const
{
return wp == 1.0f && xp == 0.0f && yp == 0.0f && zp == 0.0f;
}
-
-inline bool operator==(const QQuaternion &q1, const QQuaternion &q2)
-{
- return q1.wp == q2.wp && q1.xp == q2.xp && q1.yp == q2.yp && q1.zp == q2.zp;
-}
QT_WARNING_POP
inline float QQuaternion::x() const { return xp; }
@@ -275,11 +280,6 @@ inline QQuaternion &QQuaternion::operator/=(float divisor)
return *this;
}
-inline bool operator!=(const QQuaternion &q1, const QQuaternion &q2)
-{
- return !operator==(q1, q2);
-}
-
inline const QQuaternion operator+(const QQuaternion &q1, const QQuaternion &q2)
{
return QQuaternion(q1.wp + q2.wp, q1.xp + q2.xp, q1.yp + q2.yp, q1.zp + q2.zp);