com.sun.pdfview.function

## Class FunctionType0

- java.lang.Object
- - com.sun.pdfview.function.PDFFunction
  - - com.sun.pdfview.function.FunctionType0

    public class FunctionType0
    extends PDFFunction

A sampled function maps input values to output values by interpolating along a line or cubic between two known values.

### Field Summary

Fields
`protected static int` `CUBIC_INTERPOLATION`
`protected static int` `LINEAR_INTERPOLATION` the valid interpolation methods

### Fields inherited from class com.sun.pdfview.function.PDFFunction

`TYPE_0, TYPE_2, TYPE_3, TYPE_4`

### Constructor Summary

Constructors
`protected` `FunctionType0()` Creates a new instance of FunctionType0

### Method Summary

Methods
`protected void` `doFunction(float[] inputs, int inputOffset, float[] outputs, int outputOffset)` Map from m input values to n output values.
`protected int` `getBitsPerSample()` Get the number of bits per sample
`protected float` `getDecode(int i)` Get the decoding for a particular input parameter
`protected float` `getEncode(int i)` Get the encoding for a particular input parameter
`protected int` `getOrder()` Get the interpolation type
`protected int` `getSample(int[] values, int od)` Get a component for a sample given m indices and output dimension.
`protected int` `getSize(int dimension)` Get the size of a given input dimension
`static float` `interpolate(float x, float xmin, float xmax, float ymin, float ymax)` Perform a linear interpolation.
`protected void` `parse(PDFObject obj)` Read the function information from a PDF Object
`protected void` `setBitsPerSample(int bits)` Set the number of bits per sample
`protected void` `setDecode(float[] decode)` Set the decode array
`protected void` `setEncode(float[] encode)` Set the encode array
`protected void` `setOrder(int order)` Set the interpolation type
`protected void` `setSamples(int[][] samples)` Set the table of samples
`protected void` `setSize(int[] size)` Set the size of all input dimensions

### Methods inherited from class com.sun.pdfview.function.PDFFunction

`calculate, calculate, getDomain, getFunction, getNumInputs, getNumOutputs, getRange, getType, setDomain, setRange`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### LINEAR_INTERPOLATION

    protected static final int LINEAR_INTERPOLATION

the valid interpolation methods

See Also:
  Constant Field Values

#### CUBIC_INTERPOLATION

    protected static final int CUBIC_INTERPOLATION

See Also:
  Constant Field Values

### Constructor Detail

#### FunctionType0

    protected FunctionType0()

Creates a new instance of FunctionType0

### Method Detail

#### parse

    protected void parse(PDFObject obj)
                  throws java.io.IOException

Read the function information from a PDF Object

Specified by:
  `parse` in class `PDFFunction`
Throws:
  `java.io.IOException`

#### doFunction

    protected void doFunction(float[] inputs,
                  int inputOffset,
                  float[] outputs,
                  int outputOffset)

Map from m input values to n output values. The number of inputs m must be exactly one half the size of the domain. The number of outputs should match one half the size of the range.

Specified by:
  `doFunction` in class `PDFFunction`
Parameters:
  `inputs` - an array of m input values
  `outputs` - an array of size n which will be filled with the output values, or null to return a new array
  `inputOffset` - the offset into the inputs array to read from
  `outputOffset` - the offset into the output array to write to

#### getSize

    protected int getSize(int dimension)

Get the size of a given input dimension

Parameters:
  `dimension` - the input dimension to get the size of
Returns:
  the number of samples in the given dimension

#### setSize

    protected void setSize(int[] size)

Set the size of all input dimensions

#### getBitsPerSample

    protected int getBitsPerSample()

Get the number of bits per sample

#### setBitsPerSample

    protected void setBitsPerSample(int bits)

Set the number of bits per sample

#### getOrder

    protected int getOrder()

Get the interpolation type

#### setOrder

    protected void setOrder(int order)

Set the interpolation type

#### getEncode

    protected float getEncode(int i)

Get the encoding for a particular input parameter

Parameters:
  `i` - the index into the encoding array, which has size 2 * m. the ith entry in the array has index 2i, 2i + 1
Returns:
  the encoding value if the encoding array is set, or the default

#### setEncode

    protected void setEncode(float[] encode)

Set the encode array

#### getDecode

    protected float getDecode(int i)

Get the decoding for a particular input parameter

Parameters:
  `i` - the index into the decoding array, which has size 2 * n. the ith entry in the array has index 2i, 2i + 1
Returns:
  the decoding value if the decoding array is set, or the default

#### setDecode

    protected void setDecode(float[] decode)

Set the decode array

#### getSample

    protected int getSample(int[] values,
                int od)

Get a component for a sample given m indices and output dimension.

Parameters:
  `values` - an array of m values determining which sample to select
  `od` - the output dimension (0 - n) to get the sample in
Returns:
  the sample for the given values and index

#### setSamples

    protected void setSamples(int[][] samples)

Set the table of samples

#### interpolate

    public static float interpolate(float x,
                    float xmin,
                    float xmax,
                    float ymin,
                    float ymax)

Perform a linear interpolation. Given a value x, and two points, (xmin, ymin), (xmax, ymax), where xmin <= x <= xmax, calculate a value y on the line from (xmin, ymin) to (xmax, ymax).

Parameters:
  `x` - the x value of the input
  `xmin` - the minimum x value
  `ymin` - the minimum y value
  `xmax` - the maximum x value
  `ymax` - the maximum y value
Returns:
  the y value interpolated from the given x