Class FourPassImageShaper

java.lang.Object
edu.uci.ics.jung.visualization.FourPassImageShaper

public class FourPassImageShaper extends Object
Provides Supplier methods that, given a BufferedImage, an Image, or the fileName of an image, will return a java.awt.Shape that is the contiguous traced outline of the opaque part of the image. This could be used to define an image for use in a Vertex, where the shape used for picking and edge-arrow placement follows the opaque part of an image that has a transparent background. The methods try to detect lines in order to minimize points in the path
  • Constructor Details

    • FourPassImageShaper

      public FourPassImageShaper()
  • Method Details

    • getShape

      public static Shape getShape(BufferedImage image)
    • detectLine

      private static Point2D detectLine(Point2D p1, Point2D p2, Point2D p, Line2D line, GeneralPath path)
      Checks to see if point p is on a line that passes thru points p1 and p2. If p is on the line, extend the line segment so that it is from p1 to the location of p. If the point p is not on the line, update my shape with a line extending to the old p2 location, make the old p2 the new p1, and make p2 the old p
      Parameters:
      p1 -
      p2 -
      p -
      line -
      path -
      Returns:
    • leftEdge

      private static Shape leftEdge(BufferedImage image)
      trace the left side of the image
      Parameters:
      image -
      path -
      Returns:
    • bottomEdge

      private static Shape bottomEdge(BufferedImage image)
      trace the bottom of the image
      Parameters:
      image -
      path -
      start -
      Returns:
    • rightEdge

      private static Shape rightEdge(BufferedImage image)
      trace the right side of the image
      Parameters:
      image -
      path -
      start -
      Returns:
    • topEdge

      private static Shape topEdge(BufferedImage image)
      trace the top of the image
      Parameters:
      image -
      path -
      start -
      Returns: