| Direct-BT v3.3.0-1-gc2d430c
    Direct-BT - Direct Bluetooth Programming. | 
PMVMatrix4 implements the basic computer graphics Matrix4 pack using projection (P), modelview (Mv) and texture (T) Matrix4 operations. More...
#include <pmvmat4f.hpp>
| Public Types | |
| typedef const value_type * | const_iterator | 
| typedef const value_type * | const_pointer | 
| typedef const value_type & | const_reference | 
| typedef value_type * | iterator | 
| typedef Matrix4< value_type, std::is_floating_point_v< Value_type > > | Mat4 | 
| typedef value_type * | pointer | 
| typedef Ray3F< value_type, std::is_floating_point_v< Value_type > > | Ray3 | 
| typedef value_type & | reference | 
| typedef SyncMatrix4< value_type, std::is_floating_point_v< Value_type > > | SyncMat4 | 
| typedef SyncMatrices4< value_type, std::is_floating_point_v< Value_type > > | SyncMats4 | 
| typedef Value_type | value_type | 
| typedef Vector3F< value_type, std::is_floating_point_v< Value_type > > | Vec3 | 
| typedef Vector4F< value_type, std::is_floating_point_v< Value_type > > | Vec4 | 
| Public Member Functions | |
| PMVMatrix4 () noexcept | |
| Creates an instance of PMVMatrix4.  More... | |
| PMVMatrix4 (int derivedMatrices) noexcept | |
| Creates an instance of PMVMatrix4.  More... | |
| void | frustumP (const float left, const float right, const float bottom, const float top, const float zNear, const float zFar) | 
| Multiplytheprojection matrixwith the frustum matrix.  More... | |
| constexpr uint32_t | getDirtyBits () noexcept | 
| Returns the dirty bits due to mutable operations, i.e.  More... | |
| jau::math::geom::Frustum | getFrustum () noexcept | 
| Returns the frustum, derived from projection x modelview.  More... | |
| constexpr uint32_t | getModifiedBits (const bool clear) noexcept | 
| Returns the modified bits due to mutable operations.  More... | |
| constexpr Mat4 & | getMulMvP (Mat4 &result) noexcept | 
| Returns multiplication result of MvandPmatrix, i.e.  More... | |
| constexpr Mat4 & | getMulPMv (Mat4 &result) noexcept | 
| Returns multiplication result of PandMvmatrix, i.e.  More... | |
| constexpr const Mat4 & | getMv () const noexcept | 
| constexpr Mat4 & | getMv () noexcept | 
| Returns the modelview matrix(Mv).  More... | |
| Mat4 & | getMvi () | 
| Returns the inverse modelview matrix(Mvi) if requested.  More... | |
| Mat4 & | getMvit () | 
| Returns the inverse transposed modelview matrix(Mvit) if requested.  More... | |
| constexpr const Mat4 & | getP () const noexcept | 
| constexpr Mat4 & | getP () noexcept | 
| Returns the projection matrix(P).  More... | |
| constexpr Mat4 & | getPMv () noexcept | 
| Returns the pre-multiplied projection x modelview, P x Mv.  More... | |
| constexpr Mat4 & | getPMvi () noexcept | 
| Returns the pre-multiplied inverse projection x modelview, if Mat4#invert(Mat4)succeeded, otherwisenull.  More... | |
| constexpr uint32_t | getReqBits () noexcept | 
| Returns the request bit mask, which uses bit values equal to the dirty mask and may contain.  More... | |
| constexpr const SyncMats4 & | getSyncMv () const noexcept | 
| constexpr SyncMat4 & | getSyncMv () noexcept | 
| Returns the SyncMatrixofmodelview matrix(Mv).  More... | |
| SyncMat4 & | getSyncMvi () | 
| Returns the SyncMatrixof inversemodelview matrix(Mvi) if requested.  More... | |
| SyncMat4 & | getSyncMvit () | 
| Returns the SyncMatrixof inverse transposedmodelview matrix(Mvit) if requested.  More... | |
| constexpr const SyncMats4 & | getSyncP () const noexcept | 
| constexpr SyncMat4 & | getSyncP () noexcept | 
| Returns the SyncMatrixofprojection matrix(P).  More... | |
| constexpr const SyncMats4f & | getSyncPMv () const noexcept | 
| constexpr SyncMats4f & | getSyncPMv () noexcept | 
| Returns SyncMatrices4fof 2 matrices within one FloatBuffer:PandMv.  More... | |
| SyncMats4f & | getSyncPMvMvi () | 
| Returns SyncMatrices4fof 3 matrices within one FloatBuffer:P,MvandMviif requested.  More... | |
| SyncMats4f & | getSyncPMvMviMvit () | 
| Returns SyncMatrices4fof 4 matrices within one FloatBuffer:P,Mv,MviandMvitif requested.  More... | |
| constexpr const SyncMats4 & | getSyncT () const noexcept | 
| constexpr SyncMat4 & | getSyncT () noexcept | 
| Returns the SyncMatrixoftexture matrix(T).  More... | |
| constexpr const Mat4 & | getT () const noexcept | 
| constexpr Mat4 & | getT () noexcept | 
| Returns the texture matrix(T).  More... | |
| constexpr bool | isReqDirty () noexcept | 
| Returns true if the one of the requested bitsare are set dirty due to mutable operations, i.e.  More... | |
| constexpr PMVMatrix4 & | loadMv (const Mat4 &m) noexcept | 
| Load the modelview matrixwith the values of the givenMat4.  More... | |
| constexpr PMVMatrix4 & | loadMv (const Quat4f &quat) noexcept | 
| Load the modelview matrixwith the values of the givenQuaternion's rotation Quaternion::toMatrix() representation.  More... | |
| constexpr PMVMatrix4 & | loadMv (float values[]) noexcept | 
| Load the modelview matrixwith the provided values.  More... | |
| constexpr PMVMatrix4 & | loadMvIdentity () noexcept | 
| Load the modelview matrixwith the values of the givenMat4.  More... | |
| constexpr PMVMatrix4 & | loadP (const Mat4 &m) | 
| Load the projection matrixwith the values of the givenMat4.  More... | |
| constexpr PMVMatrix4 & | loadP (const Quat4f &quat) noexcept | 
| Load the projection matrixwith the values of the givenQuaternion's rotation Quaternion::toMatrix() representation.  More... | |
| constexpr PMVMatrix4 & | loadP (float values[]) noexcept | 
| Load the projection matrixwith the provided values.  More... | |
| constexpr PMVMatrix4 & | loadPIdentity () noexcept | 
| Load the projection matrixwith the values of the givenMat4.  More... | |
| constexpr PMVMatrix4 & | loadT (const Quat4f &quat) noexcept | 
| Load the texture matrixwith the values of the givenQuaternion's rotation Quaternion::toMatrix() representation.  More... | |
| constexpr PMVMatrix4 & | loadT (float values[]) noexcept | 
| Load the texture matrixwith the provided values.  More... | |
| constexpr PMVMatrix4 & | loadT (Mat4 &m) noexcept | 
| Load the texture matrixwith the values of the givenMat4.  More... | |
| constexpr PMVMatrix4 & | loadTIdentity () noexcept | 
| Load the texture matrixwith the values of the givenMat4.  More... | |
| constexpr PMVMatrix4 & | lookAtP (const Vec3 &eye, const Vec3 ¢er, const Vec3 &up) noexcept | 
| Multiplytheprojection matrixwith the eye, object and orientation, i.e.  More... | |
| bool | mapObjToWin (const Vec3 &objPos, const Recti &viewport, Vec3 &winPos) noexcept | 
| Map object coordinates to window coordinates.  More... | |
| bool | mapWinToObj (const float winx, const float winy, const float winz, const Recti &viewport, Vec3 &objPos) noexcept | 
| Map window coordinates to object coordinates.  More... | |
| bool | mapWinToObj4 (const float winx, const float winy, const float winz, const float clipw, const Recti &viewport, const float near, const float far, Vec4 &objPos) noexcept | 
| Map window coordinates to object coordinates.  More... | |
| bool | mapWinToRay (const float winx, const float winy, const float winz0, const float winz1, const Recti &viewport, Ray3f &ray) noexcept | 
| Map two window coordinates w/ shared X/Y and distinctive Z to a Ray.  More... | |
| constexpr PMVMatrix4 & | mulMv (const Mat4 &m) noexcept | 
| Multiply the modelview matrix: [c] = [c] x [m].  More... | |
| constexpr PMVMatrix4 & | mulP (const Mat4 &m) noexcept | 
| Multiply the projection matrix: [c] = [c] x [m].  More... | |
| constexpr PMVMatrix4 & | mulT (const Mat4 &m) noexcept | 
| Multiply the texture matrix: [c] = [c] x [m].  More... | |
| constexpr Vec3 & | mulWithMv (const Vec3 &v_in, Vec3 &v_out) noexcept | 
| v_out = Mv * v_in  More... | |
| constexpr Vec4 & | mulWithMv (const Vec4 &v_in, Vec4 &v_out) noexcept | 
| v_out = Mv * v_in  More... | |
| constexpr Vec4 & | mulWithMv (Vec4 &v_inout) noexcept | 
| v_inout = Mv * v_inout  More... | |
| constexpr void | orthoP (const float left, const float right, const float bottom, const float top, const float zNear, const float zFar) noexcept | 
| Multiplytheprojection matrixwith the orthogonal matrix.  More... | |
| PMVMatrix4 & | perspectiveP (const float fovy_rad, const float aspect, const float zNear, const float zFar) | 
| Multiplytheprojection matrixwith the perspective/frustum matrix.  More... | |
| constexpr_cxx20 PMVMatrix4 & | popMv () noexcept | 
| Pop the modelview matrixfrom its stack.  More... | |
| constexpr_cxx20 PMVMatrix4 & | popP () noexcept | 
| Pop the projection matrixfrom its stack.  More... | |
| constexpr_cxx20 PMVMatrix4 & | popT () noexcept | 
| Pop the texture matrixfrom its stack.  More... | |
| constexpr_cxx20 PMVMatrix4 & | pushMv () noexcept | 
| Push the modelview matrixto its stack, while preserving its values.  More... | |
| constexpr_cxx20 PMVMatrix4 & | pushP () noexcept | 
| Push the projection matrixto its stack, while preserving its values.  More... | |
| constexpr_cxx20 PMVMatrix4 & | pushT () noexcept | 
| Push the texture matrixto its stack, while preserving its values.  More... | |
| constexpr void | reset () noexcept | 
| Issues Mat4#loadIdentity()on all matrices and resets all internal states.  More... | |
| constexpr_cxx26 PMVMatrix4 & | rotateMv (const float ang_rad, const float x, const float y, const float z) noexcept | 
| Rotate the modelview matrixby the given axis and angle in radians.  More... | |
| constexpr_cxx26 PMVMatrix4 & | rotateMv (const float ang_rad, const Vec3 &axis) noexcept | 
| Rotate the modelview matrixby the given axis and angle in radians.  More... | |
| constexpr PMVMatrix4 & | rotateMv (const Quat4f &quat) noexcept | 
| Rotate the modelview matrixwith the givenQuaternion's rotationmatrix representation.  More... | |
| constexpr_cxx26 PMVMatrix4 & | rotateP (const float ang_rad, const float x, const float y, const float z) noexcept | 
| Rotate the projection matrixby the given axis and angle in radians.  More... | |
| constexpr_cxx26 PMVMatrix4 & | rotateP (const float ang_rad, const Vec3 &axis) noexcept | 
| Rotate the projection matrixby the given axis and angle in radians.  More... | |
| constexpr PMVMatrix4 & | rotateP (const Quat4f &quat) noexcept | 
| Rotate the projection matrixwith the givenQuaternion's rotationmatrix representation.  More... | |
| constexpr PMVMatrix4 & | scaleMv (const Vec3 &s) noexcept | 
| Scale the modelview matrix.  More... | |
| constexpr PMVMatrix4 & | scaleMv (float x, float y, float z) noexcept | 
| Scale the modelview matrix.  More... | |
| constexpr PMVMatrix4 & | scaleP (const Vec3 &s) noexcept | 
| Scale the projection matrix.  More... | |
| constexpr PMVMatrix4 & | scaleP (float x, float y, float z) noexcept | 
| Scale the projection matrix.  More... | |
| constexpr void | setModelviewDirty () noexcept | 
| Sets the Modelview (Mv)matrix dirty and modified, i.e.  More... | |
| constexpr void | setProjectionDirty () noexcept | 
| Sets the Projection (P)matrix dirty and modified, i.e.  More... | |
| constexpr void | setTextureDirty () noexcept | 
| Sets the Texture (T)matrix modified.  More... | |
| std::string | toString () const noexcept | 
| std::string & | toString (std::string &sb, const std::string &f) const noexcept | 
| constexpr PMVMatrix4 & | translateMv (const Vec3 &t) noexcept | 
| Translate the modelview matrix.  More... | |
| constexpr PMVMatrix4 & | translateMv (float x, float y, float z) noexcept | 
| Translate the modelview matrix.  More... | |
| constexpr PMVMatrix4 & | translateP (const Vec3 &t) noexcept | 
| Translate the projection matrix.  More... | |
| constexpr PMVMatrix4 & | translateP (float x, float y, float z) noexcept | 
| Translate the projection matrix.  More... | |
| bool | update () | 
| Update the derived inverse modelview (Mvi),inverse transposed modelview (Mvit)matrices if theyare dirtyand requested via the constructorPMVMatrix4(int).  More... | |
| Static Public Attributes | |
| static constexpr const uint32_t | FRUSTUM = 1 << 3 | 
| Bit value for frustumand updated bygetFrustum().  More... | |
| static constexpr const uint32_t | INVERSE_MODELVIEW = 1 << 1 | 
| Bit value for inverse modelview matrix (Mvi), updated viaupdate().  More... | |
| static constexpr const uint32_t | INVERSE_TRANSPOSED_MODELVIEW = 1 << 2 | 
| Bit value for inverse transposed modelview matrix (Mvit), updated viaupdate().  More... | |
| static constexpr const uint32_t | MANUAL_BITS = FRUSTUM | PREMUL_PMV | PREMUL_PMVI | 
| Manual bits not covered by update()butgetFrustum(),FRUSTUM,getPMv(),PREMUL_PMV,getPMvi(),PREMUL_PMVI, etc.  More... | |
| static constexpr const uint32_t | MODIFIED_ALL = MODIFIED_PROJECTION | MODIFIED_MODELVIEW | MODIFIED_TEXTURE | 
| Bit value stating all is modified.  More... | |
| static constexpr const uint32_t | MODIFIED_MODELVIEW = 1 << 1 | 
| Bit value stating a modified modelview matrix (Mv), since lastupdate()call.  More... | |
| static constexpr const uint32_t | MODIFIED_PROJECTION = 1 << 0 | 
| Bit value stating a modified projection matrix (P), since lastupdate()call.  More... | |
| static constexpr const uint32_t | MODIFIED_TEXTURE = 1 << 2 | 
| Bit value stating a modified texture matrix (T), since lastupdate()call.  More... | |
| static constexpr const uint32_t | PREMUL_PMV = 1 << 4 | 
| Bit value for pre-multiplied P * Mv, updated bygetPMv().  More... | |
| static constexpr const uint32_t | PREMUL_PMVI = 1 << 5 | 
| Bit value for pre-multiplied invert(P * Mv), updated bygetPMvi().  More... | |
PMVMatrix4 implements the basic computer graphics Matrix4 pack using projection (P), modelview (Mv) and texture (T) Matrix4 operations.
PMVMatrix4 provides the inverse modelview matrix (Mvi) and inverse transposed modelview matrix (Mvit). Frustum is also provided by getFrustum().
To keep these derived values synchronized after mutable Mv operations like rotateMv(Quaternion) users have to call update() 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 Matrix4.
PMVMatrix4 can supplement GL2ES2 applications w/ the lack of the described matrix functionality.
The native data layout of the matrices are preserved, linear and can be utilized by GLUniformData directly to be pushed to the GPU eventually via SyncMatrix4 and SyncMatrices4, both SyncBuffer specializations for Matrix4.
SyncBuffer's provided sync_action_t ensures that derived matrices, e.g. getMvi(), are updated before use.
SyncBuffer's sync_action_t is called by GLUniformData::getBuffer() i.e. before the data is pushed to the GPU. 
Definition at line 84 of file pmvmat4f.hpp.
| typedef Value_type jau::math::util::PMVMatrix4< Value_type, >::value_type | 
Definition at line 86 of file pmvmat4f.hpp.
| typedef value_type* jau::math::util::PMVMatrix4< Value_type, >::pointer | 
Definition at line 87 of file pmvmat4f.hpp.
| typedef const value_type* jau::math::util::PMVMatrix4< Value_type, >::const_pointer | 
Definition at line 88 of file pmvmat4f.hpp.
| typedef value_type& jau::math::util::PMVMatrix4< Value_type, >::reference | 
Definition at line 89 of file pmvmat4f.hpp.
| typedef const value_type& jau::math::util::PMVMatrix4< Value_type, >::const_reference | 
Definition at line 90 of file pmvmat4f.hpp.
| typedef value_type* jau::math::util::PMVMatrix4< Value_type, >::iterator | 
Definition at line 91 of file pmvmat4f.hpp.
| typedef const value_type* jau::math::util::PMVMatrix4< Value_type, >::const_iterator | 
Definition at line 92 of file pmvmat4f.hpp.
| typedef Vector3F<value_type, std::is_floating_point_v<Value_type> > jau::math::util::PMVMatrix4< Value_type, >::Vec3 | 
Definition at line 94 of file pmvmat4f.hpp.
| typedef Vector4F<value_type, std::is_floating_point_v<Value_type> > jau::math::util::PMVMatrix4< Value_type, >::Vec4 | 
Definition at line 95 of file pmvmat4f.hpp.
| typedef Ray3F<value_type, std::is_floating_point_v<Value_type> > jau::math::util::PMVMatrix4< Value_type, >::Ray3 | 
Definition at line 96 of file pmvmat4f.hpp.
| typedef Matrix4<value_type, std::is_floating_point_v<Value_type> > jau::math::util::PMVMatrix4< Value_type, >::Mat4 | 
Definition at line 97 of file pmvmat4f.hpp.
| typedef SyncMatrix4<value_type, std::is_floating_point_v<Value_type> > jau::math::util::PMVMatrix4< Value_type, >::SyncMat4 | 
Definition at line 98 of file pmvmat4f.hpp.
| typedef SyncMatrices4<value_type, std::is_floating_point_v<Value_type> > jau::math::util::PMVMatrix4< Value_type, >::SyncMats4 | 
Definition at line 99 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Creates an instance of PMVMatrix4.
This constructor only sets up an instance w/o additional derived INVERSE_MODELVIEW or INVERSE_TRANSPOSED_MODELVIEW matrices.
Definition at line 209 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Creates an instance of PMVMatrix4.
Additional derived matrices can be requested via derivedMatrices, i.e.
Implementation uses native Matrix4 elements using column-order fields. Derived matrices are updated at retrieval, e.g. getMvi(), or via synchronized access, e.g. getSyncMvi(), to the actual Mat4 instances.
| derivedMatrices | additional matrices can be requested by passing bits INVERSE_MODELVIEWandINVERSE_TRANSPOSED_MODELVIEW. | 
Definition at line 228 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Issues Mat4#loadIdentity() on all matrices and resets all internal states. 
Definition at line 238 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the texture matrix (T). 
Consider using setTextureDirty() if modifying the returned Mat4. 
Definition at line 260 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Definition at line 261 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the SyncMatrix of texture matrix (T). 
Definition at line 269 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Definition at line 270 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the projection matrix (P). 
Consider using setProjectionDirty() if modifying the returned Mat4. 
Definition at line 281 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Definition at line 282 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the SyncMatrix of projection matrix (P). 
Definition at line 290 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Definition at line 291 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the modelview matrix (Mv). 
Consider using setModelviewDirty() if modifying the returned Mat4. 
Definition at line 302 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Definition at line 303 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the SyncMatrix of modelview matrix (Mv). 
Definition at line 311 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Definition at line 312 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns SyncMatrices4f of 2 matrices within one FloatBuffer: P and Mv. 
Definition at line 320 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Definition at line 321 of file pmvmat4f.hpp.
| 
 | inline | 
