Class VertexShape

java.lang.Object
ghidra.service.graph.VertexShape

public abstract class VertexShape extends Object
Class for defining shapes to use for rendering vertices in a graph
  • Field Details

  • Method Details

    • getName

      public String getName()
      Returns the name of the shape
      Returns:
      the name of the shape
    • getShape

      public Shape getShape()
      Returns the Shape for this VertexShape instance
      Returns:
      the Shape for this VertexShape instance
    • getLabelPosition

      public double getLabelPosition()
      Gets the relative amount of margin space to allocate above the label. The default is 0.5 which will center the label in the associated shape. A value closer to 0 will move the label closer to the top and a value closer to 1 will move the label closer to the bottom.
      Returns:
      the relative amount of margin space to allocate obove the label.s
    • getShapeToLabelRatio

      public double getShapeToLabelRatio()
      Returns the size factor for a shape relative to its label. Shapes are sized based on the label of a vertex so that the label can fit inside the shape (mostly). Some subclasses will need to override this value to some value > 1 to fit the label in the shape. For example, a rectangle shape does not need to be extended because text naturally fits. But for a shape like a triangle, its bounding box needs to be bigger so that text doesn't "stick out" in the narrow part of the triangle.
      Returns:
      the size factor for a shape relatvie to its label
    • getMaxWidthToHeightRatio

      public int getMaxWidthToHeightRatio()
      This is a factor to keep some shapes from being so distorted by very long labels that they effectively lose their shape when seen by the user
      Returns:
      the max width to height ratio
    • createShape

      protected abstract Shape createShape()
    • getShape

      public static VertexShape getShape(String shapeName)
      Returns the VertexShape for the given shape name
      Parameters:
      shapeName - the name of the shape for which to get the VertexShape
      Returns:
      the VertexShape for the given shape name
    • getShapeNames

      public static List<String> getShapeNames()
      Returns a list of names for all the supported VertexShapes
      Returns:
      a list of names for all the supported VertexShapes
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object