public class Crossing
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
Crossing.CubicCurve
CubicCurve class provides basic functionality to find curve crossing and calculating bounds
|
static class |
Crossing.QuadCurve
QuadCurve class provides basic functionality to find curve crossing and calculating bounds
|
| Modifier and Type | Field and Description |
|---|---|
static int |
CROSSING
Rectangle cross segment
|
(package private) static double |
DELTA
Allowable tolerance for bounds comparison
|
(package private) static double |
ROOT_DELTA
If roots have distance less then
ROOT_DELTA they are double |
(package private) static int |
UNKNOWN
Unknown crossing result
|
| Constructor and Description |
|---|
Crossing() |
| Modifier and Type | Method and Description |
|---|---|
(package private) static int |
crossBound(double[] bound,
int bc,
double py1,
double py2)
Returns are bounds intersect or not intersect rectangle
|
static int |
crossCubic(double x1,
double y1,
double cx1,
double cy1,
double cx2,
double cy2,
double x2,
double y2,
double x,
double y)
Returns how many times ray from point (x,y) cross cubic curve
|
static int |
crossLine(double x1,
double y1,
double x2,
double y2,
double x,
double y)
Returns how many times ray from point (x,y) cross line.
|
static int |
crossPath(java.awt.geom.PathIterator p,
double x,
double y)
Returns how many times ray from point (x,y) cross path
|
static int |
crossQuad(double x1,
double y1,
double cx,
double cy,
double x2,
double y2,
double x,
double y)
Returns how many times ray from point (x,y) cross quard curve
|
static int |
crossShape(java.awt.Shape s,
double x,
double y)
Returns how many times ray from point (x,y) cross shape
|
(package private) static int |
fixRoots(double[] res,
int rc)
Excludes double roots.
|
static int |
intersectCubic(double x1,
double y1,
double cx1,
double cy1,
double cx2,
double cy2,
double x2,
double y2,
double rx1,
double ry1,
double rx2,
double ry2)
Returns how many times rectangle stripe cross cubic curve or the are intersect
|
static int |
intersectLine(double x1,
double y1,
double x2,
double y2,
double rx1,
double ry1,
double rx2,
double ry2)
Returns how many times rectangle stripe cross line or the are intersect
|
static int |
intersectPath(java.awt.geom.PathIterator p,
double x,
double y,
double w,
double h)
Returns how many times rectangle stripe cross path or the are intersect
|
static int |
intersectQuad(double x1,
double y1,
double cx,
double cy,
double x2,
double y2,
double rx1,
double ry1,
double rx2,
double ry2)
Returns how many times rectangle stripe cross quad curve or the are intersect
|
static int |
intersectShape(java.awt.Shape s,
double x,
double y,
double w,
double h)
Returns how many times rectangle stripe cross shape or the are intersect
|
static boolean |
isInsideEvenOdd(int cross)
Returns true if cross count correspond inside location for even-odd path rule
|
static boolean |
isInsideNonZero(int cross)
Returns true if cross count correspond inside location for non zero path rule
|
static boolean |
isZero(double val)
Returns true if value enough small
|
static int |
solveCubic(double[] eqn,
double[] res)
Solves cubic equation
|
static int |
solveQuad(double[] eqn,
double[] res)
Solves quadratic equation
|
(package private) static void |
sortBound(double[] bound,
int bc)
Sort bound array
|
static final double DELTA
static final double ROOT_DELTA
ROOT_DELTA they are doublepublic static final int CROSSING
static final int UNKNOWN
public static int solveQuad(double[] eqn,
double[] res)
eqn - - the coefficients of the equationres - - the roots of the equationpublic static int solveCubic(double[] eqn,
double[] res)
eqn - - the coefficients of the equationres - - the roots of the equationstatic int fixRoots(double[] res,
int rc)
res - - the rootsrc - - the roots countpublic static int crossLine(double x1,
double y1,
double x2,
double y2,
double x,
double y)
public static int crossQuad(double x1,
double y1,
double cx,
double cy,
double x2,
double y2,
double x,
double y)
public static int crossCubic(double x1,
double y1,
double cx1,
double cy1,
double cx2,
double cy2,
double x2,
double y2,
double x,
double y)
public static int crossPath(java.awt.geom.PathIterator p,
double x,
double y)
public static int crossShape(java.awt.Shape s,
double x,
double y)
public static boolean isZero(double val)
static void sortBound(double[] bound,
int bc)
static int crossBound(double[] bound,
int bc,
double py1,
double py2)
public static int intersectLine(double x1,
double y1,
double x2,
double y2,
double rx1,
double ry1,
double rx2,
double ry2)
public static int intersectQuad(double x1,
double y1,
double cx,
double cy,
double x2,
double y2,
double rx1,
double ry1,
double rx2,
double ry2)
public static int intersectCubic(double x1,
double y1,
double cx1,
double cy1,
double cx2,
double cy2,
double x2,
double y2,
double rx1,
double ry1,
double rx2,
double ry2)
public static int intersectPath(java.awt.geom.PathIterator p,
double x,
double y,
double w,
double h)
public static int intersectShape(java.awt.Shape s,
double x,
double y,
double w,
double h)
public static boolean isInsideNonZero(int cross)
public static boolean isInsideEvenOdd(int cross)