CopperSpice API
1.9.2
|
The QQuaternion class represents a quaternion consisting of a vector and scalar. More...
Public Methods | |
QQuaternion () | |
QQuaternion (const QVector4D &vector) | |
QQuaternion (qreal scalar, const QVector3D &vector) | |
QQuaternion (qreal scalar, qreal xpos, qreal ypos, qreal zpos) | |
QQuaternion | conjugate () const |
bool | isIdentity () const |
bool | isNull () const |
qreal | length () const |
qreal | lengthSquared () const |
void | normalize () |
QQuaternion | normalized () const |
operator QVariant () const | |
QQuaternion & | operator*= (const QQuaternion &quaternion) |
QQuaternion & | operator*= (qreal factor) |
QQuaternion & | operator+= (const QQuaternion &quaternion) |
QQuaternion & | operator-= (const QQuaternion &quaternion) |
QQuaternion & | operator/= (qreal divisor) |
QVector3D | rotatedVector (const QVector3D &vector) const |
qreal | scalar () const |
void | setScalar (qreal scalar) |
void | setVector (const QVector3D &vector) |
void | setVector (qreal x, qreal y, qreal z) |
void | setX (qreal x) |
void | setY (qreal y) |
void | setZ (qreal z) |
QVector4D | toVector4D () const |
QVector3D | vector () const |
qreal | x () const |
qreal | y () const |
qreal | z () const |
Static Public Methods | |
static QQuaternion | fromAxisAndAngle (const QVector3D &axis, qreal angle) |
static QQuaternion | fromAxisAndAngle (qreal x, qreal y, qreal z, qreal angle) |
static QQuaternion | nlerp (const QQuaternion &q1, const QQuaternion &q2, qreal t) |
static QQuaternion | slerp (const QQuaternion &q1, const QQuaternion &q2, qreal t) |
Friends | |
bool | operator!= (const QQuaternion &q1, const QQuaternion &q2) |
const QQuaternion | operator* (const QQuaternion &q1, const QQuaternion &q2) |
const QQuaternion | operator* (const QQuaternion &quaternion, qreal factor) |
const QQuaternion | operator* (qreal factor, const QQuaternion &quaternion) |
const QQuaternion | operator+ (const QQuaternion &q1, const QQuaternion &q2) |
const QQuaternion | operator- (const QQuaternion &q1, const QQuaternion &q2) |
const QQuaternion | operator- (const QQuaternion &quaternion) |
const QQuaternion | operator/ (const QQuaternion &quaternion, qreal divisor) |
bool | operator== (const QQuaternion &q1, const QQuaternion &q2) |
bool | qFuzzyCompare (const QQuaternion &q1, const QQuaternion &q2) |
Related Functions | |
These are not member functions | |
QDataStream & | operator<< (QDataStream &stream, const QQuaternion &quaternion) |
QDataStream & | operator>> (QDataStream &stream, QEasingCurve &easing) |
QDataStream & | operator>> (QDataStream &stream, QQuaternion &quaternion) |
The QQuaternion class represents a quaternion consisting of a vector and scalar.
Quaternions are used to represent rotations in 3D space, and consist of a 3D rotation axis specified by the x, y, and z coordinates, and a scalar representing the rotation angle.
|
inline |
Constructs an identity quaternion, i.e. with coordinates (1, 0, 0, 0).
Constructs a quaternion with the vector (xpos, ypos, zpos) and scalar.
|
inlineexplicit |
Constructs a quaternion from the components of vector.
|
inline |
Returns the conjugate of this quaternion, which is (-x, -y, -z, scalar).
Creates a normalized quaternion that corresponds to rotating through angle degrees about the specified 3D axis.
Creates a normalized quaternion that corresponds to rotating through angle degrees about the 3D axis (x, y, z).
|
inline |
Returns true if the x, y, and z components of this quaternion are set to 0.0, and the scalar component is set to 1.0, otherwise returns false.
|
inline |
Returns true if the x, y, z, and scalar components of this quaternion are set to 0.0, otherwise returns false.
qreal QQuaternion::length | ( | ) | const |
Returns the length of the quaternion. This is also called the "norm".
qreal QQuaternion::lengthSquared | ( | ) | const |
Returns the squared length of the quaternion.
|
static |
Interpolates along the shortest linear path between the rotational positions q1 and q2. The value t should be between 0 and 1, indicating the distance to travel between q1 and q2. The result will be normalized().
If t is less than or equal to 0, then q1 will be returned. If t is greater than or equal to 1, then q2 will be returned.
The nlerp() function is typically faster than slerp() and will give approximate results to spherical interpolation that are good enough for some applications.
void QQuaternion::normalize | ( | ) |
Normalizes the current quaternion in place. Nothing happens if this is a null quaternion or the length of the quaternion is very close to 1.
QQuaternion QQuaternion::normalized | ( | ) | const |
Returns the normalized unit form of this quaternion.
If this quaternion is null, then a null quaternion is returned. If the length of the quaternion is very close to 1, then the quaternion will be returned as-is. Otherwise the normalized form of the quaternion of length 1 will be returned.
|
inline |
Multiplies this quaternion by quaternion and returns a reference to this quaternion.
|
inline |
Multiplies this quaternion's components by the given factor, and returns a reference to this quaternion.
|
inline |
Adds the given quaternion to this quaternion and returns a reference to this quaternion.
|
inline |
Subtracts the given quaternion from this quaternion and returns a reference to this quaternion.
|
inline |
Divides this quaternion's components by the given divisor, and returns a reference to this quaternion.
|
inline |
Returns the scalar component of this quaternion.
|
inline |
|
inline |
Sets the vector component of this quaternion to vector.
Sets the vector component of this quaternion to (x, y, z).
|
inline |
Sets the x coordinate of this quaternion's vector to the given x coordinate.
|
inline |
Sets the y coordinate of this quaternion's vector to the given y coordinate.
|
inline |
Sets the z coordinate of this quaternion's vector to the given z coordinate.
|
static |
Interpolates along the shortest spherical path between the rotational positions q1 and q2. The value t should be between 0 and 1, indicating the spherical distance to travel between q1 and q2.
If t is less than or equal to 0, then q1 will be returned. If t is greater than or equal to 1, then q2 will be returned.
|
inline |
Returns this quaternion as a 4D vector.
|
inline |
Returns the vector component of this quaternion.
|
inline |
|
inline |
|
inline |
|
friend |
Returns true if q1 is not equal to q2, otherwise returns false. This operator uses an exact floating-point comparison.
|
friend |
Multiplies q1 and q2 using quaternion multiplication. The result corresponds to applying both of the rotations specified by q1 and q2.
|
friend |
Returns a copy of the given quaternion, multiplied by the given factor.
|
friend |
Returns a copy of the given quaternion, multiplied by the given factor.
|
friend |
Returns a QQuaternion object that is the sum of the given quaternions, q1 and q2; each component is added separately.
|
friend |
Returns a QQuaternion object that is formed by subtracting q2 from q1; each component is subtracted separately.
|
friend |
Returns a QQuaternion object that is formed by changing the sign of all three components of the given quaternion.
Equivalent to QQuaternion(0,0,0,0) - quaternion
.
|
friend |
Returns the QQuaternion object formed by dividing all components of the given quaternion by the given divisor.
|
related |
Writes the given quaternion to the given stream and returns a reference to the stream.
Refer to Serializing Data Types for additional information.
|
friend |
Returns true if q1 is equal to q2, otherwise returns false. This operator uses an exact floating-point comparison.
|
related |
Reads an easing curve from the stream into easing and returns a reference to the stream.
Refer to Serializing Data Types for additional information.
|
related |
Reads a quaternion from the stream into quaternion and returns a reference to the stream.
Refer to Serializing Data Types for additional information.
|
friend |
Returns true if q1 and q2 are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.