Dali 3D User Interface Engine
List of all members | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions
Dali::Quaternion Class Reference

The Quaternion class encapsulates the mathematics of the quaternion. More...

#include <quaternion.h>

Collaboration diagram for Dali::Quaternion:
Collaboration graph
[legend]

Public Member Functions

 Quaternion ()
 Default Constructor .0. More...
 
 Quaternion (float cosThetaBy2, float iBySineTheta, float jBySineTheta, float kBySineTheta)
 Construct from a quaternion represented by floats. More...
 
 Quaternion (const Vector4 &vector)
 Construct from a quaternion represented by a vector. More...
 
 Quaternion (Radian angle, const Vector3 &axis)
 Constructor from an axis and angle. More...
 
 Quaternion (Radian pitch, Radian yaw, Radian roll)
 Construct from Euler angles. More...
 
 Quaternion (const Matrix &matrix)
 Construct from a matrix. More...
 
 Quaternion (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis)
 Construct from 3 orthonormal axes. More...
 
 Quaternion (const Vector3 &v0, const Vector3 &v1)
 Construct quaternion which describes minimum rotation to align v0 with v1 .0. More...
 
 ~Quaternion ()
 Destructor, nonvirtual as this is not a base class. More...
 
bool IsIdentity () const
 Helper to check if this is an identity quaternion. More...
 
bool ToAxisAngle (Vector3 &axis, Radian &angle) const
 Convert the quaternion to an axis/angle pair. More...
 
const Vector4AsVector () const
 Return the quaternion as a vector. More...
 
void SetEuler (Radian pitch, Radian yaw, Radian roll)
 SetEuler sets the quaternion from the Euler angles applied in x, y, z order. More...
 
Vector4 EulerAngles () const
 returns the Euler angles from a rotation Quaternion. More...
 
const Quaternion operator+ (const Quaternion &other) const
 Addition operator. More...
 
const Quaternion operator- (const Quaternion &other) const
 Subtraction operator. More...
 
const Quaternion operator* (const Quaternion &other) const
 Multiplication operator. More...
 
Vector3 operator* (const Vector3 &other) const
 Multiplication operator. More...
 
const Quaternion operator/ (const Quaternion &other) const
 Division operator. More...
 
const Quaternion operator* (float scale) const
 Scale operator. More...
 
const Quaternion operator/ (float scale) const
 Scale operator. More...
 
Quaternion operator- () const
 Unary Negation operator. More...
 
const Quaternionoperator+= (const Quaternion &other)
 Addition with Assignment operator. More...
 
const Quaternionoperator-= (const Quaternion &other)
 Subtraction with Assignment operator. More...
 
const Quaternionoperator*= (const Quaternion &other)
 Multiplication with Assignment operator. More...
 
const Quaternionoperator*= (float scale)
 Scale with Assignment operator. More...
 
const Quaternionoperator/= (float scale)
 Scale with Assignment operator. More...
 
bool operator== (const Quaternion &rhs) const
 Equality operator. More...
 
bool operator!= (const Quaternion &rhs) const
 Inequality operator. More...
 
float Length () const
 Return the length of the quaternion. More...
 
float LengthSquared () const
 Return the squared length of the quaternion. More...
 
void Normalize ()
 Normalize this to unit length. More...
 
Quaternion Normalized () const
 Normalized. More...
 
void Conjugate ()
 Conjugate this quaternion. More...
 
void Invert ()
 Invert this quaternion. More...
 
Quaternion Log () const
 Performs the logarithm of a Quaternion = v*a where q = (cos(a),v*sin(a)). More...
 
Quaternion Exp () const
 Performs an exponent e^Quaternion = Exp(v*a) = (cos(a),vsin(a)). More...
 
Vector4 Rotate (const Vector4 &vector) const
 Rotate v by this Quaternion (Quaternion must be unit). More...
 
Vector3 Rotate (const Vector3 &vector) const
 Rotate v by this Quaternion (Quaternion must be unit). More...
 

Static Public Member Functions

static float Dot (const Quaternion &q1, const Quaternion &q2)
 Return the dot product of two quaternions. More...
 