Returns the inverse modelview matrix (Mvi) if requested. 
| IllegalArgumentException | if INVERSE_MODELVIEWhas not been requested in ctorPMVMatrix4(int). | 
Definition at line 330 of file pmvmat4f.hpp.
| 
 | inline | 
Returns the SyncMatrix of inverse modelview matrix (Mvi) if requested. 
| IllegalArgumentException | if INVERSE_MODELVIEWhas not been requested in ctorPMVMatrix4(int). | 
Definition at line 345 of file pmvmat4f.hpp.
| 
 | inline | 
Returns the inverse transposed modelview matrix (Mvit) if requested. 
| IllegalArgumentException | if INVERSE_TRANSPOSED_MODELVIEWhas not been requested in ctorPMVMatrix4(int). | 
Definition at line 359 of file pmvmat4f.hpp.
| 
 | inline | 
Returns the SyncMatrix of inverse transposed modelview matrix (Mvit) if requested. 
| IllegalArgumentException | if INVERSE_TRANSPOSED_MODELVIEWhas not been requested in ctorPMVMatrix4(int). | 
Definition at line 374 of file pmvmat4f.hpp.
| 
 | inline | 
Returns SyncMatrices4f of 3 matrices within one FloatBuffer: P, Mv and Mvi if requested. 
| IllegalArgumentException | if INVERSE_MODELVIEWhas not been requested in ctorPMVMatrix4(int). | 
Definition at line 388 of file pmvmat4f.hpp.
| 
 | inline | 
Returns SyncMatrices4f of 4 matrices within one FloatBuffer: P, Mv, Mvi and Mvit if requested. 
| IllegalArgumentException | if INVERSE_TRANSPOSED_MODELVIEWhas not been requested in ctorPMVMatrix4(int). | 
Definition at line 402 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns multiplication result of P and Mv matrix, i.e. 
result = P x Mv
| result | 4x4 matrix storage for result | 
Definition at line 421 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns multiplication result of Mv and P matrix, i.e. 
result = Mv x P
| result | 4x4 matrix storage for result | 
Definition at line 433 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
v_out = Mv * v_in
| v_in | input vector, can be v_out for in-place transformation | 
| v_out | output vector | 
Definition at line 443 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
v_inout = Mv * v_inout
| v_inout | input and output vector, i.e. in-place transformation | 
Definition at line 452 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
v_out = Mv * v_in
Affine 3f-vector transformation by 4x4 matrix, see Mat4#mulVec3(Vec3, Vec3).
| v_in | input vector, can be v_out for in-place transformation | 
| v_out | output vector | 
Definition at line 465 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the modelview matrix with the provided values. 
Definition at line 476 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the modelview matrix with the values of the given Mat4. 
Definition at line 484 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the modelview matrix with the values of the given Quaternion's rotation Quaternion::toMatrix() representation. 
Definition at line 492 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the projection matrix with the provided values. 
Definition at line 501 of file pmvmat4f.hpp.
| 
 | inlineconstexpr | 
