Class Mechanism2d

java.lang.Object
edu.wpi.first.wpilibj.smartdashboard.Mechanism2d
All Implemented Interfaces:
NTSendable, Sendable, AutoCloseable

public final class Mechanism2d extends Object implements NTSendable, AutoCloseable
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

    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • 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
    • initSendable

      public void initSendable(NTSendableBuilder builder)
      Description copied from interface: NTSendable
      Initializes this Sendable object.
      Specified by:
      initSendable in interface NTSendable
      Parameters:
      builder - sendable builder