v6.0
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.
FCurve.ExtendCycle( Int32 in_CyclesBefore, Int32 in_CyclesAfter ); |
FCurve.ExtendCycle( [CyclesBefore], [CyclesAfter] ); |
| 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 |
//
// 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
|