AnimationClip
Functions
Detailed Description
-
class
AnimationClip
: public RED::Object Atomic class to store animation key frames.
@related class RED::AnimationData, class RED::IAnimationClipController, Playing an Animation Clip
An animation clip contains one or more animation channels.
Each animation channel stored the sequence of animation key frames.
A key frame is composed of an animation data (RED::AnimationData) associated with a timestamp in the channel.The AnimationClip class also provides query methods to get the interpolated data at a given time in the animation clip.
Public Functions
-
SET_CID
(CID_class_REDAnimationClip)
-
IMPLEMENT_AS
()
-
AnimationClip
() Constructor.
-
~AnimationClip
() Destructor.
-
inline double
GetDuration
() const Gets the animation clip duration.
Returns: the clip duration.
-
inline unsigned int
GetChannelsCount
() const Gets the number of channels in the animation clip.
Returns: the number of animation channels.
-
RED_RC
GetKeysCount
(unsigned int &oKeysCount, unsigned int iChannel = 0) const Gets the number of keys in the animation channel.
Parameters: - oKeysCount – Returned number of animation keys.
- iChannel – Channel index.
Returns: RED_OK if the operation succeeded,
RED_BAD_PARAM if the channel index is incorrect. RED_FAIL otherwise.
-
RED_RC
GetKeyTime
(double &oTime, unsigned int iKey, unsigned int iChannel = 0) const Gets the time associated to a key in the animation channel.
Parameters: - oTime – Returned key time.
- iKey – Key index.
- iChannel – Channel index.
Returns: RED_OK if the operation succeeded,
RED_BAD_PARAM if the channel or key index is incorrect. RED_FAIL otherwise.
-
RED_RC
GetKeyData
(const RED::AnimationData *&oData, unsigned int iKey, unsigned int iChannel = 0) const Gets the data associated to a key in the animation channel.
Parameters: - oData – Returned key data.
- iKey – Key index.
- iChannel – Channel index.
Returns: RED_OK if the operation succeeded,
RED_BAD_PARAM if the channel or key index is incorrect. RED_FAIL otherwise.
-
RED_RC
Interpolate
(RED::Vector<RED::AnimationData> &oOutput, double iTime) const Interpolates all the channels at a given time in the animation.
Parameters: - oOutput – Array to be filled with interpolation results.
- iTime – Time at which the query is done.
Returns: RED_OK if the operation succeeded,
RED_FAIL otherwise.
-
RED_RC
InterpolateChannel
(RED::AnimationData &oOutput, unsigned int iChannel, double iTime) const Interpolates one channel at a given time in the animation.
Parameters: - oOutput – Returned interpolation result.
- iChannel – Channel to interpolate.
- iTime – Time at which the query is done.
Returns: RED_OK if the operation succeeded,
RED_FAIL otherwise.
-
RED_RC
CreateChannels
(unsigned int iChannelsCount) Creates one ore more animation channels in the clip.
Parameters: iChannelsCount – Number of channels to create. Returns: RED_OK if the operation succeeded, RED_FAIL otherwise.
-
RED_RC
AddKey
(const RED::AnimationData &iKeyData, double iTime, unsigned int iChannel = 0) Adds an animation key in a given channel at a given time.
Channels must have been created with RED::AnimationClip::CreateChannels before calling this function.
Note
Important: keys must be added in the correct order from time 0 to end of animation in each channel. If not, the function will return RED_BAD_PARAM. The channel order is not important.
Parameters: - iKeyData – The animation key data to add.
- iTime – Time of the animation key in the channel.
- iChannel – Channel to add the key.
Returns: RED_OK if the operation succeeded,
RED_BAD_PARAM if channel has not been created or if keys are not added in the correct order,
RED_FAIL otherwise.
-