FCurve.ExtendCycle
 
 
 

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