Class FunctionType3

java.lang.Object
org.loboevolution.pdfview.function.PDFFunction
org.loboevolution.pdfview.function.FunctionType3

public class FunctionType3 extends PDFFunction
3.9.3 - A stitching function define a stitching of the subdomains of several 1-input functions to produce a single new 1-input function. Since the resulting stitching function is a 1-input function, the domain is given by a two-element array, [ Domain0 Domain1 ].

Example 4.25 5 0 obj % Shading dictionary ShadingType 3 ColorSpace DeviceCMYK Coords [ 0.0 0.0 0.096 0.0 0.0 1.0 00]% Concentric circles Function 10 0 R Extend [ true true ]

endobj

10 0 obj % Color function FunctionType 3 Domain [ 0.0 1.0 ] Functions [ 11 0 R 12 0 R ] Bounds [ 0.708 ] Encode [ 1.0 0.0 0.0 1.0 ]

endobj

11 0 obj % First subfunction FunctionType 2 Domain [ 0.0 1.0 ] C0 [ 0.929 0.357 1.000 0.298 ] C1 [ 0.631 0.278 1.000 0.027 ] N 1.048

endobj

12 0 obj % Second subfunction FunctionType 2 Domain [ 0.0 1.0 ] C0 [ 0.929 0.357 1.000 0.298 ] C1 [ 0.941 0.400 1.000 0.102 ] N 1.374

endobj

  • Constructor Details

    • FunctionType3

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

    • parse

      protected void parse(PDFObject obj) throws IOException
      Read the function information from a PDF Object

      Read the function information from a PDF Object.

      Required entries ( Table 3.38) (3200-1:2008:7.10.4, table: 41) are: Functions array (Required) An array of k 1-input functions making up the stitching function. The output dimensionality of all functions must be the same, and compatible with the value of Range if Range is present. Domainarray (Required) A 2 element array where Domain0 is less than Domain1. This is read by the PDFFunction superclass. Bounds array (Required) An array of k-1 numbers that, in combination with Domain, define the intervals to which each function from the Functions array applies. Bounds elements must be in order of increasing value, and each value must be within the domain defined by Domain. Encode array (Required) An array of 2 * k numbers that, taken in pairs, map each subset of the domain defined by Domain and the Bounds array to the domain of the corresponding function.
      Specified by:
      parse in class PDFFunction
      Parameters:
      obj - a PDFObject object.
      Throws:
      IOException - if any.
    • doFunction

      protected void doFunction(float[] inputs, int inputOffset, float[] outputs, int outputOffset)
      Subclasses must implement this method to perform the actual function on the given set of data. Note that the inputs are guaranteed to be clipped to the domain, while the outputs will be automatically clipped to the range after being returned from this function.
      Specified by:
      doFunction in class PDFFunction
      Parameters:
      inputs - an array of
      invalid reference
      float
      objects.
      inputOffset - the offset into the inputs array to read from
      outputs - guaranteed to be at least as big as getNumOutputs(), but not yet clipped to domain
      outputOffset - the offset into the output array to write to
    • getNumInputs

      public int getNumInputs()
      Get the number of inputs, m, required by this function
      Overrides:
      getNumInputs in class PDFFunction
      Returns:
      the number of input values expected by this function
    • getNumOutputs

      public int getNumOutputs()
      Get the number of outputs, n, returned by this function
      Overrides:
      getNumOutputs in class PDFFunction
      Returns:
      the number of output values this function will return