Class FunctionType0
java.lang.Object
com.sun.pdfview.function.PDFFunction
com.sun.pdfview.function.FunctionType0
A sampled function maps input values to output values by interpolating
along a line or cubic between two known values.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intprotected static final intthe valid interpolation methodsFields inherited from class PDFFunction
TYPE_0, TYPE_2, TYPE_3, TYPE_4 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoFunction(float[] inputs, int inputOffset, float[] outputs, int outputOffset) Map from m input values to n output values.protected intGet the number of bits per sampleprotected floatgetDecode(int i) Get the decoding for a particular input parameterprotected floatgetEncode(int i) Get the encoding for a particular input parameterprotected intgetOrder()Get the interpolation typeprotected intgetSample(int[] values, int od) Get a component for a sample given m indices and output dimension.protected intgetSize(int dimension) Get the size of a given input dimensionstatic floatinterpolate(float x, float xmin, float xmax, float ymin, float ymax) Perform a linear interpolation.protected voidRead the function information from a PDF Objectprotected voidsetBitsPerSample(int bits) Set the number of bits per sampleprotected voidsetDecode(float[] decode) Set the decode arrayprotected voidsetEncode(float[] encode) Set the encode arrayprotected voidsetOrder(int order) Set the interpolation typeprotected voidsetSamples(int[][] samples) Set the table of samplesprotected voidsetSize(int[] size) Set the size of all input dimensionsMethods inherited from class PDFFunction
calculate, calculate, getDomain, getFunction, getNumInputs, getNumOutputs, getRange, getType, setDomain, setRange
-
Field Details
-
LINEAR_INTERPOLATION
protected static final int LINEAR_INTERPOLATIONthe 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
Read the function information from a PDF Object- Specified by:
parsein classPDFFunction- 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:
doFunctionin classPDFFunction- Parameters:
inputs- an array of m input valuesinputOffset- the offset into the inputs array to read fromoutputs- an array of size n which will be filled with the output values, or null to return a new arrayoutputOffset- 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 selectod- 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 inputxmin- the minimum x valuexmax- the maximum x valueymin- the minimum y valueymax- the maximum y value- Returns:
- the y value interpolated from the given x
-