Class VertexShapeFactory<V>

java.lang.Object
edu.uci.ics.jung.visualization.util.VertexShapeFactory<V>

public class VertexShapeFactory<V> extends Object
A utility class for generating Shapes for drawing vertices. The available shapes include rectangles, rounded rectangles, ellipses, regular polygons, and regular stars. The dimensions of the requested shapes are defined by the specified vertex size function (specified by a Function<? super V, Integer>) and vertex aspect ratio function (specified by a Function<? super V, Float>) implementations: the width of the bounding box of the shape is given by the vertex size, and the height is given by the size multiplied by the vertex's aspect ratio.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final Ellipse2D
     
    private static final GeneralPath
     
    private static final Rectangle2D
     
    private static final RoundRectangle2D
     
    protected com.google.common.base.Function<? super V,Float>
     
    protected com.google.common.base.Function<? super V,Integer>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a VertexShapeFactory with a constant size of 10 and a constant aspect ratio of 1.
    VertexShapeFactory(com.google.common.base.Function<? super V,Integer> vsf, com.google.common.base.Function<? super V,Float> varf)
    Creates an instance with the specified vertex size and aspect ratio functions.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns a Ellipse2D whose width and height are defined by this instance's size and aspect ratio functions for this vertex.
    Returns a Rectangle2D whose width and height are defined by this instance's size and aspect ratio functions for this vertex.
    getRegularPolygon(V v, int num_sides)
    Returns a regular num_sides-sided Polygon whose bounding box's width and height are defined by this instance's size and aspect ratio functions for this vertex.
    getRegularStar(V v, int num_points)
    Returns a regular Polygon of num_points points whose bounding box's width and height are defined by this instance's size and aspect ratio functions for this vertex.
    Returns a RoundRectangle2D whose width and height are defined by this instance's size and aspect ratio functions for this vertex.

    Methods inherited from class java.lang.Object

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

    • vsf

      protected com.google.common.base.Function<? super V,Integer> vsf
    • varf

      protected com.google.common.base.Function<? super V,Float> varf
    • theRectangle

      private static final Rectangle2D theRectangle
    • theEllipse

      private static final Ellipse2D theEllipse
    • theRoundRectangle

      private static final RoundRectangle2D theRoundRectangle
    • thePolygon

      private static final GeneralPath thePolygon
  • Constructor Details

    • VertexShapeFactory

      public VertexShapeFactory(com.google.common.base.Function<? super V,Integer> vsf, com.google.common.base.Function<? super V,Float> varf)
      Creates an instance with the specified vertex size and aspect ratio functions.
      Parameters:
      vsf - provides a size (width) for each vertex
      varf - provides a height/width ratio for each vertex
    • VertexShapeFactory

      public VertexShapeFactory()
      Creates a VertexShapeFactory with a constant size of 10 and a constant aspect ratio of 1.
  • Method Details

    • getRectangle

      public Rectangle2D getRectangle(V v)
      Returns a Rectangle2D whose width and height are defined by this instance's size and aspect ratio functions for this vertex.
      Parameters:
      v - the vertex for which the shape will be drawn
      Returns:
      a rectangle for this vertex
    • getEllipse

      public Ellipse2D getEllipse(V v)
      Returns a Ellipse2D whose width and height are defined by this instance's size and aspect ratio functions for this vertex.
      Parameters:
      v - the vertex for which the shape will be drawn
      Returns:
      an ellipse for this vertex
    • getRoundRectangle

      public RoundRectangle2D getRoundRectangle(V v)
      Returns a RoundRectangle2D whose width and height are defined by this instance's size and aspect ratio functions for this vertex. The arc size is set to be half the minimum of the height and width of the frame.
      Parameters:
      v - the vertex for which the shape will be drawn
      Returns:
      an round rectangle for this vertex
    • getRegularPolygon

      public Shape getRegularPolygon(V v, int num_sides)
      Returns a regular num_sides-sided Polygon whose bounding box's width and height are defined by this instance's size and aspect ratio functions for this vertex.
      Parameters:
      v - the vertex for which the shape will be drawn
      num_sides - the number of sides of the polygon; must be ≥ 3.
      Returns:
      a regular polygon for this vertex
    • getRegularStar

      public Shape getRegularStar(V v, int num_points)
      Returns a regular Polygon of num_points points whose bounding box's width and height are defined by this instance's size and aspect ratio functions for this vertex.
      Parameters:
      v - the vertex for which the shape will be drawn
      num_points - the number of points of the polygon; must be ≥ 5.
      Returns:
      an star shape for this vertex