|
libgdx API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.badlogic.gdx.math.Matrix4
public class Matrix4
Encapsulates a column major 4 by 4 matrix. You can access the linear array for use with OpenGL via the public
val
member. Like the Vector3
class it allows to chain methods by returning a reference to itself.
Field Summary | |
---|---|
static int |
M00
|
static int |
M01
|
static int |
M02
|
static int |
M03
|
static int |
M10
|
static int |
M11
|
static int |
M12
|
static int |
M13
|
static int |
M20
|
static int |
M21
|
static int |
M22
|
static int |
M23
|
static int |
M30
|
static int |
M31
|
static int |
M32
|
static int |
M33
|
float[] |
tmp
|
float[] |
val
|
Constructor Summary | |
---|---|
Matrix4()
Constructs an identity matrix |
|
Matrix4(float[] values)
Constructs a matrix from the given float array. |
|
Matrix4(Matrix4 matrix)
Constructs a matrix from the given matrix |
|
Matrix4(Quaternion quaternion)
Constructs a rotation matrix from the given Quaternion |
Method Summary | |
---|---|
Matrix4 |
cpy()
|
float |
det()
|
static float |
det(float[] values)
Computes the determinante of the given matrix. |
void |
getRotation(Quaternion rotation)
|
void |
getTranslation(Vector3 position)
|
float[] |
getValues()
|
Matrix4 |
idt()
Sets the matrix to an identity matrix |
Matrix4 |
inv()
Inverts the matrix. |
static boolean |
inv(float[] values)
Computes the inverse of the given matrix. |
void |
lerp(Matrix4 matrix,
float alpha)
Linearly interpolates between this matrix and the given matrix mixing by alpha |
static void |
mul(float[] mata,
float[] matb)
Multiplies the matrix mata with matrix matb, storing the result in mata. |
Matrix4 |
mul(Matrix4 matrix)
Multiplies this matrix with the given matrix, storing the result in this matrix. |
static void |
mulVec(float[] mat,
float[] vec)
Multiplies the vector with the given matrix. |
static void |
mulVec(float[] mat,
float[] vecs,
int offset,
int numVecs,
int stride)
Multiplies the vectors with the given matrix. |
static void |
prj(float[] mat,
float[] vec)
Multiplies the vector with the given matrix, performing a division by w. |
static void |
prj(float[] mat,
float[] vecs,
int offset,
int numVecs,
int stride)
Multiplies the vectors with the given matrix, , performing a division by w. |
static void |
rot(float[] mat,
float[] vec)
Multiplies the vector with the top most 3x3 sub-matrix of the given matrix. |
static void |
rot(float[] mat,
float[] vecs,
int offset,
int numVecs,
int stride)
Multiplies the vectors with the top most 3x3 sub-matrix of the given matrix. |
Matrix4 |
rotate(float axisX,
float axisY,
float axisZ,
float angle)
Postmultiplies this matrix with a (counter-clockwise) rotation matrix. |
Matrix4 |
scale(float scaleX,
float scaleY,
float scaleZ)
Postmultiplies this matrix with a scale matrix. |
void |
scl(Vector3 scale)
|
Matrix4 |
set(float[] values)
Sets the matrix to the given matrix as a float array. |
Matrix4 |
set(Matrix3 mat)
Sets this matrix to the given 3x3 matrix. |
Matrix4 |
set(Matrix4 matrix)
Sets the matrix to the given matrix. |
Matrix4 |
set(Quaternion quaternion)
Sets the matrix to a rotation matrix representing the quaternion. |
void |
set(Vector3 xAxis,
Vector3 yAxis,
Vector3 zAxis,
Vector3 pos)
Sets the four columns of the matrix which correspond to the x-, y- and z-axis of the vector space this matrix creates as well as the 4th column representing the translation of any point that is multiplied by this matrix. |
Matrix4 |
setFromEulerAngles(float yaw,
float pitch,
float roll)
Sets this matrix to a rotation matrix from the given euler angles. |
Matrix4 |
setToLookAt(Vector3 direction,
Vector3 up)
Sets the matrix to a look at matrix with a direction and an up vector. |
Matrix4 |
setToLookAt(Vector3 position,
Vector3 target,
Vector3 up)
Sets this matrix to a look at matrix with the given position, target and up vector. |
Matrix4 |
setToOrtho(float left,
float right,
float bottom,
float top,
float near,
float far)
Sets the matrix to an orthographic projection like glOrtho (http://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml) following the OpenGL equivalent |
Matrix4 |
setToOrtho2D(float x,
float y,
float width,
float height)
Sets this matrix to an orthographic projection matrix with the origin at (x,y) extending by width and height. |
Matrix4 |
setToOrtho2D(float x,
float y,
float width,
float height,
float near,
float far)
Sets this matrix to an orthographic projection matrix with the origin at (x,y) extending by width and height, having a near and far plane. |
Matrix4 |
setToProjection(float near,
float far,
float fov,
float aspectRatio)
Sets the matrix to a projection matrix with a near- and far plane, a field of view in degrees and an aspect ratio. |
Matrix4 |
setToRotation(float axisX,
float axisY,
float axisZ,
float angle)
Sets the matrix to a rotation matrix around the given axis. |
Matrix4 |
setToRotation(Vector3 axis,
float angle)
Sets the matrix to a rotation matrix around the given axis. |
Matrix4 |
setToScaling(float x,
float y,
float z)
Sets this matrix to a scaling matrix |
Matrix4 |
setToScaling(Vector3 vector)
Sets this matrix to a scaling matrix |
Matrix4 |
setToTranslation(float x,
float y,
float z)
Sets this matrix to a translation matrix, overwriting it first by an identity matrix and then setting the 4th column to the translation vector. |
Matrix4 |
setToTranslation(Vector3 vector)
Sets this matrix to a translation matrix, overwriting it first by an identity matrix and then setting the 4th column to the translation vector. |
Matrix4 |
setToTranslationAndScaling(float translationX,
float translationY,
float translationZ,
float scalingX,
float scalingY,
float scalingZ)
Sets this matrix to a translation and scaling matrix by first overwritting it with an identity and then setting the translation vector in the 4th column and the scaling vector in the diagonal. |
Matrix4 |
setToTranslationAndScaling(Vector3 translation,
Vector3 scaling)
Sets this matrix to a translation and scaling matrix by first overwritting it with an identity and then setting the translation vector in the 4th column and the scaling vector in the diagonal. |
Matrix4 |
setToWorld(Vector3 position,
Vector3 forward,
Vector3 up)
|
Matrix4 |
toNormalMatrix()
removes the translational part and transposes the matrix. |
java.lang.String |
toString()
|
Matrix4 |
tra()
Transposes the matrix |
Matrix4 |
translate(float x,
float y,
float z)
Postmultiplies this matrix by a translation matrix. |
Matrix4 |
trn(float x,
float y,
float z)
Adds a translational component to the matrix in the 4th column. |
Matrix4 |
trn(Vector3 vector)
Adds a translational component to the matrix in the 4th column. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int M00
public static final int M01
public static final int M02
public static final int M03
public static final int M10
public static final int M11
public static final int M12
public static final int M13
public static final int M20
public static final int M21
public static final int M22
public static final int M23
public static final int M30
public static final int M31
public static final int M32
public static final int M33
public final float[] tmp
public final float[] val
Constructor Detail |
---|
public Matrix4()
public Matrix4(Matrix4 matrix)
matrix
- The matrixpublic Matrix4(float[] values)
values
- The float arraypublic Matrix4(Quaternion quaternion)
Quaternion
quaternion
- The quaternionMethod Detail |
---|
public Matrix4 set(Matrix4 matrix)
matrix
- The matrix
public Matrix4 set(float[] values)
values
- The matrix
public Matrix4 set(Quaternion quaternion)
quaternion
- The quaternion
public void set(Vector3 xAxis, Vector3 yAxis, Vector3 zAxis, Vector3 pos)
xAxis
- The x-axisyAxis
- The y-axiszAxis
- The z-axispos
- The translation vectorpublic Matrix4 cpy()
public Matrix4 trn(Vector3 vector)
vector
- The translation vector
public Matrix4 trn(float x, float y, float z)
x
- The x-component of the translation vectory
- The y-component of the translation vectorz
- The z-component of the translation vector
public float[] getValues()
public Matrix4 mul(Matrix4 matrix)
matrix
- The other matrix
public Matrix4 tra()
public Matrix4 idt()
public Matrix4 inv()
public float det()
public Matrix4 setToProjection(float near, float far, float fov, float aspectRatio)
near
- The near planefar
- The far planefov
- The field of view in degreesaspectRatio
- The aspect ratio
public Matrix4 setToOrtho2D(float x, float y, float width, float height)
x
- The x-coordinate of the originy
- The y-coordinate of the originwidth
- The widthheight
- The height
public Matrix4 setToOrtho2D(float x, float y, float width, float height, float near, float far)
x
- The x-coordinate of the originy
- The y-coordinate of the originwidth
- The widthheight
- The heightnear
- The near planefar
- The far plane
public Matrix4 setToOrtho(float left, float right, float bottom, float top, float near, float far)
left
- The left clipping planeright
- The right clipping planebottom
- The bottom clipping planetop
- The top clipping planenear
- The near clipping planefar
- The far clipping plane
public Matrix4 setToTranslation(Vector3 vector)
vector
- The translation vector
public Matrix4 setToTranslation(float x, float y, float z)
x
- The x-component of the translation vectory
- The y-component of the translation vectorz
- The z-component of the translation vector
public Matrix4 setToTranslationAndScaling(Vector3 translation, Vector3 scaling)
translation
- The translation vectorscaling
- The scaling vector
public Matrix4 setToTranslationAndScaling(float translationX, float translationY, float translationZ, float scalingX, float scalingY, float scalingZ)
translationX
- The x-component of the translation vectortranslationY
- The y-component of the translation vectortranslationZ
- The z-component of the translation vectorscalingX
- The x-component of the scaling vectorscalingY
- The x-component of the scaling vectorscalingZ
- The x-component of the scaling vector
public Matrix4 setToRotation(Vector3 axis, float angle)
axis
- The axisangle
- The angle in degrees
public Matrix4 setToRotation(float axisX, float axisY, float axisZ, float angle)
axisX
- The x-component of the axisaxisY
- The y-component of the axisaxisZ
- The z-component of the axisangle
- The angle in degrees
public Matrix4 setFromEulerAngles(float yaw, float pitch, float roll)
yaw
- the yaw in degreespitch
- the pitch in degressroll
- the roll in degrees
public Matrix4 setToScaling(Vector3 vector)
vector
- The scaling vector
public Matrix4 setToScaling(float x, float y, float z)
x
- The x-component of the scaling vectory
- The y-component of the scaling vectorz
- The z-component of the scaling vector
public Matrix4 setToLookAt(Vector3 direction, Vector3 up)
direction
- The direction vectorup
- The up vector
public Matrix4 setToLookAt(Vector3 position, Vector3 target, Vector3 up)
position
- the positiontarget
- the targetup
- the up vector
public Matrix4 setToWorld(Vector3 position, Vector3 forward, Vector3 up)
public java.lang.String toString()
toString
in class java.lang.Object
public void lerp(Matrix4 matrix, float alpha)
matrix
- the matrixalpha
- the alpha value in the range [0,1]public Matrix4 set(Matrix3 mat)
mat
- the matrixpublic void scl(Vector3 scale)
public void getTranslation(Vector3 position)
public void getRotation(Quaternion rotation)
public Matrix4 toNormalMatrix()
public static void mul(float[] mata, float[] matb)
val
. This is the same as mul(Matrix4)
.
mata
- the first matrix.matb
- the second matrix.public static void mulVec(float[] mat, float[] vec)
val
. The vector array is assumed to hold a 3-component vector, with x being the first element, y being
the second and z being the last component. The result is stored in the vector array. This is the same as
Vector3.mul(Matrix4)
.
mat
- the matrixvec
- the vector.public static void mulVec(float[] mat, float[] vecs, int offset, int numVecs, int stride)
val
. The vectors array is assumed to hold 3-component vectors. Offset specifies the offset into the
array where the x-component of the first vector is located. The numVecs parameter specifies the number of vectors stored in
the vectors array. The stride parameter specifies the number of floats between subsequent vectors and must be >= 3. This is
the same as Vector3.mul(Matrix4)
applied to multiple vectors.
mat
- the matrixvecs
- the vectorsoffset
- the offset into the vectors arraynumVecs
- the number of vectorsstride
- the stride between vectors in floatspublic static void prj(float[] mat, float[] vec)
val
. The vector array is assumed to hold a 3-component vector, with x being
the first element, y being the second and z being the last component. The result is stored in the vector array. This is the
same as Vector3.prj(Matrix4)
.
mat
- the matrixvec
- the vector.public static void prj(float[] mat, float[] vecs, int offset, int numVecs, int stride)
val
. The vectors array is assumed to hold 3-component vectors. Offset
specifies the offset into the array where the x-component of the first vector is located. The numVecs parameter specifies
the number of vectors stored in the vectors array. The stride parameter specifies the number of floats between subsequent
vectors and must be >= 3. This is the same as Vector3.prj(Matrix4)
applied to multiple vectors.
mat
- the matrixvecs
- the vectorsoffset
- the offset into the vectors arraynumVecs
- the number of vectorsstride
- the stride between vectors in floatspublic static void rot(float[] mat, float[] vec)
val
. The vector array is assumed to hold a 3-component vector, with x being
the first element, y being the second and z being the last component. The result is stored in the vector array. This is the
same as Vector3.rot(Matrix4)
.
mat
- the matrixvec
- the vector.public static void rot(float[] mat, float[] vecs, int offset, int numVecs, int stride)
val
. The vectors array is assumed to hold 3-component vectors.
Offset specifies the offset into the array where the x-component of the first vector is located. The numVecs parameter
specifies the number of vectors stored in the vectors array. The stride parameter specifies the number of floats between
subsequent vectors and must be >= 3. This is the same as Vector3.rot(Matrix4)
applied to multiple vectors.
mat
- the matrixvecs
- the vectorsoffset
- the offset into the vectors arraynumVecs
- the number of vectorsstride
- the stride between vectors in floatspublic static boolean inv(float[] values)
val
.
values
- the matrix values.
public static float det(float[] values)
val
.
values
- the matrix values.
public Matrix4 translate(float x, float y, float z)
x
- y
- z
-
public Matrix4 rotate(float axisX, float axisY, float axisZ, float angle)
axisX
- axisY
- axisZ
- angle
- the angle in degrees
public Matrix4 scale(float scaleX, float scaleY, float scaleZ)
scaleX
- scaleY
- scaleZ
-
|
libgdx API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |