AnimationData

Fields

double

_position

double

_rotation

double

_scale

Functions

CID

GetClassID

void *

As

const void *

As

class T_As

As

class T_As

As

AnimationData

void

SetPosition

void

SetPosition

void

SetRotation

void

SetRotation

void

SetScale

void

SetScale

void

SetNeutral

void

Blend

void

Add

void

Sub

void

GetMatrix

Detailed Description

class AnimationData : public RED::Object

Base data for animation.

@related class RED::AnimationClip, class RED::Quaternion

Animation data is composed of:

  • Position as a 3 components vector;

  • Rotation as a 4 components quaternion;

  • Scale as a 3 components vector.

This class provides functions for blending used in the RED animation system:

An animation data can be converted to a RED::Matrix using the RED::AnimationData::GetMatrix function.

Public Functions

virtual void *As(const RED::CID &iCID)

Converts the object to an instance of the given type.

Parameters

iCID – Requested class.

Returns

An object pointer of the given class on success, NULL otherwise.

virtual const void *As(const RED::CID &iCID) const

Converts the object to an instance of the given type.

Parameters

iCID – Requested class.

Returns

An object pointer of the given class on success, NULL otherwise.

template<class T_As>
inline T_As *As()
template<class T_As>
inline const T_As *As() const
AnimationData()

Default constructor.

void SetPosition(const RED::Vector3 &iPosition)

Sets the position.

Parameters

iPosition – Position.

void SetPosition(double iX, double iY, double iZ)

Sets the position from coordinates.

Parameters
  • iX – Position x coordinate.

  • iY – Position y coordinate.

  • iZ – Position z coordinate.

void SetRotation(const RED::Quaternion &iRotation)

Sets the rotation.

Parameters

iRotation – Rotation as a quaternion.

void SetRotation(double iX, double iY, double iZ, double iW)

Sets the rotation from quaternion values.

Parameters
void SetScale(const RED::Vector3 &iScale)

Sets the scale.

Parameters

iScale – Scale.

void SetScale(double iX, double iY, double iZ)

Sets the scale from coordinates.

Parameters
  • iX – Scale x coordinate.

  • iY – Scale y coordinate.

  • iZ – Scale z coordinate.

void SetNeutral()

Sets the neutral transform (no position, rotation or scale).

void Blend(const AnimationData &iData1, const AnimationData &iData2, double iWeight)

Sets the animation data as a blend between two other data.

The blending operation performs interpolations between iData1 and iData2.

Parameters
  • iData1 – the first data.

  • iData2 – the second data.

  • iWeight – the blending weight between 0 and 1 (0 = iData1, 1 = iData2)

void Add(const AnimationData &iData1, const AnimationData &iData2, double iWeight)

Sets the animation data as an addition of two other data.

The Addition operation performs interpolations between iData1 and iData1 + iData2.

Parameters
  • iData1 – the first data.

  • iData2 – the second data.

  • iWeight – the blending weight between 0 and 1 (0 = iData1, 1 = iData1 + iData2)

void Sub(const AnimationData &iData1, const AnimationData &iData2, double iWeight)

Sets the animation data as a substraction of two other data.

The Substraction operation performs interpolations between iData1 and iData1 - iData2.

Parameters
  • iData1 – the first data.

  • iData2 – the second data.

  • iWeight – the blending weight between 0 and 1 (0 = iData1, 1 = iData1 - iData2)

void GetMatrix(RED::Matrix &oMatrix) const

Gets the transform matrix corresponding to the animation data.

Parameters

oMatrix – returned transform matrix.

Public Members

double _position[3]

Position.

double _rotation[4]

Quaternion rotation.

double _scale[3]

Scale.

Public Static Functions

static inline RED::CID GetClassID()