# IRfAnim Interface Reference

Inherits IUnknown.

List of all members.

## Public Member Functions
HRESULT | PutFrame ([in]IRsNode *pAnimSpaceRoot,[in]RtTime timeT)
HRESULT | SetKeyFrame ([in] IRsNode *pAnimSpaceRoot,[in] BSTR bszAnimAttrName,[in] RtTime timeT)
HRESULT | CreateClip ([in] IRsBaseNode *spNode,[in] BSTR bszTrackName,[out, retval] IRnAnimClip **ppClipNode)
HRESULT | GetDataInterpolator ([in] IRsConnector *pCon,[out, retval] IRsDataInterpolator **ppDataInterpolator)
| data interpolator
HRESULT | IsObjectAnimated ([in] IRsNode *pNode,[out] RtBool *pbAnimated)
HRESULT | EvalStartEnd ([in] IRsNode *pAnimSpaceRoot,[out] RtTime *ptStart,[out] RtTime *ptEnd)
HRESULT | CreateAnimMng ([out, retval]IRnAnimMng **ppAnimMng)
| anim manager
HRESULT | FindAnimMng ([out, retval] IRnAnimMng **ppNode)
HRESULT | CreateAnimPreferences ([out, retval] IRsNode **ppNode)
| anim preferences
HRESULT | FindAnimPreferences ([out, retval] IRsNode **ppNode)

## Detailed Description

Interface provides access to the high-level functionality in animation. IRfClipFn

## Member Function Documentation

HRESULT IRfAnim::PutFrame | ( | [in] IRsNode * | pAnimSpaceRoot,
|  | [in] RtTime | timeT |
| ) |  |  |

Evaluate animation for object at given time.

- The final state of object is calculated from the actual animation blend graph.

Parameters:

  | pAnimSpaceRoot | [in] Animated encapsulator node.
  | time | [in] Frame value in which animation is evaluated.

Returns:
  Standard HRESULT processing can be applied to the result.

HRESULT IRfAnim::SetKeyFrame | ( | [in] IRsNode * | pAnimSpaceRoot,
|  | [in] BSTR | bszAnimAttrName,
|  | [in] RtTime | timeT |
| ) |  |  |

Set the keyframe for object at given time.

- Keyframes are created for all attributes in the current keying template, or only keyframe for specified attribute.
- New keyframe values are evaluated from the current state of object and the animation context at given time.
- Keyframes are storied in the selected clip of editable track.
- Default animation structures are created in case that object has not been animated.

Parameters:

  | pAnimSpaceRoot | [in] Animated encapsulator node.
  | bszAnimAttrName | [in] Name of attribe relative to animated encapsulator space. Null indicates that current keying template is used.
  | timeT | [in] frame value in which keyframes are set.

Returns:
  Standard HRESULT processing can be applied to the result.

HRESULT IRfAnim::CreateClip | ( | [in] IRsBaseNode * | spNode,
|  | [in] BSTR | bszTrackName,
|  | [out, retval] IRnAnimClip ** | ppClipNode |
| ) |  |  |

Method: CreateClip.

Parameters:

  | spNode | [in] Identification of the node.
  | bszTrackName | [in] Track item identification.

Returns:
  ppClipNode [out, retval] Returns clip-node-name.

  Standard HRESULT processing can be applied to the result.

HRESULT IRfAnim::GetDataInterpolator | ( | [in] IRsConnector * | pCon,
|  | [out, retval] IRsDataInterpolator ** | ppDataInterpolator |
| ) |  |  |

data interpolator

GetDataInterpolator:

- Data interpolators evaluate animation.
- Data interpolator describes how to evaluate value between keyframes and clip blending.
- Each data "type" requires different type interpolator.

Remarks:
  Depending on the "type" of data, a data interpolator is returned.
  - Any attribute may be interpolated.
  - Matrix
  - Color
  - Default: simple values; float, integers and boolean values .. etc

Parameters:

  | pCon | [in] Name of attribute.

Returns:
  ppDataInterpolator [out, retval] Returned data interpolator.

  Standard HRESULT processing can be applied to the result.

HRESULT IRfAnim::IsObjectAnimated | ( | [in] IRsNode * | pNode,
|  | [out] RtBool * | pbAnimated |
| ) |  |  |

Enquire whether an object is animated or not.

- Note: the object does not need to have animated tracks and clips and it might be animated..

Parameters:

  | pNode | [in] Object in the graph.
  | pbAnimated | [out] Return true if object is animated, otherwise false.

Returns:
  S_OK if object is animated or S_FALSE if not.

HRESULT IRfAnim::EvalStartEnd | ( | [in] IRsNode * | pAnimSpaceRoot,
|  | [out] RtTime * | ptStart,
|  | [out] RtTime * | ptEnd |
| ) |  |  |

Evaluate animated interval for the object.

Parameters:

  | pAnimSpaceRoot | [in] Animated object in the graph.
  | ptStart | [out] Return start frame of animation.
  | ptEnd | [out] Return end frame of animation.

Returns:
  S_OK if the interval is evaluated correctly, S_FALSE if it is empty interval.

HRESULT IRfAnim::CreateAnimMng | ( | [out, retval] IRnAnimMng ** | ppAnimMng | ) |

anim manager

CreateAnimMng.

Returns:
  ppAnimMng [out, retval] Anim manager node.

  Standard HRESULT processing can be applied to the result.

HRESULT IRfAnim::FindAnimMng | ( | [out, retval] IRnAnimMng ** | ppNode | ) |

Method: FindAnimMng.

Returns:
  ppNode [out, retval] Anim manager node.

  Standard HRESULT processing can be applied to the result.

HRESULT IRfAnim::CreateAnimPreferences | ( | [out, retval] IRsNode ** | ppNode | ) |

anim preferences

Method: CreateAnimPreferences.

Returns:
  ppNode [out, retval] Anim preferences node.

  Standard HRESULT processing can be applied to the result.

HRESULT IRfAnim::FindAnimPreferences | ( | [out, retval] IRsNode ** | ppNode | ) |

Method: FindAnimPreferences.

Returns:
  ppNode [out, retval] Anim preferences node.

  Standard HRESULT processing can be applied to the result.