FCurve.GetNumKeys

Introduced

v3.0

Description

Returns the number of keys within the interval defined by the StartFrame and EndFrame. The default interval is the entire fcurve.

Scripting Syntax

oLong = FCurve.GetNumKeys( [StartFrame], [EndFrame] );

Return Value

Long

Parameters

Parameter Type Description
StartFrame Variant The start time in frames of the interval.

Default Value: The frame of the first key

EndFrame Variant The end time in frames of the interval.

Default Value: The frame of the last key

Examples

JScript Example

/*
        This JScript example illustrates how to use the FCurve.GetNumKeys method
        to determine the number of keys within a specified interval.
*/
// Create a null
Application.NewScene( null, false );
var nullobj = ActiveSceneRoot.AddNull();
// Create an fcurve on the posx parameter from the null
var fc = nullobj.posx.AddFCurve()
// Define some random keys
var nbkeys = Math.round( Math.random() * 200 );
var arraysize = nbkeys * 2;
var keys = new Array( 2 * nbkeys );
var i = 0;
var offset = -50;
for ( i=0; i<arraysize; i+=2 )
{
        keys[i] = Math.round( offset + Math.random( ) * 100 );
        keys[i+1] = offset + Math.random() * 100;
}
// Set the keys on the fcurve
fc.SetKeys( keys );
LogMessage( "total number of keys = " + fc.GetNumKeys() );
// For each 10 frames determine how many keys are in the interval
var frame, nextframe, endframe, offset;
frame = fc.GetKeyFrame(0);
endframe = fc.GetKeyFrame( fc.GetNumKeys() - 1 );
offset = 10;
while ( frame < endframe )
{
        nextframe = frame + offset;
        var ckeys = fc.GetNumKeys( frame, nextframe );
        if ( ckeys > 1 )
        {
                LogMessage( ckeys + " keys between frames " + frame + " and " + nextframe );
        }
        frame = nextframe;
}
// Output:
//INFO : total number of keys = 78
//INFO : 10 keys between frames -50 and -40
//INFO : 6 keys between frames -40 and -30
//INFO : 9 keys between frames -30 and -20
//INFO : 6 keys between frames -20 and -10
//INFO : 9 keys between frames -10 and 0
//INFO : 10 keys between frames 0 and 10
//INFO : 9 keys between frames 10 and 20
//INFO : 7 keys between frames 20 and 30
//INFO : 11 keys between frames 30 and 40
//INFO : 8 keys between frames 40 and 50

See Also

FCurve.Keys