| java.lang.Object com.sun.pdfview.function.PDFFunction
All known Subclasses: com.sun.pdfview.function.FunctionType2, com.sun.pdfview.function.FunctionType0,
PDFFunction | abstract public class PDFFunction (Code) | | PDF Functions are defined in the reference as Section 3.9.
A PDF function maps some set of m inputs into some set
of n outputs. There are 4 types of functions:
- Type 0: Sampled functions. (PDF 1.2)
A sampled function (type 0) uses a table of sample values
to define the function. Various techniques are used to
interpolate values between the sample values
(see Section 3.9.1, “Type 0 (Sampled) Functions�).
- Type 2: Exponential Interpolation. (PDF 1.3)
An exponential interpolation function (type 2)
defines a set of coefficients for an exponential function
(see Section 3.9.2,
“Type 2 (Exponential Interpolation) Functions�).
- Type 3: Stitching functions. (PDF 1.3)
A stitching function (type 3) is a combination of
other functions, partitioned across a domain
(see Section 3.9.3, “Type 3 (Stitching) Functions�).
- Type 4: Postscript calculations. (PDF 1.3)
A PostScript calculator function (type 4) uses operators
from the PostScript language to describe an arithmetic
expression (see Section 3.9.4,
“Type 4 (PostScript Calculator) Functions�).
The function interface contains a single method, calculate which
takes an array of m floats an interprets them into an array of
n floats.
PDFFunctions do not have accessible constructors. Instead, use the
static getFunction() method to read a functions from a PDF Object.
|
Field Summary | |
final public static int | TYPE_0 | final public static int | TYPE_2 | final public static int | TYPE_3 | final public static int | TYPE_4 |
Method Summary | |
public float[] | calculate(float[] inputs) Map from m input values to n output values.
The number of inputs m must be exactly one half the size of the
domain. | public float[] | calculate(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. | abstract 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. | protected float | getDomain(int i) | public static PDFFunction | getFunction(PDFObject obj) | public int | getNumInputs() | public int | getNumOutputs() | protected float | getRange(int i) | public int | getType() | abstract protected void | parse(PDFObject obj) | protected void | setDomain(float[] domain) | protected void | setRange(float[] range) |
TYPE_0 | final public static int TYPE_0(Code) | | The known function types
|
TYPE_2 | final public static int TYPE_2(Code) | | |
TYPE_3 | final public static int TYPE_3(Code) | | |
TYPE_4 | final public static int TYPE_4(Code) | | |
PDFFunction | protected PDFFunction(int type)(Code) | | Creates a new instance of PDFFunction
|
calculate | public float[] calculate(float[] inputs)(Code) | | 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.
Parameters: inputs - an array of >= m input values the array of n output values |
calculate | public float[] calculate(float[] inputs, int inputOffset, float[] outputs, int outputOffset)(Code) | | 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.
Parameters: inputs - an array of >= m input values Parameters: inputOffset - the offset into the input array to read from Parameters: outputs - an array of size >= n which will be filledwith the output values Parameters: outputOffset - the offset into the output array to write to the array of n output values |
doFunction | abstract protected void doFunction(float[] inputs, int inputOffset, float[] outputs, int outputOffset)(Code) | | 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.
Parameters: inputs - guaranteed to be at least as big as getNumInputs() and all values within range Parameters: inputOffset - the offset into the inputs array to read from Parameters: outputs - guaranteed to be at least as big asgetNumOutputs() , but not yet clipped to domain Parameters: outputOffset - the offset into the output array to write to |
getDomain | protected float getDomain(int i)(Code) | | Get a component of the domain of this function
Parameters: i - the index into the domain array, which has size 2 * m.the ith entry in the array has index 2i, 2i + 1 the ith entry in the domain array |
getNumInputs | public int getNumInputs()(Code) | | Get the number of inputs, m, required by this function
the number of input values expected by this function |
getNumOutputs | public int getNumOutputs()(Code) | | Get the number of outputs, n, returned by this function
the number of output values this function will return |
getRange | protected float getRange(int i)(Code) | | Get a component of the range of this function
Parameters: i - the index into the range array, which has size 2 * n.the ith entry in the array has index 2i, 2i + 1 the ith entry in the range array |
getType | public int getType()(Code) | | Get the type of this function
one of the types of function (0-4) |
setDomain | protected void setDomain(float[] domain)(Code) | | Set the domain of this function
|
setRange | protected void setRange(float[] range)(Code) | | Set the range of this function
|
|
|