GetFCurveInfo

Description

Gets function curve information for a parameter.

Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you need to use the best workaround for your situation:

For scripting languages this command returns an ISIVTCollection which you can use to get the output arguments.

For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand packs the output arguments into a C# System.Object containing an Array of the output arguments (see Calling Commands from C#).

Scripting Syntax

GetFCurveInfo( InputObj, [CurveKind], [ValueWhenNoKey], [NbKeys], [ExtrapolationKind], [DefaultSegKind], [LowClamp], [HighClamp] );

Parameters

Parameter Type Description
InputObj String FCurve animation source.
CurveKind Integer Returns the type of function curve.

Possible Values:

Description:

0 UNKNOWN
10 BOOLEAN
15 INTEGER
20 STANDARD
30 RAWDATA
ValueWhenNoKey Double Returns the value of the function curve when it has no keys.
NbKeys Integer Returns the number of keys.
ExtrapolationKind Integer Returns the extrapolation type of the function curve.

Possible Values:

Description:

1 CONSTANT
2 LINEAR
3 PERIODIC
DefaultSegKind Integer Returns the default segment kind. Applies to standard function curves.

Possible Values:

Description:

0 DEFAULT
1 CONSTANT
2 LINEAR
3 CUBIC
LowClamp Double Returns the lower-clamping value.
HighClamp Double Returns the higher-clamping value.

Examples

1. VBScript Example

dim source, fcurve

dim crvtype, nokeyval, nbKeys, extrap, seq, lowclamp, highclamp

GetPrim "Null"

' Save some keys on the X position of the Null object

SaveKey "Null.kine.local.posx", 1, -5.0

SaveKey "Null.kine.local.posx", 25, 7.0

SaveKey "Null.kine.local.posx", 50, 2.0

' Get the FCurve animation source

set source = GetSource( "Null.kine.local.posx", siFCurveSource )

for each fcurve in source

	GetFCurveInfo fcurve, crvtype, nokeyval, nbKeys, extrap, seq, lowclamp, highclamp

	Application.LogMessage "Number of keys	: " & nbKeys

	Application.LogMessage "Value when no keys	: " & nokeyval

	Application.LogMessage "Type of fcurve	: " & crvtype

	Application.LogMessage "Extrapolation type	: " & extrap

	Application.LogMessage "Default segment type: " & seq

	Application.LogMessage "Lower clamp bound	: " & lowclamp

	Application.LogMessage "Upper clamp bound	: " & highclamp

next

2. JScript Example

// This example illustrates how to get access to the output

// arguments returned by the GetFCurveInfo command.

// Commands that don't explicitly define a return value but have output

// arguments in fact have an implicit return value which contains collection 

// object ( IVTCollection ). The .value is a method on this object.

// Create scene

NewScene("",false);

GetPrim("Null", null, null);

SetValue("null.Name", "null", null);

CreatePrim("Arc", "NurbsCurve", null, null);

SelectObj("null", null, true);

ApplyCns("Path", "null", "arc", null);

SaveKey("null.kine.pathcns.perc", 1, 0, null);

LastFrame();

SetValue("null.kine.pathcns.perc", 100, null);

SaveKey("null.kine.pathcns.perc", 100, 100, null);

// Get the fcurve from a string path

var col = GetSource("null.kine.pathcns.perc");

var src = col(0); 

// Get the fcurve info

var vtcol = GetFCurveInfo( src );

// Dump the fcurve info

Application.LogMessage( "CurveKind = " + vtcol.value("CurveKind") );

Application.LogMessage( "ValueWhenNoKey= " + vtcol.value("ValueWhenNoKey") ); 

Application.LogMessage( "NbKeys= " + vtcol.value("NbKeys") ); 

Application.LogMessage( "ExtrapolationKind= " + vtcol.value("ExtrapolationKind") ); 

Application.LogMessage( "DefaultSegKind= " + vtcol.value("DefaultSegKind") ); 

Application.LogMessage( "LowClamp= " + vtcol.value("LowClamp") ); 

Application.LogMessage( "HighClamp= " + vtcol.value("HighClamp") );

See Also

FCurve GetSource GetKeyInfo