Class JaxoGeometry

java.lang.Object
net.sf.jaxodraw.util.JaxoGeometry

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

    • add

      public static void add(Rectangle2D r, 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:
    • add

      public static void add(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(Rectangle2D r)
      Clear: Ensure 'r.isEmpty()'.
      Parameters:
      r - The rectangle to clear.
      See Also:
    • grow

      public static void grow(Rectangle r, 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(Rectangle r, 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(Dimension d, 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(Dimension d, 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 Rectangle getBounds(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 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(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(Point2D[] controlPoints, Point2D[] left, 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 Point2D bezierPoint(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(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(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(Window w, Component comp, 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.