static Quaternion Lerp (const Quaternion &q1, const Quaternion &q2, float t)
 Linear Interpolation (using a straight line between the two quaternions). More...
 
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). More...
 
static Quaternion SlerpNoInvert (const Quaternion &q1, const Quaternion &q2, float t)
 This version of Slerp, used by Squad, does not check for theta > 90. More...
 
static Quaternion Squad (const Quaternion &start, const Quaternion &end, const Quaternion &ctrl1, const Quaternion &ctrl2, float t)
 Spherical Cubic Interpolation. More...
 
static float AngleBetween (const Quaternion &q1, const Quaternion &q2)
 Returns the shortest angle between two quaternions in Radians. More...
 

Public Attributes

Vector4 mVector
 w component is s ( = cos(theta/2.0) ) More...
 

Static Public Attributes

static const Quaternion IDENTITY
 (0.0f,0.0f,0.0f,1.0f) More...
 

Private Member Functions

DALI_INTERNAL void SetFromAxes (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis)
 Set the quaternion from 3 orthonormal axes. More...
 

Detailed Description

The Quaternion class encapsulates the mathematics of the quaternion.

.0

Definition at line 45 of file quaternion.h.

Constructor & Destructor Documentation

Dali::Quaternion::Quaternion ( )

Default Constructor .0.

Default Constructor.

Definition at line 42 of file quaternion.cpp.

Referenced by operator*(), operator+(), operator-(), and operator/().

Here is the caller graph for this function:

Dali::Quaternion::Quaternion ( float  cosThetaBy2,
float  iBySineTheta,
float  jBySineTheta,
float  kBySineTheta 
)

Construct from a quaternion represented by floats.

.0

Parameters
[in]cosThetaBy2
[in]iBySineTheta
[in]jBySineTheta
[in]kBySineTheta

Definition at line 47 of file quaternion.cpp.

Dali::Quaternion::Quaternion ( const Vector4 vector)
explicit

Construct from a quaternion represented by a vector.

.0

Parameters
[in]vector- x,y,z fields represent i,j,k coefficients, w represents cos(theta/2)

Definition at line 52 of file quaternion.cpp.

References mVector.

Dali::Quaternion::Quaternion ( Radian  angle,
const Vector3 axis 
)

Constructor from an axis and angle.

.0

Parameters
[in]angle- the angle around the axis
[in]axis- the vector of the axis

Definition at line 57 of file quaternion.cpp.

References MATH_INCREASE_BY, mVector, Dali::Vector3::Normalize(), Dali::Radian::radian, Dali::Vector4::w, Dali::Vector4::x, Dali::Vector3::x, Dali::Vector4::y, Dali::Vector3::y, Dali::Vector4::z, and Dali::Vector3::z.

Here is the call graph for this function:

Dali::Quaternion::Quaternion ( Radian  pitch,
Radian  yaw,
Radian  roll 
)

Construct from Euler angles.

.0

Parameters
[in]pitch
[in]yaw
[in]roll

Definition at line 72 of file quaternion.cpp.

References SetEuler().

Here is the call graph for this function:

Dali::Quaternion::Quaternion ( const Matrix matrix)
explicit

Construct from a matrix.

.0

Parameters
[in]matrix

Definition at line 77 of file quaternion.cpp.

References Dali::Matrix::GetXAxis(), Dali::Matrix::GetYAxis(), Dali::Matrix::GetZAxis(), and SetFromAxes().

Here is the call graph for this function:

Dali::Quaternion::Quaternion ( const Vector3 xAxis,
const Vector3 yAxis,
const Vector3 zAxis 
)
explicit

Construct from 3 orthonormal axes.

.0

Parameters
[in]xAxisThe X axis
[in]yAxisThe Y axis
[in]zAxisThe Z axis

Definition at line 86 of file quaternion.cpp.

References SetFromAxes().

Here is the call graph for this function:

Dali::Quaternion::Quaternion ( const Vector3 v0,
const Vector3 v1 
)
explicit

Construct quaternion which describes minimum rotation to align v0 with v1 .0.

Parameters
[in]v0First normalized vector
[in]v1Second normalized vector
Precondition
v0 and v1 should be normalized

