Class Crossing

java.lang.Object
com.itextpdf.awt.geom.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
    (package private) static final double
    Allowable tolerance for bounds comparison
    (package private) static final double
    If roots have distance less then ROOT_DELTA they are double
    (package private) static final int
    Unknown crossing result
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    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(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
    (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(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
    (package private) static void
    sortBound(double[] bound, int bc)
    Sort bound array

    Methods inherited from class java.lang.Object

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

    • DELTA

      static final double DELTA
      Allowable tolerance for bounds comparison
      See Also:
    • ROOT_DELTA

      static final double ROOT_DELTA
      If roots have distance less then ROOT_DELTA they are double
      See Also:
    • CROSSING

      public static final int CROSSING
      Rectangle cross segment
      See Also:
    • UNKNOWN

      static final int UNKNOWN
      Unknown crossing result
      See Also:
  • 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
    • fixRoots

      static int fixRoots(double[] res, int rc)
      Excludes double roots. Roots are double if they lies enough close with each other.
      Parameters:
      res - - the roots
      rc - - the roots count
      Returns:
      new roots count
    • 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
    • sortBound

      static void sortBound(double[] bound, int bc)
      Sort bound array
    • crossBound

      static int crossBound(double[] bound, int bc, double py1, double py2)
      Returns are bounds intersect or not intersect rectangle
    • 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