## FCurve.ExtendCycle

### Introduced

v6.0

### Description

Extends the fcurve to include the given number of cycles before/after.
The cycle length is defined by the start/end keys and the current extrapolation for the fcurve (FCurve.Extrapolation) is taken into account when generating the new cycles. Therefore, the method will fail if the fcurve has less than two keys.

### C# Syntax

    FCurve.ExtendCycle( Int32 in_CyclesBefore, Int32 in_CyclesAfter );

### Scripting Syntax

    FCurve.ExtendCycle( [CyclesBefore], [CyclesAfter] );

### Parameters

Parameter | Type | Description
--- | --- | ---
CyclesBefore | Long | The number of cycles to extend before the fcurve. Default Value: 0
CyclesAfter | Long | The number of cycles to extend after the fcurve. Default Value: 0

### Examples

#### JScript Example

    //
    // This example illustrates how to extend an fcurve to include cycles before/after
    // 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 );
    // Set the extrapolation for this fcurve
    oFCurve.Extrapolation = siPeriodicRelativeExtrapolation;
    Application.LogMessage( 'Before ExtendCycle:', siInfo );
    for (var i = 0; i < oFCurve.Keys.Count; i++)
    {
            Application.LogMessage( 'Time: ' + oFCurve.Keys(i).Time + ', Value: ' + oFCurve.Keys(i).Value, siInfo );
    }
    // Extend one cycle before and after
    oFCurve.ExtendCycle( 1, 1 );
    Application.LogMessage( 'After ExtendCycle:', siInfo );
    for (var i = 0; i < oFCurve.Keys.Count; i++)
    {
            Application.LogMessage( 'Time: ' + oFCurve.Keys(i).Time + ', Value: ' + oFCurve.Keys(i).Value, siInfo );
    }
    // Produces the following output:
    //
    //INFO : Before ExtendCycle:
    //INFO : Time: 0, Value: 5
    //INFO : Time: 1, Value: 6
    //INFO : Time: 2, Value: 7
    //INFO : Time: 3, Value: 8
    //INFO : Time: 4, Value: 9
    //INFO : Time: 5, Value: 10
    //INFO : After ExtendCycle:
    //INFO : Time: -5, Value: 0
    //INFO : Time: -4, Value: 1
    //INFO : Time: -3, Value: 2
    //INFO : Time: -2, Value: 3
    //INFO : Time: -1, Value: 4
    //INFO : Time: 0, Value: 5
    //INFO : Time: 1, Value: 6
    //INFO : Time: 2, Value: 7
    //INFO : Time: 3, Value: 8
    //INFO : Time: 4, Value: 9
    //INFO : Time: 5, Value: 10
    //INFO : Time: 6, Value: 11
    //INFO : Time: 7, Value: 12
    //INFO : Time: 8, Value: 13
    //INFO : Time: 9, Value: 14
    //INFO : Time: 10, Value: 15

### See Also

FCurve.Extrapolation