# Class Mat33

java.lang.Object
com.codename1.gaming.physics.box2d.common.Mat33

public class Mat33 extends Object
A 3-by-3 matrix. Stored in column-major order.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `final Vec3`
  `ex`
  `final Vec3`
  `ey`
  `final Vec3`
  `ez`
  `static final Mat33`
  `IDENTITY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Mat33()`
  `Mat33(Vec3 argCol1, Vec3 argCol2, Vec3 argCol3)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `void`
  `getInverse22(Mat33 M)`
  `void`
  `getSymInverse33(Mat33 M)`
  `int`
  `hashCode()`
  Returns a hash code value for the object.
  `static final Vec3`
  `mul(Mat33 A, Vec3 v)`
  `static final Vec2`
  `mul22(Mat33 A, Vec2 v)`
  `static final void`
  `mul22ToOut(Mat33 A, Vec2 v, Vec2 out)`
  `static final void`
  `mul22ToOutUnsafe(Mat33 A, Vec2 v, Vec2 out)`
  `static final void`
  `mulToOut(Mat33 A, Vec3 v, Vec3 out)`
  `static final void`
  `mulToOutUnsafe(Mat33 A, Vec3 v, Vec3 out)`
  `void`
  `setZero()`
  `final Vec2`
  `solve22(Vec2 b)`
  Solve A * x = b, where b is a column vector.
  `final void`
  `solve22ToOut(Vec2 b, Vec2 out)`
  Solve A * x = b, where b is a column vector.
  `final Vec3`
  `solve33(Vec3 b)`
  Solve A * x = b, where b is a column vector.
  `final void`
  `solve33ToOut(Vec3 b, Vec3 out)`
  Solve A * x = b, where b is a column vector.

  ### Methods inherited from class Object

  `clone, getClass, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### IDENTITY

    public static final Mat33 IDENTITY

  - ### ex

    public final Vec3 ex

  - ### ey

    public final Vec3 ey

  - ### ez

    public final Vec3 ez

- ## Constructor Details

  - ### Mat33

    public Mat33()

  - ### Mat33

    public Mat33(Vec3 argCol1, Vec3 argCol2, Vec3 argCol3)

- ## Method Details

  - ### setZero

    public void setZero()

  - ### mul

    public static final Vec3 mul(Mat33 A, Vec3 v)

  - ### mul22

    public static final Vec2 mul22(Mat33 A, Vec2 v)

  - ### mul22ToOut

    public static final void mul22ToOut(Mat33 A, Vec2 v, Vec2 out)

  - ### mul22ToOutUnsafe

    public static final void mul22ToOutUnsafe(Mat33 A, Vec2 v, Vec2 out)

  - ### mulToOut

    public static final void mulToOut(Mat33 A, Vec3 v, Vec3 out)

  - ### mulToOutUnsafe

    public static final void mulToOutUnsafe(Mat33 A, Vec3 v, Vec3 out)

  - ### solve22

    public final Vec2 solve22(Vec2 b)
    Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse in one-shot cases.
    Parameters:
      `b` -
    Returns:

  - ### solve22ToOut

    public final void solve22ToOut(Vec2 b, Vec2 out)
    Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse in one-shot cases.
    Parameters:
      `b` -

  - ### solve33

    public final Vec3 solve33(Vec3 b)
    Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse in one-shot cases.
    Parameters:
      `b` -
    Returns:

  - ### solve33ToOut

    public final void solve33ToOut(Vec3 b, Vec3 out)
    Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse in one-shot cases.
    Parameters:
      `b` -
      `out` - the result

  - ### getInverse22

    public void getInverse22(Mat33 M)

  - ### getSymInverse33

    public void getSymInverse33(Mat33 M)

  - ### hashCode

    public int hashCode()
    Description copied from class: `Object`
    Returns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided by java.util.Hashtable. The general contract of hashCode is: Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result. It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables. As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
    Overrides:
      `hashCode` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Description copied from class: `Object`
    Indicates whether some other object is "equal to" this one. The equals method implements an equivalence relation: It is reflexive: for any reference value x, x.equals(x) should return true. It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified. For any non-null reference value x, x.equals(null) should return false. The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true).
    Overrides:
      `equals` in class `Object`