Class PMVMatrix
- java.lang.Object
-
- com.jogamp.opengl.util.PMVMatrix
-
- All Implemented Interfaces:
GLMatrixFunc
public final class PMVMatrix extends Object implements GLMatrixFunc
PMVMatrix implements a subset of the fixed function pipeline regarding the projection (P), modelview (Mv) matrix operation which is specified inGLMatrixFunc
.Further more, PMVMatrix provides the
inverse modelview matrix (Mvi)
andinverse transposed modelview matrix (Mvit)
.Frustum
is also provided byglGetFrustum()
. To keep these derived values synchronized after mutable Mv operations likeglRotatef(..)
inglMatrixMode
(GL_MODELVIEW
), users have to callupdate()
before using Mvi and Mvit.All matrices are provided in column-major order, as specified in the OpenGL fixed function pipeline, i.e. compatibility profile. See
FloatUtil
.PMVMatrix can supplement
GL2ES2
applications w/ the lack of the described matrix functionality.Matrix storage details
All matrices are backed up by a common primitive float-array for performance considerations and are a
sliced
representation of it.Note:
-
-
Field Summary
Fields Modifier and Type Field Description static int
DIRTY_ALL
Bit value stating all is dirtystatic int
DIRTY_FRUSTUM
Bit value stating a dirtyfrustum
.static int
DIRTY_INVERSE_MODELVIEW
Bit value stating a dirtyinverse modelview matrix (Mvi)
.static int
DIRTY_INVERSE_TRANSPOSED_MODELVIEW
Bit value stating a dirtyinverse transposed modelview matrix (Mvit)
.static int
MODIFIED_ALL
Bit value stating all is modifiedstatic int
MODIFIED_MODELVIEW
Bit value stating a modifiedmodelview matrix (Mv)
, since lastupdate()
call.static int
MODIFIED_PROJECTION
Bit value stating a modifiedprojection matrix (P)
, since lastupdate()
call.static int
MODIFIED_TEXTURE
Bit value stating a modifiedtexture matrix (T)
, since lastupdate()
call.-
Fields inherited from interface com.jogamp.opengl.fixedfunc.GLMatrixFunc
GL_MATRIX_MODE, GL_MODELVIEW, GL_MODELVIEW_MATRIX, GL_PROJECTION, GL_PROJECTION_MATRIX, GL_TEXTURE_MATRIX
-
-
Constructor Summary
Constructors Constructor Description PMVMatrix()
Creates an instance of PMVMatrix.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearAllUpdateRequests()
Clears allupdate()
requests of the Mvi and Mvit matrix and Frustum after it has been enabled by one of theMvi get
,Mvit get
orFrustum get
methods.int
getDirtyBits()
Returns the dirty bits due to mutable operations.int
getModifiedBits(boolean clear)
Returns the modified bits due to mutable operations..int
getRequestMask()
Returns the request bit mask, which uses bit values equal to the dirty mask.void
glFrustumf(float left, float right, float bottom, float top, float zNear, float zFar)
Multiply
the current matrix with the frustum matrix.void
glGetFloatv(int matrixGetName, float[] params, int params_offset)
Copy the named matrix to the given storage at offset.void
glGetFloatv(int matrixGetName, FloatBuffer params)
Copy the named matrix into the given storage.Frustum
glGetFrustum()
Returns the frustum, derived from projection * modelviewvoid
glGetIntegerv(int pname, int[] params, int params_offset)
void
glGetIntegerv(int pname, IntBuffer params)
glGetIntegervFloatBuffer
glGetMatrixf()
FloatBuffer
glGetMatrixf(int matrixName)
int
glGetMatrixMode()
FloatBuffer
glGetMviMatrixf()
Returns the inversemodelview matrix
(Mvi).FloatBuffer
glGetMvitMatrixf()
Returns the inverse transposedmodelview matrix
(Mvit).FloatBuffer
glGetMvMatrixf()
Returns themodelview matrix
(Mv).FloatBuffer
glGetPMatrixf()
Returns theprojection matrix
(P).FloatBuffer
glGetPMvMatrixf()
FloatBuffer
glGetPMvMviMatrixf()
FloatBuffer
glGetPMvMvitMatrixf()
FloatBuffer
glGetTMatrixf()
Returns thetexture matrix
(T).void
glLoadIdentity()
Load the current matrix with the identity matrixvoid
glLoadMatrix(Quaternion quat)
Load the current matrix with the values of the givenQuaternion
's rotationmatrix representation
.void
glLoadMatrixf(float[] values, int offset)
Load the current matrix w/ the provided one.void
glLoadMatrixf(FloatBuffer m)
Load the current matrix w/ the provided one.void
glMatrixMode(int matrixName)
Sets the current matrix mode.void
glMultMatrixf(float[] m, int m_offset)
Multiply the current matrix: [c] = [c] x [m]void
glMultMatrixf(FloatBuffer m)
Multiply the current matrix: [c] = [c] x [m]void
glOrthof(float left, float right, float bottom, float top, float zNear, float zFar)
Multiply
the current matrix with the orthogonal matrix.void
glPopMatrix()
Pop the current matrix from it's stack.void
glPushMatrix()
Push the current matrix to it's stack, while preserving it's values.void
glRotate(Quaternion quat)
Rotate the current matrix with the givenQuaternion
's rotationmatrix representation
.void
glRotatef(float ang_deg, float x, float y, float z)
Rotate the current matrix.void
glScalef(float x, float y, float z)
Scale the current matrix.void
glTranslatef(float x, float y, float z)
Translate the current matrix.void
gluLookAt(float eyex, float eyey, float eyez, float centerx, float centery, float centerz, float upx, float upy, float upz)
void
gluPerspective(float fovy_deg, float aspect, float zNear, float zFar)
Multiply
thecurrent matrix
with the perspective/frustum matrix.void
gluPickMatrix(float x, float y, float deltaX, float deltaY, int[] viewport, int viewport_offset)
Make given matrix the pick matrix based on given parameters.boolean
gluProject(float objx, float objy, float objz, int[] viewport, int viewport_offset, float[] win_pos, int win_pos_offset)
Map object coordinates to window coordinates.boolean
gluUnProject(float winx, float winy, float winz, int[] viewport, int viewport_offset, float[] obj_pos, int obj_pos_offset)
Map window coordinates to object coordinates.boolean
gluUnProject4(float winx, float winy, float winz, float clipw, int[] viewport, int viewport_offset, float near, float far, float[] obj_pos, int obj_pos_offset)
Map window coordinates to object coordinates.boolean
gluUnProjectRay(float winx, float winy, float winz0, float winz1, int[] viewport, int viewport_offset, Ray ray)
Map two window coordinates w/ shared X/Y and distinctive Z to aRay
.static boolean
isMatrixGetName(int matrixGetName)
static boolean
isMatrixModeName(int matrixModeName)
static int
matrixGetName2MatrixModeName(int matrixGetName)
static int
matrixModeName2MatrixGetName(int matrixModeName)
static StringBuilder
matrixToString(StringBuilder sb, String f, FloatBuffer a)
static StringBuilder
matrixToString(StringBuilder sb, String f, FloatBuffer a, FloatBuffer b)
float[]
multMvPMatrixf(float[] mat4MvP, int mat4MvP_offset)
float[]
multPMvMatrixf(float[] mat4PMv, int mat4PMv_offset)
void
reset()
IssuesglLoadIdentity()
on all matrices, i.e.String
toString()
StringBuilder
toString(StringBuilder sb, String f)
boolean
update()
Update the derivedinverse modelview (Mvi)
,inverse transposed modelview (Mvit)
matrices andFrustum
if they are dirty and they were requested by one of theMvi get
,Mvit get
orFrustum get
methods.
-
-
-
Field Detail
-
MODIFIED_PROJECTION
public static final int MODIFIED_PROJECTION
Bit value stating a modifiedprojection matrix (P)
, since lastupdate()
call.- See Also:
- Constant Field Values
-
MODIFIED_MODELVIEW
public static final int MODIFIED_MODELVIEW
Bit value stating a modifiedmodelview matrix (Mv)
, since lastupdate()
call.- See Also:
- Constant Field Values
-
MODIFIED_TEXTURE
public static final int MODIFIED_TEXTURE
Bit value stating a modifiedtexture matrix (T)
, since lastupdate()
call.- See Also:
- Constant Field Values
-
MODIFIED_ALL
public static final int MODIFIED_ALL
Bit value stating all is modified- See Also:
- Constant Field Values
-
DIRTY_INVERSE_MODELVIEW
public static final int DIRTY_INVERSE_MODELVIEW
Bit value stating a dirtyinverse modelview matrix (Mvi)
.- See Also:
- Constant Field Values
-
DIRTY_INVERSE_TRANSPOSED_MODELVIEW
public static final int DIRTY_INVERSE_TRANSPOSED_MODELVIEW
Bit value stating a dirtyinverse transposed modelview matrix (Mvit)
.- See Also:
- Constant Field Values
-
DIRTY_FRUSTUM
public static final int DIRTY_FRUSTUM
Bit value stating a dirtyfrustum
.- See Also:
- Constant Field Values
-
DIRTY_ALL
public static final int DIRTY_ALL
Bit value stating all is dirty- See Also:
- Constant Field Values
-
-
Method Detail
-
isMatrixModeName
public static final boolean isMatrixModeName(int matrixModeName)
- Parameters:
matrixModeName
- One ofGL_MODELVIEW
,GL_PROJECTION
orGL_TEXTURE
- Returns:
- true if the given matrix-mode name is valid, otherwise false.
-
matrixModeName2MatrixGetName
public static final int matrixModeName2MatrixGetName(int matrixModeName)
- Parameters:
matrixModeName
- One ofGL_MODELVIEW
,GL_PROJECTION
orGL_TEXTURE
- Returns:
- The corresponding matrix-get name, one of
GL_MODELVIEW_MATRIX
,GL_PROJECTION_MATRIX
orGL_TEXTURE_MATRIX
-
isMatrixGetName
public static final boolean isMatrixGetName(int matrixGetName)
- Parameters:
matrixGetName
- One ofGL_MODELVIEW_MATRIX
,GL_PROJECTION_MATRIX
orGL_TEXTURE_MATRIX
- Returns:
- true if the given matrix-get name is valid, otherwise false.
-
matrixGetName2MatrixModeName
public static final int matrixGetName2MatrixModeName(int matrixGetName)
- Parameters:
matrixGetName
- One ofGL_MODELVIEW_MATRIX
,GL_PROJECTION_MATRIX
orGL_TEXTURE_MATRIX
- Returns:
- The corresponding matrix-mode name, one of
GL_MODELVIEW
,GL_PROJECTION
orGL_TEXTURE
-
matrixToString
public static StringBuilder matrixToString(StringBuilder sb, String f, FloatBuffer a)
- Parameters:
sb
- optional passed StringBuilder instance to be usedf
- the format string of one floating point, i.e. "%10.5f", seeFormatter
a
- 4x4 matrix in column major order (OpenGL)- Returns:
- matrix string representation
-
matrixToString
public static StringBuilder matrixToString(StringBuilder sb, String f, FloatBuffer a, FloatBuffer b)
- Parameters:
sb
- optional passed StringBuilder instance to be usedf
- the format string of one floating point, i.e. "%10.5f", seeFormatter
a
- 4x4 matrix in column major order (OpenGL)b
- 4x4 matrix in column major order (OpenGL)- Returns:
- side by side representation
-
reset
public final void reset()
IssuesglLoadIdentity()
on all matrices, i.e.GL_MODELVIEW
,GL_PROJECTION
orGL_TEXTURE
and resets all internal states.
-
glGetMatrixMode
public final int glGetMatrixMode()
-
glGetTMatrixf
public final FloatBuffer glGetTMatrixf()
Returns thetexture matrix
(T).
-
glGetPMatrixf
public final FloatBuffer glGetPMatrixf()
Returns theprojection matrix
(P).
-
glGetMvMatrixf
public final FloatBuffer glGetMvMatrixf()
Returns themodelview matrix
(Mv).
-
glGetMviMatrixf
public final FloatBuffer glGetMviMatrixf()
Returns the inversemodelview matrix
(Mvi).Method enables the Mvi matrix update, and performs it's update w/o clearing the modified bits.
See
update()
and matrix storage details.- See Also:
update()
,clearAllUpdateRequests()
-
glGetMvitMatrixf
public final FloatBuffer glGetMvitMatrixf()
Returns the inverse transposedmodelview matrix
(Mvit).Method enables the Mvit matrix update, and performs it's update w/o clearing the modified bits.
See
update()
and matrix storage details.- See Also:
update()
,clearAllUpdateRequests()
-
glGetPMvMatrixf
public final FloatBuffer glGetPMvMatrixf()
-
glGetPMvMviMatrixf
public final FloatBuffer glGetPMvMviMatrixf()
Returns 3 matrices within one FloatBuffer:P
,Mv
andMvi
.Method enables the Mvi matrix update, and performs it's update w/o clearing the modified bits.
See
update()
and matrix storage details.- See Also:
update()
,clearAllUpdateRequests()
-
glGetPMvMvitMatrixf
public final FloatBuffer glGetPMvMvitMatrixf()
Returns 4 matrices within one FloatBuffer:P
,Mv
,Mvi
andMvit
.Method enables the Mvi and Mvit matrix update, and performs it's update w/o clearing the modified bits.
See
update()
and matrix storage details.- See Also:
update()
,clearAllUpdateRequests()
-
glGetFrustum
public final Frustum glGetFrustum()
Returns the frustum, derived from projection * modelview
-
glGetMatrixf
public final FloatBuffer glGetMatrixf()
-
glGetMatrixf
public final FloatBuffer glGetMatrixf(int matrixName)
- Parameters:
matrixName
- Either a matrix-get-name, i.e.GL_MODELVIEW_MATRIX
,GL_PROJECTION_MATRIX
orGL_TEXTURE_MATRIX
, or a matrix-mode-name, i.e.GL_MODELVIEW
,GL_PROJECTION
orGL_TEXTURE
- Returns:
- the named matrix, not a copy!
-
multPMvMatrixf
public final float[] multPMvMatrixf(float[] mat4PMv, int mat4PMv_offset)
- Parameters:
mat4PMv
- 4x4 matrix storage for resultmat4PMv_offset
-- Returns:
- given matrix for chaining
-
multMvPMatrixf
public final float[] multMvPMatrixf(float[] mat4MvP, int mat4MvP_offset)
- Parameters:
mat4MvP
- 4x4 matrix storage for resultmat4MvP_offset
-- Returns:
- given matrix for chaining
-
glMatrixMode
public final void glMatrixMode(int matrixName)
Description copied from interface:GLMatrixFunc
Sets the current matrix mode.- Specified by:
glMatrixMode
in interfaceGLMatrixFunc
- Parameters:
matrixName
-GLMatrixFunc.GL_MODELVIEW
,GLMatrixFunc.GL_PROJECTION
orGL_TEXTURE
.
-
glGetFloatv
public final void glGetFloatv(int matrixGetName, FloatBuffer params)
Description copied from interface:GLMatrixFunc
Copy the named matrix into the given storage.- Specified by:
glGetFloatv
in interfaceGLMatrixFunc
- Parameters:
matrixGetName
-GLMatrixFunc.GL_MODELVIEW_MATRIX
,GLMatrixFunc.GL_PROJECTION_MATRIX
orGLMatrixFunc.GL_TEXTURE_MATRIX
params
- the FloatBuffer's position remains unchanged, which is the same behavior than the native JOGL GL impl
-
glGetFloatv
public final void glGetFloatv(int matrixGetName, float[] params, int params_offset)
Description copied from interface:GLMatrixFunc
Copy the named matrix to the given storage at offset.- Specified by:
glGetFloatv
in interfaceGLMatrixFunc
- Parameters:
matrixGetName
-GLMatrixFunc.GL_MODELVIEW_MATRIX
,GLMatrixFunc.GL_PROJECTION_MATRIX
orGLMatrixFunc.GL_TEXTURE_MATRIX
params
- storageparams_offset
- storage offset
-
glGetIntegerv
public final void glGetIntegerv(int pname, IntBuffer params)
Description copied from interface:GLMatrixFunc
glGetIntegerv- Specified by:
glGetIntegerv
in interfaceGLMatrixFunc
- Parameters:
pname
-GLMatrixFunc.GL_MATRIX_MODE
to receive the current matrix modeparams
- the FloatBuffer's position remains unchanged which is the same behavior than the native JOGL GL impl
-
glGetIntegerv
public final void glGetIntegerv(int pname, int[] params, int params_offset)
- Specified by:
glGetIntegerv
in interfaceGLMatrixFunc
-
glLoadMatrixf
public final void glLoadMatrixf(float[] values, int offset)
Description copied from interface:GLMatrixFunc
Load the current matrix w/ the provided one.- Specified by:
glLoadMatrixf
in interfaceGLMatrixFunc
-
glLoadMatrixf
public final void glLoadMatrixf(FloatBuffer m)
Description copied from interface:GLMatrixFunc
Load the current matrix w/ the provided one.- Specified by:
glLoadMatrixf
in interfaceGLMatrixFunc
-
glLoadMatrix
public final void glLoadMatrix(Quaternion quat)
Load the current matrix with the values of the givenQuaternion
's rotationmatrix representation
.
-
glPopMatrix
public final void glPopMatrix()
Description copied from interface:GLMatrixFunc
Pop the current matrix from it's stack.- Specified by:
glPopMatrix
in interfaceGLMatrixFunc
- See Also:
GLMatrixFunc.glPushMatrix()
-
glPushMatrix
public final void glPushMatrix()
Description copied from interface:GLMatrixFunc
Push the current matrix to it's stack, while preserving it's values.There exist one stack per matrix mode, i.e.
GLMatrixFunc.GL_MODELVIEW
,GLMatrixFunc.GL_PROJECTION
andGL_TEXTURE
.- Specified by:
glPushMatrix
in interfaceGLMatrixFunc
-
glLoadIdentity
public final void glLoadIdentity()
Description copied from interface:GLMatrixFunc
Load the current matrix with the identity matrix- Specified by:
glLoadIdentity
in interfaceGLMatrixFunc
-
glMultMatrixf
public final void glMultMatrixf(FloatBuffer m)
Description copied from interface:GLMatrixFunc
Multiply the current matrix: [c] = [c] x [m]- Specified by:
glMultMatrixf
in interfaceGLMatrixFunc
- Parameters:
m
- the FloatBuffer's position remains unchanged, which is the same behavior than the native JOGL GL impl
-
glMultMatrixf
public final void glMultMatrixf(float[] m, int m_offset)
Description copied from interface:GLMatrixFunc
Multiply the current matrix: [c] = [c] x [m]- Specified by:
glMultMatrixf
in interfaceGLMatrixFunc
-
glTranslatef
public final void glTranslatef(float x, float y, float z)
Description copied from interface:GLMatrixFunc
Translate the current matrix.- Specified by:
glTranslatef
in interfaceGLMatrixFunc
-
glScalef
public final void glScalef(float x, float y, float z)
Description copied from interface:GLMatrixFunc
Scale the current matrix.- Specified by:
glScalef
in interfaceGLMatrixFunc
-
glRotatef
public final void glRotatef(float ang_deg, float x, float y, float z)
Description copied from interface:GLMatrixFunc
Rotate the current matrix.- Specified by:
glRotatef
in interfaceGLMatrixFunc
-
glRotate
public final void glRotate(Quaternion quat)
Rotate the current matrix with the givenQuaternion
's rotationmatrix representation
.
-
glOrthof
public final void glOrthof(float left, float right, float bottom, float top, float zNear, float zFar)
Description copied from interface:GLMatrixFunc
Multiply
the current matrix with the orthogonal matrix.- Specified by:
glOrthof
in interfaceGLMatrixFunc
-
glFrustumf
public final void glFrustumf(float left, float right, float bottom, float top, float zNear, float zFar) throws GLException
Multiply
the current matrix with the frustum matrix.- Specified by:
glFrustumf
in interfaceGLMatrixFunc
- Throws:
GLException
- ifzNear <= 0
orzFar <= zNear
orleft == right
, orbottom == top
.- See Also:
FloatUtil.makeFrustum(float[], int, boolean, float, float, float, float, float, float)
-
gluPerspective
public final void gluPerspective(float fovy_deg, float aspect, float zNear, float zFar) throws GLException
Multiply
thecurrent matrix
with the perspective/frustum matrix.- Parameters:
fovy_deg
- fov angle in degreesaspect
- aspect ratio width / heightzNear
-zFar
-- Throws:
GLException
- ifzNear <= 0
orzFar <= zNear
- See Also:
FloatUtil.makePerspective(float[], int, boolean, float, float, float, float)
-
gluLookAt
public final void gluLookAt(float eyex, float eyey, float eyez, float centerx, float centery, float centerz, float upx, float upy, float upz)
-
gluProject
public final boolean gluProject(float objx, float objy, float objz, int[] viewport, int viewport_offset, float[] win_pos, int win_pos_offset)
Map object coordinates to window coordinates.Traditional
gluProject
implementation.- Parameters:
objx
-objy
-objz
-viewport
- 4 component viewport vectorviewport_offset
-win_pos
- 3 component window coordinate, the resultwin_pos_offset
-- Returns:
- true if successful, otherwise false (z is 1)
-
gluUnProject
public final boolean gluUnProject(float winx, float winy, float winz, int[] viewport, int viewport_offset, float[] obj_pos, int obj_pos_offset)
Map window coordinates to object coordinates.Traditional
gluUnProject
implementation.- Parameters:
winx
-winy
-winz
-viewport
- 4 component viewport vectorviewport_offset
-obj_pos
- 3 component object coordinate, the resultobj_pos_offset
-- Returns:
- true if successful, otherwise false (failed to invert matrix, or becomes infinity due to zero z)
-
gluUnProject4
public boolean gluUnProject4(float winx, float winy, float winz, float clipw, int[] viewport, int viewport_offset, float near, float far, float[] obj_pos, int obj_pos_offset)
Map window coordinates to object coordinates.Traditional
gluUnProject4
implementation.- Parameters:
winx
-winy
-winz
-clipw
-modelMatrix
- 4x4 modelview matrixmodelMatrix_offset
-projMatrix
- 4x4 projection matrixprojMatrix_offset
-viewport
- 4 component viewport vectorviewport_offset
-near
-far
-obj_pos
- 4 component object coordinate, the resultobj_pos_offset
-- Returns:
- true if successful, otherwise false (failed to invert matrix, or becomes infinity due to zero z)
-
gluPickMatrix
public final void gluPickMatrix(float x, float y, float deltaX, float deltaY, int[] viewport, int viewport_offset)
Make given matrix the pick matrix based on given parameters.Traditional
gluPickMatrix
implementation.See
FloatUtil.makePick(..)
for details.- Parameters:
x
- the center x-component of a picking region in window coordinatesy
- the center y-component of a picking region in window coordinatesdeltaX
- the width of the picking region in window coordinates.deltaY
- the height of the picking region in window coordinates.viewport
- 4 component viewport vectorviewport_offset
-
-
gluUnProjectRay
public final boolean gluUnProjectRay(float winx, float winy, float winz0, float winz1, int[] viewport, int viewport_offset, Ray ray)
Map two window coordinates w/ shared X/Y and distinctive Z to aRay
. The resultingRay
maybe used for picking using abounding box
.Notes for picking winz0 and winz1:
- Parameters:
winx
-winy
-winz0
-winz1
-viewport
-viewport_offset
-ray
- storage for the resultingRay
- Returns:
- true if successful, otherwise false (failed to invert matrix, or becomes z is infinity)
-
toString
public StringBuilder toString(StringBuilder sb, String f)
-
getModifiedBits
public final int getModifiedBits(boolean clear)
Returns the modified bits due to mutable operations..A modified bit is set, if the corresponding matrix had been modified by a mutable operation since last
update()
orgetModifiedBits(true)
call.- Parameters:
clear
- if true, clears the modified bits, otherwise leaves them untouched.- See Also:
MODIFIED_PROJECTION
,MODIFIED_MODELVIEW
,MODIFIED_TEXTURE
-
getDirtyBits
public final int getDirtyBits()
Returns the dirty bits due to mutable operations.A dirty bit is set , if the corresponding matrix had been modified by a mutable operation since last
update()
call. The latter clears the dirty state only if the dirty matrix (Mvi or Mvit) orFrustum
has been requested by one of theMvi get
,Mvit get
orFrustum get
methods.
-
getRequestMask
public final int getRequestMask()
Returns the request bit mask, which uses bit values equal to the dirty mask.The request bit mask is set by one of the
Mvi get
,Mvit get
orFrustum get
methods.
-
clearAllUpdateRequests
public final void clearAllUpdateRequests()
Clears allupdate()
requests of the Mvi and Mvit matrix and Frustum after it has been enabled by one of theMvi get
,Mvit get
orFrustum get
methods.Allows user to disable subsequent Mvi, Mvit and
Frustum
updates if no more required.
-
update
public final boolean update()
Update the derivedinverse modelview (Mvi)
,inverse transposed modelview (Mvit)
matrices andFrustum
if they are dirty and they were requested by one of theMvi get
,Mvit get
orFrustum get
methods.The Mvi and Mvit matrices and
Frustum
are considered dirty, if their correspondingMv matrix
has been modified since their last update.Method should be called manually in case mutable operations has been called and caller operates on already fetched references, i.e. not calling
Mvi get
,Mvit get
orFrustum get
etc anymore.This method clears the modified bits like
getModifiedBits(true)
, which are set by any mutable operation. The modified bits have no impact on this method, but the return value.- Returns:
- true if any matrix has been modified since last update call or
if the derived matrices Mvi and Mvit or
Frustum
were updated, otherwise false. In other words, method returns true if any matrix used by the caller must be updated, e.g. uniforms in a shader program. - See Also:
getModifiedBits(boolean)
,MODIFIED_PROJECTION
,MODIFIED_MODELVIEW
,MODIFIED_TEXTURE
,DIRTY_INVERSE_MODELVIEW
,DIRTY_INVERSE_TRANSPOSED_MODELVIEW
,DIRTY_FRUSTUM
,glGetMviMatrixf()
,glGetMvitMatrixf()
,glGetPMvMviMatrixf()
,glGetPMvMvitMatrixf()
,glGetFrustum()
,clearAllUpdateRequests()
-
-