Definition at line 91 of file quaternion.cpp.

References Dali::Vector3::Cross(), Dali::Vector3::Dot(), Dali::Math::MACHINE_EPSILON_1, mVector, Normalize(), Dali::Vector4::w, Dali::Vector4::x, Dali::Vector3::x, Dali::Vector4::y, Dali::Vector3::y, Dali::Vector4::z, and Dali::Vector3::z.

Here is the call graph for this function:

Dali::Quaternion::~Quaternion ( )

Destructor, nonvirtual as this is not a base class.

.0

Definition at line 117 of file quaternion.cpp.

Member Function Documentation

float Dali::Quaternion::AngleBetween ( const Quaternion q1,
const Quaternion q2 
)
static

Returns the shortest angle between two quaternions in Radians.

.0

Parameters
[in]q1- the first quaternion
[in]q2- the second quaternion
Returns
the angle between the two quaternions.

Definition at line 462 of file quaternion.cpp.

References Dali::Vector4::Dot4(), mVector, and Normalize().

Referenced by UtcDaliAngleBetweenP().

Here is the call graph for this function:

Here is the caller graph for this function:

const Vector4 & Dali::Quaternion::AsVector ( ) const

Return the quaternion as a vector.

.0

Returns
the vector representation of the quaternion

Definition at line 155 of file quaternion.cpp.

References mVector.

Referenced by UtcDaliQuaternionAsVectorP(), UtcDaliQuaternionCtorAxisAngleVector3P(), UtcDaliQuaternionCtorCosSinThetaP(), UtcDaliQuaternionCtorDefaultP(), UtcDaliQuaternionCtorVector4P(), UtcDaliQuaternionOperatorMultiplicationFloatP01(), and UtcDaliQuaternionSetEulerP().

Here is the caller graph for this function:

void Dali::Quaternion::Conjugate ( )

Conjugate this quaternion.

.0

Definition at line 323 of file quaternion.cpp.

References mVector, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Referenced by Invert(), Rotate(), UtcDaliQuaternionConjugateP(), UtcDaliQuaternionInvertP(), and UtcDaliQuaternionOperatorDivisionQuaternionP().

Here is the caller graph for this function:

float Dali::Quaternion::Dot ( const Quaternion q1,
const Quaternion q2 
)
static

Return the dot product of two quaternions.

.0

Parameters
[in]q1- the first quaternion
[in]q2- the second quaternion
Returns
the dot product of the two quaternions

Definition at line 385 of file quaternion.cpp.

References Dali::Vector4::Dot4(), and mVector.

Referenced by Slerp(), SlerpNoInvert(), and UtcDaliQuaternionDotP().

Here is the call graph for this function:

Here is the caller graph for this function:

Vector4 Dali::Quaternion::EulerAngles ( ) const

returns the Euler angles from a rotation Quaternion.

.0

Returns
a vector of Euler angles (x == pitch, y == yaw, z == roll)

Definition at line 182 of file quaternion.cpp.

References MATH_INCREASE_BY, mVector, Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Referenced by UtcDaliQuaternionCtorEulerAngleP(), and UtcDaliQuaternionEulerAnglesP().

Here is the caller graph for this function:

Quaternion Dali::Quaternion::Exp ( ) const

Performs an exponent e^Quaternion = Exp(v*a) = (cos(a),vsin(a)).

.0

Returns
a quaternion representing the exponent

Definition at line 359 of file quaternion.cpp.

References a, DALI_ASSERT_ALWAYS, Dali::EqualsZero(), Dali::Vector4::Length(), Dali::Math::MACHINE_EPSILON_1, MATH_INCREASE_BY, mVector, Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Referenced by UtcDaliQuaternionExpN(), UtcDaliQuaternionExpP01(), UtcDaliQuaternionExpP02(), UtcDaliQuaternionLogP01(), and UtcDaliQuaternionLogP02().

Here is the call graph for this function:

Here is the caller graph for this function:

void Dali::Quaternion::Invert ( )

Invert this quaternion.

.0

Definition at line 330 of file quaternion.cpp.

References Conjugate(), and LengthSquared().

