Class Transform3d

java.lang.Object
org.wpilib.math.geometry.Transform3d
All Implemented Interfaces:
ProtobufSerializable, StructSerializable, WPISerializable

public final class Transform3d extends Object implements ProtobufSerializable, StructSerializable
Represents a transformation for a Pose3d in the pose's frame. Translation is applied before rotation. (The translation is applied in the pose's original frame, not the transformed frame.)

Transforms are applied intrinsically, i.e. relative to the pose's own frame rather than the global frame. This is in contrast to the rotation classes, which apply rotations extrinsically.

  • Field Details

    • ZERO

      public static final Transform3d ZERO
      A preallocated Transform3d representing no transformation.

      This exists to avoid allocations for common transformations.

    • proto

      public static final Transform3dProto proto
      Transform3d protobuf for serialization.
    • struct

      public static final Transform3dStruct struct
      Transform3d struct for serialization.
  • Constructor Details

    • Transform3d

      public Transform3d(Pose3d initial, Pose3d last)
      Constructs the transform that maps the initial pose to the final pose.
      Parameters:
      initial - The initial pose for the transformation.
      last - The final pose for the transformation.
    • Transform3d

      public Transform3d(Translation3d translation, Rotation3d rotation)
      Constructs a transform with the given translation and rotation components.
      Parameters:
      translation - Translational component of the transform.
      rotation - Rotational component of the transform.
    • Transform3d

      public Transform3d(double x, double y, double z, Rotation3d rotation)
      Constructs a transform with x, y, and z translations instead of a separate Translation3d.
      Parameters:
      x - The x component of the translational component of the transform.
      y - The y component of the translational component of the transform.
      z - The z component of the translational component of the transform.
      rotation - The rotational component of the transform.
    • Transform3d

      public Transform3d(Distance x, Distance y, Distance z, Rotation3d rotation)
      Constructs a transform with x, y, and z translations instead of a separate Translation3d. The X, Y, and Z translations will be converted to and tracked as meters.
      Parameters:
      x - The x component of the translational component of the transform.
      y - The y component of the translational component of the transform.
      z - The z component of the translational component of the transform.
      rotation - The rotational component of the transform.
    • Transform3d

      public Transform3d(Matrix<N4,N4> matrix)
      Constructs a transform with the specified affine transformation matrix.
      Parameters:
      matrix - The affine transformation matrix.
      Throws:
      IllegalArgumentException - if the affine transformation matrix is invalid.
    • Transform3d

      public Transform3d()
      Constructs the identity transform -- maps an initial pose to itself.
    • Transform3d

      public Transform3d(Transform2d transform)
      Constructs a 3D transform from a 2D transform in the X-Y plane.
      Parameters:
      transform - The 2D transform.
      See Also:
  • Method Details

    • times

      public Transform3d times(double scalar)
      Multiplies the transform by the scalar.
      Parameters:
      scalar - The scalar.
      Returns:
      The scaled Transform3d.
    • div

      public Transform3d div(double scalar)
      Divides the transform by the scalar.
      Parameters:
      scalar - The scalar.
      Returns:
      The scaled Transform3d.
    • plus

      public Transform3d plus(Transform3d other)
      Composes two transformations. The second transform is applied relative to the orientation of the first.
      Parameters:
      other - The transform to compose with this one.
      Returns:
      The composition of the two transformations.
    • getTranslation

      public Translation3d getTranslation()
      Returns the translation component of the transformation.
      Returns:
      The translational component of the transform.
    • getX

      public double getX()
      Returns the X component of the transformation's translation.
      Returns:
      The x component of the transformation's translation.
    • getY

      public double getY()
      Returns the Y component of the transformation's translation.
      Returns:
      The y component of the transformation's translation.
    • getZ

      public double getZ()
      Returns the Z component of the transformation's translation.
      Returns:
      The z component of the transformation's translation.
    • getMeasureX

      public Distance getMeasureX()
      Returns the X component of the transformation's translation in a measure.
      Returns:
      The x component of the transformation's translation in a measure.
    • getMeasureY

      public Distance getMeasureY()
      Returns the Y component of the transformation's translation in a measure.
      Returns:
      The y component of the transformation's translation in a measure.
    • getMeasureZ

      public Distance getMeasureZ()
      Returns the Z component of the transformation's translation in a measure.
      Returns:
      The z component of the transformation's translation in a measure.
    • toMatrix

      public Matrix<N4,N4> toMatrix()
      Returns an affine transformation matrix representation of this transformation.
      Returns:
      An affine transformation matrix representation of this transformation.
    • getRotation

      public Rotation3d getRotation()
      Returns the rotational component of the transformation.
      Returns:
      Reference to the rotational component of the transform.
    • log

      public Twist3d log()
      Returns a Twist3d of the current transform (pose delta). If b is the output of a.log(), then b.exp() would yield a.
      Returns:
      The twist that maps the current transform.
    • inverse

      public Transform3d inverse()
      Invert the transformation. This is useful for undoing a transformation.
      Returns:
      The inverted transformation.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Checks equality between this Transform3d and another object.
      Overrides:
      equals in class Object
      Parameters:
      obj - The other object.
      Returns:
      Whether the two objects are equal or not.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object