Class Se3_F64

java.lang.Object
georegression.struct.se.Se3_F64
All Implemented Interfaces:
InvertibleTransform<Se3_F64>, SpecialEuclidean<Se3_F64>, Serializable

public class Se3_F64 extends Object implements SpecialEuclidean<Se3_F64>
A coordinate system transform composed of a rotation and translation. This transform is a rigid body transform and is a member of the special euclidean group.
See Also:
  • Field Details

  • Constructor Details

    • Se3_F64

      public Se3_F64()
      Creates a new transform that does nothing.
    • Se3_F64

      public Se3_F64(org.ejml.data.DMatrixRMaj R, Vector3D_F64 T)
      Initializes the transform with the provided rotation and translation.
      Parameters:
      R - Rotation matrix.
      T - Translation.
    • Se3_F64

      public Se3_F64(org.ejml.data.DMatrixRMaj R, Vector3D_F64 T, boolean assign)
      Initializes the Se3_F64 with the rotation matrix and translation vector. If assign is true the reference to the provided parameters is saved, otherwise a copy is made.
      Parameters:
      R - Rotation matrix.
      T - Translation.
      assign - If a reference is saved (true) or a copy made (false).
  • Method Details

    • setTo

      public Se3_F64 setTo(Se3_F64 se)
      Set's 'this' Se3_F64 to be identical to the provided transform.
      Specified by:
      setTo in interface InvertibleTransform<Se3_F64>
      Parameters:
      se - The transform that is being copied.
      Returns:
      A reference to 'this' to enable chaining
    • zero

      public void zero()
      Sets the rotation and translation to all zeros
    • setRotation

      public void setRotation(org.ejml.data.DMatrixRMaj R)
      Sets the rotation to R.
      Parameters:
      R - New rotation.
    • setTranslation

      public void setTranslation(Vector3D_F64 T)
      Sets the translation to T
      Parameters:
      T - New translation
    • setTranslation

      public void setTranslation(double x, double y, double z)
      Sets the translation to (x,y,z)
      Parameters:
      x - x component of translation
      y - y component of translation
      z - z component of translation
    • getRotation

      public org.ejml.data.DMatrixRMaj getRotation()
      Returns the rotation matrix
      Returns:
      rotation matrix
    • getTranslation

      public Vector3D_F64 getTranslation()
      Returns the translation vector
      Returns:
      translation vector
    • getR

      public org.ejml.data.DMatrixRMaj getR()
    • getT

      public Vector3D_F64 getT()
    • getX

      public double getX()
    • getY

      public double getY()
    • getZ

      public double getZ()
    • getDimension

      public int getDimension()
      Description copied from interface: InvertibleTransform
      Returns the dimension of the space which this transform operates on.
      Specified by:
      getDimension in interface InvertibleTransform<Se3_F64>
      Returns:
      space's dimension
    • createInstance

      public Se3_F64 createInstance()
      Description copied from interface: InvertibleTransform
      Creates a new instance of the same SpecialEuclidean as this class.
      Specified by:
      createInstance in interface InvertibleTransform<Se3_F64>
      Returns:
      A new instance.
    • concat

      public Se3_F64 concat(Se3_F64 second, @Nullable @Nullable Se3_F64 result)
      Description copied from interface: InvertibleTransform

      Computes a transform which is the equivalent to applying 'this' then the 'second' transform.

      For example:

      Point A = tran2( tran1( A ) );
      Point A = tran12( A );

      where tran12 = tran1.concat( tran2 , null );

      NOTE: 'second', 'result', and 'this' must all be unique instances.

      Specified by:
      concat in interface InvertibleTransform<Se3_F64>
      Parameters:
      second - The second transform which is applied. Not modified.
      result - A transform which is equivalent to applying the first then the second. If null then a new instance is declared. Modified.
      Returns:
      The equivalent transform.
    • invertConcat

      public Se3_F64 invertConcat(Se3_F64 second, @Nullable @Nullable Se3_F64 result)
      Implicitly inverts this transform before concating it to the second transform. Equivalent to invert(null).concat(second, null);
      Specified by:
      invertConcat in interface InvertibleTransform<Se3_F64>
      Parameters:
      second - The second transform which is applied. Not modified.
      result - (Output) storage for rsulting transform. Can be null
      Returns:
      The computed transform. If result isn't null then result is returned.
    • concatInvert

      public Se3_F64 concatInvert(Se3_F64 second, @Nullable @Nullable Se3_F64 result)
      Implicitly inverts this transform before concating it to the second transform. Equivalent to invert(null).concat(second, null);
      Specified by:
      concatInvert in interface InvertibleTransform<Se3_F64>
      Parameters:
      second - The second transform which is applied. Not modified.
      result - (Output) storage for rsulting transform. Can be null
      Returns:
      The computed transform. If result isn't null then result is returned.
    • invert

      public Se3_F64 invert(@Nullable @Nullable Se3_F64 inverse)
      Description copied from interface: InvertibleTransform

      Computes a transform which is the inverse of this transform. The 'this' matrix can be passed in as an input.

      Example:
      Point A = tran(B);
      Point B = inv(A);

      where inv = invert( tran );

      Specified by:
      invert in interface InvertibleTransform<Se3_F64>
      Parameters:
      inverse - Where the inverse will be stored. If null a new instance is created. Modified.
      Returns:
      The inverse transform.
    • reset

      public void reset()
      Description copied from interface: InvertibleTransform
      Sets the transform to its initial state of no transform.
      Specified by:
      reset in interface InvertibleTransform<Se3_F64>
    • setTo

      public Se3_F64 setTo(double x, double y, double z, EulerType type, double rotA, double rotB, double rotC)
      Assigns the value of this transform using Euler angles
      Returns:
      Reference to 'this'
    • setTo

      public Se3_F64 setTo(double x, double y, double z, RotationType type, double A, double B, double C, double D)
      Assigns the value of this transform using Rodrigues (axis angle) or Quaternions. If Rodrigues then A=axisX, B=axisY, C=axisZ, D=theta. If Quaternion then A=w, B=x, C=y, D=z.
      Returns:
      Reference to 'this'
    • transform

      public Point3D_F64 transform(Point3D_F64 src, @Nullable @Nullable Point3D_F64 dst)
      Applies the transform to the src point and stores the result in dst. src and dst can be the same instance
      Parameters:
      src - Input
      dst - Output
      Returns:
      Output
      See Also:
    • transformReverse

      public Point3D_F64 transformReverse(Point3D_F64 src, @Nullable @Nullable Point3D_F64 dst)
      Applies the reverse transform to the src point and stores the result in dst. src and dst can be the same instance
      Parameters:
      src - Input
      dst - Output
      Returns:
      Output
      See Also:
    • transform

      public Vector3D_F64 transform(Vector3D_F64 src, @Nullable @Nullable Vector3D_F64 dst)
      Applies the rotation to the src vector and stores the result in dst. src and dst can be the same instance
      Parameters:
      src - Input
      dst - Output
      See Also:
    • transformReverse

      public Vector3D_F64 transformReverse(Vector3D_F64 src, @Nullable @Nullable Vector3D_F64 dst)
      Applies the reverse rotation to the src vector and stores the result in dst. src and dst can be the same instance
      Parameters:
      src - Input
      dst - Output
      See Also:
    • transform

      public Point4D_F64 transform(Point4D_F64 src, @Nullable @Nullable Point4D_F64 dst)
      Applies the transform to the src point and stores the result in dst. src and dst can be the same instance. For points in 3D homogenous coordinates.
      Parameters:
      src - Input. Homogenous coordinate
      dst - Output. Homogenous coordinate
      Returns:
      Output. Homogenous coordinate
      See Also:
    • transformReverse

      public Point4D_F64 transformReverse(Point4D_F64 src, @Nullable @Nullable Point4D_F64 dst)
    • copy

      public Se3_F64 copy()
    • toString

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

      public String toString(RotationType type)
      More compact toString() where the rotation matrix is encoded in one of the specified formats.
    • print

      public void print()
    • print

      public void print(RotationType type)