Referenced by operator/(), Dali::Matrix::SetInverseTransformComponents(), UtcDaliQuaternionInvertP(), UtcDaliQuaternionOperatorMultiplicationVector3P(), UtcDaliQuaternionRotateVector3P(), and UtcDaliQuaternionRotateVector4P().

Here is the call graph for this function:

Here is the caller graph for this function:

bool Dali::Quaternion::IsIdentity ( ) const
float Dali::Quaternion::Length ( ) const

Return the length of the quaternion.

.0

Returns
the length of the quaternion

Definition at line 303 of file quaternion.cpp.

References Dali::Vector4::Dot(), mVector, and Dali::Vector4::w.

Referenced by Normalize(), Normalized(), UtcDaliQuaternionExpP01(), UtcDaliQuaternionExpP02(), and UtcDaliQuaternionLengthP().

Here is the call graph for this function:

Here is the caller graph for this function:

float Dali::Quaternion::LengthSquared ( ) const

Return the squared length of the quaternion.

.0

Returns
the squared length of the quaternion

Definition at line 308 of file quaternion.cpp.

References Dali::Vector4::Dot(), mVector, and Dali::Vector4::w.

Referenced by Invert(), UtcDaliQuaternionInvertP(), UtcDaliQuaternionLengthSquaredP(), and UtcDaliQuaternionOperatorDivisionQuaternionP().

Here is the call graph for this function:

Here is the caller graph for this function:

Quaternion Dali::Quaternion::Lerp ( const Quaternion q1,
const Quaternion q2,
float  t 
)
static

Linear Interpolation (using a straight line between the two quaternions).

.0

Parameters
[in]q1- the start quaternion
[in]q2- the end quaternion
[in]t- a progress value between 0 and 1
Returns
the interpolated quaternion

Definition at line 390 of file quaternion.cpp.

References Normalized().

Referenced by SlerpNoInvert(), and UtcDaliQuaternionLerpP().

Here is the call graph for this function:

Here is the caller graph for this function:

Quaternion Dali::Quaternion::Log ( ) const

Performs the logarithm of a Quaternion = v*a where q = (cos(a),v*sin(a)).

.0

Returns
a quaternion representing the logarithm

Definition at line 336 of file quaternion.cpp.

References a, Dali::Math::MACHINE_EPSILON_1, MATH_INCREASE_BY, mVector, Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Referenced by UtcDaliQuaternionExpP01(), UtcDaliQuaternionExpP02(), UtcDaliQuaternionLogP01(), and UtcDaliQuaternionLogP02().

Here is the caller graph for this function:

void Dali::Quaternion::Normalize ( )

Normalize this to unit length.

.0

Definition at line 313 of file quaternion.cpp.

References Length().

Referenced by AngleBetween(), Quaternion(), SetFromAxes(), UtcDaliQuaternionLerpP(), UtcDaliQuaternionLogP01(), UtcDaliQuaternionNormalizeP(), and UtcDaliQuaternionSquadP().

Here is the call graph for this function:

Here is the caller graph for this function:

Quaternion Dali::Quaternion::Normalized ( ) const

Normalized.

.0

Returns
a normalized version of this quaternion

Definition at line 318 of file quaternion.cpp.

References Length().

Referenced by Lerp(), Slerp(), and UtcDaliQuaternionNormalizedP().

Here is the call graph for this function:

Here is the caller graph for this function:

bool Dali::Quaternion::operator!= ( const Quaternion rhs) const

Inequality operator.

.0

Parameters
[in]rhsThe quaterion to compare with.
Returns
True if the quaternions are not equal.

Definition at line 298 of file quaternion.cpp.

References operator==().

Here is the call graph for this function:

const Quaternion Dali::Quaternion::operator* ( const Quaternion other) const

Multiplication operator.

.0

Parameters
[in]otherThe quaternion to multiply
Returns
A quaternion containing the result

Definition at line 208 of file quaternion.cpp.

References Dali::Vector4::Dot(), MATH_INCREASE_BY, mVector, Quaternion(), Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Here is the call graph for this function:

Vector3 Dali::Quaternion::operator* ( const Vector3 other) const

Multiplication operator.

.0

Parameters
[in]otherThe vector to multiply
Returns
A vector containing the result of the multiplication