Load the projection matrix with the values of the given Mat4. 
Definition at line 509 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the projection matrix with the values of the given Quaternion's rotation Quaternion::toMatrix() representation. 
Definition at line 517 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the texture matrix with the provided values. 
Definition at line 526 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the texture matrix with the values of the given Mat4. 
Definition at line 534 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the texture matrix with the values of the given Quaternion's rotation Quaternion::toMatrix() representation. 
Definition at line 542 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the modelview matrix with the values of the given Mat4. 
Definition at line 551 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the projection matrix with the values of the given Mat4. 
Definition at line 560 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Load the texture matrix with the values of the given Mat4. 
Definition at line 569 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Multiply the modelview matrix: [c] = [c] x [m]. 
| m | the right hand Mat4 | 
Definition at line 580 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Multiply the projection matrix: [c] = [c] x [m]. 
| m | the right hand Mat4 | 
Definition at line 591 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Multiply the texture matrix: [c] = [c] x [m]. 
| m | the right hand Mat4 | 
Definition at line 602 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Translate the modelview matrix. 
| x | |
| y | |
| z | 
Definition at line 615 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Translate the modelview matrix. 
| t | translation vec3 | 
Definition at line 624 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Translate the projection matrix. 
| x | |
| y | |
| z | 
Definition at line 636 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Translate the projection matrix. 
| t | translation vec3 | 
Definition at line 645 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Scale the modelview matrix. 
| x | |
| y | |
| z | 
Definition at line 657 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Scale the modelview matrix. 
| s | scale vec4f | 
Definition at line 666 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Scale the projection matrix. 
| x | |
| y | |
| z | 
Definition at line 678 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Scale the projection matrix. 
| s | scale vec4f | 
Definition at line 687 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Rotate the modelview matrix by the given axis and angle in radians. 
Consider using rotateMv(Quaternion) 
| ang_rad | angle in radians | 
| axis | rotation axis | 
Definition at line 702 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Rotate the modelview matrix by the given axis and angle in radians. 
Consider using rotateMv(Quaternion) 
| ang_rad | angle in radians | 
| axis | rotation axis | 
Definition at line 716 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Rotate the modelview matrix with the given Quaternion's rotation matrix representation. 
| quat | the Quaternion | 
Definition at line 725 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Rotate the projection matrix by the given axis and angle in radians. 
Consider using rotateP(Quaternion) 
| ang_rad | angle in radians | 
| axis | rotation axis | 
Definition at line 740 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Rotate the projection matrix by the given axis and angle in radians. 
Consider using rotateP(Quaternion) 
| ang_rad | angle in radians | 
| axis | rotation axis | 
Definition at line 754 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Rotate the projection matrix with the given Quaternion's rotation matrix representation. 
| quat | the Quaternion | 
Definition at line 763 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Pop the modelview matrix from its stack. 
Definition at line 769 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Pop the projection matrix from its stack. 
Definition at line 775 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Pop the texture matrix from its stack. 
Definition at line 781 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Push the modelview matrix to its stack, while preserving its values. 
Definition at line 787 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Push the projection matrix to its stack, while preserving its values. 
Definition at line 792 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Push the texture matrix to its stack, while preserving its values. 
Definition at line 797 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Multiply the projection matrix with the orthogonal matrix. 
| left | |
| right | |
| bottom | |
| top | |
| zNear | |
| zFar | 
Definition at line 812 of file pmvmat4f.hpp.
| 
 | inline | 
