abstract class Patch
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.awt.geom.Point2D[][] |
controlPoints |
protected float[][] |
cornerColor |
protected int[] |
level |
protected java.util.List<ShadedTriangle> |
listOfTriangles |
Constructor and Description |
---|
Patch(java.awt.geom.Point2D[] ctl,
float[][] color)
Constructor of Patch.
|
Modifier and Type | Method and Description |
---|---|
protected double |
edgeEquationValue(java.awt.geom.Point2D p,
java.awt.geom.Point2D p1,
java.awt.geom.Point2D p2)
A line from point p1 to point p2 defines an equation, adjust the form of
the equation to let the rhs equals 0, then calculate the lhs value by
plugging the coordinate of p in the lhs expression.
|
protected float[][] |
getFlag1Color()
Get the implicit color for flag = 1.
|
protected abstract java.awt.geom.Point2D[] |
getFlag1Edge()
Get the implicit edge for flag = 1.
|
protected float[][] |
getFlag2Color()
Get implicit color for flag = 2.
|
protected abstract java.awt.geom.Point2D[] |
getFlag2Edge()
Get the implicit edge for flag = 2.
|
protected float[][] |
getFlag3Color()
Get implicit color for flag = 3.
|
protected abstract java.awt.geom.Point2D[] |
getFlag3Edge()
Get the implicit edge for flag = 3.
|
protected double |
getLen(java.awt.geom.Point2D ps,
java.awt.geom.Point2D pe)
Calculate the distance from point ps to point pe.
|
protected java.util.List<ShadedTriangle> |
getShadedTriangles(CoordinateColorPair[][] patchCC)
An assistant method to accomplish type 6 and type 7 shading.
|
protected boolean |
isEdgeALine(java.awt.geom.Point2D[] ctl)
Whether the for control points are on a line.
|
private boolean |
overlaps(java.awt.geom.Point2D p0,
java.awt.geom.Point2D p1) |
protected java.awt.geom.Point2D[][] controlPoints
protected float[][] cornerColor
protected int[] level
protected java.util.List<ShadedTriangle> listOfTriangles
Patch(java.awt.geom.Point2D[] ctl, float[][] color)
ctl
- control points, size is 12 (for type 6 shading) or 16 (for
type 7 shading)color
- 4 corner's colorsprotected abstract java.awt.geom.Point2D[] getFlag1Edge()
protected abstract java.awt.geom.Point2D[] getFlag2Edge()
protected abstract java.awt.geom.Point2D[] getFlag3Edge()
protected float[][] getFlag1Color()
protected float[][] getFlag2Color()
protected float[][] getFlag3Color()
protected double getLen(java.awt.geom.Point2D ps, java.awt.geom.Point2D pe)
ps
- one end of a linepe
- the other end of the lineprotected boolean isEdgeALine(java.awt.geom.Point2D[] ctl)
ctl
- an edge's control points, the size of ctl is 4protected double edgeEquationValue(java.awt.geom.Point2D p, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)
p
- target pointp1
- one end of a linep2
- the other end of a lineprotected java.util.List<ShadedTriangle> getShadedTriangles(CoordinateColorPair[][] patchCC)
patchCC
- all the crossing point coordinates and color of a gridprivate boolean overlaps(java.awt.geom.Point2D p0, java.awt.geom.Point2D p1)