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:
Serialized Form
  • Field Details

  • Constructor Details

    • Se3_F64

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

      public Se3_F64​(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​(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 void 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.
    • setRotation

      public void setRotation​(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 DMatrixRMaj getRotation()
      Returns the rotation matrix
      Returns:
      rotation matrix
    • getTranslation

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

      public 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.
    • 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 void setTo​(double x, double y, double z, EulerType type, double rotA, double rotB, double rotC)
      Fully specify the transform using Euler angles
    • setTo

      public void setTo​(double x, double y, double z, RotationType type, double A, double B, double C, double D)
      Fully specifies the 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.
    • 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:
      SePointOps_F64.transform(Se3_F64, Point3D_F64, Point3D_F64)
    • 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:
      SePointOps_F64.transformReverse(Se3_F64, Point3D_F64, Point3D_F64)
    • 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:
      GeometryMath_F64.mult(DMatrixRMaj, GeoTuple2D_F64, GeoTuple2D_F64)
    • 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:
      GeometryMath_F64.multTran(DMatrixRMaj, GeoTuple3D_F64, GeoTuple3D_F64)
    • 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)