Class Mechanism2d

java.lang.Object
org.wpilib.smartdashboard.Mechanism2d
All Implemented Interfaces:
TelemetryLoggable

public final class Mechanism2d extends Object implements TelemetryLoggable
Visual 2D representation of arms, elevators, and general mechanisms through a node-based API.

A Mechanism2d object is published and contains at least one root node. A root is the anchor point of other nodes (such as ligaments). Other nodes are recursively appended based on other nodes.

See Also:
  • Constructor Details

    • Mechanism2d

      public Mechanism2d(double width, double height)
      Create a new Mechanism2d with the given dimensions and default color (dark blue).

      The dimensions represent the canvas that all the nodes are drawn on.

      Parameters:
      width - the width
      height - the height
    • Mechanism2d

      public Mechanism2d(double width, double height, Color8Bit backgroundColor)
      Create a new Mechanism2d with the given dimensions.

      The dimensions represent the canvas that all the nodes are drawn on.

      Parameters:
      width - the width
      height - the height
      backgroundColor - the background color. Defaults to dark blue.
  • Method Details

    • getRoot

      public MechanismRoot2d getRoot(String name, double x, double y)
      Get or create a root in this Mechanism2d with the given name and position.

      If a root with the given name already exists, the given x and y coordinates are not used.

      Parameters:
      name - the root name
      x - the root x coordinate
      y - the root y coordinate
      Returns:
      a new root joint object, or the existing one with the given name.
    • setBackgroundColor

      public void setBackgroundColor(Color8Bit color)
      Set the Mechanism2d background color.
      Parameters:
      color - the new color
    • logTo

      public void logTo(TelemetryTable table)
      Description copied from interface: TelemetryLoggable
      Logs the object to a TelemetryTable.
      Specified by:
      logTo in interface TelemetryLoggable
      Parameters:
      table - telemetry table
    • getTelemetryType

      public String getTelemetryType()
      Description copied from interface: TelemetryLoggable
      Gets the telemetry table type. Default is no specified table type (null). A mismatch in type during logging results in a reported warning, so this should always return the same value.
      Specified by:
      getTelemetryType in interface TelemetryLoggable
      Returns:
      Table type