Package ghidra.service.graph

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `static VertexShape`
  `DIAMOND`
  `static VertexShape`
  `ELLIPSE`
  `static VertexShape`
  `HEXAGON`
  `static VertexShape`
  `OCTAGON`
  `static VertexShape`
  `PENTAGON`
  `static VertexShape`
  `RECTANGLE`
  `static VertexShape`
  `STAR`
  `static VertexShape`
  `TRIANGLE_DOWN`
  `static VertexShape`
  `TRIANGLE_UP`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract Shape`
  `createShape()`
  `boolean`
  `equals(Object obj)`
  `double`
  `getLabelPosition()`
  Gets the relative amount of margin space to allocate above the label.
  `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
  `String`
  `getName()`
  Returns the name of the shape
  `Shape`
  `getShape()`
  Returns the `Shape` for this `VertexShape` instance
  `static VertexShape`
  `getShape(String shapeName)`
  Returns the `VertexShape` for the given shape name
  `static List<String>`
  `getShapeNames()`
  Returns a list of names for all the supported `VertexShape`s
  `double`
  `getShapeToLabelRatio()`
  Returns the size factor for a shape relative to its label.
  `int`
  `hashCode()`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### RECTANGLE

    public static VertexShape RECTANGLE

  - ### ELLIPSE

    public static VertexShape ELLIPSE

  - ### TRIANGLE_UP

    public static VertexShape TRIANGLE_UP

  - ### TRIANGLE_DOWN

    public static VertexShape TRIANGLE_DOWN

  - ### STAR

    public static VertexShape STAR

  - ### DIAMOND

    public static VertexShape DIAMOND

  - ### PENTAGON

    public static VertexShape PENTAGON

  - ### HEXAGON

    public static VertexShape HEXAGON

  - ### OCTAGON

    public static VertexShape OCTAGON

- ## 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 `VertexShape`s
    Returns:
      a list of names for all the supported `VertexShape`s

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### equals

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