[QQuaternion] Add operator* that rotates a vector with a quaternion
Same as quaternion.rotatedVector(vec). Expression like `vec = quat * vec` quite common in the 3D world. Change-Id: I0edd5a5f80537bd149f03f682b3de15c54463e23 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>bb10
parent
1872857ca7
commit
e628c80dc3
|
|
@ -748,6 +748,18 @@ QQuaternion QQuaternion::fromRotationMatrix(const QMatrix3x3 &rot3x3)
|
|||
\sa QQuaternion::operator/=()
|
||||
*/
|
||||
|
||||
#ifndef QT_NO_VECTOR3D
|
||||
|
||||
/*!
|
||||
\fn QVector3D operator*(const QQuaternion &quaternion, const QVector3D &vec)
|
||||
\since 5.5
|
||||
\relates QQuaternion
|
||||
|
||||
Rotates a vector \a vec with a quaternion \a quaternion to produce a new vector in 3D space.
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
/*!
|
||||
\fn bool qFuzzyCompare(const QQuaternion& q1, const QQuaternion& q2)
|
||||
\relates QQuaternion
|
||||
|
|
|
|||
|
|
@ -308,6 +308,11 @@ inline QVector3D QQuaternion::vector() const
|
|||
return QVector3D(xp, yp, zp);
|
||||
}
|
||||
|
||||
inline QVector3D operator*(const QQuaternion &quaternion, const QVector3D &vec)
|
||||
{
|
||||
return quaternion.rotatedVector(vec);
|
||||
}
|
||||
|
||||
inline void QQuaternion::getAxisAndAngle(QVector3D *axis, float *angle) const
|
||||
{
|
||||
float aX, aY, aZ;
|
||||
|
|
|
|||
Loading…
Reference in New Issue