Class Translation3d

java.lang.Object
edu.wpi.first.math.geometry.Translation3d
All Implemented Interfaces:
Interpolatable<Translation3d>, ProtobufSerializable, StructSerializable, WPISerializable

Represents a translation in 3D space. This object can be used to represent a point or a vector.

This assumes that you are using conventional mathematical axes. When the robot is at the origin facing in the positive X direction, forward is positive X, left is positive Y, and up is positive Z.

  • Field Details

    • kZero

      public static final Translation3d kZero
      A preallocated Translation3d representing the origin.

      This exists to avoid allocations for common translations.

    • proto

      public static final Translation3dProto proto
      Translation3d protobuf for serialization.
    • struct

      public static final Translation3dStruct struct
      Translation3d struct for serialization.
  • Constructor Details

    • Translation3d

      public Translation3d()
      Constructs a Translation3d with X, Y, and Z components equal to zero.
    • Translation3d

      public Translation3d(double x, double y, double z)
      Constructs a Translation3d with the X, Y, and Z components equal to the provided values.
      Parameters:
      x - The x component of the translation.
      y - The y component of the translation.
      z - The z component of the translation.
    • Translation3d

      public Translation3d(double distance, Rotation3d angle)
      Constructs a Translation3d with the provided distance and angle. This is essentially converting from polar coordinates to Cartesian coordinates.
      Parameters:
      distance - The distance from the origin to the end of the translation.
      angle - The angle between the x-axis and the translation vector.
    • Translation3d

      Constructs a Translation3d with the X, Y, and Z components equal to the provided values. The components will be converted to and tracked as meters.
      Parameters:
      x - The x component of the translation.
      y - The y component of the translation.
      z - The z component of the translation.
    • Translation3d

      public Translation3d(Translation2d translation)
      Constructs a 3D translation from a 2D translation in the X-Y plane.
      Parameters:
      translation - The 2D translation.
      See Also:
    • Translation3d

      public Translation3d(Vector<N3> vector)
      Constructs a Translation3d from a 3D translation vector. The values are assumed to be in meters.
      Parameters:
      vector - The translation vector.
  • Method Details

    • getDistance

      public double getDistance(Translation3d other)
      Calculates the distance between two translations in 3D space.

      The distance between translations is defined as √((x₂−x₁)²+(y₂−y₁)²+(z₂−z₁)²).

      Parameters:
      other - The translation to compute the distance to.
      Returns:
      The distance between the two translations.
    • getSquaredDistance

      public double getSquaredDistance(Translation3d other)
      Calculates the squared distance between two translations in 3D space. This is equivalent to squaring the result of getDistance(Translation3d), but avoids computing a square root.

      The squared distance between translations is defined as (x₂−x₁)²+(y₂−y₁)²+(z₂−z₁)².

      Parameters:
      other - The translation to compute the squared distance to.
      Returns:
      The squared distance between the two translations.
    • getX

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

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

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

      Returns the X component of the translation in a measure.
      Returns:
      The x component of the translation in a measure.
    • getMeasureY

      Returns the Y component of the translation in a measure.
      Returns:
      The y component of the translation in a measure.
    • getMeasureZ

      Returns the Z component of the translation in a measure.
      Returns:
      The z component of the translation in a measure.
    • toVector

      public Vector<N3> toVector()
      Returns a 2D translation vector representation of this translation.
      Returns:
      A 2D translation vector representation of this translation.
    • getNorm

      public double getNorm()
      Returns the norm, or distance from the origin to the translation.
      Returns:
      The norm of the translation.
    • getSquaredNorm

      public double getSquaredNorm()
      Returns the squared norm, or squared distance from the origin to the translation. This is equivalent to squaring the result of getNorm(), but avoids computing a square root.
      Returns:
      The squared norm of the translation.
    • rotateBy

      Applies a rotation to the translation in 3D space.

      For example, rotating a Translation3d of <2, 0, 0> by 90 degrees around the Z axis will return a Translation3d of <0, 2, 0>.

      Parameters:
      other - The rotation to rotate the translation by.
      Returns:
      The new rotated translation.
    • rotateAround

      Rotates this translation around another translation in 3D space.
      Parameters:
      other - The other translation to rotate around.
      rot - The rotation to rotate the translation by.
      Returns:
      The new rotated translation.
    • dot

      public double dot(Translation3d other)
      Computes the dot product between this translation and another translation in 3D space.

      The dot product between two translations is defined as x₁x₂+y₁y₂+z₁z₂.

      Parameters:
      other - The translation to compute the dot product with.
      Returns:
      The dot product between the two translations, in square meters.
    • cross

      public Vector<N3> cross(Translation3d other)
      Computes the cross product between this translation and another translation in 3D space. The resulting translation will be perpendicular to both translations.

      The 3D cross product between two translations is defined as <y₁z₂-y₂z₁, z₁x₂-z₂x₁, x₁y₂-x₂y₁>.

      Parameters:
      other - The translation to compute the cross product with.
      Returns:
      The cross product between the two translations.
    • toTranslation2d

      Returns a Translation2d representing this Translation3d projected into the X-Y plane.
      Returns:
      A Translation2d representing this Translation3d projected into the X-Y plane.
    • plus

      Returns the sum of two translations in 3D space.

      For example, Translation3d(1.0, 2.5, 3.5) + Translation3d(2.0, 5.5, 7.5) = Translation3d{3.0, 8.0, 11.0).

      Parameters:
      other - The translation to add.
      Returns:
      The sum of the translations.
    • minus

      Returns the difference between two translations.

      For example, Translation3d(5.0, 4.0, 3.0) - Translation3d(1.0, 2.0, 3.0) = Translation3d(4.0, 2.0, 0.0).

      Parameters:
      other - The translation to subtract.
      Returns:
      The difference between the two translations.
    • unaryMinus

      Returns the inverse of the current translation. This is equivalent to negating all components of the translation.
      Returns:
      The inverse of the current translation.
    • times

      public Translation3d times(double scalar)
      Returns the translation multiplied by a scalar.

      For example, Translation3d(2.0, 2.5, 4.5) * 2 = Translation3d(4.0, 5.0, 9.0).

      Parameters:
      scalar - The scalar to multiply by.
      Returns:
      The scaled translation.
    • div

      public Translation3d div(double scalar)
      Returns the translation divided by a scalar.

      For example, Translation3d(2.0, 2.5, 4.5) / 2 = Translation3d(1.0, 1.25, 2.25).

      Parameters:
      scalar - The scalar to multiply by.
      Returns:
      The reference to the new mutated object.
    • nearest

      Returns the nearest Translation3d from a collection of translations.
      Parameters:
      translations - The collection of translations to find the nearest.
      Returns:
      The nearest Translation3d from the collection.
    • toString

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

      public boolean equals(Object obj)
      Checks equality between this Translation3d 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
    • interpolate

      public Translation3d interpolate(Translation3d endValue, double t)
      Description copied from interface: Interpolatable
      Return the interpolated value. This object is assumed to be the starting position, or lower bound.
      Specified by:
      interpolate in interface Interpolatable<Translation3d>
      Parameters:
      endValue - The upper bound, or end.
      t - How far between the lower and upper bound we are. This should be bounded in [0, 1].
      Returns:
      The interpolated value.