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