## GetKeyInfo

### Description

Gets information for a function curve key.
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

    GetKeyInfo( InputObj, Index, [Parameter], [LeftValue], [RightValue], [LeftTanParam], [LeftTanValue], [RightTanParam], [RightTanValue], [RightSegKind], [Constraints] );

### Parameters

Parameter | Type | Description
--- | --- | ---
InputObj | String | Component on which is connected a FCurve
Index | Integer | Index of a key. Keys are indexed from 0 to (nbKeys - 1). Default Value: 0
Parameter | Double | Returns the parameter value.
LeftValue | Double | Returns the left value of the key.
RightValue | Double | Returns the right value of the key.
LeftTanParam | Double | Returns the left value of the tangent parameter for the key.
LeftTanValue | Double | Returns the left value of the tangent for the key.
RightTanParam | Double | Returns the right value of the tangent parameter for the key.
RightTanValue | Double | Returns the right value of the tangent for the key.
RightSegKind | Integer | Returns the segment type of the right side of the key.
Possible Values: | Description:
0 | DEFAULT
1 | CONSTANT
2 | LINEAR
3 | CUBIC
Constraints | Integer | Constraints on the key. This value is a bitfield.
Possible Values: | Description:
0 | No constraint.
1 | Parameter is immutable.
2 | Left and right values are immutable.
4 | Function curve is G1 continuous at this key.
8 | Left- and right-tangent directions are immutable.
16 | Left- and right-tangent lengths are immutable.
32 | Parameter, values, and tangents are immutable.
64 | Tangents are considered horizontal.
128 | Tangents are considered as horizontal when the key is a local extremum.
256 | Tangents are adjusted automatically when neighbouring keys are created or moved.

### Examples

#### VBScript Example

    ' create a null to hold animation

    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 animation source of type FCurve

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

    for each fcurve in collection

    	' get fcurve info

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

    	LogMessage "FCurve: " & vbCR & vbLF & _

    		"Type : " & crvtype & vbCR & vbLF & _

    		"No Key Value : " & nokeyval& vbCR & vbLF & _

    		"Num Keys : " & nbKeys& vbCR & vbLF & _

    		"Extrapolation : " & extrap & vbCR & vbLF & _

    		"Default Segment Type : " & segtype& vbCR & vbLF & _

    		"Low Clamp : " & seglowclamp & vbCR & vbLF & _

    		"High Clamp : " & highclamp & vbCR & vbLF

    	for i = 0 to nbkeys - 1

    		' get fcurvekey info

    		GetKeyInfo fcurve, i, parameter, leftval, rightval, lefttanparam, lefttanval, righttanparam, righttanval, rightsegkind, constraints

    		LogMessage "Key: " & i & vbCR & vbLF & _

    			"KeyParam : " & parameter & vbCR & vbLF & _

    			"LeftValue: " & leftval & vbCR & vbLF & _

    			"RightValue: " & rightval & vbCR & vbLF & _

    			"LeftTanParam: " & lefttanparam & vbCR & vbLF & _

    			"LeftTanValue: " & lefttanval & vbCR & vbLF & _

    			"RightTanParam: " & righttanparam & vbCR & vbLF & _

    			"RightTanValue: " & righttanval & vbCR & vbLF & _

    			"RightSegKind: " & rightsegkind & vbCR & vbLF & _

    			"Constraints: " & constraints & vbCR & vbLF

    	next

    next

    'INFO : "FCurve:

    'Type : 20

    'No Key Value : -5

    'Num Keys : 3

    'Extrapolation : 1

    'Default Segment Type : 3

    'Low Clamp :

    'High Clamp : 1.79769313486232E+308

    '"

    'INFO : "Key: 0

    'KeyParam : 3.33666666666667E-02

    'LeftValue: -5

    'RightValue: -5

    'LeftTanParam: 0

    'LeftTanValue: 0

    'RightTanParam: 0.266933333333333

    'RightTanValue: 0

    'RightSegKind: 3

    'Constraints: 260

    '"

    'INFO : "Key: 1

    'KeyParam : 0.834166666666667

    'LeftValue: 7

    'RightValue: 7

    'LeftTanParam: -0.266933333333333

    'LeftTanValue: -1.14285714285714

    'RightTanParam: 0.278055555555556

    'RightTanValue: 1.19047619047619

    'RightSegKind: 3

    'Constraints: 260

    '"

    'INFO : "Key: 2

    'KeyParam : 1.66833333333333

    'LeftValue: 2

    'RightValue: 2

    'LeftTanParam: -0.278055555555556

    'LeftTanValue: 0

    'RightTanParam: 0

    'RightTanValue: 0

    'RightSegKind: 3

    'Constraints: 260

    '"

### See Also

FCurveKey GetFCurveInfo GetSource