## Track

Object Hierarchy | Related C++ Class: Track

### Inheritance

SIObject

ProjectItem

Track

### Introduced

v4.0

### Description

The Track object represents the container of clips used to sequence clips in the ClipContainer. You can retrieve the track object using ClipContainer.Tracks property. A track contains only a specific type of clips; for example, audio clips (where Clip.Type == siClipAudioType) are the only type of tracks found in an audio track (where Track.Type == siTrackAudioType). The base property SIObject.Type returns one of the values contained in siTrackType.
Tracks can only be added using the AddTrack command (there is currently no way to add a track using the Object Model).

### Methods

AddCustomOp | AddICEAttribute | AddScriptedOp | AddScriptedOpFromFile
AnimatedParameters2 | BelongsTo | EvaluateAt | GetICEAttributeFromName
IsA | IsAnimated2 | IsClassOf | IsEqualTo
IsKindOf | IsLocked | IsSelected | LockOwners
RemoveICEAttribute | SetAsSelected | SetCapabilityFlag | SetLock
TaggedParameters | UnSetLock |  |

### Properties

Application | BranchFlag | Capabilities | Categories
Clips | EvaluationID | Families | FullName
Help | HierarchicalEvaluationID | ICEAttributes | LockLevel
LockMasters | LockType | Model | Name
NestedObjects | ObjectID | Origin | OriginPath
Owners | PPGLayout | Parameters | Parent
Parent3DObject | Selected | Type |

### Examples

#### JScript Example

    /*
    This example demonstrates how to create a compound clip from scripting.
    It also shows that when retrieving clips from the ClipContainer it only
    returns clips that are on tracks nested directly under it.
    */
    NewScene( null, false );
    var oRoot = Application.ActiveSceneRoot;
    var oCube = oRoot.AddGeometry( "Cube", "MeshSurface" );
    // Creating the first animation source
    var sParams = oCube + ".kine.local.posx," + oCube + ".kine.local.posy," + oCube + ".kine.local.posz";
    var oSource = StoreAction( oRoot, sParams, 1, "StoredStaticPose", 1, 1, 5, 0, 0 );
    // Creating the first clip
    var oClip = AddClip( oRoot, oSource );
    LogMessage( "First created clip " + oClip.FullName );
    oCube.posx.Value = 3.0;
    // Creating the second animation source
    var oSource2 = StoreAction( oRoot, sParams, 1, "StoredStaticPose", 1, 7, 9, 0, 0 );
    // Creating the second clip
    var oClip2 = AddClip( oRoot, oSource2 );
    LogMessage( "Second created clip " + oClip2.FullName );
    // This function prints the clip names contained in a clip collection
    function PrintClips(oClipCollection)
    {
            for (var i=0; i<oClipCollection.Count; i++) {
                    LogMessage( "Clip " +  oClipCollection(i).FullName );
            }
    }
    oMixer = oRoot.Mixer;
    LogMessage( "List of clips retrieved from the container......." );
    PrintClips( oMixer.Clips );
    // Creating a compound clip from the clips created earlier
    var myClips = new Array( oClip, oClip2 );
    var oCompound = CreateCompound( oRoot, myClips );
    LogMessage( "Compound clip " + oCompound.FullName );
    LogMessage( "List of clips retrieved from the compound.......")
    PrintClips( oCompound.Clips );
    // Now retrieving once again the clips from under the mixer. This should only return the CompoundClip.
    LogMessage( "List of clips retrieved from the mixer after the creation of the compound......." );
    PrintClips( oMixer.Clips );
    // Output of above script:
    //INFO : First created clip Mixer.Mixer_Anim_Track.StoredStaticPose_Clip
    //
    //INFO : Second created clip Mixer.Mixer_Anim_Track1.StoredStaticPose1_Clip
    //INFO : List of clips retrieved from the container.......
    //INFO : Clip Mixer.Mixer_Anim_Track.StoredStaticPose_Clip
    //INFO : Clip Mixer.Mixer_Anim_Track1.StoredStaticPose1_Clip
    //
    //INFO : Compound clip Mixer.Mixer_Anim_Track.CompoundAction_Clip
    //INFO : List of clips retrieved from the compound.......
    //INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip.Mixer_Anim_Track3.StoredStaticPose_Clip
    //INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip.Mixer_Anim_Track4.StoredStaticPose1_Clip
    //
    //INFO : List of clips retrieved from the mixer after the creation of the compound.......
    //INFO : Clip Mixer.Mixer_Anim_Track.CompoundAction_Clip

### See Also

ClipContainer.Tracks TrackCollection ClipCollection AddTrack