Tizen Native API
4.0
|
The Quaternion class encapsulates the mathematics of the quaternion. More...
Public Member Functions | |
Quaternion () | |
Default Constructor. | |
Quaternion (float cosThetaBy2, float iBySineTheta, float jBySineTheta, float kBySineTheta) | |
Constructs from a quaternion represented by floats. | |
Quaternion (const Vector4 &vector) | |
Constructs from a quaternion represented by a vector. | |
Quaternion (Radian angle, const Vector3 &axis) | |
Constructor from an axis and angle. | |
Quaternion (Radian pitch, Radian yaw, Radian roll) | |
Constructs from Euler angles. | |
Quaternion (const Matrix &matrix) | |
Constructs from a matrix. | |
Quaternion (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis) | |
Constructs from 3 orthonormal axes. | |
Quaternion (const Vector3 &v0, const Vector3 &v1) | |
Constructs quaternion which describes minimum rotation to align v0 with v1. | |
~Quaternion () | |
Destructor, nonvirtual as this is not a base class. | |
bool | IsIdentity () const |
Helper to check if this is an identity quaternion. | |
bool | ToAxisAngle (Vector3 &axis, Radian &angle) const |
Converts the quaternion to an axis/angle pair. | |
const Vector4 & | AsVector () const |
Returns the quaternion as a vector. | |
void | SetEuler (Radian pitch, Radian yaw, Radian roll) |
SetEuler sets the quaternion from the Euler angles applied in x, y, z order. | |
Vector4 | EulerAngles () const |
Returns the Euler angles from a rotation Quaternion. | |
const Quaternion | operator+ (const Quaternion &other) const |
Addition operator. | |
const Quaternion | operator- (const Quaternion &other) const |
Subtraction operator. | |
const Quaternion | operator* (const Quaternion &other) const |
Multiplication operator. | |
Vector3 | operator* (const Vector3 &other) const |
Multiplication operator. | |
const Quaternion | operator/ (const Quaternion &other) const |
Division operator. | |
const Quaternion | operator* (float scale) const |
Scale operator. | |
const Quaternion | operator/ (float scale) const |
Scale operator. | |
Quaternion | operator- () const |
Unary Negation operator. | |
const Quaternion & | operator+= (const Quaternion &other) |
Addition with Assignment operator. | |
const Quaternion & | operator-= (const Quaternion &other) |
Subtraction with Assignment operator. | |
const Quaternion & | operator*= (const Quaternion &other) |
Multiplication with Assignment operator. | |
const Quaternion & | operator*= (float scale) |
Scale with Assignment operator. | |
const Quaternion & | operator/= (float scale) |
Scale with Assignment operator. | |
bool | operator== (const Quaternion &rhs) const |
Equality operator. | |
bool | operator!= (const Quaternion &rhs) const |
Inequality operator. | |
float | Length () const |
Returns the length of the quaternion. | |
float | LengthSquared () const |
Returns the squared length of the quaternion. | |
void | Normalize () |
Normalizes this to unit length. | |
Quaternion | Normalized () const |
Normalized. | |
void | Conjugate () |
Conjugates this quaternion. | |
void | Invert () |
Inverts this quaternion. | |
Quaternion | Log () const |
Performs the logarithm of a Quaternion = v*a where q = (cos(a),v*sin(a)). | |
Quaternion | Exp () const |
Performs an exponent e^Quaternion = Exp(v*a) = (cos(a),vsin(a)). | |
Vector4 | Rotate (const Vector4 &vector) const |
Rotates v by this Quaternion (Quaternion must be unit). | |
Vector3 | Rotate (const Vector3 &vector) const |
Rotates v by this Quaternion (Quaternion must be unit). | |
Static Public Member Functions | |
static float | Dot (const Quaternion &q1, const Quaternion &q2) |
Returns the dot product of two quaternions. | |
static Quaternion | Lerp (const Quaternion &q1, const Quaternion &q2, float t) |
Linear Interpolation (using a straight line between the two quaternions). | |
static Quaternion | Slerp (const Quaternion &q1, const Quaternion &q2, float progress) |
Spherical Linear Interpolation (using the shortest arc of a great circle between the two quaternions). | |
static Quaternion | SlerpNoInvert (const Quaternion &q1, const Quaternion &q2, float t) |
This version of Slerp, used by Squad, does not check for theta > 90. | |
static Quaternion | Squad (const Quaternion &start, const Quaternion &end, const Quaternion &ctrl1, const Quaternion &ctrl2, float t) |
Spherical Cubic Interpolation. | |
static float | AngleBetween (const Quaternion &q1, const Quaternion &q2) |
Returns the shortest angle between two quaternions in Radians. | |
Public Attributes | |
Vector4 | mVector |
Static Public Attributes | |
static const Quaternion | IDENTITY |
(0.0f,0.0f,0.0f,1.0f) |
The Quaternion class encapsulates the mathematics of the quaternion.
Default Constructor.
Dali::Quaternion::Quaternion | ( | float | cosThetaBy2, |
float | iBySineTheta, | ||
float | jBySineTheta, | ||
float | kBySineTheta | ||
) |
Constructs from a quaternion represented by floats.
[in] | cosThetaBy2 | |
[in] | iBySineTheta | |
[in] | jBySineTheta | |
[in] | kBySineTheta |
Dali::Quaternion::Quaternion | ( | const Vector4 & | vector | ) | [explicit] |
Constructs from a quaternion represented by a vector.
[in] | vector | x,y,z fields represent i,j,k coefficients, w represents cos(theta/2) |
Dali::Quaternion::Quaternion | ( | Radian | angle, |
const Vector3 & | axis | ||
) |
Constructor from an axis and angle.
[in] | angle | The angle around the axis |
[in] | axis | The vector of the axis |
Dali::Quaternion::Quaternion | ( | Radian | pitch, |
Radian | yaw, | ||
Radian | roll | ||
) |
Constructs from Euler angles.
[in] | pitch | |
[in] | yaw | |
[in] | roll |
Dali::Quaternion::Quaternion | ( | const Matrix & | matrix | ) | [explicit] |
Constructs from a matrix.
[in] | matrix |
Dali::Quaternion::Quaternion | ( | const Vector3 & | xAxis, |
const Vector3 & | yAxis, | ||
const Vector3 & | zAxis | ||
) | [explicit] |
Constructs from 3 orthonormal axes.
[in] | xAxis | The X axis |
[in] | yAxis | The Y axis |
[in] | zAxis | The Z axis |
Dali::Quaternion::Quaternion | ( | const Vector3 & | v0, |
const Vector3 & | v1 | ||
) | [explicit] |
Constructs quaternion which describes minimum rotation to align v0 with v1.
[in] | v0 | First normalized vector |
[in] | v1 | Second normalized vector |
Destructor, nonvirtual as this is not a base class.
static float Dali::Quaternion::AngleBetween | ( | const Quaternion & | q1, |
const Quaternion & | q2 | ||
) | [static] |
Returns the shortest angle between two quaternions in Radians.
[in] | q1 | The first quaternion |
[in] | q2 | The second quaternion |
const Vector4& Dali::Quaternion::AsVector | ( | ) | const |
Returns the quaternion as a vector.
void Dali::Quaternion::Conjugate | ( | ) |
Conjugates this quaternion.
static float Dali::Quaternion::Dot | ( | const Quaternion & | q1, |
const Quaternion & | q2 | ||
) | [static] |
Returns the dot product of two quaternions.
[in] | q1 | The first quaternion |
[in] | q2 | The second quaternion |
Vector4 Dali::Quaternion::EulerAngles | ( | ) | const |
Returns the Euler angles from a rotation Quaternion.
Quaternion Dali::Quaternion::Exp | ( | ) | const |
Performs an exponent e^Quaternion = Exp(v*a) = (cos(a),vsin(a)).
void Dali::Quaternion::Invert | ( | ) |
Inverts this quaternion.
bool Dali::Quaternion::IsIdentity | ( | ) | const |
Helper to check if this is an identity quaternion.
float Dali::Quaternion::Length | ( | ) | const |
Returns the length of the quaternion.
float Dali::Quaternion::LengthSquared | ( | ) | const |
Returns the squared length of the quaternion.
static Quaternion Dali::Quaternion::Lerp | ( | const Quaternion & | q1, |
const Quaternion & | q2, | ||
float | t | ||
) | [static] |
Linear Interpolation (using a straight line between the two quaternions).
[in] | q1 | The start quaternion |
[in] | q2 | The end quaternion |
[in] | t | A progress value between 0 and 1 |
Quaternion Dali::Quaternion::Log | ( | ) | const |
Performs the logarithm of a Quaternion = v*a where q = (cos(a),v*sin(a)).
void Dali::Quaternion::Normalize | ( | ) |
Normalizes this to unit length.
Quaternion Dali::Quaternion::Normalized | ( | ) | const |
Normalized.
bool Dali::Quaternion::operator!= | ( | const Quaternion & | rhs | ) | const |
Inequality operator.
[in] | rhs | The quaternion to compare with |
const Quaternion Dali::Quaternion::operator* | ( | const Quaternion & | other | ) | const |
Multiplication operator.
[in] | other | The quaternion to multiply |
Multiplication operator.
[in] | other | The vector to multiply |
const Quaternion Dali::Quaternion::operator* | ( | float | scale | ) | const |
Scale operator.
[in] | scale | A value to scale by |
const Quaternion& Dali::Quaternion::operator*= | ( | const Quaternion & | other | ) |
Multiplication with Assignment operator.
[in] | other | The quaternion to multiply |
const Quaternion& Dali::Quaternion::operator*= | ( | float | scale | ) |
Scale with Assignment operator.
[in] | scale | the value to scale by |
const Quaternion Dali::Quaternion::operator+ | ( | const Quaternion & | other | ) | const |
Addition operator.
[in] | other | The quaternion to add |
const Quaternion& Dali::Quaternion::operator+= | ( | const Quaternion & | other | ) |
Addition with Assignment operator.
[in] | other | The quaternion to add |
const Quaternion Dali::Quaternion::operator- | ( | const Quaternion & | other | ) | const |
Subtraction operator.
[in] | other | The quaternion to subtract |
Quaternion Dali::Quaternion::operator- | ( | ) | const |
Unary Negation operator.
const Quaternion& Dali::Quaternion::operator-= | ( | const Quaternion & | other | ) |
Subtraction with Assignment operator.
[in] | other | The quaternion to subtract |
const Quaternion Dali::Quaternion::operator/ | ( | const Quaternion & | other | ) | const |
Division operator.
[in] | other | A quaternion to divide by |
const Quaternion Dali::Quaternion::operator/ | ( | float | scale | ) | const |
Scale operator.
[in] | scale | A value to scale by |
const Quaternion& Dali::Quaternion::operator/= | ( | float | scale | ) |
Scale with Assignment operator.
[in] | scale | The value to scale by |
bool Dali::Quaternion::operator== | ( | const Quaternion & | rhs | ) | const |
Equality operator.
[in] | rhs | The quaternion to compare with |
Vector4 Dali::Quaternion::Rotate | ( | const Vector4 & | vector | ) | const |
Rotates v by this Quaternion (Quaternion must be unit).
[in] | vector | A vector to rotate |
Vector3 Dali::Quaternion::Rotate | ( | const Vector3 & | vector | ) | const |
Rotates v by this Quaternion (Quaternion must be unit).
[in] | vector | A vector to rotate |
void Dali::Quaternion::SetEuler | ( | Radian | pitch, |
Radian | yaw, | ||
Radian | roll | ||
) |
SetEuler sets the quaternion from the Euler angles applied in x, y, z order.
[in] | pitch | |
[in] | yaw | |
[in] | roll |
static Quaternion Dali::Quaternion::Slerp | ( | const Quaternion & | q1, |
const Quaternion & | q2, | ||
float | progress | ||
) | [static] |
Spherical Linear Interpolation (using the shortest arc of a great circle between the two quaternions).
[in] | q1 | The start quaternion |
[in] | q2 | The end quaternion |
[in] | progress | A progress value between 0 and 1 |
static Quaternion Dali::Quaternion::SlerpNoInvert | ( | const Quaternion & | q1, |
const Quaternion & | q2, | ||
float | t | ||
) | [static] |
This version of Slerp, used by Squad, does not check for theta > 90.
[in] | q1 | The start quaternion |
[in] | q2 | The end quaternion |
[in] | t | A progress value between 0 and 1 |
static Quaternion Dali::Quaternion::Squad | ( | const Quaternion & | start, |
const Quaternion & | end, | ||
const Quaternion & | ctrl1, | ||
const Quaternion & | ctrl2, | ||
float | t | ||
) | [static] |
Spherical Cubic Interpolation.
[in] | start | The start quaternion |
[in] | end | The end quaternion |
[in] | ctrl1 | The control quaternion for q1 |
[in] | ctrl2 | The control quaternion for q2 |
[in] | t | A progress value between 0 and 1 |
bool Dali::Quaternion::ToAxisAngle | ( | Vector3 & | axis, |
Radian & | angle | ||
) | const |
Converts the quaternion to an axis/angle pair.
[out] | axis | |
[out] | angle | Angle in radians |
w component is s ( = cos(theta/2.0) )