Multiply the projection matrix with the frustum matrix. 
| IllegalArgumentException | if zNear <= 0orzFar <= zNearorleft == right, orbottom == top. | 
Definition at line 824 of file pmvmat4f.hpp.
| 
 | inline | 
Multiply the projection matrix with the perspective/frustum matrix. 
| fovy_rad | fov angle in radians | 
| aspect | aspect ratio width / height | 
| zNear | |
| zFar | 
| IllegalArgumentException | if zNear <= 0orzFar <= zNear | 
Definition at line 843 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Multiply the projection matrix with the eye, object and orientation, i.e. 
Mat4#setToLookAt(Vec3, Vec3, Vec3, Mat4). 
Definition at line 853 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Map object coordinates to window coordinates.
Traditional gluProject implementation. 
| objPos | 3 component object coordinate | 
| viewport | Rect4i viewport | 
| winPos | 3 component window coordinate, the result | 
Definition at line 871 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Map window coordinates to object coordinates.
Traditional gluUnProject implementation. 
| winx | |
| winy | |
| winz | |
| viewport | Rect4i viewport | 
| objPos | 3 component object coordinate, the result | 
Definition at line 888 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Map window coordinates to object coordinates.
Traditional gluUnProject4 implementation. 
| winx | |
| winy | |
| winz | |
| clipw | |
| viewport | Rect4i viewport | 
| near | |
| far | |
| objPos | 4 component object coordinate, the result | 
Definition at line 913 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Map two window coordinates w/ shared X/Y and distinctive Z to a Ray. 
The resulting Ray maybe used for picking using a bounding box. 
Notes for picking winz0 and winz1:
FloatUtil#getZBufferEpsilon(int, float, float) FloatUtil#getZBufferValue(int, float, float, float) FloatUtil#getOrthoWinZ(float, float, float) | winx | |
| winy | |
| winz0 | |
| winz1 | |
| viewport | |
| ray | storage for the resulting Ray | 
Definition at line 942 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Definition at line 947 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
| 
 | inlineconstexprnoexcept | 
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() or getModifiedBits(true) call. 
| clear | if true, clears the modified bits, otherwise leaves them untouched. | 
Definition at line 1028 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the dirty bits due to mutable operations, i.e.
INVERSE_MODELVIEW (if requested)INVERSE_TRANSPOSED_MODELVIEW (if requested)FRUSTUM (always, cleared via getFrustum() A dirty bit is set, if the corresponding matrix had been modified by a mutable operation since last update() call and requested in the constructor PMVMatrix4(int). 
update() clears the dirty state for the matrices and getFrustum() for FRUSTUM. 
Definition at line 1061 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns true if the one of the requested bits are are set dirty due to mutable operations, i.e. 
at least one of
A dirty bit is set, if the corresponding matrix had been modified by a mutable operation since last update() call and requested in the constructor PMVMatrix4(int). 
update() clears the dirty state for the matrices and getFrustum() for FRUSTUM. 
Definition at line 1086 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Sets the Modelview (Mv) matrix dirty and modified, i.e. 
adds requested bits and MANUAL_BITS to dirty bits. 
Definition at line 1095 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Sets the Projection (P) matrix dirty and modified, i.e. 
adds MANUAL_BITS to dirty bits. 
Definition at line 1104 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Sets the Texture (T) matrix modified. 
Definition at line 1112 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the request bit mask, which uses bit values equal to the dirty mask and may contain.
The request bit mask is set by in the constructor PMVMatrix4(int). 
Definition at line 1134 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the pre-multiplied projection x modelview, P x Mv.
This Mat4 instance should be re-fetched via this method and not locally stored to have it updated from a potential modification of underlying projection and/or modelview matrix. update() has no effect on this Mat4. 
This pre-multipled P x Mv is considered dirty, if its corresponding P matrix or Mv matrix has been modified since its last update. 
Definition at line 1151 of file pmvmat4f.hpp.
| 
 | inlineconstexprnoexcept | 
Returns the pre-multiplied inverse projection x modelview, if Mat4#invert(Mat4) succeeded, otherwise null. 
This Mat4 instance should be re-fetched via this method and not locally stored to have it updated from a potential modification of underlying projection and/or modelview matrix. update() has no effect on this Mat4. 
This pre-multipled invert(P x Mv) is considered dirty, if its corresponding P matrix or Mv matrix has been modified since its last update. 
Definition at line 1173 of file pmvmat4f.hpp.
| 
 | inlinenoexcept | 
Returns the frustum, derived from projection x modelview.
This Frustum instance should be re-fetched via this method and not locally stored to have it updated from a potential modification of underlying projection and/or modelview matrix. update() has no effect on this Frustum. 
The Frustum is considered dirty, if its corresponding P matrix or Mv matrix has been modified since its last update. 
Definition at line 1195 of file pmvmat4f.hpp.
| 
 | inline | 
Update the derived inverse modelview (Mvi), inverse transposed modelview (Mvit) matrices if they are dirty and requested via the constructor PMVMatrix4(int). 
 Hence updates the following dirty bits.
The Frustum is updated only via getFrustum() separately. 
The Mvi and Mvit matrices are considered dirty, if their corresponding Mv matrix has been modified since their last update. 
Method is automatically called by SyncMat4 and SyncMatrices4f instances SyncAction as retrieved by e.g. getSyncMvit(). This ensures an automatic update cycle if used with com.jogamp.opengl.GLUniformData. 
Method may be called manually in case mutable operations has been called and caller operates on already fetched references, i.e. not calling getMvi(), getMvit() anymore. 
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. 
Definition at line 1249 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value stating a modified projection matrix (P), since last update() call. 
Definition at line 182 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value stating a modified modelview matrix (Mv), since last update() call. 
Definition at line 184 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value stating a modified texture matrix (T), since last update() call. 
Definition at line 186 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value stating all is modified.
Definition at line 188 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value for inverse modelview matrix (Mvi), updated via update(). 
Definition at line 190 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value for inverse transposed modelview matrix (Mvit), updated via update(). 
Definition at line 192 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value for frustum and updated by getFrustum(). 
Definition at line 194 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value for pre-multiplied P * Mv, updated by getPMv(). 
Definition at line 196 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Bit value for pre-multiplied invert(P * Mv), updated by getPMvi(). 
Definition at line 198 of file pmvmat4f.hpp.
| 
 | staticconstexpr | 
Manual bits not covered by update() but getFrustum(), FRUSTUM, getPMv(), PREMUL_PMV, getPMvi(), PREMUL_PMVI, etc. 
Definition at line 200 of file pmvmat4f.hpp.