# type property

The type of component transfer function. The function type determines the applicability of the other attributes.

## Syntax

JavaScript
```ptr = object.type
```

## Property values

One of the following values:

ValueCondition
identity

Same as input.

table

The function is defined by linear interpolation between values given in the attribute tableValues. The table has n+1 values (that is, v₀ to v) specifying the start and end values for n evenly sized interpolation regions. See the Remarks section.

discrete

The function is defined by the step function given in the attribute tableValues, which provides a list of n values (that is, v₀ to vₙ₋₁) in order to identify a step function consisting of n steps. Seethe Remarks section.

linear

The function is defined by the following linear equation: C' = slope * C + intercept

gamma

The function is defined by the following exponential function: C' = amplitude * pow(C, exponent) + offset

## String format

`identity | table | discrete | linear | gamma`

## Remarks

For a type of table and a value C < 1, find k such that:

k/n <= C < (k+1)/n

The result C' is given by:

C' = vₖ + (C - k/n)*n * (vₖ₊₁ - vₖ)

If C = 1 then:

C' = v

For a type of discrete and a value C < 1 find k such that:

k/n <= C < (k+1)/n

The result C' is given by:

C' = vₖ

If C = 1 then:

C' = vₙ₋₁