java.lang.Object
com.graphbuilder.org.apache.harmony.awt.gl.Crossing

public class Crossing extends Object
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    CubicCurve class provides basic functionality to find curve crossing and calculating bounds
    static class 
    QuadCurve class provides basic functionality to find curve crossing and calculating bounds
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Rectangle cross segment
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    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(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(Shape s, double x, double y)
    Returns how many times ray from point (x,y) cross shape
    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(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(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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • Crossing

      public Crossing()
  • Method Details

    • solveQuad

      public static int solveQuad(double[] eqn, double[] res)
      Solves quadratic equation
      Parameters:
      eqn - - the coefficients of the equation
      res - - the roots of the equation
      Returns:
      a number of roots
    • solveCubic

      public static int solveCubic(double[] eqn, double[] res)
      Solves cubic equation
      Parameters:
      eqn - - the coefficients of the equation
      res - - the roots of the equation
      Returns:
      a number of roots
    • crossLine

      public 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.
    • crossQuad

      public 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
    • crossCubic

      public 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
    • crossPath

      public static int crossPath(PathIterator p, double x, double y)
      Returns how many times ray from point (x,y) cross path
    • crossShape

      public static int crossShape(Shape s, double x, double y)
      Returns how many times ray from point (x,y) cross shape
    • isZero

      public static boolean isZero(double val)
      Returns true if value enough small
    • intersectLine

      public 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
    • intersectQuad

      public 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
    • intersectCubic

      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)
      Returns how many times rectangle stripe cross cubic curve or the are intersect
    • intersectPath

      public static int intersectPath(PathIterator p, double x, double y, double w, double h)
      Returns how many times rectangle stripe cross path or the are intersect
    • intersectShape

      public static int intersectShape(Shape s, double x, double y, double w, double h)
      Returns how many times rectangle stripe cross shape or the are intersect
    • isInsideNonZero

      public static boolean isInsideNonZero(int cross)
      Returns true if cross count correspond inside location for non zero path rule
    • isInsideEvenOdd

      public static boolean isInsideEvenOdd(int cross)
      Returns true if cross count correspond inside location for even-odd path rule