# IRfTrackFn Interface Reference

Inherits IUnknown.

List of all members.

## Public Member Functions
HRESULT | CreateTrack ([in] IRsBaseNode *spNode,[in] BSTR bszTrackName)
HRESULT | AddNewTrack ([in] IRsBaseNode *spNode,[out] BSTR *pbszNewTrackName)
HRESULT | RemoveTrack ([in] IRsBaseNode *spNode,[in] BSTR bszTrackName)
HRESULT | RenameTrack ([in] IRsBaseNode *spNode,[in] BSTR bszTrackName,[in] BSTR bszNewTrackName)
HRESULT | MergeTracks ([in] IRsBaseNode *spNode,[out] BSTR *pbszNewTrackName)
HRESULT | EditableTrack ([in] IRsBaseNode *spNode,[in] BSTR bszTrackName,[in] RtBool bEditable)
HRESULT | DisableTrack ([in] IRsBaseNode *spNode,[in] BSTR bszTrackName,[in] RtBool bDisable)
HRESULT | PassThroughStatus ([in] IRsBaseNode *spNode,[in] BSTR bszTrackName,[in] RtBool bStatus)
HRESULT | GetEditableTrackName ([in] IRsBaseNode *spNode,[out] BSTR *pbszTrackName)
HRESULT | GetTrackCon ([in] IRsBaseNode *spNode,[out, retval] IRsConnector **ppTrackCon)
HRESULT | GetTrackObj ([in] IRsNode *spNode,[out] IRdAnimTrack **ppTrackDataObj)
HRESULT | EnumTracks (IRsNode *spNode, IRsEnumTracks **ppEnumAnimTrack)
HRESULT | EnumAnimClips ([in] IRsNode *spNode,[out, retval] IRsEnumNodes **ppEnumClips)
HRESULT | TrackEnumClips ([in] IRsNode *spNode,[in] BSTR bszTrackName,[out, retval] IRsEnumNodes **ppEnumClips)
HRESULT | AddClipToTrack ([in] BSTR bszTrackName,[in] IRsNode *spClipNode)
HRESULT | SetBlendMode ([in] IRsBaseNode *spNode,[in] BSTR bszTrackName,[in] RtTrackBlendMode eBlendMode)

## Detailed Description

The IRfTrackFn interface provides functionality for manipulating tracks in animation.

## Member Function Documentation

HRESULT IRfTrackFn::CreateTrack | ( | [in] IRsBaseNode * | spNode,
|  | [in] BSTR | bszTrackName |
| ) |  |  |

Method: CreateTrack:

- Create new track in node.

Parameters:

  | spNode | [in] Node of animated object.
  | bszTrackName | [in] Name for new track to create.

HRESULT IRfTrackFn::AddNewTrack | ( | [in] IRsBaseNode * | spNode,
|  | [out] BSTR * | pbszNewTrackName |
| ) |  |  |

Method: AddNewTrack.

- Adds new track, name is generated:

Parameters:

  | spNode | [in] Node of animated object.
  | pbszNewTrackName | [out] Returns name of new track added.

HRESULT IRfTrackFn::RemoveTrack | ( | [in] IRsBaseNode * | spNode,
|  | [in] BSTR | bszTrackName |
| ) |  |  |

Method: RemoveTrack.

- Removes track, it also removes all clips assigned to track:

Parameters:

  | spNode | [in] Node of animated object.
  | bszTrackName | [in] Name of track to remove.

HRESULT IRfTrackFn::RenameTrack | ( | [in] IRsBaseNode * | spNode,
|  | [in] BSTR | bszTrackName,
|  | [in] BSTR | bszNewTrackName |
| ) |  |  |

Method: RenameTrack.

- Renames track:

Parameters:

  | spNode | [in] Node of animated object.
  | bszTrackName | [in] Existing name of track.
  | bszNewTrackName | [in] New name for track.

HRESULT IRfTrackFn::MergeTracks | ( | [in] IRsBaseNode * | spNode,
|  | [out] BSTR * | pbszNewTrackName |
| ) |  |  |

Method: MergeTracks.

- Merges all track into one track, disabled tracks are ignored:

Parameters:

  | spNode | [in] Node of animated object.
  | pbszNewTrackName | [out] Returns name of merged track.

HRESULT IRfTrackFn::EditableTrack | ( | [in] IRsBaseNode * | spNode,
|  | [in] BSTR | bszTrackName,
|  | [in] RtBool | bEditable |
| ) |  |  |

Method: EditableTrack.

