All Superinterfaces:
Comparable<JoltPhysicsObject>, ConstJoltPhysicsObject
All Known Implementing Classes:
RMat44

public interface RMat44Arg extends ConstJoltPhysicsObject
Read-only access to an RMat44. (native type: const RMat44)
  • Method Details

    • getAxisX

      Vec3 getAxisX()
      Copy the first column to a Vec3. The matrix is unaffected.
      Returns:
      a new vector
    • getAxisY

      Vec3 getAxisY()
      Copy the 2nd column to a Vec3. The matrix is unaffected.
      Returns:
      a new vector
    • getAxisZ

      Vec3 getAxisZ()
      Copy the 3rd column to a Vec3. The matrix is unaffected.
      Returns:
      a new vector
    • getDiagonal3

      Vec3 getDiagonal3()
      Copy the diagonal elements to a Vec3. The matrix is unaffected.
      Returns:
      a new vector
    • getElement

      double getElement(int row, int column)
      Return the specified element in double precision. The matrix is unaffected.
      Parameters:
      row - the zero-origin index of the row (≥0, <4)
      column - the zero-origin index of the column (≥0, <4)
      Returns:
      the element's value
    • getQuaternion

      Quat getQuaternion()
      Convert the rotation to a Quat. The matrix is unaffected.
      Returns:
      a new rotation quaternion
    • getTranslation

      RVec3 getTranslation()
      Copy the translation component. The matrix is unaffected.
      Returns:
      a new vector
    • inversed

      RMat44 inversed()
      Return the inverse of the current matrix, which is unaffected.
      Returns:
      a new matrix
    • inversedRotationTranslation

      RMat44 inversedRotationTranslation()
      Return the inverse of the current matrix, assuming the current matrix consists entirely of rotation and translation. The current matrix is unaffected.
      Returns:
      a new matrix
    • isEqual

      boolean isEqual(RMat44Arg m2)
      Test whether the current matrix is equal to the argument. The current matrix is unaffected.
      Parameters:
      m2 - the 2nd matrix to test (not null, unaffected)
      Returns:
      true if equal, false if unequal
    • isIdentity

      boolean isIdentity()
      Test whether the current matrix is an identity matrix. The matrix is unaffected.
      Returns:
      true if exactly equal, otherwise false
    • multiply

      RMat44 multiply(Mat44Arg right)
      Multiply the current matrix by the specified single-precision matrix. The current matrix is unaffected.
      Parameters:
      right - the right factor (not null, unaffected)
      Returns:
      a new matrix
    • multiply

      RMat44 multiply(RMat44Arg right)
      Multiply the current matrix by the argument. The current matrix is unaffected.
      Parameters:
      right - the right factor (not null, unaffected)
      Returns:
      a new matrix
    • multiply3x3

      Vec3 multiply3x3(Vec3Arg vec3Arg)
      Multiply the 3x3 matrix by the specified column vector. The matrix is unaffected.
      Parameters:
      vec3Arg - the right factor (not null, unaffected)
      Returns:
      a new vector
    • multiply3x3Transposed

      Vec3 multiply3x3Transposed(Vec3Arg rightVector)
      Multiply the transpose of the 3x3 matrix by the specified column vector. The matrix is unaffected.
      Parameters:
      rightVector - the right factor (not null, unaffected)
      Returns:
      a new vector
    • multiply3x4

      RVec3 multiply3x4(RVec3Arg rightVector)
      Multiply the 3x4 matrix by the specified column vector, with the 4th component of the right factor implied to be one. The matrix is unaffected.
      Parameters:
      rightVector - the right factor (not null, unaffected)
      Returns:
      a new vector
    • multiply3x4

      RVec3 multiply3x4(Vec3Arg vec3)
      Multiply the 3x4 matrix by the specified column vector, with the 4th component of the right factor implied to be one. The matrix is unaffected.
      Parameters:
      vec3 - the right factor (not null, unaffected)
      Returns:
      a new vector
    • multiply3x4InPlace

      void multiply3x4InPlace(RVec3 storeVec)
      Multiply the 3x4 matrix by the specified column vector, with the 4th component of the right factor implied to be one. Store the result in the argument vector. The matrix is unaffected.
      Parameters:
      storeVec - the right factor and storage for the result (not null)
    • postTranslated

      RMat44 postTranslated(RVec3Arg leftVector)
      Post multiply by the specified translation vector. The current matrix is unaffected.
      Parameters:
      leftVector - the left factor (not null, unaffected)
      Returns:
      a new matrix
    • postTranslated

      RMat44 postTranslated(Vec3Arg vec3)
      Post multiply by the specified translation vector. The current matrix is unaffected.
      Parameters:
      vec3 - the left factor (not null, unaffected)
      Returns:
      a new matrix
    • put3x3ColumnMajor

      void put3x3ColumnMajor(FloatBuffer storeBuffer)
      Write the 3x3 matrix in single precision to the specified buffer in column-major order and advance the buffer's position by 9. The matrix is unaffected.
      Parameters:
      storeBuffer - the destination buffer (not null)
    • putColumnMajor

      void putColumnMajor(FloatBuffer storeBuffer)
      Write all 16 components in single precision to the specified buffer in column-major order and advance the buffer's position by 16. The matrix is unaffected.
      Parameters:
      storeBuffer - the destination buffer (not null)
    • toMat44

      Mat44 toMat44()
      Copy the current matrix to a new, single-precision matrix. The current matrix is unaffected.
      Returns:
      the new matrix