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