- Set editable status for track:

Parameters:

  | spNode | [in] Node of animated object.
  | bszTrackName | [in] Name of track.
  | bEditable | [in] Boolean value true for editalbe and false for not editable.

HRESULT IRfTrackFn::DisableTrack | ( | [in] IRsBaseNode * | spNode,
|  | [in] BSTR | bszTrackName,
|  | [in] RtBool | bDisable |
| ) |  |  |

Method: DisableTrack.

- Set disable status for track:

Parameters:

  | spNode | [in] Node of animated object.
  | bszTrackName | [in] Name of track.
  | bDisable | [in] Boolean value to disable or enable.

HRESULT IRfTrackFn::PassThroughStatus | ( | [in] IRsBaseNode * | spNode,
|  | [in] BSTR | bszTrackName,
|  | [in] RtBool | bStatus |
| ) |  |  |

Method: PassThroughStatus.

- Set Pass Through status :

Parameters:

  | spNode | [in] Node for animated object.
  | bszTrackName | [in] Name of track.
  | bStatus | [in] Pass through status: boolean value.

HRESULT IRfTrackFn::GetEditableTrackName | ( | [in] IRsBaseNode * | spNode,
|  | [out] BSTR * | pbszTrackName |
| ) |  |  |

Method: GetEditableTrackName.

- Get Editable track for object:

Parameters:

  | spNode | [in] Node for animated object.
  | pbszTrackName | [out] Returns track name of editable track.

HRESULT IRfTrackFn::GetTrackCon | ( | [in] IRsBaseNode * | spNode,
|  | [out, retval] IRsConnector ** | ppTrackCon |
| ) |  |  |

Method: GetTrackCon.

- returns CON_ANIMTRACK connector associated with tracks:

Parameters:

  `[in]` | spNode | Node for animated object .
  `[out]` | ppTrackCon | Returns CON_ANIMTRACK connector of spNode if exists.

HRESULT IRfTrackFn::GetTrackObj | ( | [in] IRsNode * | spNode,
|  | [out] IRdAnimTrack ** | ppTrackDataObj |
| ) |  |  |

Method: GetTrackObj.

- Retrieve AnimTrack data object from CON_ANIMTRACK connector

Parameters:

  | spNode | [in] Node of animated object.
  | ppTrackDataObj | [out] Returns AnimTrack data object.

HRESULT IRfTrackFn::EnumTracks | ( | IRsNode * | spNode,
|  | IRsEnumTracks ** | ppEnumAnimTrack |
| ) |  |  |

Method: EnumTracks.

- Enumerate all tracks associated with animated object.
  Parameters:

    | spNode | [in] Node of animated object.
    | ppEnumAnimTrack | [out] Returns enumerator object for tracks.

HRESULT IRfTrackFn::EnumAnimClips | ( | [in] IRsNode * | spNode,
|  | [out, retval] IRsEnumNodes ** | ppEnumClips |
| ) |  |  |

Method: EnumAnimClips.

- Enumerate all clips associated with animated object

Parameters:

  | spNode | [in] Node of animated object.
  | ppEnumClips | [out] Returns enumerator object for clip nodes

HRESULT IRfTrackFn::TrackEnumClips | ( | [in] IRsNode * | spNode,
|  | [in] BSTR | bszTrackName,
|  | [out, retval] IRsEnumNodes ** | ppEnumClips |
| ) |  |  |

Method: TrackEnumClips.

- Enumerates clips in track:

Parameters:

  | spNode | [in] Node of animated object.
  | bszTrackName | [in] Name of track to enumerate.

Returns:
  ppEnumClips [out, retval] Returns enumerator for clips associated with specified track.

HRESULT IRfTrackFn::AddClipToTrack | ( | [in] BSTR | bszTrackName,
|  | [in] IRsNode * | spClipNode |
| ) |  |  |

Method: AddClipToTrack.

- Adds clip to the track identified by name, clip must be in DG:

Parameters:

  | bszTrackName | [in] Name of track to add to.
  | spClipNode | [in] Name of clip node to add.

HRESULT IRfTrackFn::SetBlendMode | ( | [in] IRsBaseNode * | spNode,
|  | [in] BSTR | bszTrackName,
|  | [in] RtTrackBlendMode | eBlendMode |
| ) |  |  |

Method: SetBlendMode.

- Set the blend mode:

Parameters:

  | spNode | [in] Node of animated object.
  | bszTrackName | [in] Name of track to set blend mode for.
  | eBlendMode | [in] Blend mode to set.