Class ShadedTriangle
- java.lang.Object
-
- org.apache.pdfbox.pdmodel.graphics.shading.ShadedTriangle
-
class ShadedTriangle extends java.lang.Object
This is an assistant class for accomplishing type 4, 5, 6 and 7 shading. It describes a triangle actually, which is used to compose a patch. It contains the degenerated cases, a triangle degenerates to a line or to a point. This was done as part of GSoC2014, Tilman Hausherr is the mentor.
-
-
Constructor Summary
Constructors Constructor Description ShadedTriangle(java.awt.geom.Point2D[] p, float[][] c)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description float[]
calcColor(java.awt.geom.Point2D p)
Calculate the color of a point.private int
calcDeg(java.awt.geom.Point2D[] p)
Calculate the degree value of a triangle.boolean
contains(java.awt.geom.Point2D p)
Whether a point is contained in this ShadedTriangle.private double
edgeEquationValue(java.awt.geom.Point2D p, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)
private double
getArea(java.awt.geom.Point2D a, java.awt.geom.Point2D b, java.awt.geom.Point2D c)
int[]
getBoundary()
get the boundary of a triangle.int
getDeg()
Line
getLine()
Get the line of a triangle.private boolean
overlaps(java.awt.geom.Point2D p0, java.awt.geom.Point2D p1)
java.lang.String
toString()
-
-
-
Field Detail
-
corner
protected final java.awt.geom.Point2D[] corner
-
color
protected final float[][] color
-
area
private final double area
-
degree
private final int degree
-
line
private final Line line
-
v0
private final double v0
-
v1
private final double v1
-
v2
private final double v2
-
-
Method Detail
-
calcDeg
private int calcDeg(java.awt.geom.Point2D[] p)
Calculate the degree value of a triangle.- Parameters:
p
- 3 vertices coordinates- Returns:
- number of unique points in the 3 vertices of a triangle, 3, 2 or 1
-
getDeg
public int getDeg()
-
getBoundary
public int[] getBoundary()
get the boundary of a triangle.- Returns:
- {xmin, xmax, ymin, ymax}
-
getLine
public Line getLine()
Get the line of a triangle.- Returns:
- points of the line, or null if this triangle isn't a line
-
contains
public boolean contains(java.awt.geom.Point2D p)
Whether a point is contained in this ShadedTriangle.- Parameters:
p
- the target point- Returns:
- false if p is outside of this triangle, otherwise true
-
overlaps
private boolean overlaps(java.awt.geom.Point2D p0, java.awt.geom.Point2D p1)
-
edgeEquationValue
private double edgeEquationValue(java.awt.geom.Point2D p, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)
-
getArea
private double getArea(java.awt.geom.Point2D a, java.awt.geom.Point2D b, java.awt.geom.Point2D c)
-
calcColor
public float[] calcColor(java.awt.geom.Point2D p)
Calculate the color of a point.- Parameters:
p
- the target point- Returns:
- an array denotes the point's color
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-