com.badlogic.gdx.math
Class Matrix3

java.lang.Object
  extended by com.badlogic.gdx.math.Matrix3
All Implemented Interfaces:
Serializable

public class Matrix3
extends Object
implements Serializable

A 3x3 column major matrix; useful for 2D transforms.

Author:
mzechner
See Also:
Serialized Form

Field Summary
static int M00
           
static int M01
           
static int M02
           
static int M10
           
static int M11
           
static int M12
           
static int M20
           
static int M21
           
static int M22
           
 float[] val
           
 
Constructor Summary
Matrix3()
           
Matrix3(Matrix3 matrix)
           
 
Method Summary
 float det()
           
 float[] getValues()
          Get the values in this matrix.
 Matrix3 idt()
          Sets this matrix to the identity matrix
 Matrix3 inv()
          Inverts this matrix given that the determinant is != 0.
 Matrix3 mul(Matrix3 m)
          Postmultiplies this matrix with the provided matrix and stores the result in this matrix.
 Matrix3 rotate(float degrees)
          Postmultiplies this matrix with a (counter-clockwise) rotation matrix.
 Matrix3 scale(float scaleX, float scaleY)
          Postmultiplies this matrix with a scale matrix.
 Matrix3 scale(Vector2 scale)
          Postmultiplies this matrix with a scale matrix.
 Matrix3 scl(float scale)
          Scale the matrix in the both the x and y components by the scalar value.
 Matrix3 scl(Vector2 scale)
          Scale this matrix using the x and y components of the vector but leave the rest of the matrix alone.
 Matrix3 scl(Vector3 scale)
          Scale this matrix using the x and y components of the vector but leave the rest of the matrix alone.
 Matrix3 set(Matrix3 mat)
          Copies the values from the provided matrix to this matrix.
 Matrix3 set(Matrix4 mat)
          Sets this 3x3 matrix to the top left 3x3 corner of the provided 4x4 matrix.
 Matrix3 setToRotation(float degrees)
          Sets this matrix to a rotation matrix that will rotate any vector in counter-clockwise direction around the z-axis.
 Matrix3 setToScaling(float scaleX, float scaleY)
          Sets this matrix to a scaling matrix.
 Matrix3 setToTranslation(float x, float y)
          Sets this matrix to a translation matrix.
 Matrix3 setToTranslation(Vector2 translation)
          Sets this matrix to a translation matrix.
 String toString()
           
 Matrix3 translate(float x, float y)
          Postmultiplies this matrix by a translation matrix.
 Matrix3 translate(Vector2 translation)
          Postmultiplies this matrix by a translation matrix.
 Matrix3 transpose()
          Transposes the current matrix.
 Matrix3 trn(float x, float y)
          Adds a translational component to the matrix in the 3rd column.
 Matrix3 trn(Vector2 vector)
          Adds a translational component to the matrix in the 3rd column.
 Matrix3 trn(Vector3 vector)
          Adds a translational component to the matrix in the 3rd column.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

M00

public static final int M00
See Also:
Constant Field Values

M01

public static final int M01
See Also:
Constant Field Values

M02

public static final int M02
See Also:
Constant Field Values

M10

public static final int M10
See Also:
Constant Field Values

M11

public static final int M11
See Also:
Constant Field Values

M12

public static final int M12
See Also:
Constant Field Values

M20

public static final int M20
See Also:
Constant Field Values

M21

public static final int M21
See Also:
Constant Field Values

M22

public static final int M22
See Also:
Constant Field Values

val

public float[] val
Constructor Detail

Matrix3

public Matrix3()

Matrix3

public Matrix3(Matrix3 matrix)
Method Detail

idt

public Matrix3 idt()
Sets this matrix to the identity matrix

Returns:
This matrix for the purpose of chaining operations.

mul

public Matrix3 mul(Matrix3 m)
Postmultiplies this matrix with the provided matrix and stores the result in this matrix. For example:
 A.mul(B) results in A := AB
 

Parameters:
m - Matrix to multiply by.
Returns:
This matrix for the purpose of chaining operations together.

setToRotation

public Matrix3 setToRotation(float degrees)
Sets this matrix to a rotation matrix that will rotate any vector in counter-clockwise direction around the z-axis.

Parameters:
degrees - the angle in degrees.
Returns:
This matrix for the purpose of chaining operations.

setToTranslation

public Matrix3 setToTranslation(float x,
                                float y)
Sets this matrix to a translation matrix.

Parameters:
x - the translation in x
y - the translation in y
Returns:
This matrix for the purpose of chaining operations.

setToTranslation

public Matrix3 setToTranslation(Vector2 translation)
Sets this matrix to a translation matrix.

