Package com.jogamp.opengl.math
Class Matrix4
- java.lang.Object
-
- com.jogamp.opengl.math.Matrix4
-
public class Matrix4 extends Object
Simple float array-backed float 4x4 matrix exposingFloatUtil
matrix functionality in an object oriented manner.Unlike
PMVMatrix
, this class only represents one single matrix without a completeGLMatrixFunc
implementation, allowing this class to be more lightweight.Implementation is not mature - WIP and subject to change.
-
-
Constructor Summary
Constructors Constructor Description Matrix4()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description float
determinant()
float[]
getMatrix()
boolean
invert()
void
loadIdentity()
void
makeFrustum(float left, float right, float bottom, float top, float zNear, float zFar)
void
makeOrtho(float left, float right, float bottom, float top, float zNear, float zFar)
void
makePerspective(float fovy_rad, float aspect, float zNear, float zFar)
void
multMatrix(float[] m)
Multiply matrix: [this] = [this] x [m]void
multMatrix(float[] m, int m_offset)
Multiply matrix: [this] = [this] x [m]void
multMatrix(Matrix4 m)
Multiply matrix: [this] = [this] x [m]void
multVec(float[] v_in, float[] v_out)
void
multVec(float[] v_in, int v_in_offset, float[] v_out, int v_out_offset)
void
rotate(float angrad, float x, float y, float z)
void
rotate(Quaternion quat)
Rotate the current matrix with the givenQuaternion
's rotationmatrix representation
.void
scale(float x, float y, float z)
void
translate(float x, float y, float z)
void
transpose()
-
-
-
Method Detail
-
getMatrix
public final float[] getMatrix()
-
loadIdentity
public final void loadIdentity()
-
multMatrix
public final void multMatrix(float[] m, int m_offset)
Multiply matrix: [this] = [this] x [m]- Parameters:
m
- 4x4 matrix in column-major order
-
multMatrix
public final void multMatrix(float[] m)
Multiply matrix: [this] = [this] x [m]- Parameters:
m
- 4x4 matrix in column-major order
-
multMatrix
public final void multMatrix(Matrix4 m)
Multiply matrix: [this] = [this] x [m]- Parameters:
m
- 4x4 matrix in column-major order
-
multVec
public final void multVec(float[] v_in, float[] v_out)
- Parameters:
v_in
- 4-component column-vectorv_out
- this * v_in
-
multVec
public final void multVec(float[] v_in, int v_in_offset, float[] v_out, int v_out_offset)
- Parameters:
v_in
- 4-component column-vectorv_out
- this * v_in
-
translate
public final void translate(float x, float y, float z)
-
scale
public final void scale(float x, float y, float z)
-
rotate
public final void rotate(float angrad, float x, float y, float z)
-
rotate
public final void rotate(Quaternion quat)
Rotate the current matrix with the givenQuaternion
's rotationmatrix representation
.
-
transpose
public final void transpose()
-
determinant
public final float determinant()
-
invert
public final boolean invert()
-
makeOrtho
public final void makeOrtho(float left, float right, float bottom, float top, float zNear, float zFar)
-
makeFrustum
public final void makeFrustum(float left, float right, float bottom, float top, float zNear, float zFar) throws GLException
- Parameters:
left
-right
-bottom
-top
-zNear
-zFar
-- Throws:
GLException
- ifzNear <= 0
orzFar <= zNear
orleft == right
, orbottom == top
.- See Also:
FloatUtil.makeFrustum(float[], int, boolean, float, float, float, float, float, float)
-
makePerspective
public final void makePerspective(float fovy_rad, float aspect, float zNear, float zFar) throws GLException
- Parameters:
fovy_rad
-aspect
-zNear
-zFar
-- Throws:
GLException
- ifzNear <= 0
orzFar <= zNear
- See Also:
FloatUtil.makePerspective(float[], int, boolean, float, float, float, float)
-
-