Class Mat22

java.lang.Object
org.jbox2d.common.Mat22
All Implemented Interfaces:
java.io.Serializable

public class Mat22 extends java.lang.Object implements java.io.Serializable
A 2-by-2 matrix. Stored in column-major order.
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • ex

      public final Vec2 ex
    • ey

      public final Vec2 ey
  • Constructor Details

    • Mat22

      public Mat22()
      Construct zero matrix. Note: this is NOT an identity matrix! djm fixed double allocation problem
    • Mat22

      public Mat22(Vec2 c1, Vec2 c2)
      Create a matrix with given vectors as columns.
      Parameters:
      c1 - Column 1 of matrix
      c2 - Column 2 of matrix
    • Mat22

      public Mat22(float exx, float col2x, float exy, float col2y)
      Create a matrix from four floats.
      Parameters:
      exx -
      col2x -
      exy -
      col2y -
  • Method Details

    • toString

      public java.lang.String toString()
      Convert the matrix to printable format.
      Overrides:
      toString in class java.lang.Object
    • set

      public final Mat22 set(Mat22 m)
      Set as a copy of another matrix.
      Parameters:
      m - Matrix to copy
    • set

      public final Mat22 set(float exx, float col2x, float exy, float col2y)
    • clone

      public final Mat22 clone()
      Return a clone of this matrix. djm fixed double allocation
      Overrides:
      clone in class java.lang.Object
    • set

      public final void set(float angle)
      Set as a matrix representing a rotation.
      Parameters:
      angle - Rotation (in radians) that matrix represents.
    • setIdentity

      public final void setIdentity()
      Set as the identity matrix.
    • setZero

      public final void setZero()
      Set as the zero matrix.
    • getAngle

      public final float getAngle()
      Extract the angle from this matrix (assumed to be a rotation matrix).
      Returns:
    • set

      public final void set(Vec2 c1, Vec2 c2)
      Set by column vectors.
      Parameters:
      c1 - Column 1
      c2 - Column 2
    • invert

      public final Mat22 invert()
      Returns the inverted Mat22 - does NOT invert the matrix locally!
    • invertLocal

      public final Mat22 invertLocal()
    • invertToOut

      public final void invertToOut(Mat22 out)
    • abs

      public final Mat22 abs()
      Return the matrix composed of the absolute values of all elements. djm: fixed double allocation
      Returns:
      Absolute value matrix
    • absLocal

      public final void absLocal()
    • abs

      public static final Mat22 abs(Mat22 R)
      Return the matrix composed of the absolute values of all elements.
      Returns:
      Absolute value matrix
    • absToOut

      public static void absToOut(Mat22 R, Mat22 out)
    • mul

      public final Vec2 mul(Vec2 v)
      Multiply a vector by this matrix.
      Parameters:
      v - Vector to multiply by matrix.
      Returns:
      Resulting vector
    • mulToOut

      public final void mulToOut(Vec2 v, Vec2 out)
    • mulToOutUnsafe

      public final void mulToOutUnsafe(Vec2 v, Vec2 out)
    • mul

      public final Mat22 mul(Mat22 R)
      Multiply another matrix by this one (this one on left). djm optimized
      Parameters:
      R -
      Returns:
    • mulLocal

      public final Mat22 mulLocal(Mat22 R)
    • mulToOut

      public final void mulToOut(Mat22 R, Mat22 out)
    • mulToOutUnsafe

      public final void mulToOutUnsafe(Mat22 R, Mat22 out)
    • mulTrans

      public final Mat22 mulTrans(Mat22 B)
      Multiply another matrix by the transpose of this one (transpose of this one on left). djm: optimized
      Parameters:
      B -
      Returns:
    • mulTransLocal

      public final Mat22 mulTransLocal(Mat22 B)
    • mulTransToOut

      public final void mulTransToOut(Mat22 B, Mat22 out)
    • mulTransToOutUnsafe

      public final void mulTransToOutUnsafe(Mat22 B, Mat22 out)
    • mulTrans

      public final Vec2 mulTrans(Vec2 v)
      Multiply a vector by the transpose of this matrix.
      Parameters:
      v -
      Returns:
    • mulTransToOut

      public final void mulTransToOut(Vec2 v, Vec2 out)
    • add

      public final Mat22 add(Mat22 B)
      Add this matrix to B, return the result.
      Parameters:
      B -
      Returns:
    • addLocal

      public final Mat22 addLocal(Mat22 B)
      Add B to this matrix locally.
      Parameters:
      B -
      Returns:
    • solve

      public final Vec2 solve(Vec2 b)
      Solve A * x = b where A = this matrix.
      Returns:
      The vector x that solves the above equation.
    • solveToOut

      public final void solveToOut(Vec2 b, Vec2 out)
    • mul

      public static final Vec2 mul(Mat22 R, Vec2 v)
    • mulToOut

      public static final void mulToOut(Mat22 R, Vec2 v, Vec2 out)
    • mulToOutUnsafe

      public static final void mulToOutUnsafe(Mat22 R, Vec2 v, Vec2 out)
    • mul

      public static final Mat22 mul(Mat22 A, Mat22 B)
    • mulToOut

      public static final void mulToOut(Mat22 A, Mat22 B, Mat22 out)
    • mulToOutUnsafe

      public static final void mulToOutUnsafe(Mat22 A, Mat22 B, Mat22 out)
    • mulTrans

      public static final Vec2 mulTrans(Mat22 R, Vec2 v)
    • mulTransToOut

      public static final void mulTransToOut(Mat22 R, Vec2 v, Vec2 out)
    • mulTransToOutUnsafe

      public static final void mulTransToOutUnsafe(Mat22 R, Vec2 v, Vec2 out)
    • mulTrans

      public static final Mat22 mulTrans(Mat22 A, Mat22 B)
    • mulTransToOut

      public static final void mulTransToOut(Mat22 A, Mat22 B, Mat22 out)
    • mulTransToOutUnsafe

      public static final void mulTransToOutUnsafe(Mat22 A, Mat22 B, Mat22 out)
    • createRotationalTransform

      public static final Mat22 createRotationalTransform(float angle)
    • createRotationalTransform

      public static final void createRotationalTransform(float angle, Mat22 out)
    • createScaleTransform

      public static final Mat22 createScaleTransform(float scale)
    • createScaleTransform

      public static final void createScaleTransform(float scale, Mat22 out)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object
    • equals

      public boolean equals(java.lang.Object obj)
      Overrides:
      equals in class java.lang.Object