org.apache.pdfbox.pdmodel.graphics.shading

## Class PDShadingType6

- java.lang.Object
- - org.apache.pdfbox.pdmodel.graphics.shading.PDShading
  - - org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType4
    - - org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType6

All Implemented Interfaces:
  COSObjectable

    public class PDShadingType6
    extends PDShadingType4

Resources for a shading type 6 (Coons Patch Mesh).

### Field Summary

### Fields inherited from class org.apache.pdfbox.pdmodel.graphics.shading.PDShading

`SHADING_TYPE1, SHADING_TYPE2, SHADING_TYPE3, SHADING_TYPE4, SHADING_TYPE5, SHADING_TYPE6, SHADING_TYPE7`

### Constructor Summary

Constructors
Constructor and Description
`PDShadingType6(COSDictionary shadingDictionary)` Constructor using the given shading dictionary.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected org.apache.pdfbox.pdmodel.graphics.shading.Patch` `generatePatch(Point2D[] points, float[][] color)` Create a patch using control points and 4 corner color values, in Type6ShadingContext, a CoonsPatch is returned; in Type6ShadingContext, a TensorPatch is returned.
`int` `getBitsPerComponent()` The bits per component of this shading.
`int` `getBitsPerCoordinate()` The bits per coordinate of this shading.
`Rectangle2D` `getBounds(AffineTransform xform, Matrix matrix)` Calculate a bounding rectangle around the areas of this shading context.
`PDRange` `getDecodeForParameter(int paramNum)` Get the decode for the input parameter.
`int` `getNumberOfColorComponents()` The number of color components of this shading.
`int` `getShadingType()` This will return the shading type.
`protected float` `interpolate(float src, long srcMax, float dstMin, float dstMax)` Calculate the interpolation, see p.345 pdf spec 1.7.

`protected org.apache.pdfbox.pdmodel.graphics.shading.Patch`

`readPatch(ImageInputStream input, boolean isFree, Point2D[] implicitEdge, float[][] implicitCornerColor, long maxSrcCoord, long maxSrcColor, PDRange rangeX, PDRange rangeY, PDRange[] colRange, Matrix matrix, AffineTransform xform, int controlPoints)`
Read a single patch from a data stream, a patch contains information of its coordinates and color parameters.

`protected org.apache.pdfbox.pdmodel.graphics.shading.Vertex` `readVertex(ImageInputStream input, long maxSrcCoord, long maxSrcColor, PDRange rangeX, PDRange rangeY, PDRange[] colRangeTab, Matrix matrix, AffineTransform xform)` Read a vertex from the bit input stream performs interpolations.
`void` `setBitsPerComponent(int bitsPerComponent)` Set the number of bits per component.
`void` `setBitsPerCoordinate(int bitsPerCoordinate)` Set the number of bits per coordinate.
`void` `setDecodeValues(COSArray decodeValues)` This will set the decode values.
`Paint` `toPaint(Matrix matrix)` Returns an AWT paint which corresponds to this shading

### Methods inherited from class org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType4

`getBitsPerFlag, setBitsPerFlag`

### Methods inherited from class org.apache.pdfbox.pdmodel.graphics.shading.PDShading

`create, evalFunction, evalFunction, getAntiAlias, getBackground, getBBox, getColorSpace, getCOSObject, getFunction, getType, setAntiAlias, setBackground, setBBox, setColorSpace, setFunction, setFunction, setShadingType`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### PDShadingType6

    public PDShadingType6(COSDictionary shadingDictionary)

Constructor using the given shading dictionary.

Parameters:
  `shadingDictionary` - the dictionary for this shading

### Method Detail

#### getShadingType

    public int getShadingType()

Description copied from class: `PDShading`
This will return the shading type.

Overrides:
  `getShadingType` in class `PDShadingType4`
Returns:
  the shading typ

#### toPaint

    public Paint toPaint(Matrix matrix)

Description copied from class: `PDShading`
Returns an AWT paint which corresponds to this shading

Overrides:
  `toPaint` in class `PDShadingType4`
Parameters:
  `matrix` - the pattern matrix concatenated with that of the parent content stream, this matrix which maps the pattern's internal coordinate system to user space
Returns:
  an AWT Paint instance

#### generatePatch

    protected org.apache.pdfbox.pdmodel.graphics.shading.Patch generatePatch(Point2D[] points,
                                                                             float[][] color)

Create a patch using control points and 4 corner color values, in Type6ShadingContext, a CoonsPatch is returned; in Type6ShadingContext, a TensorPatch is returned.

Parameters:
  `points` - 12 or 16 control points
  `color` - 4 corner colors
Returns:
  a patch instance

#### getBounds

    public Rectangle2D getBounds(AffineTransform xform,
                                 Matrix matrix)
                          throws IOException

Description copied from class: `PDShading`
Calculate a bounding rectangle around the areas of this shading context.

Returns:
  Bounding rectangle or null, if not supported by this shading type.
Throws:
  `IOException`

#### readPatch

    protected org.apache.pdfbox.pdmodel.graphics.shading.Patch readPatch(ImageInputStream input,
                                                                         boolean isFree,
                                                                         Point2D[] implicitEdge,
                                                                         float[][] implicitCornerColor,
                                                                         long maxSrcCoord,
                                                                         long maxSrcColor,
                                                                         PDRange rangeX,
                                                                         PDRange rangeY,
                                                                         PDRange[] colRange,
                                                                         Matrix matrix,
                                                                         AffineTransform xform,
                                                                         int controlPoints)
                                                                  throws IOException

Read a single patch from a data stream, a patch contains information of its coordinates and color parameters.

Parameters:
  `input` - the image source data stream
  `isFree` - whether this is a free patch
  `implicitEdge` - implicit edge when a patch is not free, otherwise it's not used
  `implicitCornerColor` - implicit colors when a patch is not free, otherwise it's not used
  `maxSrcCoord` - the maximum coordinate value calculated from source data
  `maxSrcColor` - the maximum color value calculated from source data
  `rangeX` - range for coordinate x
  `rangeY` - range for coordinate y
  `colRange` - range for color
  `matrix` - the pattern matrix concatenated with that of the parent content stream
  `xform` - transformation for user to device space
  `controlPoints` - number of control points, 12 for type 6 shading and 16 for type 7 shading
Returns:
  a single patch
Throws:
  `IOException` - when something went wrong

#### getBitsPerComponent

    public int getBitsPerComponent()

The bits per component of this shading. This will return -1 if one has not been set.

Returns:
  the number of bits per component

#### setBitsPerComponent

    public void setBitsPerComponent(int bitsPerComponent)

Set the number of bits per component.

Parameters:
  `bitsPerComponent` - the number of bits per component

#### getBitsPerCoordinate

    public int getBitsPerCoordinate()

The bits per coordinate of this shading. This will return -1 if one has not been set.

Returns:
  the number of bits per coordinate

#### setBitsPerCoordinate

    public void setBitsPerCoordinate(int bitsPerCoordinate)

Set the number of bits per coordinate.

Parameters:
  `bitsPerCoordinate` - the number of bits per coordinate

#### getNumberOfColorComponents

    public int getNumberOfColorComponents()
                                   throws IOException

The number of color components of this shading.

Returns:
  number of color components of this shading
Throws:
  `IOException`

#### setDecodeValues

    public void setDecodeValues(COSArray decodeValues)

This will set the decode values.

Parameters:
  `decodeValues` - the new decode values

#### getDecodeForParameter

    public PDRange getDecodeForParameter(int paramNum)

Get the decode for the input parameter.

Parameters:
  `paramNum` - the function parameter number
Returns:
  the decode parameter range or null if none is set

#### interpolate

    protected float interpolate(float src,
                                long srcMax,
                                float dstMin,
                                float dstMax)

Calculate the interpolation, see p.345 pdf spec 1.7.

Parameters:
  `src` - src value
  `srcMax` - max src value (2^bits-1)
  `dstMin` - min dst value
  `dstMax` - max dst value
Returns:
  interpolated value

#### readVertex

    protected org.apache.pdfbox.pdmodel.graphics.shading.Vertex readVertex(ImageInputStream input,
                                                                           long maxSrcCoord,
                                                                           long maxSrcColor,
                                                                           PDRange rangeX,
                                                                           PDRange rangeY,
                                                                           PDRange[] colRangeTab,
                                                                           Matrix matrix,
                                                                           AffineTransform xform)
                                                                    throws IOException

Read a vertex from the bit input stream performs interpolations.

Parameters:
  `input` - bit input stream
  `maxSrcCoord` - max value for source coordinate (2^bits-1)
  `maxSrcColor` - max value for source color (2^bits-1)
  `rangeX` - dest range for X
  `rangeY` - dest range for Y
  `colRangeTab` - dest range array for colors
  `matrix` - the pattern matrix concatenated with that of the parent content stream
Returns:
  a new vertex with the flag and the interpolated values
Throws:
  `IOException` - if something went wrong