## FCurveKeyCollection.Add

### Introduced

v6.0

### Description

Adds an FCurveKey to an existing collection. The key will be added to the collection if it belongs to the same FCurve as the other keys in the collection and it is not already in the collection. The index of the key is returned or -1 if the key was not added to the collection. FCurveKeyCollection is a sorted collection where the keys are sorted in ascending order by parameter.

### C# Syntax

    Int32 FCurveKeyCollection.Add( FCurveKey in_pVal );

### Scripting Syntax

    oLong = FCurveKeyCollection.Add( Key );

### Return Value

Long

### Parameters

Parameter | Type | Description
--- | --- | ---
Key | FCurveKey | Key to add to this collection

### Examples

#### JScript Example

    //
    // This example illustrates how to add a key to an existing FCurveKeyCollection.
    // Create a new scene
    NewScene(null, false);
    // Create a null
    oNull = Application.GetPrim("Null");
    // Get the posx parameter of the null
    oPosX = oNull.posx
    // Create array of time-value pairs
    aKeys = new Array( 0.00, 5.00,
                                    1.00, 6.00,
                                    2.00, 7.00,
                                    3.00, 8.00,
                                    4.00, 9.00,
                                    5.00, 10.00 );
    // Create an empty FCurve
    oFCurve = oPosX.AddFCurve2( null, siStandardFCurve );
    // Set the fcurve keys
    oFCurve.SetKeys( aKeys );
    // Get an empty key collection
    var keys = XSIFactory.CreateFCurveKeyCollection();
    // Add first and last keys to the new collection
    keys.Add( oFCurve.Keys(oFCurve.Keys.Count-1) );
    keys.Add( oFCurve.Keys(0) );
    // Print out the contents of the collection
    for (var i = 0; i < keys.Count; i++)
    {
            Application.LogMessage( 'Time: ' + keys(i).Time + ', Value: ' + keys(i).Value, siInfo );
    }
    // Produces the following output:
    //
    //INFO : Time: 0, Value: 5
    //INFO : Time: 5, Value: 10

### See Also

FCurveKeyCollection.AddItems FCurveKeyCollection.Remove FCurveKeyCollection.RemoveAt