Definition at line 218 of file quaternion.cpp.

References Dali::Vector3::Cross(), mVector, Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Here is the call graph for this function:

const Quaternion Dali::Quaternion::operator* ( float  scale) const

Scale operator.

.0

Parameters
[in]scaleA value to scale by
Returns
A quaternion containing the result

Definition at line 236 of file quaternion.cpp.

References mVector, and Quaternion().

Here is the call graph for this function:

const Quaternion & Dali::Quaternion::operator*= ( const Quaternion other)

Multiplication with Assignment operator.

.0

Parameters
[in]otherThe quaternion to multiply
Returns
itself

Definition at line 261 of file quaternion.cpp.

References Dali::Vector4::Dot(), MATH_INCREASE_BY, mVector, Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Here is the call graph for this function:

const Quaternion & Dali::Quaternion::operator*= ( float  scale)

Scale with Assignment operator.

.0

Parameters
[in]scalethe value to scale by
Returns
itself

Definition at line 274 of file quaternion.cpp.

References mVector.

const Quaternion Dali::Quaternion::operator+ ( const Quaternion other) const

Addition operator.

.0

Parameters
[in]otherThe quaternion to add
Returns
A quaternion containing the result of the addition

Definition at line 198 of file quaternion.cpp.

References mVector, and Quaternion().

Here is the call graph for this function:

const Quaternion & Dali::Quaternion::operator+= ( const Quaternion other)

Addition with Assignment operator.

.0

Parameters
[in]otherThe quaternion to add
Returns
itself

Definition at line 251 of file quaternion.cpp.

References mVector.

const Quaternion Dali::Quaternion::operator- ( const Quaternion other) const

Subtraction operator.

.0

Parameters
[in]otherThe quaternion to subtract
Returns
A quaternion containing the result of the subtract

Definition at line 203 of file quaternion.cpp.

References mVector, and Quaternion().

Here is the call graph for this function:

Quaternion Dali::Quaternion::operator- ( ) const

Unary Negation operator.

.0

Returns
A quaternion containing the negated result

Definition at line 246 of file quaternion.cpp.

References mVector, Quaternion(), Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Here is the call graph for this function:

const Quaternion & Dali::Quaternion::operator-= ( const Quaternion other)

Subtraction with Assignment operator.

.0

Parameters
[in]otherThe quaternion to subtract
Returns
itself

Definition at line 256 of file quaternion.cpp.

References mVector.

const Quaternion Dali::Quaternion::operator/ ( const Quaternion other) const

Division operator.

.0

Parameters
[in]othera quaternion to divide by
Returns
A quaternion containing the result

Definition at line 229 of file quaternion.cpp.

References Invert().

Here is the call graph for this function:

const Quaternion Dali::Quaternion::operator/ ( float  scale) const

Scale operator.

.0

Parameters
[in]scaleA value to scale by
Returns
A quaternion containing the result

Definition at line 241 of file quaternion.cpp.

References mVector, and Quaternion().

Here is the call graph for this function:

const Quaternion & Dali::Quaternion::operator/= ( float  scale)

Scale with Assignment operator.

.0

Parameters
[in]scalethe value to scale by
Returns
itself

Definition at line 279 of file quaternion.cpp.

References mVector.

bool Dali::Quaternion::operator== ( const Quaternion rhs) const

Equality operator.

.0

Parameters
[in]rhsThe quaterion to compare with.
Returns
True if the quaternions are equal.

Definition at line 284 of file quaternion.cpp.

References Dali::Math::MACHINE_EPSILON_1, mVector, Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Referenced by operator!=().

Here is the caller graph for this function:

Vector4 Dali::Quaternion::Rotate ( const Vector4 vector) const

Rotate v by this Quaternion (Quaternion must be unit).

.0

Parameters
[in]vectora vector to rotate
Returns
the rotated vector

Definition at line 478 of file quaternion.cpp.

References Conjugate(), Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Referenced by Dali::LookAt(), Dali::Matrix::SetInverseTransformComponents(), Dali::Internal::SceneGraph::CameraAttachment::UpdateViewMatrix(), UtcDaliCameraActorCheckLookAtAndFreeLookViews03(), UtcDaliQuaternionCtorAxesP03(), UtcDaliQuaternionCtorMatrixP03(), UtcDaliQuaternionRotateVector3P(), and UtcDaliQuaternionRotateVector4P().

