Softimage SDK Programmer's Guide > Working with the SDK > Animation > FCurves >

# FCurve Interpolation and Extrapolation

Function curve extrapolation determines the shape of an fcurve before the first key and after the last key. Extrapolation extends the curve's ends based on the position of these two extreme points.

## SDK Access

- FCurve.Extrapolation or FCurve::GetExtrapolation or FCurve::PutExtrapolation

- siFCurveExtrapolation or siFCurveExtrapolation

Function curve interpolation is a way of estimating how animation progresses between keys. Interpolation can be constant, linear, or cubic. Cubic means that a Bezier curve is calculated as the interpolation between the keys. Softimage uses cubic Bezier curves defined as follows:

"Four points A, B, C and D in the plane or in three-dimensional space define a cubic Bezier curve. The curve starts at A going toward B and arrives at D coming from the direction of C. In general, it will not pass through B or C; these points are only there to provide directional information. The distance between A and B determines "how long" the curve moves into direction B before turning towards D."

(from de Casteljau's algorithm)

The parametric form of the curve is:

B(t) = A(1-t)^3 + 3Bt(1-t)^2 + 3Ct^2(1-t) + Dt^3

## SDK Access

- FCurve.Interpolation or FCurve::GetInterpolation or FCurve::PutInterpolation

- FCurveKey.Interpolation or FCurveKey::GetInterpolation or FCurveKey::PutInterpolation

- siFCurveInterpolation or siFCurveInterpolation

- siFCurveKeyInterpolation or siFCurveKeyInterpolation