Class ConvertRotation3D_F32

java.lang.Object
georegression.geometry.ConvertRotation3D_F32

@Generated("georegression.geometry.ConvertRotation3D_F64") public class ConvertRotation3D_F32 extends Object
Provides functions to convert between different parameterizations of 3D rotation matrices.
  • Constructor Details

    • ConvertRotation3D_F32

      public ConvertRotation3D_F32()
  • Method Details

    • rodriguesToMatrix

      public static org.ejml.data.FMatrixRMaj rodriguesToMatrix(Rodrigues_F32 rodrigues, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)
      Converts Rodrigues_F32 into a rotation matrix.
      Parameters:
      rodrigues - rotation defined using rotation axis angle notation.
      R - where the results will be stored. If null a new matrix is declared internally.
      Returns:
      rotation matrix.
    • rodriguesToMatrix

      public static org.ejml.data.FMatrixRMaj rodriguesToMatrix(float axisX, float axisY, float axisZ, float theta, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)
      Converts axis angle (Rodrigues_F32) into a rotation matrix with out needing to declare a storage variable.
      Parameters:
      axisX - x-component of normalized rotation vector
      axisY - y-component of normalized rotation vector
      axisZ - z-component of normalized rotation vector
      theta - magnitude of rotation in radians
      R - (Optional) storage for 3x3 rotation matrix. If null one will be declared internally.
      Returns:
      Rotation matrix.
    • rodriguesToEuler

      public static float[] rodriguesToEuler(Rodrigues_F32 rodrigues, EulerType type, @Nullable @org.jetbrains.annotations.Nullable float[] euler)

      ConvertsRodrigues_F32 into an euler rotation of different types

      Parameters:
      rodrigues - rotation defined using rotation axis angle notation.
      type - Type of Euler rotation
      euler - (Output) Optional storage for Euler rotation
      Returns:
      The Euler rotation.
    • rodriguesToQuaternion

      public static Quaternion_F32 rodriguesToQuaternion(Rodrigues_F32 rodrigues, @Nullable @Nullable Quaternion_F32 quat)

      Converts Rodrigues_F32 into a unit Quaternion_F32.

      Parameters:
      rodrigues - The angle of rotation around the rotation axis.
      quat - Storage for quaternion coordinate. If null a new quaternion is created. Modified.
      Returns:
      unit quaternion coordinate.
    • quaternionToRodrigues

      public static Rodrigues_F32 quaternionToRodrigues(Quaternion_F32 quat, @Nullable @Nullable Rodrigues_F32 rodrigues)
      Converts a unit Quaternion_F32 into Rodrigues_F32.
      Parameters:
      quat - (Input) Unit quaternion
      rodrigues - (Optional) Storage for rodrigues coodinate. If null a new instance is created.
      Returns:
      rodrigues
    • quaternionToEuler

      public static float[] quaternionToEuler(Quaternion_F32 q, EulerType type, @Nullable @org.jetbrains.annotations.Nullable float[] euler)

      Converts a quaternion into an euler rotation of different types

      Parameters:
      q - (Input) Normalized quaternion. Not modified.
      type - Type of Euler rotation
      euler - (Output) Optional storage for Euler rotation
      Returns:
      The Euler rotation.
    • matrixToEuler

      public static float[] matrixToEuler(org.ejml.data.FMatrixRMaj R, EulerType type, @Nullable @org.jetbrains.annotations.Nullable float[] euler)

      Converts a rotation matrix into an Euler angle of different types

      Parameters:
      R - (Input) Rotation matrix. Not modified.
      type - Type of Euler rotation
      euler - (Output) Optional storage for Euler rotation
      Returns:
      The Euler rotation.
    • matrixToQuaternion

      public static Quaternion_F32 matrixToQuaternion(org.ejml.data.FMatrixRMaj R, @Nullable @Nullable Quaternion_F32 quat)
      Extracts quaternions from the provided rotation matrix.
      Parameters:
      R - (Input) rotation matrix
      quat - (Output) Optional storage for quaternion. If null a new class will be used.
      Returns:
      unit quaternion representation of the rotation matrix.
    • matrixToRodrigues

      public static Rodrigues_F32 matrixToRodrigues(org.ejml.data.FMatrixRMaj R, @Nullable @Nullable Rodrigues_F32 rodrigues)
      Converts a rotation matrix into Rodrigues_F32.
      Parameters:
      R - Rotation matrix.
      rodrigues - Storage used for solution. If null a new instance is declared.
      Returns:
      The found axis and rotation angle.
    • rotX

      public static org.ejml.data.FMatrixRMaj rotX(float ang, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)
      Creates a rotation matrix about the x-axis.
      Parameters:
      ang - the angle it rotates a point by in radians.
      R - (Output) Optional storage for rotation matrix. Modified.
      Returns:
      The 3 by 3 rotation matrix.
    • setRotX

      public static void setRotX(float ang, org.ejml.data.FMatrixRMaj R)
      Sets the values in the specified matrix to a rotation matrix about the x-axis.
      Parameters:
      ang - the angle it rotates a point by in radians.
      R - (Output) Storage for rotation matrix. Modified.
    • rotY

      public static org.ejml.data.FMatrixRMaj rotY(float ang, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)
      Creates a rotation matrix about the y-axis.
      Parameters:
      ang - the angle it rotates a point by in radians.
      R - (Output) Optional storage for rotation matrix. Modified.
      Returns:
      The 3 by 3 rotation matrix.
    • setRotY

      public static void setRotY(float ang, org.ejml.data.FMatrixRMaj r)
      Sets the values in the specified matrix to a rotation matrix about the y-axis.
      Parameters:
      ang - the angle it rotates a point by in radians.
      r - A 3 by 3 matrix. Is modified.
    • rotZ

      public static org.ejml.data.FMatrixRMaj rotZ(float ang, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)
      Creates a rotation matrix about the z-axis.
      Parameters:
      ang - the angle it rotates a point by in radians.
      R - (Output) Optional storage for rotation matrix. Modified.
      Returns:
      The 3 by 3 rotation matrix.
    • setRotZ

      public static void setRotZ(float ang, org.ejml.data.FMatrixRMaj r)
      Sets the values in the specified matrix to a rotation matrix about the z-axis.
      Parameters:
      ang - the angle it rotates a point by in radians.
      r - A 3 by 3 matrix. Is modified.
    • eulerToMatrix

      public static org.ejml.data.FMatrixRMaj eulerToMatrix(EulerType type, float rotA, float rotB, float rotC, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)
      Converts an Euler coordinate into a rotation matrix. Different type of Euler coordinates are accepted.
      Parameters:
      type - Which Euler coordinate is the input in
      rotA - Angle of rotation around axis A. First rotation
      rotB - Angle of rotation around axis B Second rotation
      rotC - Angle of rotation around axis C Third rotation
      R - (Output) Optional storage for output rotation matrix
      Returns:
      Rotation matrix
    • eulerToQuaternion

      public static Quaternion_F32 eulerToQuaternion(EulerType type, float rotA, float rotB, float rotC, @Nullable @Nullable Quaternion_F32 q)
    • approximateRotationMatrix

      public static org.ejml.data.FMatrixRMaj approximateRotationMatrix(org.ejml.data.FMatrixRMaj orig, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)

      Finds a rotation matrix which is the optimal approximation to an arbitrary 3 by 3 matrix. Optimality is specified by the equation below:

      min ||R-Q||2F
      R
      where R is the rotation matrix and Q is the matrix being approximated.

      The technique used is based on SVD and is described in Appendix C of "A Flexible New Technique for Camera Calibration" Technical Report, updated 2002.

      Both origin and R can be the same instance.

      Parameters:
      orig - Input approximate rotation matrix. Not modified.
      R - (Optional) Storage for the approximated rotation matrix. Modified.
      Returns:
      Rotation matrix
    • quaternionToMatrix

      public static org.ejml.data.FMatrixRMaj quaternionToMatrix(Quaternion_F32 quat, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)

      Converts a unit quaternion into a rotation matrix.

      Equations is taken from: Paul J. Besl and Neil D. McKay, "A Method for Registration of 3-D Shapes" IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 14, No. 2, Feb. 1992

      Parameters:
      quat - Unit quaternion.
      R - Storage for rotation matrix. If null a new matrix is created. Modified.
      Returns:
      Rotation matrix
    • quaternionToMatrix

      public static org.ejml.data.FMatrixRMaj quaternionToMatrix(float w, float x, float y, float z, @Nullable @Nullable org.ejml.data.FMatrixRMaj R)