Class JaxoGeometry


  • public final class JaxoGeometry
    extends java.lang.Object
    Utility methods for Java2D geometry.
    Since:
    2.0
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void add​(java.awt.geom.Rectangle2D r, java.awt.geom.Rectangle2D s)
      Add 's' to 'r', but respect isEmpty: is 's' is empty, do nothing; if 'r' is empty, 'r' is set to 's'.
      static void add​(java.awt.Rectangle r, int x, int y, int width, int height)
      static double bezierLength​(java.awt.geom.Point2D[] p, double error)
      Returns the approximate length of a Bezier curve.
      static java.awt.geom.Point2D bezierPoint​(java.awt.geom.Point2D[] p, double u)
      Returns a point of a Bezier curve at parameter u.
      static double bezierSlope​(java.awt.geom.Point2D[] p, double u)
      Returns the first derivative of a Bezier curve at parameter u.
      static void bezierSplit​(java.awt.geom.Point2D[] controlPoints, java.awt.geom.Point2D[] left, java.awt.geom.Point2D[] right)
      Splits a Bezier into half and calculates the control points of the two parts.
      static void clear​(java.awt.geom.Rectangle2D r)
      Clear: Ensure 'r.isEmpty()'.
      static double curveParameter​(double u)
      Checks that a curve parameter value is in range, within errors.
      static java.awt.Rectangle getBounds​(java.util.Collection<?> objects)
      Bounding box of a Collection of Shapes.
      static void grow​(java.awt.Dimension d, java.awt.Insets n)
      Increase the Dimension 'd' by the amount given in each direction in 'n'.
      static void grow​(java.awt.Rectangle r, java.awt.Insets n)
      Increase the Rectangle 'r' by the amount given in each direction in 'n'.
      static java.awt.geom.Point2D scaledPoint​(double orx, double ory, double scale, double px, double py)
      Returns a point that is obtained from a point (px, py) after a scale transformation scale, keeping the point (orx, ory) fixed.
      static void setLocationRelativeToAvoiding​(java.awt.Window w, java.awt.Component comp, java.awt.Rectangle avoidme)
      Put Window into a nice place - in principle as setLocationRelativeTo(c), but try to avoid covering the given Rectangle.
      static void shrink​(java.awt.Dimension d, java.awt.Insets n)
      Decrease the Dimension 'd' by the amount given in each direction in 'n'.
      static void shrink​(java.awt.Rectangle r, java.awt.Insets n)
      Decrease the Rectangle 'r' by the amount given in each direction in 'n'.
      static void translate​(java.awt.geom.Point2D p, double dx, double dy)
      Translate a point.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • add

        public static void add​(java.awt.geom.Rectangle2D r,
                               java.awt.geom.Rectangle2D s)
        Add 's' to 'r', but respect isEmpty: is 's' is empty, do nothing; if 'r' is empty, 'r' is set to 's'. The rounding behaviour if 'r' and 's' have different precision is undefined.
        Parameters:
        r - The first Rectangle.
        s - The rectangle to add.
        See Also:
        Rectangle.add(Rectangle), Rectangle.isEmpty()
      • add

        public static void add​(java.awt.Rectangle r,
                               int x,
                               int y,
                               int width,
                               int height)
        Parameters:
        r - The first rectangle.
        x - The x coordinate of the rectangle to add.
        y - The y coordinate of the rectangle to add.
        width - The width of the rectangle to add.
        height - The height of the rectangle to add.
      • clear

        public static void clear​(java.awt.geom.Rectangle2D r)
        Clear: Ensure 'r.isEmpty()'.
        Parameters:
        r - The rectangle to clear.
        See Also:
        Rectangle.isEmpty()
      • grow

        public static void grow​(java.awt.Rectangle r,
                                java.awt.Insets n)
        Increase the Rectangle 'r' by the amount given in each direction in 'n'.
        Parameters:
        r - The rectangle to grow.
        n - The insets to add.
      • shrink

        public static void shrink​(java.awt.Rectangle r,
                                  java.awt.Insets n)
        Decrease the Rectangle 'r' by the amount given in each direction in 'n'. Currently does not handle underflow - so 'r' may have negative width/height afterwards.
        Parameters:
        r - The rectangle to shrink.
        n - The insets to subtract.
      • grow

        public static void grow​(java.awt.Dimension d,
                                java.awt.Insets n)
        Increase the Dimension 'd' by the amount given in each direction in 'n'.
        Parameters:
        d - The dimension to grow.
        n - The insets to add.
      • shrink

        public static void shrink​(java.awt.Dimension d,
                                  java.awt.Insets n)
        Decrease the Dimension 'd' by the amount given in each direction in 'n'. Currently does not handle underflow - so 'd' may have negative width/height afterwards.
        Parameters:
        d - The dimension to shrink.
        n - The insets to subtract.
      • getBounds

        public static java.awt.Rectangle getBounds​(java.util.Collection<?> objects)
        Bounding box of a Collection of Shapes. Returns the union of all the object's bounding boxess.
        Parameters:
        objects - A collection of objects, only Shapes contribute to the result.
        Returns:
        A Rectangle containing the union bounding box. Returns null for an empty Collection, or if there are no Shapes.
      • scaledPoint

        public static java.awt.geom.Point2D scaledPoint​(double orx,
                                                        double ory,
                                                        double scale,
                                                        double px,
                                                        double py)
        Returns a point that is obtained from a point (px, py) after a scale transformation scale, keeping the point (orx, ory) fixed.
        Parameters:
        orx - The x-coordinate of the fixed point.
        ory - The y-coordinate of the fixed point.
        scale - The scale factor.
        px - The x-coordinate of the point to be transformed.
        py - The y-coordinate of the point to be transformed.
        Returns:
        A Point2D containing the x- and y-coordinate of the new point.
      • bezierLength

        public static double bezierLength​(java.awt.geom.Point2D[] p,
                                          double error)
        Returns the approximate length of a Bezier curve.
        Parameters:
        p - the four control points of the Bezier curve.
        error - An absolute value for an error estimate
        Returns:
        The length of the Bezier curve.
      • bezierSplit

        public static void bezierSplit​(java.awt.geom.Point2D[] controlPoints,
                                       java.awt.geom.Point2D[] left,
                                       java.awt.geom.Point2D[] right)
        Splits a Bezier into half and calculates the control points of the two parts.
        Parameters:
        controlPoints - the four control points of the Bezier.
        left - (output) the four control points of the left half.
        right - (output) the four control points of the right half.
      • bezierPoint

        public static java.awt.geom.Point2D bezierPoint​(java.awt.geom.Point2D[] p,
                                                        double u)
        Returns a point of a Bezier curve at parameter u.
        Parameters:
        p - the four control points of the Bezier curve.
        u - the parameter value, needs to be between 0 and 1.
        Returns:
        A Point2D.
      • bezierSlope

        public static double bezierSlope​(java.awt.geom.Point2D[] p,
                                         double u)
        Returns the first derivative of a Bezier curve at parameter u.
        Parameters:
        p - the four control points of the Bezier curve.
        u - the parameter value, needs to be between 0 and 1.
        Returns:
        the slope (in radians) at t.
      • curveParameter

        public static double curveParameter​(double u)
        Checks that a curve parameter value is in range, within errors.
        Parameters:
        u - the parameter value, needs to be between 0 and 1.
        Returns:
        a parameter that is strictly between 0 and 1.
      • translate

        public static void translate​(java.awt.geom.Point2D p,
                                     double dx,
                                     double dy)
        Translate a point.
        Parameters:
        p - the point to move.
        dx - the translation in x direction.
        dy - the translation in y direction.
      • setLocationRelativeToAvoiding

        public static void setLocationRelativeToAvoiding​(java.awt.Window w,
                                                         java.awt.Component comp,
                                                         java.awt.Rectangle avoidme)
        Put Window into a nice place - in principle as setLocationRelativeTo(c), but try to avoid covering the given Rectangle.
        Parameters:
        w - The window to set.
        comp - A compponent.
        avoidme - The region to avoid.