## 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
`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
`protected` `FunctionType0()` Creates a new instance of FunctionType0

Method Summary
`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