GetKeyIndex (FCurve)

Introduced

3.0

Description

Returns the key index for the key at the specified frame. If the key does not exist the method returns -1.

Scripting Syntax

FCurve.GetKeyIndex( Frame, [Tolerance] )

C# Syntax

Int32 FCurve.GetKeyIndex( Object in_Frame, Double in_Tolerance );

Parameters

Parameter

Type

Description

Frame

Variant

The key time in frames at which to look for the key.

Tolerance

Double

Key tolerance.

Default Value: -1

Possible Values:

>0: Matches key between Frame - Tolerance and Frame + Tolerance

0: Key must be exactly at frame

-1: Nearest 0.5 frame

Return Value

Long

Examples

JScript Example

/*
   This JScript example illustrates how to use the resample method to 
   add keys to an fcurve and the getkeyindex() method to look up an
   keys index from a frame value.
*/

// 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()

// Start editing the fcurve
fc.BeginEdit();

// Use the Resample method to add keys to the fcurve on every second frame
var empty;

fc.Resample(empty,empty,2);

// Look up the key near frame 25
var key, index, frame, tolerance, keyframe;

frame = 24;
tolerance = 1;

if ( fc.KeyExists( frame, tolerance ) )
{
   // Get index from frame using a tolerance of 1 frame (for example, 25 +/- 1 frame).
   // This will find the key at frame 23
   index = fc.GetKeyIndex( frame, tolerance );

   keyframe = fc.GetKeyFrame( index );

   LogMessage( "found key " + index + " at frame " + keyframe + " between frame " 
       + (frame-tolerance) + " and " + (frame+tolerance)  );

   // Get the key at index
   key = fc.GetKeyAtIndex( index );

   // Set the key value
   key.Value = Math.random() * 100;
}

// End editing the fcurve and put the undo event onto 
// the undo/redo stack
fc.EndEdit();

// Outputs:
//INFO : found key 11 at frame 23.000000000000003 between frame 23 and 25

See Also

FCurveKey.Index

FCurve.Keys

FCurve.GetKey

FCurve.GetKeyFrame

FCurve.GetKeyValue

 

 

 



Autodesk Softimage v7.5