Class VertexShapeFactory<V>


  • public class VertexShapeFactory<V>
    extends java.lang.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 java.awt.geom.Ellipse2D theEllipse  
      private static java.awt.geom.GeneralPath thePolygon  
      private static java.awt.geom.Rectangle2D theRectangle  
      private static java.awt.geom.RoundRectangle2D theRoundRectangle  
      protected com.google.common.base.Function<? super V,​java.lang.Float> varf  
      protected com.google.common.base.Function<? super V,​java.lang.Integer> vsf  
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.awt.geom.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.
      java.awt.geom.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.
      java.awt.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.
      java.awt.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.
      java.awt.geom.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.
      • Methods inherited from class java.lang.Object

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

      • vsf

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

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

        private static final java.awt.geom.Rectangle2D theRectangle
      • theEllipse

        private static final java.awt.geom.Ellipse2D theEllipse
      • theRoundRectangle

        private static final java.awt.geom.RoundRectangle2D theRoundRectangle
      • thePolygon

        private static final java.awt.geom.GeneralPath thePolygon
    • Constructor Detail

      • VertexShapeFactory

        public VertexShapeFactory​(com.google.common.base.Function<? super V,​java.lang.Integer> vsf,
                                  com.google.common.base.Function<? super V,​java.lang.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 Detail

      • getRectangle

        public java.awt.geom.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 java.awt.geom.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 java.awt.geom.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 java.awt.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 java.awt.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