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 Details

    • LINEAR_INTERPOLATION

      protected static final int LINEAR_INTERPOLATION
      the valid interpolation methods
      See Also:
    • CUBIC_INTERPOLATION

      protected static final int CUBIC_INTERPOLATION
      See Also:
  • Constructor Details

    • FunctionType0

      protected FunctionType0()
      Creates a new instance of FunctionType0
  • Method Details

    • parse

      protected void parse(PDFObject obj) throws IOException
      Read the function information from a PDF Object
      Specified by:
      parse in class PDFFunction
      Throws:
      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
      inputOffset - the offset into the inputs array to read from
      outputs - an array of size n which will be filled with the output values, or null to return a new array
      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 invalid input: '<'= x invalid input: '<'= 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
      xmax - the maximum x value
      ymin - the minimum y value
      ymax - the maximum y value
      Returns:
      the y value interpolated from the given x