## siFCurveKeyConstraint

### Description

Function curve key constraints. The last seven tangent constraints apply only to standard function curves. FCurve key constraints can be set and retrieved via the FCurveKey.Constraint property.
The constraints are not mutally exclusive for example if you have the siParameterConstraint set and clear the siLockConstraint you will also clear the siParameterConstraint. You cannot set constraints on a raw function curve. They will be ignored.

### C# Syntax

    siFCurveKeyConstraint.siParameterConstraint                                 // 1

    siFCurveKeyConstraint.siLeftRightValuesConstraint                           // 2

    siFCurveKeyConstraint.siG1ContinuousConstraint                              // 4

    siFCurveKeyConstraint.siLeftRightTangentDirectionConstraint                 // 8

    siFCurveKeyConstraint.siLeftRightTangentLengthConstraint                    // 16

    siFCurveKeyConstraint.siLockConstraint                                      // 32

    siFCurveKeyConstraint.siHorizontalTangentConstraint                         // 64

    siFCurveKeyConstraint.siExtremumHorizontalTangentConstraint                 // 128

    siFCurveKeyConstraint.siZeroLengthTangentConstraint                         // 512

    siFCurveKeyConstraint.siSameLengthTangentConstraint                         // 1024

    siFCurveKeyConstraint.siNeighborTangentConstraint                           // 2048

    siFCurveKeyConstraint.siMirrorTangentConstraint                             // 4096

    siFCurveKeyConstraint.siAutoPlateauTangentConstraint                        // 8192

    siFCurveKeyConstraint.siAdjustedTangentConstraint                           // 8448

Constant | Value | Description
--- | --- | ---
siAdjustedTangentConstraint | 8448 | If on, the tangents are adjusted automatically when neighbouring keys are created or moved.
siAutoPlateauTangentConstraint | 8192 | If on, the left and right tangents are automatically adjusted and plateaued based on neighbouring keys.
siExtremumHorizontalTangentConstraint | 128 | If on, the tangents are considered as horizontal when the key is a local extremum.
siG1ContinuousConstraint | 4 | If on, the left and right tangent orientations are the same.
siHorizontalTangentConstraint | 64 | If on, the tangents are considered horizontal.
siLeftRightTangentDirectionConstraint | 8 | If on, the left and right tangent directions are locked.
siLeftRightTangentLengthConstraint | 16 | If on, the left and right tangent lengths are locked.
siLeftRightValuesConstraint | 2 | If on, the left and right key values are locked.
siLockConstraint | 32 | If on, the parameter, values, and tangents are locked.
siMirrorTangentConstraint | 4096 | If on, the left and right tangents are mirrored.
siNeighborTangentConstraint | 2048 | If on, the left and right tangent point at the previous and next keys.
siParameterConstraint | 1 | If on, the parameter (or key time) is locked.
siSameLengthTangentConstraint | 1024 | If on, the left and right tangent lengths are the same.
siZeroLengthTangentConstraint | 512 | If on, the left and right tangent lengths are constrained to be zero.

### Applies To

FCurveKey.Constraint FCurveKey.GetConstraint2 FCurveKey::GetConstraint FCurveKey::PutConstraint

### See Also

FCurve.SI3DStyle