Here is the call graph for this function:

Here is the caller graph for this function:

Vector3 Dali::Quaternion::Rotate ( const Vector3 vector) const

Rotate v by this Quaternion (Quaternion must be unit).

.0

Parameters
[in]vectora vector to rotate
Returns
the rotated vector

Definition at line 486 of file quaternion.cpp.

References Conjugate(), mVector, Dali::Vector3::x, Dali::Vector3::y, and Dali::Vector3::z.

Here is the call graph for this function:

void Dali::Quaternion::SetEuler ( Radian  pitch,
Radian  yaw,
Radian  roll 
)

SetEuler sets the quaternion from the Euler angles applied in x, y, z order.

.0

Parameters
[in]pitch
[in]yaw
[in]roll

Definition at line 160 of file quaternion.cpp.

References MATH_INCREASE_BY, mVector, Dali::Radian::radian, Dali::Vector4::w, Dali::Vector4::x, Dali::Vector4::y, and Dali::Vector4::z.

Referenced by Quaternion(), and UtcDaliQuaternionSetEulerP().

Here is the caller graph for this function:

void Dali::Quaternion::SetFromAxes ( const Vector3 xAxis,
const Vector3 yAxis,
const Vector3 zAxis 
)
private

Set the quaternion from 3 orthonormal axes.

.0

Parameters
[in]xAxisThe X axis
[in]yAxisThe Y axis
[in]zAxisThe Z axis

Definition at line 494 of file quaternion.cpp.

References MATH_INCREASE_BY, mVector, Normalize(), Dali::Vector4::w, Dali::Vector4::x, Dali::Vector3::x, Dali::Vector4::y, Dali::Vector3::y, Dali::Vector4::z, and Dali::Vector3::z.

Referenced by Quaternion().

Here is the call graph for this function:

Here is the caller graph for this function:

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).

.0

Parameters
[in]q1- the start quaternion
[in]q2- the end quaternion
[in]progress- a progress value between 0 and 1
Returns
the interpolated quaternion

If cos(theta) < 0, q1 and q2 are more than 90 degrees apart, so invert one to reduce spinning.

Definition at line 395 of file quaternion.cpp.

References Dot(), MATH_INCREASE_BY, and Normalized().

Referenced by Dali::Internal::Interpolate(), Dali::Internal::RotateToQuaternion::operator()(), UtcDaliQuaternionSlerpP01(), UtcDaliQuaternionSlerpP02(), UtcDaliQuaternionSlerpP03(), and UtcDaliQuaternionSlerpP04().

Here is the call graph for this function:

Here is the caller graph for this function:

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.

.0

Parameters
[in]q1- the start quaternion
[in]q2- the end quaternion
[in]t- a progress value between 0 and 1
Returns
the interpolated quaternion

Definition at line 436 of file quaternion.cpp.

References Dot(), Lerp(), and MATH_INCREASE_BY.

Referenced by Squad(), UtcDaliQuaternionSlerpNoInvertP01(), and UtcDaliQuaternionSlerpNoInvertP02().

Here is the call graph for this function:

Here is the caller graph for this function:

Quaternion Dali::Quaternion::Squad ( const Quaternion start,
const Quaternion end,
const Quaternion ctrl1,
const Quaternion ctrl2,
float  t 
)
static

Spherical Cubic Interpolation.

.0

Parameters
[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
Returns
the interpolated quaternion

Definition at line 453 of file quaternion.cpp.

References MATH_INCREASE_BY, and SlerpNoInvert().

Referenced by UtcDaliQuaternionSquadP().

Here is the call graph for this function:

Here is the caller graph for this function:

bool Dali::Quaternion::ToAxisAngle ( Vector3 axis,
Radian angle 
) const

Member Data Documentation

const Quaternion Dali::Quaternion::IDENTITY
static
Vector4 Dali::Quaternion::mVector

The documentation for this class was generated from the following files:
Dali Docs Home
Read more about Dali