Parameters:
translation - The translation vector.
Returns:
This matrix for the purpose of chaining operations.

setToScaling

public Matrix3 setToScaling(float scaleX,
                            float scaleY)
Sets this matrix to a scaling matrix.

Parameters:
scaleX - the scale in x
scaleY - the scale in y
Returns:
This matrix for the purpose of chaining operations.

toString

public String toString()
Overrides:
toString in class Object

det

public float det()
Returns:
The determinant of this matrix

inv

public Matrix3 inv()
Inverts this matrix given that the determinant is != 0.

Returns:
This matrix for the purpose of chaining operations.
Throws:
GdxRuntimeException - if the matrix is singular (not invertible)

set

public Matrix3 set(Matrix3 mat)
Copies the values from the provided matrix to this matrix.

Parameters:
mat - The matrix to copy.
Returns:
This matrix for the purposes of chaining.

set

public Matrix3 set(Matrix4 mat)
Sets this 3x3 matrix to the top left 3x3 corner of the provided 4x4 matrix.

Parameters:
mat - The matrix whose top left corner will be copied. This matrix will not be modified.
Returns:
This matrix for the purpose of chaining operations.

trn

public Matrix3 trn(Vector2 vector)
Adds a translational component to the matrix in the 3rd column. The other columns are untouched.

Parameters:
vector - The translation vector.
Returns:
This matrix for the purpose of chaining.

trn

public Matrix3 trn(float x,
                   float y)
Adds a translational component to the matrix in the 3rd column. The other columns are untouched.

Parameters:
x - The x-component of the translation vector.
y - The y-component of the translation vector.
Returns:
This matrix for the purpose of chaining.

trn

public Matrix3 trn(Vector3 vector)
Adds a translational component to the matrix in the 3rd column. The other columns are untouched.

Parameters:
vector - The translation vector. (The z-component of the vector is ignored because this is a 3x3 matrix)
Returns:
This matrix for the purpose of chaining.

translate

public Matrix3 translate(float x,
                         float y)
Postmultiplies this matrix by a translation matrix. Postmultiplication is also used by OpenGL ES' 1.x glTranslate/glRotate/glScale.

Parameters:
x - The x-component of the translation vector.
y - The y-component of the translation vector.
Returns:
This matrix for the purpose of chaining.

translate

public Matrix3 translate(Vector2 translation)
Postmultiplies this matrix by a translation matrix. Postmultiplication is also used by OpenGL ES' 1.x glTranslate/glRotate/glScale.

Parameters:
translation - The translation vector.
Returns:
This matrix for the purpose of chaining.

rotate

public Matrix3 rotate(float degrees)
Postmultiplies this matrix with a (counter-clockwise) rotation matrix. Postmultiplication is also used by OpenGL ES' 1.x glTranslate/glRotate/glScale.

Parameters:
degrees - The angle in degrees
Returns:
This matrix for the purpose of chaining.

scale

public Matrix3 scale(float scaleX,
                     float scaleY)
Postmultiplies this matrix with a scale matrix. Postmultiplication is also used by OpenGL ES' 1.x glTranslate/glRotate/glScale.

Parameters:
scaleX - The scale in the x-axis.
scaleY - The scale in the y-axis.
Returns:
This matrix for the purpose of chaining.

scale

public Matrix3 scale(Vector2 scale)
Postmultiplies this matrix with a scale matrix. Postmultiplication is also used by OpenGL ES' 1.x glTranslate/glRotate/glScale.

Parameters:
scale - The vector to scale the matrix by.
Returns:
This matrix for the purpose of chaining.

getValues

public float[] getValues()
Get the values in this matrix.

Returns:
The float values that make up this matrix in column-major order.

scl

public Matrix3 scl(float scale)
Scale the matrix in the both the x and y components by the scalar value.

Parameters:
scale - The single value that will be used to scale both the x and y components.
Returns:
This matrix for the purpose of chaining methods together.

scl

public Matrix3 scl(Vector2 scale)
Scale this matrix using the x and y components of the vector but leave the rest of the matrix alone.

Parameters:
scale - The Vector3 to use to scale this matrix.
Returns:
This matrix for the purpose of chaining methods together.

scl

public Matrix3 scl(Vector3 scale)
Scale this matrix using the x and y components of the vector but leave the rest of the matrix alone.

Parameters:
scale - The Vector3 to use to scale this matrix. The z component will be ignored.
Returns:
This matrix for the purpose of chaining methods together.

transpose

public Matrix3 transpose()
Transposes the current matrix.

Returns:
This matrix for the purpose of chaining methods together.


Copyright © 2013. All Rights Reserved.