new Shading()
Shading is a class that represents a flat interface around all PDF shading types:
- In Function-based (type 1) shadings, the color at every point in
the domain is defined by a specified mathematical function. The function need
not be smooth or continuous. This is the most general of the available shading
types, and is useful for shadings that cannot be adequately described with any
of the other types.
- Axial shadings (type 2) define a color blend along a line between two points,
optionally extended beyond the boundary points by continuing the boundary
colors.
- Radial shadings (type 3) define a color blend that varies between two circles.
Shadings of this type are commonly used to depict three-dimensional spheres
and cones.
- Free-form Gouraud-shaded triangle mesh shadings (type 4) and lattice Gouraud
shadings (type 5) are commonly used to represent complex colored and shaded
three-dimensional shapes. The area to be shaded is defined by a path composed entirely
of triangles. The color at each vertex of the triangles is specified, and a technique
known as Gouraud interpolation is used to color the interiors. The interpolation
functions defining the shading may be linear or nonlinear.
- Coons patch mesh shadings (type 6) are constructed from one or more color
patches, each bounded by four cubic Bezier curves.
A Coons patch generally has two independent aspects:
- Colors are specified for each corner of the unit square, and bilinear
interpolation is used to fill in colors over the entire unit square
- Coordinates are mapped from the unit square into a four-sided patch whose sides are not necessarily linear. The mapping is continuous: the corners of the unit square map to corners of the patch and the sides of the unit square map to sides of the patch. - Tensor-product patch mesh shadings (type 7) are identical to type 6 (Coons mesh), except that they are based on a bicubic tensor-product patch defined by 16 control points, instead of the 12 control points that define a Coons patch. The shading Patterns dictionaries representing the two patch types differ only in the value of the Type entry and in the number of control points specified for each patch in the data stream. Although the Coons patch is more concise and easier to use, the tensor- product patch affords greater control over color mapping.
- Coordinates are mapped from the unit square into a four-sided patch whose sides are not necessarily linear. The mapping is continuous: the corners of the unit square map to corners of the patch and the sides of the unit square map to sides of the patch. - Tensor-product patch mesh shadings (type 7) are identical to type 6 (Coons mesh), except that they are based on a bicubic tensor-product patch defined by 16 control points, instead of the 12 control points that define a Coons patch. The shading Patterns dictionaries representing the two patch types differ only in the value of the Type entry and in the number of control points specified for each patch in the data stream. Although the Coons patch is more concise and easier to use, the tensor- product patch affords greater control over color mapping.
Extends
Members
-
<static> Type
-
Properties:
Name Type Description e_function_shading
number e_axial_shading
number e_radial_shading
number e_free_gouraud_shading
number e_lattice_gouraud_shading
number e_coons_shading
number e_tensor_shading
number e_null
number
Methods
-
<static> create( [shading_dict])
-
Parameters:
Name Type Argument Description shading_dict
PDFNet.Obj <optional>
Returns:
A promise that resolves to an object of type: "PDFNet.Shading"- Type
- Promise.<PDFNet.Shading>
-
<static> getTypeFromObj(shading_dict)
-
Parameters:
Name Type Description shading_dict
PDFNet.Obj SDF/Cos shading dictionary to get the Type from Returns:
A promise that resolves to the Type of a given SDF/Cos shading dictionary, or e_null for if SDF object is not a valid shading object- Type
- Promise.<number>
Example
Return value enum: <pre> PDFNet.Shading.Type = { e_function_shading : 0 e_axial_shading : 1 e_radial_shading : 2 e_free_gouraud_shading : 3 e_lattice_gouraud_shading : 4 e_coons_shading : 5 e_tensor_shading : 6 e_null : 7 } </pre>
-
destroy()
-
Destructor
- Inherited From:
Returns:
- Type
- Promise.<void>
-
getAntialias()
-
Returns:
A promise that resolves to a flag indicating whether to filter the shading function to prevent aliasing artifacts. See Table 4.25- Type
- Promise.<boolean>
-
getBackground()
-
An color point represented in base color space specifying a single background color value. If present, this color is used before any painting operation involving the shading, to fill those portions of the area to be painted that lie outside the bounds of the shading object itself. In the opaque imaging model, the effect is as if the painting operation were performed twice: first with the background color and then again with the shading.
Returns:
A promise that resolves to an object of type: "PDFNet.ColorPt"- Type
- Promise.<PDFNet.ColorPt>
-
getBaseColorSpace()
-
Returns:
A promise that resolves to the color space in which color values are expressed. This may be any device, CIE-based, or special color space except a Pattern space.- Type
- Promise.<PDFNet.ColorSpace>
-
getBBox()
-
Returns:
A promise that resolves to a rectangle giving the left, bottom, right, and top coordinates, respectively, of the shading's bounding box. The coordinates are interpreted in the shading's target coordinate space. If present, this bounding box is applied as a temporary clipping boundary when the shading is painted, in addition to the current clipping path and any other clipping boundaries in effect at that time.- Type
- Promise.<PDFNet.Rect>
-
getColor(t)
-
Parameters:
Name Type Description t
number Returns:
A promise that resolves to an object of type: "PDFNet.ColorPt"- Type
- Promise.<PDFNet.ColorPt>
-
getColorForFunction(t1, t2)
-
Parameters:
Name Type Description t1
number t2
number Returns:
A promise that resolves to an object of type: "PDFNet.ColorPt"- Type
- Promise.<PDFNet.ColorPt>
-
getCoords()
-
Returns:
A promise that resolves to an object of type: "Object"- Type
- Promise.<Object>
-
getCoordsRadial()
-
Returns:
A promise that resolves to for Radial shading returns six numbers (x0 y0 r0 x1 y1 r1) specifying the centers and radii of the starting and ending circles, expressed in the shading's target coordinate space. The radii r0 and r1 must both be greater than or equal to 0. If one radius is 0, the corresponding circle is treated as a point; if both are 0, nothing is painted.- Type
- Promise.<Object>
-
getDomain()
-
Returns:
A promise that resolves to an array of four numbers [xmin xmax ymin ymax] specifying the rectangular domain of coordinates over which the color function(s) are defined. If the function does not contain /Domain entry the function returns: [0 1 0 1].- Type
- Promise.<Object>
-
getMatrix()
-
Returns:
A promise that resolves to a matrix specifying a mapping from the coordinate space specified by the Domain entry into the shading's target coordinate space.- Type
- Promise.<PDFNet.Matrix2D>
-
getParamEnd()
-
Returns:
A promise that resolves to a number specifying the limiting value of a parametric variable t. The variable is considered to vary linearly between GetParamStart() and GetParamEnd() as the color gradient varies between the starting and ending points of the axis for Axial shading or circles for Radial shading. The variable t becomes the input argument to the color function(s).- Type
- Promise.<number>
-
getParamStart()
-
Returns:
A promise that resolves to a number specifying the limiting value of a parametric variable t. The variable is considered to vary linearly between GetParamStart() and GetParamEnd() as the color gradient varies between the starting and ending points of the axis for Axial shading or circles for Radial shading. The variable t becomes the input argument to the color function(s).- Type
- Promise.<number>
-
getSDFObj()
-
Returns:
A promise that resolves to the underlying SDF/Cos object- Type
- Promise.<PDFNet.Obj>
-
getType()
-
Returns:
A promise that resolves to the shading type- Type
- Promise.<number>
Example
Return value enum: <pre> PDFNet.Shading.Type = { e_function_shading : 0 e_axial_shading : 1 e_radial_shading : 2 e_free_gouraud_shading : 3 e_lattice_gouraud_shading : 4 e_coons_shading : 5 e_tensor_shading : 6 e_null : 7 } </pre>
-
hasBackground()
-
Returns:
A promise that resolves to true if the shading has a background color or false otherwise.- Type
- Promise.<boolean>
-
hasBBox()
-
Returns:
A promise that resolves to true if shading has a bounding box, false otherwise.- Type
- Promise.<boolean>
-
isExtendEnd()
-
Returns:
A promise that resolves to a flag specifying whether to extend the shading beyond the ending point of the axis for Axial shading or ending circle for Radial shading.- Type
- Promise.<boolean>
-
isExtendStart()
-
Returns:
A promise that resolves to a flag specifying whether to extend the shading beyond the starting point of the axis for Axial shading or starting circle for Radial shading.- Type
- Promise.<boolean>
-
takeOwnership()
-
Take the ownership of this object, so that PDFNet.runWithCleanup won't destroy this object.
- Inherited From:
Returns:
- Type
- void