Revert some previously added constexpr in QVector?d classes
This commit partly reverts cd91d8ad02
.
The revert is required as the used ifdef relied on undefined
compiler behavior. Especially Windows has had trouble. The revert reduces
the risk of breaks by future compilers.
The proper inline and constexpr has to wait until Qt 6.
Task-number: QTBUG-37122
Change-Id: I881fffb95fa46d9c170c9420a578f15640e18aea
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
parent
267eab3f39
commit
4c9885a0f5
@ -326,12 +326,10 @@ float QVector2D::distanceToLine
|
|||||||
/*!
|
/*!
|
||||||
Returns the dot product of \a v1 and \a v2.
|
Returns the dot product of \a v1 and \a v2.
|
||||||
*/
|
*/
|
||||||
#if defined(QT_BUILD_GUI_LIB) && !defined(QT_STATIC)
|
|
||||||
float QVector2D::dotProduct(const QVector2D& v1, const QVector2D& v2)
|
float QVector2D::dotProduct(const QVector2D& v1, const QVector2D& v2)
|
||||||
{
|
{
|
||||||
return v1.xp * v2.xp + v1.yp * v2.yp;
|
return v1.xp * v2.xp + v1.yp * v2.yp;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn bool operator==(const QVector2D &v1, const QVector2D &v2)
|
\fn bool operator==(const QVector2D &v1, const QVector2D &v2)
|
||||||
|
@ -80,12 +80,7 @@ public:
|
|||||||
float operator[](int i) const;
|
float operator[](int i) const;
|
||||||
|
|
||||||
float length() const;
|
float length() const;
|
||||||
#ifdef QT_BUILD_GUI_LIB
|
float lengthSquared() const; //In Qt 6 convert to inline and constexpr
|
||||||
float lengthSquared() const;
|
|
||||||
#else
|
|
||||||
Q_DECL_CONSTEXPR inline float lengthSquared() const
|
|
||||||
{ return xp * xp + yp * yp; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QVector2D normalized() const;
|
QVector2D normalized() const;
|
||||||
void normalize();
|
void normalize();
|
||||||
@ -99,12 +94,7 @@ public:
|
|||||||
QVector2D &operator*=(const QVector2D &vector);
|
QVector2D &operator*=(const QVector2D &vector);
|
||||||
QVector2D &operator/=(float divisor);
|
QVector2D &operator/=(float divisor);
|
||||||
|
|
||||||
#if defined(QT_BUILD_GUI_LIB) && !defined(QT_STATIC)
|
static float dotProduct(const QVector2D& v1, const QVector2D& v2); //In Qt 6 convert to inline and constexpr
|
||||||
static float dotProduct(const QVector2D& v1, const QVector2D& v2);
|
|
||||||
#else
|
|
||||||
Q_DECL_CONSTEXPR inline static float dotProduct(const QVector2D& v1, const QVector2D& v2)
|
|
||||||
{ return v1.xp * v2.xp + v1.yp * v2.yp; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Q_DECL_CONSTEXPR friend inline bool operator==(const QVector2D &v1, const QVector2D &v2);
|
Q_DECL_CONSTEXPR friend inline bool operator==(const QVector2D &v1, const QVector2D &v2);
|
||||||
Q_DECL_CONSTEXPR friend inline bool operator!=(const QVector2D &v1, const QVector2D &v2);
|
Q_DECL_CONSTEXPR friend inline bool operator!=(const QVector2D &v1, const QVector2D &v2);
|
||||||
|
@ -316,12 +316,10 @@ void QVector3D::normalize()
|
|||||||
/*!
|
/*!
|
||||||
Returns the dot product of \a v1 and \a v2.
|
Returns the dot product of \a v1 and \a v2.
|
||||||
*/
|
*/
|
||||||
#if defined(QT_BUILD_GUI_LIB) && !defined(QT_STATIC)
|
|
||||||
float QVector3D::dotProduct(const QVector3D& v1, const QVector3D& v2)
|
float QVector3D::dotProduct(const QVector3D& v1, const QVector3D& v2)
|
||||||
{
|
{
|
||||||
return v1.xp * v2.xp + v1.yp * v2.yp + v1.zp * v2.zp;
|
return v1.xp * v2.xp + v1.yp * v2.yp + v1.zp * v2.zp;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Returns the cross-product of vectors \a v1 and \a v2, which corresponds
|
Returns the cross-product of vectors \a v1 and \a v2, which corresponds
|
||||||
@ -329,14 +327,12 @@ float QVector3D::dotProduct(const QVector3D& v1, const QVector3D& v2)
|
|||||||
|
|
||||||
\sa normal()
|
\sa normal()
|
||||||
*/
|
*/
|
||||||
#if defined(QT_BUILD_GUI_LIB) && !defined(QT_STATIC)
|
|
||||||
QVector3D QVector3D::crossProduct(const QVector3D& v1, const QVector3D& v2)
|
QVector3D QVector3D::crossProduct(const QVector3D& v1, const QVector3D& v2)
|
||||||
{
|
{
|
||||||
return QVector3D(v1.yp * v2.zp - v1.zp * v2.yp,
|
return QVector3D(v1.yp * v2.zp - v1.zp * v2.yp,
|
||||||
v1.zp * v2.xp - v1.xp * v2.zp,
|
v1.zp * v2.xp - v1.xp * v2.zp,
|
||||||
v1.xp * v2.yp - v1.yp * v2.xp);
|
v1.xp * v2.yp - v1.yp * v2.xp);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Returns the normal vector of a plane defined by vectors \a v1 and \a v2,
|
Returns the normal vector of a plane defined by vectors \a v1 and \a v2,
|
||||||
|
@ -95,17 +95,9 @@ public:
|
|||||||
QVector3D &operator*=(const QVector3D& vector);
|
QVector3D &operator*=(const QVector3D& vector);
|
||||||
QVector3D &operator/=(float divisor);
|
QVector3D &operator/=(float divisor);
|
||||||
|
|
||||||
#if defined(QT_BUILD_GUI_LIB) && !defined(QT_STATIC)
|
static float dotProduct(const QVector3D& v1, const QVector3D& v2); //In Qt 6 convert to inline and constexpr
|
||||||
static float dotProduct(const QVector3D& v1, const QVector3D& v2);
|
static QVector3D crossProduct(const QVector3D& v1, const QVector3D& v2); //in Qt 6 convert to inline and constexpr
|
||||||
static QVector3D crossProduct(const QVector3D& v1, const QVector3D& v2);
|
|
||||||
#else
|
|
||||||
Q_DECL_CONSTEXPR inline static float dotProduct(const QVector3D& v1, const QVector3D& v2)
|
|
||||||
{ return v1.xp * v2.xp + v1.yp * v2.yp + v1.zp * v2.zp; }
|
|
||||||
Q_DECL_CONSTEXPR inline static QVector3D crossProduct(const QVector3D& v1, const QVector3D& v2)
|
|
||||||
{ return QVector3D(v1.yp * v2.zp - v1.zp * v2.yp,
|
|
||||||
v1.zp * v2.xp - v1.xp * v2.zp,
|
|
||||||
v1.xp * v2.yp - v1.yp * v2.xp); }
|
|
||||||
#endif
|
|
||||||
static QVector3D normal(const QVector3D& v1, const QVector3D& v2);
|
static QVector3D normal(const QVector3D& v1, const QVector3D& v2);
|
||||||
static QVector3D normal
|
static QVector3D normal
|
||||||
(const QVector3D& v1, const QVector3D& v2, const QVector3D& v3);
|
(const QVector3D& v1, const QVector3D& v2, const QVector3D& v3);
|
||||||
|
@ -369,12 +369,10 @@ void QVector4D::normalize()
|
|||||||
/*!
|
/*!
|
||||||
Returns the dot product of \a v1 and \a v2.
|
Returns the dot product of \a v1 and \a v2.
|
||||||
*/
|
*/
|
||||||
#if defined(QT_BUILD_GUI_LIB) && !defined(QT_STATIC)
|
|
||||||
float QVector4D::dotProduct(const QVector4D& v1, const QVector4D& v2)
|
float QVector4D::dotProduct(const QVector4D& v1, const QVector4D& v2)
|
||||||
{
|
{
|
||||||
return v1.xp * v2.xp + v1.yp * v2.yp + v1.zp * v2.zp + v1.wp * v2.wp;
|
return v1.xp * v2.xp + v1.yp * v2.yp + v1.zp * v2.zp + v1.wp * v2.wp;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn bool operator==(const QVector4D &v1, const QVector4D &v2)
|
\fn bool operator==(const QVector4D &v1, const QVector4D &v2)
|
||||||
|
@ -86,12 +86,7 @@ public:
|
|||||||
float operator[](int i) const;
|
float operator[](int i) const;
|
||||||
|
|
||||||
float length() const;
|
float length() const;
|
||||||
#ifdef QT_BUILD_GUI_LIB
|
float lengthSquared() const; //In Qt 6 convert to inline and constexpr
|
||||||
float lengthSquared() const;
|
|
||||||
#else
|
|
||||||
Q_DECL_CONSTEXPR inline float lengthSquared() const
|
|
||||||
{ return xp * xp + yp * yp + zp * zp + wp * wp; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
QVector4D normalized() const;
|
QVector4D normalized() const;
|
||||||
void normalize();
|
void normalize();
|
||||||
@ -102,12 +97,7 @@ public:
|
|||||||
QVector4D &operator*=(const QVector4D &vector);
|
QVector4D &operator*=(const QVector4D &vector);
|
||||||
QVector4D &operator/=(float divisor);
|
QVector4D &operator/=(float divisor);
|
||||||
|
|
||||||
#if defined(QT_BUILD_GUI_LIB) && !defined(QT_STATIC)
|
static float dotProduct(const QVector4D& v1, const QVector4D& v2); //In Qt 6 convert to inline and constexpr
|
||||||
static float dotProduct(const QVector4D& v1, const QVector4D& v2);
|
|
||||||
#else
|
|
||||||
static float dotProduct(const QVector4D& v1, const QVector4D& v2)
|
|
||||||
{ return v1.xp * v2.xp + v1.yp * v2.yp + v1.zp * v2.zp + v1.wp * v2.wp; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Q_DECL_CONSTEXPR friend inline bool operator==(const QVector4D &v1, const QVector4D &v2);
|
Q_DECL_CONSTEXPR friend inline bool operator==(const QVector4D &v1, const QVector4D &v2);
|
||||||
Q_DECL_CONSTEXPR friend inline bool operator!=(const QVector4D &v1, const QVector4D &v2);
|
Q_DECL_CONSTEXPR friend inline bool operator!=(const QVector4D &v1, const QVector4D &v2);
|
||||||
|
Loading…
Reference in New Issue
Block a user