A Curve object allows the user to define an arbitrary transformation, defined by easily editable curves, between the input and output channels.

The number of displayed curves depends on the dimension of the output channel. A float output channel can be transformed by only one curve, whereas a color or a vector channel requires three curves, one for each sub channel. Curves can be edited easily. The object automatically inserts a new point to the curve, if user clicks a curve in such a location where there is not yet a point. Existing points can be selected by clicking and multi-selected by shift-clicking or dragging. Points can be deleted using the popup menu of the curve gadget. For more information about curve editing, check the curve editor documentation. |

*Linearly interpolated.*Points are connected using straight lines.*Boolean*. The y value of the curve changes only at control points.*Nurbs*. The standard cubic Nurbs curve.*PNurbs*. This interpolation method produces a stable curve also from badly oscillating data. Nevertheless, if interpolation data is bad, continuity will not be quite as good as when using regular Nurbs interpolation which is always C2-continuous.*Bezier*. The standard cubic Bezier curve. This curve type can represent both smooth sections and sharp angles.

The input and output range of the curve transformation can be adjusted using the menu 'Set minimum and maximum values' from the popup menu. The default range is 0-1. The value of the transformation outside the defined input range is defined by the values at the ends of the curve.

The Gradient option defines another kind of interface for curve editing: the result vector of a transformation is displayed as an RGB color. This is useful when designing color gradients and other RGB transformations.