Uses of Class
org.joml.Matrix4f

Packages that use Matrix4f
Package
Description
Contains all classes of JOML.
  • Uses of Matrix4f in org.joml

    Subclasses of Matrix4f in org.joml
    Modifier and Type
    Class
    Description
    class 
    A stack of many Matrix4f instances.
    Methods in org.joml that return Matrix4f
    Modifier and Type
    Method
    Description
    Matrix4f.add(Matrix4fc other)
    Component-wise add this and other.
    Matrix4f.add(Matrix4fc other, Matrix4f dest)
     
    Matrix4fc.add(Matrix4fc other, Matrix4f dest)
    Component-wise add this and other and store the result in dest.
    Matrix4f.add4x3(Matrix4fc other)
    Component-wise add the upper 4x3 submatrices of this and other.
    Matrix4f.add4x3(Matrix4fc other, Matrix4f dest)
     
    Matrix4fc.add4x3(Matrix4fc other, Matrix4f dest)
    Component-wise add the upper 4x3 submatrices of this and other and store the result in dest.
    Matrix4f.affineSpan(Vector3f corner, Vector3f xDir, Vector3f yDir, Vector3f zDir)
    Compute the extents of the coordinate system before this affine transformation was applied and store the resulting corner coordinates in corner and the span vectors in xDir, yDir and zDir.
    Matrix4f.arcball(float radius, float centerX, float centerY, float centerZ, float angleX, float angleY)
    Apply an arcball view transformation to this matrix with the given radius and center (centerX, centerY, centerZ) position of the arcball and the specified X and Y rotation angles.
    Matrix4f.arcball(float radius, float centerX, float centerY, float centerZ, float angleX, float angleY, Matrix4f dest)
     
    Matrix4f.arcball(float radius, Vector3fc center, float angleX, float angleY)
    Apply an arcball view transformation to this matrix with the given radius and center position of the arcball and the specified X and Y rotation angles.
    Matrix4f.arcball(float radius, Vector3fc center, float angleX, float angleY, Matrix4f dest)
     
    Matrix4fc.arcball(float radius, float centerX, float centerY, float centerZ, float angleX, float angleY, Matrix4f dest)
    Apply an arcball view transformation to this matrix with the given radius and center (centerX, centerY, centerZ) position of the arcball and the specified X and Y rotation angles, and store the result in dest.
    Matrix4fc.arcball(float radius, Vector3fc center, float angleX, float angleY, Matrix4f dest)
    Apply an arcball view transformation to this matrix with the given radius and center position of the arcball and the specified X and Y rotation angles, and store the result in dest.
    Matrix4f.assume(int properties)
    Assume the given properties about this matrix.
    Matrix4f.billboardCylindrical(Vector3fc objPos, Vector3fc targetPos, Vector3fc up)
    Set this matrix to a cylindrical billboard transformation that rotates the local +Z axis of a given object with position objPos towards a target position at targetPos while constraining a cylindrical rotation around the given up vector.
    Matrix4f.billboardSpherical(Vector3fc objPos, Vector3fc targetPos)
    Set this matrix to a spherical billboard transformation that rotates the local +Z axis of a given object with position objPos towards a target position at targetPos using a shortest arc rotation by not preserving any up vector of the object.
    Matrix4f.billboardSpherical(Vector3fc objPos, Vector3fc targetPos, Vector3fc up)
    Set this matrix to a spherical billboard transformation that rotates the local +Z axis of a given object with position objPos towards a target position at targetPos.
    Matrix4f.cofactor3x3()
    Compute the cofactor matrix of the upper left 3x3 submatrix of this.
    Matrix4f.cofactor3x3(Matrix4f dest)
    Compute the cofactor matrix of the upper left 3x3 submatrix of this and store it into dest.
    Matrix4fc.cofactor3x3(Matrix4f dest)
    Compute the cofactor matrix of the upper left 3x3 submatrix of this and store it into dest.
    Compute and set the matrix properties returned by properties() based on the current matrix element values.
    Matrix4f.fma4x3(Matrix4fc other, float otherFactor)
    Component-wise add the upper 4x3 submatrices of this and other by first multiplying each component of other's 4x3 submatrix by otherFactor and adding that result to this.
    Matrix4f.fma4x3(Matrix4fc other, float otherFactor, Matrix4f dest)
     
    Matrix4fc.fma4x3(Matrix4fc other, float otherFactor, Matrix4f dest)
    Component-wise add the upper 4x3 submatrices of this and other by first multiplying each component of other's 4x3 submatrix by otherFactor, adding that to this and storing the final result in dest.
    Matrix4f.frustum(float left, float right, float bottom, float top, float zNear, float zFar)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.frustum(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.frustum(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.frustum(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.frustum(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.frustum(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.frustumAabb(Vector3f min, Vector3f max)
    Compute the axis-aligned bounding box of the frustum described by this matrix and store the minimum corner coordinates in the given min and the maximum corner coordinates in the given max vector.
    Matrix4fc.frustumAabb(Vector3f min, Vector3f max)
    Compute the axis-aligned bounding box of the frustum described by this matrix and store the minimum corner coordinates in the given min and the maximum corner coordinates in the given max vector.
    Matrix4f.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    AxisAngle4d.get(Matrix4f m)
    Set the given Matrix4f to a rotation transformation equivalent to this AxisAngle4d.
    AxisAngle4f.get(Matrix4f m)
    Set the given Matrix4f to a rotation transformation equivalent to this AxisAngle4f.
    Matrix3f.get(Matrix4f dest)
     
    Matrix3fc.get(Matrix4f dest)
    Get the current values of this matrix and store them as the rotational component of dest.
    Matrix4f.get(Matrix4f dest)
    Get the current values of this matrix and store them into dest.
    Matrix4fc.get(Matrix4f dest)
    Get the current values of this matrix and store them into dest.
    Matrix4x3f.get(Matrix4f dest)
     
    Matrix4x3fc.get(Matrix4f dest)
    Get the current values of this matrix and store them into the upper 4x3 submatrix of dest.
    Quaterniond.get(Matrix4f dest)
     
    Quaterniondc.get(Matrix4f dest)
    Set the given destination matrix to the rotation represented by this.
    Quaternionf.get(Matrix4f dest)
     
    Quaternionfc.get(Matrix4f dest)
    Set the given destination matrix to the rotation represented by this.
    Matrix4f.identity()
    Reset this matrix to the identity.
    Matrix4f.invert()
    Invert this matrix.
    Matrix4f.invert(Matrix4f dest)
     
    Matrix4fc.invert(Matrix4f dest)
    Invert this matrix and write the result into dest.
    Matrix4x3f.invert(Matrix4f dest)
     
    Matrix4x3fc.invert(Matrix4f dest)
    Invert this matrix and write the result as the top 4x3 matrix into dest and set all other values of dest to identity..
    Matrix4f.invertAffine()
    Invert this matrix by assuming that it is an affine transformation (i.e.
    Matrix4f.invertAffine(Matrix4f dest)
     
    Matrix4fc.invertAffine(Matrix4f dest)
    Invert this matrix by assuming that it is an affine transformation (i.e.
    Matrix4f.invertFrustum()
    If this is an arbitrary perspective projection matrix obtained via one of the frustum() methods or via setFrustum(), then this method builds the inverse of this.
    Matrix4f.invertFrustum(Matrix4f dest)
    If this is an arbitrary perspective projection matrix obtained via one of the frustum() methods or via setFrustum(), then this method builds the inverse of this and stores it into the given dest.
    Matrix4fc.invertFrustum(Matrix4f dest)
    If this is an arbitrary perspective projection matrix obtained via one of the frustum() methods, then this method builds the inverse of this and stores it into the given dest.
    Matrix4f.invertOrtho()
    Invert this orthographic projection matrix.
    Matrix4f.invertOrtho(Matrix4f dest)
     
    Matrix4fc.invertOrtho(Matrix4f dest)
    Invert this orthographic projection matrix and store the result into the given dest.
    If this is a perspective projection matrix obtained via one of the perspective() methods or via setPerspective(), that is, if this is a symmetrical perspective frustum transformation, then this method builds the inverse of this.
    Matrix4f.invertPerspective(Matrix4f dest)
    If this is a perspective projection matrix obtained via one of the perspective() methods or via setPerspective(), that is, if this is a symmetrical perspective frustum transformation, then this method builds the inverse of this and stores it into the given dest.
    Matrix4fc.invertPerspective(Matrix4f dest)
    If this is a perspective projection matrix obtained via one of the perspective() methods, that is, if this is a symmetrical perspective frustum transformation, then this method builds the inverse of this and stores it into the given dest.
    If this is a perspective projection matrix obtained via one of the perspective() methods or via setPerspective(), that is, if this is a symmetrical perspective frustum transformation and the given view matrix is affine and has unit scaling (for example by being obtained via lookAt()), then this method builds the inverse of this * view and stores it into the given dest.
    If this is a perspective projection matrix obtained via one of the perspective() methods or via setPerspective(), that is, if this is a symmetrical perspective frustum transformation and the given view matrix has unit scaling, then this method builds the inverse of this * view and stores it into the given dest.
    Matrix4fc.invertPerspectiveView(Matrix4fc view, Matrix4f dest)
    If this is a perspective projection matrix obtained via one of the perspective() methods, that is, if this is a symmetrical perspective frustum transformation and the given view matrix is affine and has unit scaling (for example by being obtained via lookAt()), then this method builds the inverse of this * view and stores it into the given dest.
    If this is a perspective projection matrix obtained via one of the perspective() methods, that is, if this is a symmetrical perspective frustum transformation and the given view matrix has unit scaling, then this method builds the inverse of this * view and stores it into the given dest.
    Matrix4f.lerp(Matrix4fc other, float t)
    Linearly interpolate this and other using the given interpolation factor t and store the result in this.
    Matrix4f.lerp(Matrix4fc other, float t, Matrix4f dest)
     
    Matrix4fc.lerp(Matrix4fc other, float t, Matrix4f dest)
    Linearly interpolate this and other using the given interpolation factor t and store the result in dest.
    Matrix4f.lookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ)
    Apply a rotation transformation to this matrix to make -z point along dir.
    Matrix4f.lookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a rotation transformation to this matrix to make -z point along dir and store the result in dest.
    Matrix4f.lookAlong(Vector3fc dir, Vector3fc up)
    Apply a rotation transformation to this matrix to make -z point along dir.
    Matrix4f.lookAlong(Vector3fc dir, Vector3fc up, Matrix4f dest)
    Apply a rotation transformation to this matrix to make -z point along dir and store the result in dest.
    Matrix4fc.lookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a rotation transformation to this matrix to make -z point along dir and store the result in dest.
    Matrix4fc.lookAlong(Vector3fc dir, Vector3fc up, Matrix4f dest)
    Apply a rotation transformation to this matrix to make -z point along dir and store the result in dest.
    Matrix4f.lookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye.
    Matrix4f.lookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4f.lookAt(Vector3fc eye, Vector3fc center, Vector3fc up)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye.
    Matrix4f.lookAt(Vector3fc eye, Vector3fc center, Vector3fc up, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4fc.lookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4fc.lookAt(Vector3fc eye, Vector3fc center, Vector3fc up, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4f.lookAtLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye.
    Matrix4f.lookAtLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4f.lookAtLH(Vector3fc eye, Vector3fc center, Vector3fc up)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye.
    Matrix4f.lookAtLH(Vector3fc eye, Vector3fc center, Vector3fc up, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4fc.lookAtLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4fc.lookAtLH(Vector3fc eye, Vector3fc center, Vector3fc up, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4f.lookAtPerspective(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4fc.lookAtPerspective(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4f.lookAtPerspectiveLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4fc.lookAtPerspectiveLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4f.m00(float m00)
    Set the value of the matrix element at column 0 and row 0.
    Matrix4f.m01(float m01)
    Set the value of the matrix element at column 0 and row 1.
    Matrix4f.m02(float m02)
    Set the value of the matrix element at column 0 and row 2.
    Matrix4f.m03(float m03)
    Set the value of the matrix element at column 0 and row 3.
    Matrix4f.m10(float m10)
    Set the value of the matrix element at column 1 and row 0.
    Matrix4f.m11(float m11)
    Set the value of the matrix element at column 1 and row 1.
    Matrix4f.m12(float m12)
    Set the value of the matrix element at column 1 and row 2.
    Matrix4f.m13(float m13)
    Set the value of the matrix element at column 1 and row 3.
    Matrix4f.m20(float m20)
    Set the value of the matrix element at column 2 and row 0.
    Matrix4f.m21(float m21)
    Set the value of the matrix element at column 2 and row 1.
    Matrix4f.m22(float m22)
    Set the value of the matrix element at column 2 and row 2.
    Matrix4f.m23(float m23)
    Set the value of the matrix element at column 2 and row 3.
    Matrix4f.m30(float m30)
    Set the value of the matrix element at column 3 and row 0.
    Matrix4f.m31(float m31)
    Set the value of the matrix element at column 3 and row 1.
    Matrix4f.m32(float m32)
    Set the value of the matrix element at column 3 and row 2.
    Matrix4f.m33(float m33)
    Set the value of the matrix element at column 3 and row 3.
    Matrix4f.mapnXnYnZ()
    Multiply this by the matrix
    Matrix4f.mapnXnYnZ(Matrix4f dest)
     
    Matrix4fc.mapnXnYnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXnYZ()
    Multiply this by the matrix
    Matrix4f.mapnXnYZ(Matrix4f dest)
     
    Matrix4fc.mapnXnYZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXnZnY()
    Multiply this by the matrix
    Matrix4f.mapnXnZnY(Matrix4f dest)
     
    Matrix4fc.mapnXnZnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXnZY()
    Multiply this by the matrix
    Matrix4f.mapnXnZY(Matrix4f dest)
     
    Matrix4fc.mapnXnZY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXYnZ()
    Multiply this by the matrix
    Matrix4f.mapnXYnZ(Matrix4f dest)
     
    Matrix4fc.mapnXYnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXZnY()
    Multiply this by the matrix
    Matrix4f.mapnXZnY(Matrix4f dest)
     
    Matrix4fc.mapnXZnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXZY()
    Multiply this by the matrix
    Matrix4f.mapnXZY(Matrix4f dest)
     
    Matrix4fc.mapnXZY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYnXnZ()
    Multiply this by the matrix
    Matrix4f.mapnYnXnZ(Matrix4f dest)
     
    Matrix4fc.mapnYnXnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYnXZ()
    Multiply this by the matrix
    Matrix4f.mapnYnXZ(Matrix4f dest)
     
    Matrix4fc.mapnYnXZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYnZnX()
    Multiply this by the matrix
    Matrix4f.mapnYnZnX(Matrix4f dest)
     
    Matrix4fc.mapnYnZnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYnZX()
    Multiply this by the matrix
    Matrix4f.mapnYnZX(Matrix4f dest)
     
    Matrix4fc.mapnYnZX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYXnZ()
    Multiply this by the matrix
    Matrix4f.mapnYXnZ(Matrix4f dest)
     
    Matrix4fc.mapnYXnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYXZ()
    Multiply this by the matrix
    Matrix4f.mapnYXZ(Matrix4f dest)
     
    Matrix4fc.mapnYXZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYZnX()
    Multiply this by the matrix
    Matrix4f.mapnYZnX(Matrix4f dest)
     
    Matrix4fc.mapnYZnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYZX()
    Multiply this by the matrix
    Matrix4f.mapnYZX(Matrix4f dest)
     
    Matrix4fc.mapnYZX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZnXnY()
    Multiply this by the matrix
    Matrix4f.mapnZnXnY(Matrix4f dest)
     
    Matrix4fc.mapnZnXnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZnXY()
    Multiply this by the matrix
    Matrix4f.mapnZnXY(Matrix4f dest)
     
    Matrix4fc.mapnZnXY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZnYnX()
    Multiply this by the matrix
    Matrix4f.mapnZnYnX(Matrix4f dest)
     
    Matrix4fc.mapnZnYnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZnYX()
    Multiply this by the matrix
    Matrix4f.mapnZnYX(Matrix4f dest)
     
    Matrix4fc.mapnZnYX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZXnY()
    Multiply this by the matrix
    Matrix4f.mapnZXnY(Matrix4f dest)
     
    Matrix4fc.mapnZXnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZXY()
    Multiply this by the matrix
    Matrix4f.mapnZXY(Matrix4f dest)
     
    Matrix4fc.mapnZXY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZYnX()
    Multiply this by the matrix
    Matrix4f.mapnZYnX(Matrix4f dest)
     
    Matrix4fc.mapnZYnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZYX()
    Multiply this by the matrix
    Matrix4f.mapnZYX(Matrix4f dest)
     
    Matrix4fc.mapnZYX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXnYnZ()
    Multiply this by the matrix
    Matrix4f.mapXnYnZ(Matrix4f dest)
     
    Matrix4fc.mapXnYnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXnZnY()
    Multiply this by the matrix
    Matrix4f.mapXnZnY(Matrix4f dest)
     
    Matrix4fc.mapXnZnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXnZY()
    Multiply this by the matrix
    Matrix4f.mapXnZY(Matrix4f dest)
     
    Matrix4fc.mapXnZY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXZnY()
    Multiply this by the matrix
    Matrix4f.mapXZnY(Matrix4f dest)
     
    Matrix4fc.mapXZnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXZY()
    Multiply this by the matrix
    Matrix4f.mapXZY(Matrix4f dest)
     
    Matrix4fc.mapXZY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYnXnZ()
    Multiply this by the matrix
    Matrix4f.mapYnXnZ(Matrix4f dest)
     
    Matrix4fc.mapYnXnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYnXZ()
    Multiply this by the matrix
    Matrix4f.mapYnXZ(Matrix4f dest)
     
    Matrix4fc.mapYnXZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYnZnX()
    Multiply this by the matrix
    Matrix4f.mapYnZnX(Matrix4f dest)
     
    Matrix4fc.mapYnZnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYnZX()
    Multiply this by the matrix
    Matrix4f.mapYnZX(Matrix4f dest)
     
    Matrix4fc.mapYnZX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYXnZ()
    Multiply this by the matrix
    Matrix4f.mapYXnZ(Matrix4f dest)
     
    Matrix4fc.mapYXnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYXZ()
    Multiply this by the matrix
    Matrix4f.mapYXZ(Matrix4f dest)
     
    Matrix4fc.mapYXZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYZnX()
    Multiply this by the matrix
    Matrix4f.mapYZnX(Matrix4f dest)
     
    Matrix4fc.mapYZnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYZX()
    Multiply this by the matrix
    Matrix4f.mapYZX(Matrix4f dest)
     
    Matrix4fc.mapYZX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZnXnY()
    Multiply this by the matrix
    Matrix4f.mapZnXnY(Matrix4f dest)
     
    Matrix4fc.mapZnXnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZnXY()
    Multiply this by the matrix
    Matrix4f.mapZnXY(Matrix4f dest)
     
    Matrix4fc.mapZnXY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZnYnX()
    Multiply this by the matrix
    Matrix4f.mapZnYnX(Matrix4f dest)
     
    Matrix4fc.mapZnYnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZnYX()
    Multiply this by the matrix
    Matrix4f.mapZnYX(Matrix4f dest)
     
    Matrix4fc.mapZnYX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZXnY()
    Multiply this by the matrix
    Matrix4f.mapZXnY(Matrix4f dest)
     
    Matrix4fc.mapZXnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZXY()
    Multiply this by the matrix
    Matrix4f.mapZXY(Matrix4f dest)
     
    Matrix4fc.mapZXY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZYnX()
    Multiply this by the matrix
    Matrix4f.mapZYnX(Matrix4f dest)
     
    Matrix4fc.mapZYnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZYX()
    Multiply this by the matrix
    Matrix4f.mapZYX(Matrix4f dest)
     
    Matrix4fc.mapZYX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mul(float r00, float r01, float r02, float r03, float r10, float r11, float r12, float r13, float r20, float r21, float r22, float r23, float r30, float r31, float r32, float r33)
    Multiply this matrix by the matrix with the supplied elements.
    Matrix4f.mul(float r00, float r01, float r02, float r03, float r10, float r11, float r12, float r13, float r20, float r21, float r22, float r23, float r30, float r31, float r32, float r33, Matrix4f dest)
     
    Matrix4f.mul(Matrix3x2fc right)
    Multiply this matrix by the supplied right matrix and store the result in this.
    Matrix4f.mul(Matrix3x2fc right, Matrix4f dest)
     
    Matrix4f.mul(Matrix4fc right)
    Multiply this matrix by the supplied right matrix and store the result in this.
    Matrix4f.mul(Matrix4fc right, Matrix4f dest)
     
    Matrix4f.mul(Matrix4x3fc right)
    Multiply this matrix by the supplied right matrix and store the result in this.
    Matrix4f.mul(Matrix4x3fc right, Matrix4f dest)
     
    Matrix4fc.mul(float r00, float r01, float r02, float r03, float r10, float r11, float r12, float r13, float r20, float r21, float r22, float r23, float r30, float r31, float r32, float r33, Matrix4f dest)
    Multiply this matrix by the matrix with the supplied elements and store the result in dest.
    Matrix4fc.mul(Matrix3x2fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix and store the result in dest.
    Matrix4fc.mul(Matrix4fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix and store the result in dest.
    Matrix4fc.mul(Matrix4x3fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix and store the result in dest.
    Matrix4f.mul0(Matrix4fc right)
    Multiply this matrix by the supplied right matrix.
    Matrix4f.mul0(Matrix4fc right, Matrix4f dest)
     
    Matrix4fc.mul0(Matrix4fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix and store the result in dest.
    Matrix4f.mul3x3(float r00, float r01, float r02, float r10, float r11, float r12, float r20, float r21, float r22)
    Multiply this matrix by the 3x3 matrix with the supplied elements expanded to a 4x4 matrix with all other matrix elements set to identity.
    Matrix4f.mul3x3(float r00, float r01, float r02, float r10, float r11, float r12, float r20, float r21, float r22, Matrix4f dest)
     
    Matrix4fc.mul3x3(float r00, float r01, float r02, float r10, float r11, float r12, float r20, float r21, float r22, Matrix4f dest)
    Multiply this matrix by the 3x3 matrix with the supplied elements expanded to a 4x4 matrix with all other matrix elements set to identity, and store the result in dest.
    Component-wise multiply the upper 4x3 submatrices of this by other.
    Matrix4f.mul4x3ComponentWise(Matrix4fc other, Matrix4f dest)
     
    Matrix4fc.mul4x3ComponentWise(Matrix4fc other, Matrix4f dest)
    Component-wise multiply the upper 4x3 submatrices of this by other and store the result in dest.
    Matrix4f.mulAffine(Matrix4fc right)
    Multiply this matrix by the supplied right matrix, both of which are assumed to be affine, and store the result in this.
    Matrix4f.mulAffine(Matrix4fc right, Matrix4f dest)
     
    Matrix4fc.mulAffine(Matrix4fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix, both of which are assumed to be affine, and store the result in dest.
    Matrix4f.mulAffineR(Matrix4fc right)
    Multiply this matrix by the supplied right matrix, which is assumed to be affine, and store the result in this.
    Matrix4f.mulAffineR(Matrix4fc right, Matrix4f dest)
     
    Matrix4fc.mulAffineR(Matrix4fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix, which is assumed to be affine, and store the result in dest.
    Matrix4f.mulComponentWise(Matrix4fc other)
    Component-wise multiply this by other.
    Matrix4f.mulComponentWise(Matrix4fc other, Matrix4f dest)
     
    Matrix4fc.mulComponentWise(Matrix4fc other, Matrix4f dest)
    Component-wise multiply this by other and store the result in dest.
    Matrix4f.mulLocal(Matrix4fc left)
    Pre-multiply this matrix by the supplied left matrix and store the result in this.
    Matrix4f.mulLocal(Matrix4fc left, Matrix4f dest)
     
    Matrix4fc.mulLocal(Matrix4fc left, Matrix4f dest)
    Pre-multiply this matrix by the supplied left matrix and store the result in dest.
    Matrix4f.mulLocalAffine(Matrix4fc left)
    Pre-multiply this matrix by the supplied left matrix, both of which are assumed to be affine, and store the result in this.
    Matrix4f.mulLocalAffine(Matrix4fc left, Matrix4f dest)
     
    Matrix4fc.mulLocalAffine(Matrix4fc left, Matrix4f dest)
    Pre-multiply this matrix by the supplied left matrix, both of which are assumed to be affine, and store the result in dest.
    Matrix4f.mulOrthoAffine(Matrix4fc view)
    Multiply this orthographic projection matrix by the supplied affine view matrix.
    Matrix4f.mulOrthoAffine(Matrix4fc view, Matrix4f dest)
     
    Matrix4fc.mulOrthoAffine(Matrix4fc view, Matrix4f dest)
    Multiply this orthographic projection matrix by the supplied affine view matrix and store the result in dest.
    Multiply this symmetric perspective projection matrix by the supplied affine view matrix.
    Matrix4f.mulPerspectiveAffine(Matrix4fc view, Matrix4f dest)
     
    Multiply this symmetric perspective projection matrix by the supplied view matrix.
     
    Matrix4fc.mulPerspectiveAffine(Matrix4fc view, Matrix4f dest)
    Multiply this symmetric perspective projection matrix by the supplied affine view matrix and store the result in dest.
    Matrix4fc.mulPerspectiveAffine(Matrix4x3fc view, Matrix4f dest)
    Multiply this symmetric perspective projection matrix by the supplied view matrix and store the result in dest.
    Matrix4f.mulTranslationAffine(Matrix4fc right, Matrix4f dest)
     
    Matrix4fc.mulTranslationAffine(Matrix4fc right, Matrix4f dest)
    Multiply this matrix, which is assumed to only contain a translation, by the supplied right matrix, which is assumed to be affine, and store the result in dest.
    Matrix4f.negateX()
    Multiply this by the matrix
    Matrix4f.negateX(Matrix4f dest)
     
    Matrix4fc.negateX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.negateY()
    Multiply this by the matrix
    Matrix4f.negateY(Matrix4f dest)
     
    Matrix4fc.negateY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.negateZ()
    Multiply this by the matrix
    Matrix4f.negateZ(Matrix4f dest)
     
    Matrix4fc.negateZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.normal()
    Compute a normal matrix from the upper left 3x3 submatrix of this and store it into the upper left 3x3 submatrix of this.
    Matrix4f.normal(Matrix4f dest)
    Compute a normal matrix from the upper left 3x3 submatrix of this and store it into the upper left 3x3 submatrix of dest.
    Matrix4fc.normal(Matrix4f dest)
    Compute a normal matrix from the upper left 3x3 submatrix of this and store it into the upper left 3x3 submatrix of dest.
    Matrix4f.normalize3x3()
    Normalize the upper left 3x3 submatrix of this matrix.
    Matrix4f.normalize3x3(Matrix4f dest)
     
    Matrix4fc.normalize3x3(Matrix4f dest)
    Normalize the upper left 3x3 submatrix of this matrix and store the result in dest.
    Matrix4f.obliqueZ(float a, float b)
    Apply an oblique projection transformation to this matrix with the given values for a and b.
    Matrix4f.obliqueZ(float a, float b, Matrix4f dest)
    Apply an oblique projection transformation to this matrix with the given values for a and b and store the result in dest.
    Matrix4fc.obliqueZ(float a, float b, Matrix4f dest)
    Apply an oblique projection transformation to this matrix with the given values for a and b and store the result in dest.
    Matrix4f.ortho(float left, float right, float bottom, float top, float zNear, float zFar)
    Apply an orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.ortho(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne)
    Apply an orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.ortho(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.ortho(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.ortho(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.ortho(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.ortho2D(float left, float right, float bottom, float top)
    Apply an orthographic projection transformation for a right-handed coordinate system to this matrix.
    Matrix4f.ortho2D(float left, float right, float bottom, float top, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system to this matrix and store the result in dest.
    Matrix4fc.ortho2D(float left, float right, float bottom, float top, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system to this matrix and store the result in dest.
    Matrix4f.ortho2DLH(float left, float right, float bottom, float top)
    Apply an orthographic projection transformation for a left-handed coordinate system to this matrix.
    Matrix4f.ortho2DLH(float left, float right, float bottom, float top, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordinate system to this matrix and store the result in dest.
    Matrix4fc.ortho2DLH(float left, float right, float bottom, float top, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordinate system to this matrix and store the result in dest.
    Matrix4f.orthoCrop(Matrix4fc view, Matrix4f dest)
    Build an ortographic projection transformation that fits the view-projection transformation represented by this into the given affine view transformation.
    Matrix4fc.orthoCrop(Matrix4fc view, Matrix4f dest)
    Build an ortographic projection transformation that fits the view-projection transformation represented by this into the given affine view transformation.
    Matrix4f.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar)
    Apply an orthographic projection transformation for a left-handed coordiante system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne)
    Apply an orthographic projection transformation for a left-handed coordiante system using the given NDC z range to this matrix.
    Matrix4f.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordiante system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordiante system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordiante system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordiante system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.orthoSymmetric(float width, float height, float zNear, float zFar)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.orthoSymmetric(float width, float height, float zNear, float zFar, boolean zZeroToOne)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.orthoSymmetric(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.orthoSymmetric(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.orthoSymmetric(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.orthoSymmetric(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.orthoSymmetricLH(float width, float height, float zNear, float zFar)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.orthoSymmetricLH(float width, float height, float zNear, float zFar, boolean zZeroToOne)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.orthoSymmetricLH(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.orthoSymmetricLH(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.orthoSymmetricLH(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.orthoSymmetricLH(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspective(float fovy, float aspect, float zNear, float zFar)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.perspective(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne)
    Apply a symmetric perspective projection frustum transformation using for a right-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.perspective(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.perspective(float fovy, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.perspective(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspective(float fovy, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveFrustumSlice(float near, float far, Matrix4f dest)
    Change the near and far clip plane distances of this perspective frustum transformation matrix and store the result in dest.
    Matrix4fc.perspectiveFrustumSlice(float near, float far, Matrix4f dest)
    Change the near and far clip plane distances of this perspective frustum transformation matrix and store the result in dest.
    Matrix4f.perspectiveLH(float fovy, float aspect, float zNear, float zFar)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.perspectiveLH(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.perspectiveLH(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.perspectiveLH(float fovy, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.perspectiveLH(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveLH(float fovy, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, boolean zZeroToOne)
    Apply an asymmetric off-center perspective projection frustum transformation using for a right-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
     
    Matrix4f.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, Matrix4f dest)
     
    Matrix4fc.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar)
    Apply an asymmetric off-center perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne)
    Apply an asymmetric off-center perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
     
    Matrix4f.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, Matrix4f dest)
     
    Matrix4fc.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveRect(float width, float height, float zNear, float zFar)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix.
    Matrix4f.perspectiveRect(float width, float height, float zNear, float zFar, boolean zZeroToOne)
    Apply a symmetric perspective projection frustum transformation using for a right-handed coordinate system using the given NDC z range to this matrix.
    Matrix4f.perspectiveRect(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.perspectiveRect(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.perspectiveRect(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveRect(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.pick(float x, float y, float width, float height, int[] viewport)
    Apply a picking transformation to this matrix using the given window coordinates (x, y) as the pick center and the given (width, height) as the size of the picking region in window coordinates.
    Matrix4f.pick(float x, float y, float width, float height, int[] viewport, Matrix4f dest)
     
    Matrix4fc.pick(float x, float y, float width, float height, int[] viewport, Matrix4f dest)
    Apply a picking transformation to this matrix using the given window coordinates (x, y) as the pick center and the given (width, height) as the size of the picking region in window coordinates, and store the result in dest.
    Matrix4f.projectedGridRange(Matrix4fc projector, float sLower, float sUpper, Matrix4f dest)
     
    Matrix4fc.projectedGridRange(Matrix4fc projector, float sLower, float sUpper, Matrix4f dest)
    Compute the range matrix for the Projected Grid transformation as described in chapter "2.4.2 Creating the range conversion matrix" of the paper Real-time water rendering - Introducing the projected grid concept based on the inverse of the view-projection matrix which is assumed to be this, and store that range matrix into dest.
    Matrix4f.reflect(float a, float b, float c, float d)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the equation x*a + y*b + z*c + d = 0.
    Matrix4f.reflect(float nx, float ny, float nz, float px, float py, float pz)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the plane normal and a point on the plane.
    Matrix4f.reflect(float nx, float ny, float nz, float px, float py, float pz, Matrix4f dest)
     
    Matrix4f.reflect(float a, float b, float c, float d, Matrix4f dest)
     
    Matrix4f.reflect(Quaternionfc orientation, Vector3fc point)
    Apply a mirror/reflection transformation to this matrix that reflects about a plane specified via the plane orientation and a point on the plane.
    Matrix4f.reflect(Quaternionfc orientation, Vector3fc point, Matrix4f dest)
     
    Matrix4f.reflect(Vector3fc normal, Vector3fc point)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the plane normal and a point on the plane.
    Matrix4f.reflect(Vector3fc normal, Vector3fc point, Matrix4f dest)
     
    Matrix4fc.reflect(float nx, float ny, float nz, float px, float py, float pz, Matrix4f dest)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the plane normal and a point on the plane, and store the result in dest.
    Matrix4fc.reflect(float a, float b, float c, float d, Matrix4f dest)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the equation x*a + y*b + z*c + d = 0 and store the result in dest.
    Matrix4fc.reflect(Quaternionfc orientation, Vector3fc point, Matrix4f dest)
    Apply a mirror/reflection transformation to this matrix that reflects about a plane specified via the plane orientation and a point on the plane, and store the result in dest.
    Matrix4fc.reflect(Vector3fc normal, Vector3fc point, Matrix4f dest)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the plane normal and a point on the plane, and store the result in dest.
    Matrix4f.reflection(float a, float b, float c, float d)
    Set this matrix to a mirror/reflection transformation that reflects about the given plane specified via the equation x*a + y*b + z*c + d = 0.
    Matrix4f.reflection(float nx, float ny, float nz, float px, float py, float pz)
    Set this matrix to a mirror/reflection transformation that reflects about the given plane specified via the plane normal and a point on the plane.
    Matrix4f.reflection(Quaternionfc orientation, Vector3fc point)
    Set this matrix to a mirror/reflection transformation that reflects about a plane specified via the plane orientation and a point on the plane.
    Matrix4f.reflection(Vector3fc normal, Vector3fc point)
    Set this matrix to a mirror/reflection transformation that reflects about the given plane specified via the plane normal and a point on the plane.
    Matrix4f.rotate(float ang, float x, float y, float z)
    Apply rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis.
    Matrix4f.rotate(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4f.rotate(float angle, Vector3fc axis)
    Apply a rotation transformation, rotating the given radians about the specified axis, to this matrix.
    Matrix4f.rotate(float angle, Vector3fc axis, Matrix4f dest)
    Apply a rotation transformation, rotating the given radians about the specified axis and store the result in dest.
    Matrix4f.rotate(AxisAngle4f axisAngle)
    Apply a rotation transformation, rotating about the given AxisAngle4f, to this matrix.
    Matrix4f.rotate(AxisAngle4f axisAngle, Matrix4f dest)
    Apply a rotation transformation, rotating about the given AxisAngle4f and store the result in dest.
    Matrix4f.rotate(Quaternionfc quat)
    Apply the rotation transformation of the given Quaternionfc to this matrix.
    Matrix4f.rotate(Quaternionfc quat, Matrix4f dest)
    Apply the rotation transformation of the given Quaternionfc to this matrix and store the result in dest.
    Matrix4fc.rotate(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4fc.rotate(float angle, Vector3fc axis, Matrix4f dest)
    Apply a rotation transformation, rotating the given radians about the specified axis and store the result in dest.
    Matrix4fc.rotate(AxisAngle4f axisAngle, Matrix4f dest)
    Apply a rotation transformation, rotating about the given AxisAngle4f and store the result in dest.
    Matrix4fc.rotate(Quaternionfc quat, Matrix4f dest)
    Apply the rotation - and possibly scaling - transformation of the given Quaternionfc to this matrix and store the result in dest.
    Matrix4f.rotateAffine(float ang, float x, float y, float z)
    Apply rotation to this affine matrix by rotating the given amount of radians about the specified (x, y, z) axis.
    Matrix4f.rotateAffine(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this affine matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4f.rotateAffine(Quaternionfc quat)
    Apply the rotation transformation of the given Quaternionfc to this matrix.
    Matrix4f.rotateAffine(Quaternionfc quat, Matrix4f dest)
    Apply the rotation transformation of the given Quaternionfc to this affine matrix and store the result in dest.
    Matrix4fc.rotateAffine(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this affine matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4fc.rotateAffine(Quaternionfc quat, Matrix4f dest)
    Apply the rotation - and possibly scaling - transformation of the given Quaternionfc to this affine matrix and store the result in dest.
    Matrix4f.rotateAffineXYZ(float angleX, float angleY, float angleZ)
    Apply rotation of angleX radians about the X axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleZ radians about the Z axis.
    Matrix4f.rotateAffineXYZ(float angleX, float angleY, float angleZ, Matrix4f dest)
     
    Matrix4fc.rotateAffineXYZ(float angleX, float angleY, float angleZ, Matrix4f dest)
    Apply rotation of angleX radians about the X axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleZ radians about the Z axis and store the result in dest.
    Matrix4f.rotateAffineYXZ(float angleY, float angleX, float angleZ)
    Apply rotation of angleY radians about the Y axis, followed by a rotation of angleX radians about the X axis and followed by a rotation of angleZ radians about the Z axis.
    Matrix4f.rotateAffineYXZ(float angleY, float angleX, float angleZ, Matrix4f dest)
     
    Matrix4fc.rotateAffineYXZ(float angleY, float angleX, float angleZ, Matrix4f dest)
    Apply rotation of angleY radians about the Y axis, followed by a rotation of angleX radians about the X axis and followed by a rotation of angleZ radians about the Z axis and store the result in dest.
    Matrix4f.rotateAffineZYX(float angleZ, float angleY, float angleX)
    Apply rotation of angleZ radians about the Z axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleX radians about the X axis.
    Matrix4f.rotateAffineZYX(float angleZ, float angleY, float angleX, Matrix4f dest)
     
    Matrix4fc.rotateAffineZYX(float angleZ, float angleY, float angleX, Matrix4f dest)
    Apply rotation of angleZ radians about the Z axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleX radians about the X axis and store the result in dest.
    Matrix4f.rotateAround(Quaternionfc quat, float ox, float oy, float oz)
    Apply the rotation transformation of the given Quaternionfc to this matrix while using (ox, oy, oz) as the rotation origin.
    Matrix4f.rotateAround(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.rotateAround(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
    Apply the rotation - and possibly scaling - transformation of the given Quaternionfc to this matrix while using (ox, oy, oz) as the rotation origin, and store the result in dest.
    Matrix4f.rotateAroundAffine(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.rotateAroundAffine(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
    Apply the rotation - and possibly scaling - transformation of the given Quaternionfc to this affine matrix while using (ox, oy, oz) as the rotation origin, and store the result in dest.
    Matrix4f.rotateAroundLocal(Quaternionfc quat, float ox, float oy, float oz)
    Pre-multiply the rotation transformation of the given Quaternionfc to this matrix while using (ox, oy, oz) as the rotation origin.
    Matrix4f.rotateAroundLocal(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.rotateAroundLocal(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
    Pre-multiply the rotation - and possibly scaling - transformation of the given Quaternionfc to this matrix while using (ox, oy, oz) as the rotation origin, and store the result in dest.
    Matrix4f.rotateLocal(float ang, float x, float y, float z)
    Pre-multiply a rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis.
    Matrix4f.rotateLocal(float ang, float x, float y, float z, Matrix4f dest)
    Pre-multiply a rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4f.rotateLocal(Quaternionfc quat)
    Pre-multiply the rotation transformation of the given Quaternionfc to this matrix.
    Matrix4f.rotateLocal(Quaternionfc quat, Matrix4f dest)
    Pre-multiply the rotation transformation of the given Quaternionfc to this matrix and store the result in dest.
    Matrix4fc.rotateLocal(float ang, float x, float y, float z, Matrix4f dest)
    Pre-multiply a rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4fc.rotateLocal(Quaternionfc quat, Matrix4f dest)
    Pre-multiply the rotation - and possibly scaling - transformation of the given Quaternionfc to this matrix and store the result in dest.
    Matrix4f.rotateLocalX(float ang)
    Pre-multiply a rotation to this matrix by rotating the given amount of radians about the X axis.
    Matrix4f.rotateLocalX(float ang, Matrix4f dest)
    Pre-multiply a rotation around the X axis to this matrix by rotating the given amount of radians about the X axis and store the result in dest.
    Matrix4fc.rotateLocalX(float ang, Matrix4f dest)
    Pre-multiply a rotation around the X axis to this matrix by rotating the given amount of radians about the X axis and store the result in dest.
    Matrix4f.rotateLocalY(float ang)
    Pre-multiply a rotation to this matrix by rotating the given amount of radians about the Y axis.
    Matrix4f.rotateLocalY(float ang, Matrix4f dest)
    Pre-multiply a rotation around the Y axis to this matrix by rotating the given amount of radians about the Y axis and store the result in dest.
    Matrix4fc.rotateLocalY(float ang, Matrix4f dest)
    Pre-multiply a rotation around the Y axis to this matrix by rotating the given amount of radians about the Y axis and store the result in dest.
    Matrix4f.rotateLocalZ(float ang)
    Pre-multiply a rotation to this matrix by rotating the given amount of radians about the Z axis.
    Matrix4f.rotateLocalZ(float ang, Matrix4f dest)
    Pre-multiply a rotation around the Z axis to this matrix by rotating the given amount of radians about the Z axis and store the result in dest.
    Matrix4fc.rotateLocalZ(float ang, Matrix4f dest)
    Pre-multiply a rotation around the Z axis to this matrix by rotating the given amount of radians about the Z axis and store the result in dest.
    Matrix4f.rotateTowards(float dirX, float dirY, float dirZ, float upX, float upY, float upZ)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with (dirX, dirY, dirZ).
    Matrix4f.rotateTowards(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with (dirX, dirY, dirZ) and store the result in dest.
    Matrix4f.rotateTowards(Vector3fc dir, Vector3fc up)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with dir.
    Matrix4f.rotateTowards(Vector3fc dir, Vector3fc up, Matrix4f dest)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with dir and store the result in dest.
    Matrix4fc.rotateTowards(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with (dirX, dirY, dirZ) and store the result in dest.
    Matrix4fc.rotateTowards(Vector3fc dir, Vector3fc up, Matrix4f dest)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with dir and store the result in dest.
    Matrix4f.rotateTowardsXY(float dirX, float dirY)
    Apply rotation about the Z axis to align the local +X towards (dirX, dirY).
    Matrix4f.rotateTowardsXY(float dirX, float dirY, Matrix4f dest)
     
    Matrix4fc.rotateTowardsXY(float dirX, float dirY, Matrix4f dest)
    Apply rotation about the Z axis to align the local +X towards (dirX, dirY) and store the result in dest.
    Matrix4f.rotateTranslation(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this matrix, which is assumed to only contain a translation, by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4f.rotateTranslation(Quaternionfc quat, Matrix4f dest)
    Apply the rotation transformation of the given Quaternionfc to this matrix, which is assumed to only contain a translation, and store the result in dest.
    Matrix4fc.rotateTranslation(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this matrix, which is assumed to only contain a translation, by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4fc.rotateTranslation(Quaternionfc quat, Matrix4f dest)
    Apply the rotation - and possibly scaling - ransformation of the given Quaternionfc to this matrix, which is assumed to only contain a translation, and store the result in dest.
    Matrix4f.rotateX(float ang)
    Apply rotation about the X axis to this matrix by rotating the given amount of radians.
    Matrix4f.rotateX(float ang, Matrix4f dest)
     
    Matrix4fc.rotateX(float ang, Matrix4f dest)
    Apply rotation about the X axis to this matrix by rotating the given amount of radians and store the result in dest.
    Matrix4f.rotateXYZ(float angleX, float angleY, float angleZ)
    Apply rotation of angleX radians about the X axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleZ radians about the Z axis.
    Matrix4f.rotateXYZ(float angleX, float angleY, float angleZ, Matrix4f dest)
     
    Matrix4f.rotateXYZ(Vector3fc angles)
    Apply rotation of angles.x radians about the X axis, followed by a rotation of angles.y radians about the Y axis and followed by a rotation of angles.z radians about the Z axis.
    Matrix4fc.rotateXYZ(float angleX, float angleY, float angleZ, Matrix4f dest)
    Apply rotation of angleX radians about the X axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleZ radians about the Z axis and store the result in dest.
    Matrix4f.rotateY(float ang)
    Apply rotation about the Y axis to this matrix by rotating the given amount of radians.
    Matrix4f.rotateY(float ang, Matrix4f dest)
     
    Matrix4fc.rotateY(float ang, Matrix4f dest)
    Apply rotation about the Y axis to this matrix by rotating the given amount of radians and store the result in dest.
    Matrix4f.rotateYXZ(float angleY, float angleX, float angleZ)
    Apply rotation of angleY radians about the Y axis, followed by a rotation of angleX radians about the X axis and followed by a rotation of angleZ radians about the Z axis.
    Matrix4f.rotateYXZ(float angleY, float angleX, float angleZ, Matrix4f dest)
     
    Matrix4f.rotateYXZ(Vector3f angles)
    Apply rotation of angles.y radians about the Y axis, followed by a rotation of angles.x radians about the X axis and followed by a rotation of angles.z radians about the Z axis.
    Matrix4fc.rotateYXZ(float angleY, float angleX, float angleZ, Matrix4f dest)
    Apply rotation of angleY radians about the Y axis, followed by a rotation of angleX radians about the X axis and followed by a rotation of angleZ radians about the Z axis and store the result in dest.
    Matrix4f.rotateZ(float ang)
    Apply rotation about the Z axis to this matrix by rotating the given amount of radians.
    Matrix4f.rotateZ(float ang, Matrix4f dest)
     
    Matrix4fc.rotateZ(float ang, Matrix4f dest)
    Apply rotation about the Z axis to this matrix by rotating the given amount of radians and store the result in dest.
    Matrix4f.rotateZYX(float angleZ, float angleY, float angleX)
    Apply rotation of angleZ radians about the Z axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleX radians about the X axis.
    Matrix4f.rotateZYX(float angleZ, float angleY, float angleX, Matrix4f dest)
     
    Matrix4f.rotateZYX(Vector3f angles)
    Apply rotation of angles.z radians about the Z axis, followed by a rotation of angles.y radians about the Y axis and followed by a rotation of angles.x radians about the X axis.
    Matrix4fc.rotateZYX(float angleZ, float angleY, float angleX, Matrix4f dest)
    Apply rotation of angleZ radians about the Z axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleX radians about the X axis and store the result in dest.
    Matrix4f.rotation(float angle, float x, float y, float z)
    Set this matrix to a rotation matrix which rotates the given radians about a given axis.
    Matrix4f.rotation(float angle, Vector3fc axis)
    Set this matrix to a rotation matrix which rotates the given radians about a given axis.
    Matrix4f.rotation(AxisAngle4f axisAngle)
    Set this matrix to a rotation transformation using the given AxisAngle4f.
    Matrix4f.rotation(Quaternionfc quat)
    Set this matrix to the rotation transformation of the given Quaternionfc.
    Matrix4f.rotationAround(Quaternionfc quat, float ox, float oy, float oz)
    Set this matrix to a transformation composed of a rotation of the specified Quaternionfc while using (ox, oy, oz) as the rotation origin.
    Matrix4f.rotationTowards(float dirX, float dirY, float dirZ, float upX, float upY, float upZ)
    Set this matrix to a model transformation for a right-handed coordinate system, that aligns the local -z axis with (dirX, dirY, dirZ).
    Matrix4f.rotationTowards(Vector3fc dir, Vector3fc up)
    Set this matrix to a model transformation for a right-handed coordinate system, that aligns the local -z axis with dir.
    Matrix4f.rotationTowardsXY(float dirX, float dirY)
    Set this matrix to a rotation transformation about the Z axis to align the local +X towards (dirX, dirY).
    Matrix4f.rotationX(float ang)
    Set this matrix to a rotation transformation about the X axis.
    Matrix4f.rotationXYZ(float angleX, float angleY, float angleZ)
    Set this matrix to a rotation of angleX radians about the X axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleZ radians about the Z axis.
    Matrix4f.rotationY(float ang)
    Set this matrix to a rotation transformation about the Y axis.
    Matrix4f.rotationYXZ(float angleY, float angleX, float angleZ)
    Set this matrix to a rotation of angleY radians about the Y axis, followed by a rotation of angleX radians about the X axis and followed by a rotation of angleZ radians about the Z axis.
    Matrix4f.rotationZ(float ang)
    Set this matrix to a rotation transformation about the Z axis.
    Matrix4f.rotationZYX(float angleZ, float angleY, float angleX)
    Set this matrix to a rotation of angleZ radians about the Z axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleX radians about the X axis.
    Matrix4f.scale(float xyz)
    Apply scaling to this matrix by uniformly scaling all base axes by the given xyz factor.
    Matrix4f.scale(float x, float y, float z)
    Apply scaling to this matrix by scaling the base axes by the given sx, sy and sz factors.
    Matrix4f.scale(float x, float y, float z, Matrix4f dest)
     
    Matrix4f.scale(float xyz, Matrix4f dest)
     
    Matrix4f.scale(Vector3fc xyz)
    Apply scaling to this matrix by scaling the base axes by the given xyz.x, xyz.y and xyz.z factors, respectively.
    Matrix4f.scale(Vector3fc xyz, Matrix4f dest)
     
    Matrix4fc.scale(float x, float y, float z, Matrix4f dest)
    Apply scaling to this matrix by scaling the base axes by the given x, y and z factors and store the result in dest.
    Matrix4fc.scale(float xyz, Matrix4f dest)
    Apply scaling to this matrix by uniformly scaling all base axes by the given xyz factor and store the result in dest.
    Matrix4fc.scale(Vector3fc xyz, Matrix4f dest)
    Apply scaling to this matrix by scaling the base axes by the given xyz.x, xyz.y and xyz.z factors, respectively and store the result in dest.
    Matrix4f.scaleAround(float factor, float ox, float oy, float oz)
    Apply scaling to this matrix by scaling all three base axes by the given factor while using (ox, oy, oz) as the scaling origin.
    Matrix4f.scaleAround(float sx, float sy, float sz, float ox, float oy, float oz)
    Apply scaling to this matrix by scaling the base axes by the given sx, sy and sz factors while using (ox, oy, oz) as the scaling origin.
    Matrix4f.scaleAround(float sx, float sy, float sz, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4f.scaleAround(float factor, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.scaleAround(float sx, float sy, float sz, float ox, float oy, float oz, Matrix4f dest)
    Apply scaling to this matrix by scaling the base axes by the given sx, sy and sz factors while using (ox, oy, oz) as the scaling origin, and store the result in dest.
    Matrix4fc.scaleAround(float factor, float ox, float oy, float oz, Matrix4f dest)
    Apply scaling to this matrix by scaling all three base axes by the given factor while using (ox, oy, oz) as the scaling origin, and store the result in dest.
    Matrix4f.scaleAroundLocal(float factor, float ox, float oy, float oz)
    Pre-multiply scaling to this matrix by scaling all three base axes by the given factor while using (ox, oy, oz) as the scaling origin.
    Matrix4f.scaleAroundLocal(float sx, float sy, float sz, float ox, float oy, float oz)
    Pre-multiply scaling to this matrix by scaling the base axes by the given sx, sy and sz factors while using (ox, oy, oz) as the scaling origin.
    Matrix4f.scaleAroundLocal(float sx, float sy, float sz, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4f.scaleAroundLocal(float factor, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.scaleAroundLocal(float sx, float sy, float sz, float ox, float oy, float oz, Matrix4f dest)
    Pre-multiply scaling to this matrix by scaling the base axes by the given sx, sy and sz factors while using the given (ox, oy, oz) as the scaling origin, and store the result in dest.
    Matrix4fc.scaleAroundLocal(float factor, float ox, float oy, float oz, Matrix4f dest)
    Pre-multiply scaling to this matrix by scaling all three base axes by the given factor while using (ox, oy, oz) as the scaling origin, and store the result in dest.
    Matrix4f.scaleLocal(float xyz)
    Pre-multiply scaling to this matrix by scaling the base axes by the given xyz factor.
    Matrix4f.scaleLocal(float x, float y, float z)
    Pre-multiply scaling to this matrix by scaling the base axes by the given x, y and z factors.
    Matrix4f.scaleLocal(float x, float y, float z, Matrix4f dest)
     
    Matrix4f.scaleLocal(float xyz, Matrix4f dest)
     
    Matrix4fc.scaleLocal(float x, float y, float z, Matrix4f dest)
    Pre-multiply scaling to this matrix by scaling the base axes by the given x, y and z factors and store the result in dest.
    Matrix4fc.scaleLocal(float xyz, Matrix4f dest)
    Pre-multiply scaling to this matrix by scaling all base axes by the given xyz factor, and store the result in dest.
    Matrix4f.scaleXY(float x, float y)
    Apply scaling to this matrix by scaling the X axis by x and the Y axis by y.
    Matrix4f.scaleXY(float x, float y, Matrix4f dest)
     
    Matrix4fc.scaleXY(float x, float y, Matrix4f dest)
    Apply scaling to this matrix by by scaling the X axis by x and the Y axis by y and store the result in dest.
    Matrix4f.scaling(float factor)
    Set this matrix to be a simple scale matrix, which scales all axes uniformly by the given factor.
    Matrix4f.scaling(float x, float y, float z)
    Set this matrix to be a simple scale matrix.
    Matrix4f.scaling(Vector3fc xyz)
    Set this matrix to be a simple scale matrix which scales the base axes by xyz.x, xyz.y and xyz.z respectively.
    Matrix4f.set(float[] m)
    Set the values in the matrix using a float array that contains the matrix elements in column-major order.
    Matrix4f.set(float[] m, int off)
    Set the values in the matrix using a float array that contains the matrix elements in column-major order.
    Matrix4f.set(float m00, float m01, float m02, float m03, float m10, float m11, float m12, float m13, float m20, float m21, float m22, float m23, float m30, float m31, float m32, float m33)
    Set the values within this matrix to the supplied float values.
    Matrix4f.set(int column, int row, float value)
    Set the matrix element at the given column and row to the specified value.
    Matrix4f.set(int index, ByteBuffer buffer)
    Set the values of this matrix by reading 16 float values from the given ByteBuffer in column-major order, starting at the specified absolute buffer position/index.
    Matrix4f.set(int index, FloatBuffer buffer)
    Set the values of this matrix by reading 16 float values from the given FloatBuffer in column-major order, starting at the specified absolute buffer position/index.
    Matrix4f.set(ByteBuffer buffer)
    Set the values of this matrix by reading 16 float values from the given ByteBuffer in column-major order, starting at its current position.
    Matrix4f.set(FloatBuffer buffer)
    Set the values of this matrix by reading 16 float values from the given FloatBuffer in column-major order, starting at its current position.
    Matrix4f.set(AxisAngle4d axisAngle)
    Set this matrix to be equivalent to the rotation specified by the given AxisAngle4d.
    Matrix4f.set(AxisAngle4f axisAngle)
    Set this matrix to be equivalent to the rotation specified by the given AxisAngle4f.
    Matrix4f.set(Matrix3fc mat)
    Set the upper left 3x3 submatrix of this Matrix4f to the given Matrix3fc and the rest to identity.
    Matrix4f.set(Matrix4dc m)
    Store the values of the given matrix m into this matrix.
    Matrix4f.set(Matrix4fc m)
    Store the values of the given matrix m into this matrix.
    Matrix4f.set(Matrix4x3fc m)
    Store the values of the given matrix m into this matrix and set the other matrix elements to identity.
    Matrix4f.set(Quaterniondc q)
    Set this matrix to be equivalent to the rotation specified by the given Quaterniondc.
    Matrix4f.set(Quaternionfc q)
    Set this matrix to be equivalent to the rotation specified by the given Quaternionfc.
    Matrix4f.set(Vector4fc col0, Vector4fc col1, Vector4fc col2, Vector4fc col3)
    Set the four columns of this matrix to the supplied vectors, respectively.
    Matrix4f.set3x3(Matrix3fc mat)
    Set the upper left 3x3 submatrix of this Matrix4f to the given Matrix3fc and don't change the other elements.
    Matrix4f.set3x3(Matrix4f mat)
    Set the upper left 3x3 submatrix of this Matrix4f to that of the given Matrix4f and don't change the other elements.
    Matrix4f.set4x3(Matrix4f mat)
    Set the upper 4x3 submatrix of this Matrix4f to the upper 4x3 submatrix of the given Matrix4f and don't change the other elements.
    Matrix4f.set4x3(Matrix4x3fc mat)
    Set the upper 4x3 submatrix of this Matrix4f to the given Matrix4x3fc and don't change the other elements.
    Matrix4f.setColumn(int column, Vector4fc src)
    Set the column at the given column index, starting with 0.
    Matrix4f.setFromAddress(long address)
    Set the values of this matrix by reading 16 float values from off-heap memory in column-major order, starting at the given address.
    Matrix4f.setFromIntrinsic(float alphaX, float alphaY, float gamma, float u0, float v0, int imgWidth, int imgHeight, float near, float far)
    Set this matrix to represent a perspective projection equivalent to the given intrinsic camera calibration parameters.
    Matrix4f.setFrustum(float left, float right, float bottom, float top, float zNear, float zFar)
    Set this matrix to be an arbitrary perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setFrustum(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be an arbitrary perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range.
    Matrix4f.setFrustumLH(float left, float right, float bottom, float top, float zNear, float zFar)
    Set this matrix to be an arbitrary perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setFrustumLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be an arbitrary perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setLookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ)
    Set this matrix to a rotation transformation to make -z point along dir.
    Matrix4f.setLookAlong(Vector3fc dir, Vector3fc up)
    Set this matrix to a rotation transformation to make -z point along dir.
    Matrix4f.setLookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ)
    Set this matrix to be a "lookat" transformation for a right-handed coordinate system, that aligns -z with center - eye.
    Matrix4f.setLookAt(Vector3fc eye, Vector3fc center, Vector3fc up)
    Set this matrix to be a "lookat" transformation for a right-handed coordinate system, that aligns -z with center - eye.
    Matrix4f.setLookAtLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ)
    Set this matrix to be a "lookat" transformation for a left-handed coordinate system, that aligns +z with center - eye.
    Matrix4f.setLookAtLH(Vector3fc eye, Vector3fc center, Vector3fc up)
    Set this matrix to be a "lookat" transformation for a left-handed coordinate system, that aligns +z with center - eye.
    Matrix4f.setOrtho(float left, float right, float bottom, float top, float zNear, float zFar)
    Set this matrix to be an orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setOrtho(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be an orthographic projection transformation for a right-handed coordinate system using the given NDC z range.
    Matrix4f.setOrtho2D(float left, float right, float bottom, float top)
    Set this matrix to be an orthographic projection transformation for a right-handed coordinate system.
    Matrix4f.setOrtho2DLH(float left, float right, float bottom, float top)
    Set this matrix to be an orthographic projection transformation for a left-handed coordinate system.
    Matrix4f.setOrthoLH(float left, float right, float bottom, float top, float zNear, float zFar)
    Set this matrix to be an orthographic projection transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setOrthoLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be an orthographic projection transformation for a left-handed coordinate system using the given NDC z range.
    Matrix4f.setOrthoSymmetric(float width, float height, float zNear, float zFar)
    Set this matrix to be a symmetric orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setOrthoSymmetric(float width, float height, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be a symmetric orthographic projection transformation for a right-handed coordinate system using the given NDC z range.
    Matrix4f.setOrthoSymmetricLH(float width, float height, float zNear, float zFar)
    Set this matrix to be a symmetric orthographic projection transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setOrthoSymmetricLH(float width, float height, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be a symmetric orthographic projection transformation for a left-handed coordinate system using the given NDC z range.
    Matrix4f.setPerspective(float fovy, float aspect, float zNear, float zFar)
    Set this matrix to be a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setPerspective(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range.
    Matrix4f.setPerspectiveLH(float fovy, float aspect, float zNear, float zFar)
    Set this matrix to be a symmetric perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setPerspectiveLH(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be a symmetric perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range of [-1..+1].
    Matrix4f.setPerspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar)
    Set this matrix to be an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setPerspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range.
    Matrix4f.setPerspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar)
    Set this matrix to be an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setPerspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range.
    Matrix4f.setPerspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar)
    Set this matrix to be an asymmetric off-center perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setPerspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be an asymmetric off-center perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range.
    Matrix4f.setPerspectiveRect(float width, float height, float zNear, float zFar)
    Set this matrix to be a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1].
    Matrix4f.setPerspectiveRect(float width, float height, float zNear, float zFar, boolean zZeroToOne)
    Set this matrix to be a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range.
    Matrix4f.setRotationXYZ(float angleX, float angleY, float angleZ)
    Set only the upper left 3x3 submatrix of this matrix to a rotation of angleX radians about the X axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleZ radians about the Z axis.
    Matrix4f.setRotationYXZ(float angleY, float angleX, float angleZ)
    Set only the upper left 3x3 submatrix of this matrix to a rotation of angleY radians about the Y axis, followed by a rotation of angleX radians about the X axis and followed by a rotation of angleZ radians about the Z axis.
    Matrix4f.setRotationZYX(float angleZ, float angleY, float angleX)
    Set only the upper left 3x3 submatrix of this matrix to a rotation of angleZ radians about the Z axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleX radians about the X axis.
    Matrix4f.setRow(int row, Vector4fc src)
    Set the row at the given row index, starting with 0.
    Matrix4f.setRowColumn(int row, int column, float value)
    Set the matrix element at the given row and column to the specified value.
    Matrix4f.setTranslation(float x, float y, float z)
    Set only the translation components (m30, m31, m32) of this matrix to the given values (x, y, z).
    Matrix4f.setTranslation(Vector3fc xyz)
    Set only the translation components (m30, m31, m32) of this matrix to the values (xyz.x, xyz.y, xyz.z).
    Matrix4f.setTransposed(float[] m)
    Set the values in the matrix using a float array that contains the matrix elements in row-major order.
    Matrix4f.setTransposed(float[] m, int off)
    Set the values in the matrix using a float array that contains the matrix elements in row-major order.
    Matrix4f.setTransposed(ByteBuffer buffer)
    Set the values of this matrix by reading 16 float values from the given ByteBuffer in row-major order, starting at its current position.
    Matrix4f.setTransposed(FloatBuffer buffer)
    Set the values of this matrix by reading 16 float values from the given FloatBuffer in row-major order, starting at its current position.
    Store the values of the transpose of the given matrix m into this matrix.
    Matrix4f.setTransposedFromAddress(long address)
    Set the values of this matrix by reading 16 float values from off-heap memory in row-major order, starting at the given address.
    Matrix4f.shadow(float lightX, float lightY, float lightZ, float lightW, float a, float b, float c, float d)
    Apply a projection transformation to this matrix that projects onto the plane specified via the general plane equation x*a + y*b + z*c + d = 0 as if casting a shadow from a given light position/direction (lightX, lightY, lightZ, lightW).
    Matrix4f.shadow(float lightX, float lightY, float lightZ, float lightW, float a, float b, float c, float d, Matrix4f dest)
     
    Matrix4f.shadow(float lightX, float lightY, float lightZ, float lightW, Matrix4f planeTransform)
    Apply a projection transformation to this matrix that projects onto the plane with the general plane equation y = 0 as if casting a shadow from a given light position/direction (lightX, lightY, lightZ, lightW).
    Matrix4f.shadow(float lightX, float lightY, float lightZ, float lightW, Matrix4fc planeTransform, Matrix4f dest)
     
    Matrix4f.shadow(Vector4f light, float a, float b, float c, float d)
    Apply a projection transformation to this matrix that projects onto the plane specified via the general plane equation x*a + y*b + z*c + d = 0 as if casting a shadow from a given light position/direction light.
    Matrix4f.shadow(Vector4f light, float a, float b, float c, float d, Matrix4f dest)
     
    Matrix4f.shadow(Vector4f light, Matrix4f planeTransform)
    Apply a projection transformation to this matrix that projects onto the plane with the general plane equation y = 0 as if casting a shadow from a given light position/direction light.
    Matrix4f.shadow(Vector4f light, Matrix4fc planeTransform, Matrix4f dest)
     
    Matrix4fc.shadow(float lightX, float lightY, float lightZ, float lightW, float a, float b, float c, float d, Matrix4f dest)
    Apply a projection transformation to this matrix that projects onto the plane specified via the general plane equation x*a + y*b + z*c + d = 0 as if casting a shadow from a given light position/direction (lightX, lightY, lightZ, lightW) and store the result in dest.
    Matrix4fc.shadow(float lightX, float lightY, float lightZ, float lightW, Matrix4fc planeTransform, Matrix4f dest)
    Apply a projection transformation to this matrix that projects onto the plane with the general plane equation y = 0 as if casting a shadow from a given light position/direction (lightX, lightY, lightZ, lightW) and store the result in dest.
    Matrix4fc.shadow(Vector4f light, float a, float b, float c, float d, Matrix4f dest)
    Apply a projection transformation to this matrix that projects onto the plane specified via the general plane equation x*a + y*b + z*c + d = 0 as if casting a shadow from a given light position/direction light and store the result in dest.
    Matrix4fc.shadow(Vector4f light, Matrix4fc planeTransform, Matrix4f dest)
    Apply a projection transformation to this matrix that projects onto the plane with the general plane equation y = 0 as if casting a shadow from a given light position/direction light and store the result in dest.
    Matrix4f.sub(Matrix4fc subtrahend)
    Component-wise subtract subtrahend from this.
    Matrix4f.sub(Matrix4fc subtrahend, Matrix4f dest)
     
    Matrix4fc.sub(Matrix4fc subtrahend, Matrix4f dest)
    Component-wise subtract subtrahend from this and store the result in dest.
    Matrix4f.sub4x3(Matrix4f subtrahend)
    Component-wise subtract the upper 4x3 submatrices of subtrahend from this.
    Matrix4f.sub4x3(Matrix4fc subtrahend, Matrix4f dest)
     
    Matrix4fc.sub4x3(Matrix4fc subtrahend, Matrix4f dest)
    Component-wise subtract the upper 4x3 submatrices of subtrahend from this and store the result in dest.
    Matrix4f.swap(Matrix4f other)
    Exchange the values of this matrix with the given other matrix.
    Matrix4f.tile(int x, int y, int w, int h)
    This method is equivalent to calling: translate(w-1-2*x, h-1-2*y, 0).scale(w, h, 1)
    Matrix4f.tile(int x, int y, int w, int h, Matrix4f dest)
     
    Matrix4fc.tile(int x, int y, int w, int h, Matrix4f dest)
    This method is equivalent to calling: translate(w-1-2*x, h-1-2*y, 0, dest).scale(w, h, 1)
    Matrix4f.transformAab(float minX, float minY, float minZ, float maxX, float maxY, float maxZ, Vector3f outMin, Vector3f outMax)
     
    Matrix4f.transformAab(Vector3fc min, Vector3fc max, Vector3f outMin, Vector3f outMax)
     
    Matrix4fc.transformAab(float minX, float minY, float minZ, float maxX, float maxY, float maxZ, Vector3f outMin, Vector3f outMax)
    Transform the axis-aligned box given as the minimum corner (minX, minY, minZ) and maximum corner (maxX, maxY, maxZ) by this affine matrix and compute the axis-aligned box of the result whose minimum corner is stored in outMin and maximum corner stored in outMax.
    Matrix4fc.transformAab(Vector3fc min, Vector3fc max, Vector3f outMin, Vector3f outMax)
    Transform the axis-aligned box given as the minimum corner min and maximum corner max by this affine matrix and compute the axis-aligned box of the result whose minimum corner is stored in outMin and maximum corner stored in outMax.
    Matrix4f.translate(float x, float y, float z)
    Apply a translation to this matrix by translating by the given number of units in x, y and z.
    Matrix4f.translate(float x, float y, float z, Matrix4f dest)
    Apply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4f.translate(Vector3fc offset)
    Apply a translation to this matrix by translating by the given number of units in x, y and z.
    Matrix4f.translate(Vector3fc offset, Matrix4f dest)
    Apply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4fc.translate(float x, float y, float z, Matrix4f dest)
    Apply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4fc.translate(Vector3fc offset, Matrix4f dest)
    Apply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4f.translateLocal(float x, float y, float z)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z.
    Matrix4f.translateLocal(float x, float y, float z, Matrix4f dest)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4f.translateLocal(Vector3fc offset)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z.
    Matrix4f.translateLocal(Vector3fc offset, Matrix4f dest)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4fc.translateLocal(float x, float y, float z, Matrix4f dest)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4fc.translateLocal(Vector3fc offset, Matrix4f dest)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4f.translation(float x, float y, float z)
    Set this matrix to be a simple translation matrix.
    Matrix4f.translation(Vector3fc offset)
    Set this matrix to be a simple translation matrix.
    Matrix4f.translationRotate(float tx, float ty, float tz, float qx, float qy, float qz, float qw)
    Set this matrix to T * R, where T is a translation by the given (tx, ty, tz) and R is a rotation - and possibly scaling - transformation specified by the quaternion (qx, qy, qz, qw).
    Matrix4f.translationRotate(float tx, float ty, float tz, Quaternionfc quat)
    Set this matrix to T * R, where T is a translation by the given (tx, ty, tz) and R is a rotation - and possibly scaling - transformation specified by the given quaternion.
    Matrix4f.translationRotate(Vector3fc translation, Quaternionfc quat)
    Set this matrix to T * R, where T is the given translation and R is a rotation transformation specified by the given quaternion.
    Matrix4f.translationRotateInvert(float tx, float ty, float tz, float qx, float qy, float qz, float qw)
    Set this matrix to (T * R)-1, where T is a translation by the given (tx, ty, tz) and R is a rotation transformation specified by the quaternion (qx, qy, qz, qw).
    Matrix4f.translationRotateInvert(Vector3fc translation, Quaternionfc quat)
    Set this matrix to (T * R)-1, where T is the given translation and R is a rotation transformation specified by the given quaternion.
    Matrix4f.translationRotateScale(float tx, float ty, float tz, float qx, float qy, float qz, float qw, float scale)
    Set this matrix to T * R * S, where T is a translation by the given (tx, ty, tz), R is a rotation transformation specified by the quaternion (qx, qy, qz, qw), and S is a scaling transformation which scales all three axes by scale.
    Matrix4f.translationRotateScale(float tx, float ty, float tz, float qx, float qy, float qz, float qw, float sx, float sy, float sz)
    Set this matrix to T * R * S, where T is a translation by the given (tx, ty, tz), R is a rotation transformation specified by the quaternion (qx, qy, qz, qw), and S is a scaling transformation which scales the three axes x, y and z by (sx, sy, sz).
    Matrix4f.translationRotateScale(Vector3fc translation, Quaternionfc quat, float scale)
    Set this matrix to T * R * S, where T is the given translation, R is a rotation transformation specified by the given quaternion, and S is a scaling transformation which scales all three axes by scale.
    Matrix4f.translationRotateScale(Vector3fc translation, Quaternionfc quat, Vector3fc scale)
    Set this matrix to T * R * S, where T is the given translation, R is a rotation transformation specified by the given quaternion, and S is a scaling transformation which scales the axes by scale.
    Matrix4f.translationRotateScaleInvert(float tx, float ty, float tz, float qx, float qy, float qz, float qw, float sx, float sy, float sz)
    Set this matrix to (T * R * S)-1, where T is a translation by the given (tx, ty, tz), R is a rotation transformation specified by the quaternion (qx, qy, qz, qw), and S is a scaling transformation which scales the three axes x, y and z by (sx, sy, sz).
    Matrix4f.translationRotateScaleInvert(Vector3fc translation, Quaternionfc quat, float scale)
    Set this matrix to (T * R * S)-1, where T is the given translation, R is a rotation transformation specified by the given quaternion, and S is a scaling transformation which scales all three axes by scale.
    Matrix4f.translationRotateScaleInvert(Vector3fc translation, Quaternionfc quat, Vector3fc scale)
    Set this matrix to (T * R * S)-1, where T is the given translation, R is a rotation transformation specified by the given quaternion, and S is a scaling transformation which scales the axes by scale.
    Matrix4f.translationRotateScaleMulAffine(float tx, float ty, float tz, float qx, float qy, float qz, float qw, float sx, float sy, float sz, Matrix4f m)
    Set this matrix to T * R * S * M, where T is a translation by the given (tx, ty, tz), R is a rotation - and possibly scaling - transformation specified by the quaternion (qx, qy, qz, qw), S is a scaling transformation which scales the three axes x, y and z by (sx, sy, sz) and M is an affine matrix.
    Matrix4f.translationRotateScaleMulAffine(Vector3fc translation, Quaternionfc quat, Vector3fc scale, Matrix4f m)
    Set this matrix to T * R * S * M, where T is the given translation, R is a rotation - and possibly scaling - transformation specified by the given quaternion, S is a scaling transformation which scales the axes by scale and M is an affine matrix.
    Matrix4f.translationRotateTowards(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, float upX, float upY, float upZ)
    Set this matrix to a model transformation for a right-handed coordinate system, that translates to the given (posX, posY, posZ) and aligns the local -z axis with (dirX, dirY, dirZ).
    Set this matrix to a model transformation for a right-handed coordinate system, that translates to the given pos and aligns the local -z axis with dir.
    Matrix4f.transpose()
    Transpose this matrix.
    Matrix4f.transpose(Matrix4f dest)
     
    Matrix4fc.transpose(Matrix4f dest)
    Transpose this matrix and store the result in dest.
    Matrix4f.transpose3x3()
    Transpose only the upper left 3x3 submatrix of this matrix.
    Matrix4f.transpose3x3(Matrix4f dest)
     
    Matrix4fc.transpose3x3(Matrix4f dest)
    Transpose only the upper left 3x3 submatrix of this matrix and store the result in dest.
    Matrix4f.trapezoidCrop(float p0x, float p0y, float p1x, float p1y, float p2x, float p2y, float p3x, float p3y)
    Set this matrix to a perspective transformation that maps the trapezoid spanned by the four corner coordinates (p0x, p0y), (p1x, p1y), (p2x, p2y) and (p3x, p3y) to the unit square [(-1, -1)..(+1, +1)].
    Matrix4f.unprojectInvRay(float winX, float winY, int[] viewport, Vector3f originDest, Vector3f dirDest)
     
    Matrix4f.unprojectInvRay(Vector2fc winCoords, int[] viewport, Vector3f originDest, Vector3f dirDest)
     
    Matrix4fc.unprojectInvRay(float winX, float winY, int[] viewport, Vector3f originDest, Vector3f dirDest)
    Unproject the given 2D window coordinates (winX, winY) by this matrix using the specified viewport and compute the origin and the direction of the resulting ray which starts at NDC z = -1.0 and goes through NDC z = +1.0.
    Matrix4fc.unprojectInvRay(Vector2fc winCoords, int[] viewport, Vector3f originDest, Vector3f dirDest)
    Unproject the given window coordinates winCoords by this matrix using the specified viewport and compute the origin and the direction of the resulting ray which starts at NDC z = -1.0 and goes through NDC z = +1.0.
    Matrix4f.unprojectRay(float winX, float winY, int[] viewport, Vector3f originDest, Vector3f dirDest)
     
    Matrix4f.unprojectRay(Vector2fc winCoords, int[] viewport, Vector3f originDest, Vector3f dirDest)
     
    Matrix4fc.unprojectRay(float winX, float winY, int[] viewport, Vector3f originDest, Vector3f dirDest)
    Unproject the given 2D window coordinates (winX, winY) by this matrix using the specified viewport and compute the origin and the direction of the resulting ray which starts at NDC z = -1.0 and goes through NDC z = +1.0.
    Matrix4fc.unprojectRay(Vector2fc winCoords, int[] viewport, Vector3f originDest, Vector3f dirDest)
    Unproject the given 2D window coordinates winCoords by this matrix using the specified viewport and compute the origin and the direction of the resulting ray which starts at NDC z = -1.0 and goes through NDC z = +1.0.
    Matrix4f.withLookAtUp(float upX, float upY, float upZ)
    Apply a transformation to this matrix to ensure that the local Y axis (as obtained by positiveY(Vector3f)) will be coplanar to the plane spanned by the local Z axis (as obtained by positiveZ(Vector3f)) and the given vector (upX, upY, upZ).
    Matrix4f.withLookAtUp(float upX, float upY, float upZ, Matrix4f dest)
     
    Matrix4f.withLookAtUp(Vector3fc up)
    Apply a transformation to this matrix to ensure that the local Y axis (as obtained by positiveY(Vector3f)) will be coplanar to the plane spanned by the local Z axis (as obtained by positiveZ(Vector3f)) and the given vector up.
    Matrix4f.withLookAtUp(Vector3fc up, Matrix4f dest)
     
    Matrix4fc.withLookAtUp(float upX, float upY, float upZ, Matrix4f dest)
    Apply a transformation to this matrix to ensure that the local Y axis (as obtained by Matrix4fc.positiveY(Vector3f)) will be coplanar to the plane spanned by the local Z axis (as obtained by Matrix4fc.positiveZ(Vector3f)) and the given vector (upX, upY, upZ), and store the result in dest.
    Matrix4fc.withLookAtUp(Vector3fc up, Matrix4f dest)
    Apply a transformation to this matrix to ensure that the local Y axis (as obtained by Matrix4fc.positiveY(Vector3f)) will be coplanar to the plane spanned by the local Z axis (as obtained by Matrix4fc.positiveZ(Vector3f)) and the given vector up, and store the result in dest.
    Matrix4f.zero()
    Set all the values within this matrix to 0.
    Methods in org.joml with parameters of type Matrix4f
    Modifier and Type
    Method
    Description
    Matrix4f.add(Matrix4fc other, Matrix4f dest)
     
    Matrix4fc.add(Matrix4fc other, Matrix4f dest)
    Component-wise add this and other and store the result in dest.
    Matrix4f.add4x3(Matrix4fc other, Matrix4f dest)
     
    Matrix4fc.add4x3(Matrix4fc other, Matrix4f dest)
    Component-wise add the upper 4x3 submatrices of this and other and store the result in dest.
    Matrix4f.arcball(float radius, float centerX, float centerY, float centerZ, float angleX, float angleY, Matrix4f dest)
     
    Matrix4f.arcball(float radius, Vector3fc center, float angleX, float angleY, Matrix4f dest)
     
    Matrix4fc.arcball(float radius, float centerX, float centerY, float centerZ, float angleX, float angleY, Matrix4f dest)
    Apply an arcball view transformation to this matrix with the given radius and center (centerX, centerY, centerZ) position of the arcball and the specified X and Y rotation angles, and store the result in dest.
    Matrix4fc.arcball(float radius, Vector3fc center, float angleX, float angleY, Matrix4f dest)
    Apply an arcball view transformation to this matrix with the given radius and center position of the arcball and the specified X and Y rotation angles, and store the result in dest.
    Matrix4f.cofactor3x3(Matrix4f dest)
    Compute the cofactor matrix of the upper left 3x3 submatrix of this and store it into dest.
    Matrix4fc.cofactor3x3(Matrix4f dest)
    Compute the cofactor matrix of the upper left 3x3 submatrix of this and store it into dest.
    Matrix4f.fma4x3(Matrix4fc other, float otherFactor, Matrix4f dest)
     
    Matrix4fc.fma4x3(Matrix4fc other, float otherFactor, Matrix4f dest)
    Component-wise add the upper 4x3 submatrices of this and other by first multiplying each component of other's 4x3 submatrix by otherFactor, adding that to this and storing the final result in dest.
    Matrix4f.frustum(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.frustum(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.frustum(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.frustum(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.frustumLH(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an arbitrary perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    AxisAngle4d.get(Matrix4f m)
    Set the given Matrix4f to a rotation transformation equivalent to this AxisAngle4d.
    AxisAngle4f.get(Matrix4f m)
    Set the given Matrix4f to a rotation transformation equivalent to this AxisAngle4f.
    Matrix3f.get(Matrix4f dest)
     
    Matrix3fc.get(Matrix4f dest)
    Get the current values of this matrix and store them as the rotational component of dest.
    Matrix4f.get(Matrix4f dest)
    Get the current values of this matrix and store them into dest.
    Matrix4fc.get(Matrix4f dest)
    Get the current values of this matrix and store them into dest.
    Matrix4x3f.get(Matrix4f dest)
     
    Matrix4x3fc.get(Matrix4f dest)
    Get the current values of this matrix and store them into the upper 4x3 submatrix of dest.
    Quaterniond.get(Matrix4f dest)
     
    Quaterniondc.get(Matrix4f dest)
    Set the given destination matrix to the rotation represented by this.
    Quaternionf.get(Matrix4f dest)
     
    Quaternionfc.get(Matrix4f dest)
    Set the given destination matrix to the rotation represented by this.
    Matrix4f.invert(Matrix4f dest)
     
    Matrix4fc.invert(Matrix4f dest)
    Invert this matrix and write the result into dest.
    Matrix4x3f.invert(Matrix4f dest)
     
    Matrix4x3fc.invert(Matrix4f dest)
    Invert this matrix and write the result as the top 4x3 matrix into dest and set all other values of dest to identity..
    Matrix4f.invertAffine(Matrix4f dest)
     
    Matrix4fc.invertAffine(Matrix4f dest)
    Invert this matrix by assuming that it is an affine transformation (i.e.
    Matrix4f.invertFrustum(Matrix4f dest)
    If this is an arbitrary perspective projection matrix obtained via one of the frustum() methods or via setFrustum(), then this method builds the inverse of this and stores it into the given dest.
    Matrix4fc.invertFrustum(Matrix4f dest)
    If this is an arbitrary perspective projection matrix obtained via one of the frustum() methods, then this method builds the inverse of this and stores it into the given dest.
    Matrix4f.invertOrtho(Matrix4f dest)
     
    Matrix4fc.invertOrtho(Matrix4f dest)
    Invert this orthographic projection matrix and store the result into the given dest.
    Matrix4f.invertPerspective(Matrix4f dest)
    If this is a perspective projection matrix obtained via one of the perspective() methods or via setPerspective(), that is, if this is a symmetrical perspective frustum transformation, then this method builds the inverse of this and stores it into the given dest.
    Matrix4fc.invertPerspective(Matrix4f dest)
    If this is a perspective projection matrix obtained via one of the perspective() methods, that is, if this is a symmetrical perspective frustum transformation, then this method builds the inverse of this and stores it into the given dest.
    If this is a perspective projection matrix obtained via one of the perspective() methods or via setPerspective(), that is, if this is a symmetrical perspective frustum transformation and the given view matrix is affine and has unit scaling (for example by being obtained via lookAt()), then this method builds the inverse of this * view and stores it into the given dest.
    If this is a perspective projection matrix obtained via one of the perspective() methods or via setPerspective(), that is, if this is a symmetrical perspective frustum transformation and the given view matrix has unit scaling, then this method builds the inverse of this * view and stores it into the given dest.
    Matrix4fc.invertPerspectiveView(Matrix4fc view, Matrix4f dest)
    If this is a perspective projection matrix obtained via one of the perspective() methods, that is, if this is a symmetrical perspective frustum transformation and the given view matrix is affine and has unit scaling (for example by being obtained via lookAt()), then this method builds the inverse of this * view and stores it into the given dest.
    If this is a perspective projection matrix obtained via one of the perspective() methods, that is, if this is a symmetrical perspective frustum transformation and the given view matrix has unit scaling, then this method builds the inverse of this * view and stores it into the given dest.
    Matrix4f.lerp(Matrix4fc other, float t, Matrix4f dest)
     
    Matrix4fc.lerp(Matrix4fc other, float t, Matrix4f dest)
    Linearly interpolate this and other using the given interpolation factor t and store the result in dest.
    Matrix4f.lookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a rotation transformation to this matrix to make -z point along dir and store the result in dest.
    Matrix4f.lookAlong(Vector3fc dir, Vector3fc up, Matrix4f dest)
    Apply a rotation transformation to this matrix to make -z point along dir and store the result in dest.
    Matrix4fc.lookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a rotation transformation to this matrix to make -z point along dir and store the result in dest.
    Matrix4fc.lookAlong(Vector3fc dir, Vector3fc up, Matrix4f dest)
    Apply a rotation transformation to this matrix to make -z point along dir and store the result in dest.
    Matrix4f.lookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4f.lookAt(Vector3fc eye, Vector3fc center, Vector3fc up, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4fc.lookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4fc.lookAt(Vector3fc eye, Vector3fc center, Vector3fc up, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4f.lookAtLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4f.lookAtLH(Vector3fc eye, Vector3fc center, Vector3fc up, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4fc.lookAtLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4fc.lookAtLH(Vector3fc eye, Vector3fc center, Vector3fc up, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4f.lookAtPerspective(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4fc.lookAtPerspective(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a right-handed coordinate system, that aligns -z with center - eye and store the result in dest.
    Matrix4f.lookAtPerspectiveLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4fc.lookAtPerspectiveLH(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a "lookat" transformation to this matrix for a left-handed coordinate system, that aligns +z with center - eye and store the result in dest.
    Matrix4f.mapnXnYnZ(Matrix4f dest)
     
    Matrix4fc.mapnXnYnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXnYZ(Matrix4f dest)
     
    Matrix4fc.mapnXnYZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXnZnY(Matrix4f dest)
     
    Matrix4fc.mapnXnZnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXnZY(Matrix4f dest)
     
    Matrix4fc.mapnXnZY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXYnZ(Matrix4f dest)
     
    Matrix4fc.mapnXYnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXZnY(Matrix4f dest)
     
    Matrix4fc.mapnXZnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnXZY(Matrix4f dest)
     
    Matrix4fc.mapnXZY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYnXnZ(Matrix4f dest)
     
    Matrix4fc.mapnYnXnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYnXZ(Matrix4f dest)
     
    Matrix4fc.mapnYnXZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYnZnX(Matrix4f dest)
     
    Matrix4fc.mapnYnZnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYnZX(Matrix4f dest)
     
    Matrix4fc.mapnYnZX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYXnZ(Matrix4f dest)
     
    Matrix4fc.mapnYXnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYXZ(Matrix4f dest)
     
    Matrix4fc.mapnYXZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYZnX(Matrix4f dest)
     
    Matrix4fc.mapnYZnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnYZX(Matrix4f dest)
     
    Matrix4fc.mapnYZX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZnXnY(Matrix4f dest)
     
    Matrix4fc.mapnZnXnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZnXY(Matrix4f dest)
     
    Matrix4fc.mapnZnXY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZnYnX(Matrix4f dest)
     
    Matrix4fc.mapnZnYnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZnYX(Matrix4f dest)
     
    Matrix4fc.mapnZnYX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZXnY(Matrix4f dest)
     
    Matrix4fc.mapnZXnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZXY(Matrix4f dest)
     
    Matrix4fc.mapnZXY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZYnX(Matrix4f dest)
     
    Matrix4fc.mapnZYnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapnZYX(Matrix4f dest)
     
    Matrix4fc.mapnZYX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXnYnZ(Matrix4f dest)
     
    Matrix4fc.mapXnYnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXnZnY(Matrix4f dest)
     
    Matrix4fc.mapXnZnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXnZY(Matrix4f dest)
     
    Matrix4fc.mapXnZY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXZnY(Matrix4f dest)
     
    Matrix4fc.mapXZnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapXZY(Matrix4f dest)
     
    Matrix4fc.mapXZY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYnXnZ(Matrix4f dest)
     
    Matrix4fc.mapYnXnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYnXZ(Matrix4f dest)
     
    Matrix4fc.mapYnXZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYnZnX(Matrix4f dest)
     
    Matrix4fc.mapYnZnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYnZX(Matrix4f dest)
     
    Matrix4fc.mapYnZX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYXnZ(Matrix4f dest)
     
    Matrix4fc.mapYXnZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYXZ(Matrix4f dest)
     
    Matrix4fc.mapYXZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYZnX(Matrix4f dest)
     
    Matrix4fc.mapYZnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapYZX(Matrix4f dest)
     
    Matrix4fc.mapYZX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZnXnY(Matrix4f dest)
     
    Matrix4fc.mapZnXnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZnXY(Matrix4f dest)
     
    Matrix4fc.mapZnXY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZnYnX(Matrix4f dest)
     
    Matrix4fc.mapZnYnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZnYX(Matrix4f dest)
     
    Matrix4fc.mapZnYX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZXnY(Matrix4f dest)
     
    Matrix4fc.mapZXnY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZXY(Matrix4f dest)
     
    Matrix4fc.mapZXY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZYnX(Matrix4f dest)
     
    Matrix4fc.mapZYnX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.mapZYX(Matrix4f dest)
     
    Matrix4fc.mapZYX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4d.mul(Matrix4f right)
    Multiply this matrix by the supplied parameter matrix.
    Matrix4f.mul(float r00, float r01, float r02, float r03, float r10, float r11, float r12, float r13, float r20, float r21, float r22, float r23, float r30, float r31, float r32, float r33, Matrix4f dest)
     
    Matrix4f.mul(Matrix3x2fc right, Matrix4f dest)
     
    Matrix4f.mul(Matrix4fc right, Matrix4f dest)
     
    Matrix4f.mul(Matrix4x3fc right, Matrix4f dest)
     
    Matrix4fc.mul(float r00, float r01, float r02, float r03, float r10, float r11, float r12, float r13, float r20, float r21, float r22, float r23, float r30, float r31, float r32, float r33, Matrix4f dest)
    Multiply this matrix by the matrix with the supplied elements and store the result in dest.
    Matrix4fc.mul(Matrix3x2fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix and store the result in dest.
    Matrix4fc.mul(Matrix4fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix and store the result in dest.
    Matrix4fc.mul(Matrix4x3fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix and store the result in dest.
    Matrix4f.mul0(Matrix4fc right, Matrix4f dest)
     
    Matrix4fc.mul0(Matrix4fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix and store the result in dest.
    Matrix4f.mul3x3(float r00, float r01, float r02, float r10, float r11, float r12, float r20, float r21, float r22, Matrix4f dest)
     
    Matrix4fc.mul3x3(float r00, float r01, float r02, float r10, float r11, float r12, float r20, float r21, float r22, Matrix4f dest)
    Multiply this matrix by the 3x3 matrix with the supplied elements expanded to a 4x4 matrix with all other matrix elements set to identity, and store the result in dest.
    Matrix4f.mul4x3ComponentWise(Matrix4fc other, Matrix4f dest)
     
    Matrix4fc.mul4x3ComponentWise(Matrix4fc other, Matrix4f dest)
    Component-wise multiply the upper 4x3 submatrices of this by other and store the result in dest.
    Matrix4f.mulAffine(Matrix4fc right, Matrix4f dest)
     
    Matrix4fc.mulAffine(Matrix4fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix, both of which are assumed to be affine, and store the result in dest.
    Matrix4f.mulAffineR(Matrix4fc right, Matrix4f dest)
     
    Matrix4fc.mulAffineR(Matrix4fc right, Matrix4f dest)
    Multiply this matrix by the supplied right matrix, which is assumed to be affine, and store the result in dest.
    Matrix4f.mulComponentWise(Matrix4fc other, Matrix4f dest)
     
    Matrix4fc.mulComponentWise(Matrix4fc other, Matrix4f dest)
    Component-wise multiply this by other and store the result in dest.
    Matrix4f.mulLocal(Matrix4fc left, Matrix4f dest)
     
    Matrix4fc.mulLocal(Matrix4fc left, Matrix4f dest)
    Pre-multiply this matrix by the supplied left matrix and store the result in dest.
    Matrix4f.mulLocalAffine(Matrix4fc left, Matrix4f dest)
     
    Matrix4fc.mulLocalAffine(Matrix4fc left, Matrix4f dest)
    Pre-multiply this matrix by the supplied left matrix, both of which are assumed to be affine, and store the result in dest.
    Matrix4f.mulOrthoAffine(Matrix4fc view, Matrix4f dest)
     
    Matrix4fc.mulOrthoAffine(Matrix4fc view, Matrix4f dest)
    Multiply this orthographic projection matrix by the supplied affine view matrix and store the result in dest.
    Matrix4f.mulPerspectiveAffine(Matrix4fc view, Matrix4f dest)
     
     
    Matrix4fc.mulPerspectiveAffine(Matrix4fc view, Matrix4f dest)
    Multiply this symmetric perspective projection matrix by the supplied affine view matrix and store the result in dest.
    Matrix4fc.mulPerspectiveAffine(Matrix4x3fc view, Matrix4f dest)
    Multiply this symmetric perspective projection matrix by the supplied view matrix and store the result in dest.
    Matrix4f.mulTranslationAffine(Matrix4fc right, Matrix4f dest)
     
    Matrix4fc.mulTranslationAffine(Matrix4fc right, Matrix4f dest)
    Multiply this matrix, which is assumed to only contain a translation, by the supplied right matrix, which is assumed to be affine, and store the result in dest.
    Matrix4f.negateX(Matrix4f dest)
     
    Matrix4fc.negateX(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.negateY(Matrix4f dest)
     
    Matrix4fc.negateY(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.negateZ(Matrix4f dest)
     
    Matrix4fc.negateZ(Matrix4f dest)
    Multiply this by the matrix
    Matrix4f.normal(Matrix4f dest)
    Compute a normal matrix from the upper left 3x3 submatrix of this and store it into the upper left 3x3 submatrix of dest.
    Matrix4fc.normal(Matrix4f dest)
    Compute a normal matrix from the upper left 3x3 submatrix of this and store it into the upper left 3x3 submatrix of dest.
    Matrix4f.normalize3x3(Matrix4f dest)
     
    Matrix4fc.normalize3x3(Matrix4f dest)
    Normalize the upper left 3x3 submatrix of this matrix and store the result in dest.
    Matrix4f.obliqueZ(float a, float b, Matrix4f dest)
    Apply an oblique projection transformation to this matrix with the given values for a and b and store the result in dest.
    Matrix4fc.obliqueZ(float a, float b, Matrix4f dest)
    Apply an oblique projection transformation to this matrix with the given values for a and b and store the result in dest.
    Matrix4f.ortho(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.ortho(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.ortho(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.ortho(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.ortho2D(float left, float right, float bottom, float top, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system to this matrix and store the result in dest.
    Matrix4fc.ortho2D(float left, float right, float bottom, float top, Matrix4f dest)
    Apply an orthographic projection transformation for a right-handed coordinate system to this matrix and store the result in dest.
    Matrix4f.ortho2DLH(float left, float right, float bottom, float top, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordinate system to this matrix and store the result in dest.
    Matrix4fc.ortho2DLH(float left, float right, float bottom, float top, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordinate system to this matrix and store the result in dest.
    Matrix4f.orthoCrop(Matrix4fc view, Matrix4f dest)
    Build an ortographic projection transformation that fits the view-projection transformation represented by this into the given affine view transformation.
    Matrix4fc.orthoCrop(Matrix4fc view, Matrix4f dest)
    Build an ortographic projection transformation that fits the view-projection transformation represented by this into the given affine view transformation.
    Matrix4f.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordiante system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordiante system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordiante system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.orthoLH(float left, float right, float bottom, float top, float zNear, float zFar, Matrix4f dest)
    Apply an orthographic projection transformation for a left-handed coordiante system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.orthoSymmetric(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.orthoSymmetric(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.orthoSymmetric(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.orthoSymmetric(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.orthoSymmetricLH(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.orthoSymmetricLH(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.orthoSymmetricLH(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.orthoSymmetricLH(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric orthographic projection transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspective(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.perspective(float fovy, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.perspective(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspective(float fovy, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveFrustumSlice(float near, float far, Matrix4f dest)
    Change the near and far clip plane distances of this perspective frustum transformation matrix and store the result in dest.
    Matrix4fc.perspectiveFrustumSlice(float near, float far, Matrix4f dest)
    Change the near and far clip plane distances of this perspective frustum transformation matrix and store the result in dest.
    Matrix4f.perspectiveLH(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.perspectiveLH(float fovy, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.perspectiveLH(float fovy, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveLH(float fovy, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveOffCenter(float fovy, float offAngleX, float offAngleY, float aspect, float zNear, float zFar, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
     
    Matrix4f.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, Matrix4f dest)
     
    Matrix4fc.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveOffCenterFov(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
     
    Matrix4f.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, Matrix4f dest)
     
    Matrix4fc.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a left-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveOffCenterFovLH(float angleLeft, float angleRight, float angleDown, float angleUp, float zNear, float zFar, Matrix4f dest)
    Apply an asymmetric off-center perspective projection frustum transformation for a left-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    static void
    Matrix4f.perspectiveOffCenterViewFromRectangle(Vector3f eye, Vector3f p, Vector3f x, Vector3f y, float nearFarDist, boolean zeroToOne, Matrix4f projDest, Matrix4f viewDest)
    Create a view and off-center perspective projection matrix from a given eye position, a given bottom left corner position p of the near plane rectangle and the extents of the near plane rectangle along its local x and y axes, and store the resulting matrices in projDest and viewDest.
    Matrix4f.perspectiveRect(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4f.perspectiveRect(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4fc.perspectiveRect(float width, float height, float zNear, float zFar, boolean zZeroToOne, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using the given NDC z range to this matrix and store the result in dest.
    Matrix4fc.perspectiveRect(float width, float height, float zNear, float zFar, Matrix4f dest)
    Apply a symmetric perspective projection frustum transformation for a right-handed coordinate system using OpenGL's NDC z range of [-1..+1] to this matrix and store the result in dest.
    Matrix4f.pick(float x, float y, float width, float height, int[] viewport, Matrix4f dest)
     
    Matrix4fc.pick(float x, float y, float width, float height, int[] viewport, Matrix4f dest)
    Apply a picking transformation to this matrix using the given window coordinates (x, y) as the pick center and the given (width, height) as the size of the picking region in window coordinates, and store the result in dest.
    Matrix4f.projectedGridRange(Matrix4fc projector, float sLower, float sUpper, Matrix4f dest)
     
    Matrix4fc.projectedGridRange(Matrix4fc projector, float sLower, float sUpper, Matrix4f dest)
    Compute the range matrix for the Projected Grid transformation as described in chapter "2.4.2 Creating the range conversion matrix" of the paper Real-time water rendering - Introducing the projected grid concept based on the inverse of the view-projection matrix which is assumed to be this, and store that range matrix into dest.
    Matrix4f.reflect(float nx, float ny, float nz, float px, float py, float pz, Matrix4f dest)
     
    Matrix4f.reflect(float a, float b, float c, float d, Matrix4f dest)
     
    Matrix4f.reflect(Quaternionfc orientation, Vector3fc point, Matrix4f dest)
     
    Matrix4f.reflect(Vector3fc normal, Vector3fc point, Matrix4f dest)
     
    Matrix4fc.reflect(float nx, float ny, float nz, float px, float py, float pz, Matrix4f dest)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the plane normal and a point on the plane, and store the result in dest.
    Matrix4fc.reflect(float a, float b, float c, float d, Matrix4f dest)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the equation x*a + y*b + z*c + d = 0 and store the result in dest.
    Matrix4fc.reflect(Quaternionfc orientation, Vector3fc point, Matrix4f dest)
    Apply a mirror/reflection transformation to this matrix that reflects about a plane specified via the plane orientation and a point on the plane, and store the result in dest.
    Matrix4fc.reflect(Vector3fc normal, Vector3fc point, Matrix4f dest)
    Apply a mirror/reflection transformation to this matrix that reflects about the given plane specified via the plane normal and a point on the plane, and store the result in dest.
    Matrix4f.rotate(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4f.rotate(float angle, Vector3fc axis, Matrix4f dest)
    Apply a rotation transformation, rotating the given radians about the specified axis and store the result in dest.
    Matrix4f.rotate(AxisAngle4f axisAngle, Matrix4f dest)
    Apply a rotation transformation, rotating about the given AxisAngle4f and store the result in dest.
    Matrix4f.rotate(Quaternionfc quat, Matrix4f dest)
    Apply the rotation transformation of the given Quaternionfc to this matrix and store the result in dest.
    Matrix4fc.rotate(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4fc.rotate(float angle, Vector3fc axis, Matrix4f dest)
    Apply a rotation transformation, rotating the given radians about the specified axis and store the result in dest.
    Matrix4fc.rotate(AxisAngle4f axisAngle, Matrix4f dest)
    Apply a rotation transformation, rotating about the given AxisAngle4f and store the result in dest.
    Matrix4fc.rotate(Quaternionfc quat, Matrix4f dest)
    Apply the rotation - and possibly scaling - transformation of the given Quaternionfc to this matrix and store the result in dest.
    Matrix4f.rotateAffine(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this affine matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4f.rotateAffine(Quaternionfc quat, Matrix4f dest)
    Apply the rotation transformation of the given Quaternionfc to this affine matrix and store the result in dest.
    Matrix4fc.rotateAffine(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this affine matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4fc.rotateAffine(Quaternionfc quat, Matrix4f dest)
    Apply the rotation - and possibly scaling - transformation of the given Quaternionfc to this affine matrix and store the result in dest.
    Matrix4f.rotateAffineXYZ(float angleX, float angleY, float angleZ, Matrix4f dest)
     
    Matrix4fc.rotateAffineXYZ(float angleX, float angleY, float angleZ, Matrix4f dest)
    Apply rotation of angleX radians about the X axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleZ radians about the Z axis and store the result in dest.
    Matrix4f.rotateAffineYXZ(float angleY, float angleX, float angleZ, Matrix4f dest)
     
    Matrix4fc.rotateAffineYXZ(float angleY, float angleX, float angleZ, Matrix4f dest)
    Apply rotation of angleY radians about the Y axis, followed by a rotation of angleX radians about the X axis and followed by a rotation of angleZ radians about the Z axis and store the result in dest.
    Matrix4f.rotateAffineZYX(float angleZ, float angleY, float angleX, Matrix4f dest)
     
    Matrix4fc.rotateAffineZYX(float angleZ, float angleY, float angleX, Matrix4f dest)
    Apply rotation of angleZ radians about the Z axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleX radians about the X axis and store the result in dest.
    Matrix4f.rotateAround(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.rotateAround(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
    Apply the rotation - and possibly scaling - transformation of the given Quaternionfc to this matrix while using (ox, oy, oz) as the rotation origin, and store the result in dest.
    Matrix4f.rotateAroundAffine(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.rotateAroundAffine(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
    Apply the rotation - and possibly scaling - transformation of the given Quaternionfc to this affine matrix while using (ox, oy, oz) as the rotation origin, and store the result in dest.
    Matrix4f.rotateAroundLocal(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.rotateAroundLocal(Quaternionfc quat, float ox, float oy, float oz, Matrix4f dest)
    Pre-multiply the rotation - and possibly scaling - transformation of the given Quaternionfc to this matrix while using (ox, oy, oz) as the rotation origin, and store the result in dest.
    Matrix4f.rotateLocal(float ang, float x, float y, float z, Matrix4f dest)
    Pre-multiply a rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4f.rotateLocal(Quaternionfc quat, Matrix4f dest)
    Pre-multiply the rotation transformation of the given Quaternionfc to this matrix and store the result in dest.
    Matrix4fc.rotateLocal(float ang, float x, float y, float z, Matrix4f dest)
    Pre-multiply a rotation to this matrix by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4fc.rotateLocal(Quaternionfc quat, Matrix4f dest)
    Pre-multiply the rotation - and possibly scaling - transformation of the given Quaternionfc to this matrix and store the result in dest.
    Matrix4f.rotateLocalX(float ang, Matrix4f dest)
    Pre-multiply a rotation around the X axis to this matrix by rotating the given amount of radians about the X axis and store the result in dest.
    Matrix4fc.rotateLocalX(float ang, Matrix4f dest)
    Pre-multiply a rotation around the X axis to this matrix by rotating the given amount of radians about the X axis and store the result in dest.
    Matrix4f.rotateLocalY(float ang, Matrix4f dest)
    Pre-multiply a rotation around the Y axis to this matrix by rotating the given amount of radians about the Y axis and store the result in dest.
    Matrix4fc.rotateLocalY(float ang, Matrix4f dest)
    Pre-multiply a rotation around the Y axis to this matrix by rotating the given amount of radians about the Y axis and store the result in dest.
    Matrix4f.rotateLocalZ(float ang, Matrix4f dest)
    Pre-multiply a rotation around the Z axis to this matrix by rotating the given amount of radians about the Z axis and store the result in dest.
    Matrix4fc.rotateLocalZ(float ang, Matrix4f dest)
    Pre-multiply a rotation around the Z axis to this matrix by rotating the given amount of radians about the Z axis and store the result in dest.
    Matrix4f.rotateTowards(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with (dirX, dirY, dirZ) and store the result in dest.
    Matrix4f.rotateTowards(Vector3fc dir, Vector3fc up, Matrix4f dest)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with dir and store the result in dest.
    Matrix4fc.rotateTowards(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Matrix4f dest)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with (dirX, dirY, dirZ) and store the result in dest.
    Matrix4fc.rotateTowards(Vector3fc dir, Vector3fc up, Matrix4f dest)
    Apply a model transformation to this matrix for a right-handed coordinate system, that aligns the local +Z axis with dir and store the result in dest.
    Matrix4f.rotateTowardsXY(float dirX, float dirY, Matrix4f dest)
     
    Matrix4fc.rotateTowardsXY(float dirX, float dirY, Matrix4f dest)
    Apply rotation about the Z axis to align the local +X towards (dirX, dirY) and store the result in dest.
    Matrix4f.rotateTranslation(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this matrix, which is assumed to only contain a translation, by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4f.rotateTranslation(Quaternionfc quat, Matrix4f dest)
    Apply the rotation transformation of the given Quaternionfc to this matrix, which is assumed to only contain a translation, and store the result in dest.
    Matrix4fc.rotateTranslation(float ang, float x, float y, float z, Matrix4f dest)
    Apply rotation to this matrix, which is assumed to only contain a translation, by rotating the given amount of radians about the specified (x, y, z) axis and store the result in dest.
    Matrix4fc.rotateTranslation(Quaternionfc quat, Matrix4f dest)
    Apply the rotation - and possibly scaling - ransformation of the given Quaternionfc to this matrix, which is assumed to only contain a translation, and store the result in dest.
    Matrix4f.rotateX(float ang, Matrix4f dest)
     
    Matrix4fc.rotateX(float ang, Matrix4f dest)
    Apply rotation about the X axis to this matrix by rotating the given amount of radians and store the result in dest.
    Matrix4f.rotateXYZ(float angleX, float angleY, float angleZ, Matrix4f dest)
     
    Matrix4fc.rotateXYZ(float angleX, float angleY, float angleZ, Matrix4f dest)
    Apply rotation of angleX radians about the X axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleZ radians about the Z axis and store the result in dest.
    Matrix4f.rotateY(float ang, Matrix4f dest)
     
    Matrix4fc.rotateY(float ang, Matrix4f dest)
    Apply rotation about the Y axis to this matrix by rotating the given amount of radians and store the result in dest.
    Matrix4f.rotateYXZ(float angleY, float angleX, float angleZ, Matrix4f dest)
     
    Matrix4fc.rotateYXZ(float angleY, float angleX, float angleZ, Matrix4f dest)
    Apply rotation of angleY radians about the Y axis, followed by a rotation of angleX radians about the X axis and followed by a rotation of angleZ radians about the Z axis and store the result in dest.
    Matrix4f.rotateZ(float ang, Matrix4f dest)
     
    Matrix4fc.rotateZ(float ang, Matrix4f dest)
    Apply rotation about the Z axis to this matrix by rotating the given amount of radians and store the result in dest.
    Matrix4f.rotateZYX(float angleZ, float angleY, float angleX, Matrix4f dest)
     
    Matrix4fc.rotateZYX(float angleZ, float angleY, float angleX, Matrix4f dest)
    Apply rotation of angleZ radians about the Z axis, followed by a rotation of angleY radians about the Y axis and followed by a rotation of angleX radians about the X axis and store the result in dest.
    Matrix4f.scale(float x, float y, float z, Matrix4f dest)
     
    Matrix4f.scale(float xyz, Matrix4f dest)
     
    Matrix4f.scale(Vector3fc xyz, Matrix4f dest)
     
    Matrix4fc.scale(float x, float y, float z, Matrix4f dest)
    Apply scaling to this matrix by scaling the base axes by the given x, y and z factors and store the result in dest.
    Matrix4fc.scale(float xyz, Matrix4f dest)
    Apply scaling to this matrix by uniformly scaling all base axes by the given xyz factor and store the result in dest.
    Matrix4fc.scale(Vector3fc xyz, Matrix4f dest)
    Apply scaling to this matrix by scaling the base axes by the given xyz.x, xyz.y and xyz.z factors, respectively and store the result in dest.
    Matrix4f.scaleAround(float sx, float sy, float sz, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4f.scaleAround(float factor, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.scaleAround(float sx, float sy, float sz, float ox, float oy, float oz, Matrix4f dest)
    Apply scaling to this matrix by scaling the base axes by the given sx, sy and sz factors while using (ox, oy, oz) as the scaling origin, and store the result in dest.
    Matrix4fc.scaleAround(float factor, float ox, float oy, float oz, Matrix4f dest)
    Apply scaling to this matrix by scaling all three base axes by the given factor while using (ox, oy, oz) as the scaling origin, and store the result in dest.
    Matrix4f.scaleAroundLocal(float sx, float sy, float sz, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4f.scaleAroundLocal(float factor, float ox, float oy, float oz, Matrix4f dest)
     
    Matrix4fc.scaleAroundLocal(float sx, float sy, float sz, float ox, float oy, float oz, Matrix4f dest)
    Pre-multiply scaling to this matrix by scaling the base axes by the given sx, sy and sz factors while using the given (ox, oy, oz) as the scaling origin, and store the result in dest.
    Matrix4fc.scaleAroundLocal(float factor, float ox, float oy, float oz, Matrix4f dest)
    Pre-multiply scaling to this matrix by scaling all three base axes by the given factor while using (ox, oy, oz) as the scaling origin, and store the result in dest.
    Matrix4f.scaleLocal(float x, float y, float z, Matrix4f dest)
     
    Matrix4f.scaleLocal(float xyz, Matrix4f dest)
     
    Matrix4fc.scaleLocal(float x, float y, float z, Matrix4f dest)
    Pre-multiply scaling to this matrix by scaling the base axes by the given x, y and z factors and store the result in dest.
    Matrix4fc.scaleLocal(float xyz, Matrix4f dest)
    Pre-multiply scaling to this matrix by scaling all base axes by the given xyz factor, and store the result in dest.
    Matrix4f.scaleXY(float x, float y, Matrix4f dest)
     
    Matrix4fc.scaleXY(float x, float y, Matrix4f dest)
    Apply scaling to this matrix by by scaling the X axis by x and the Y axis by y and store the result in dest.
    Matrix4f.set3x3(Matrix4f mat)
    Set the upper left 3x3 submatrix of this Matrix4f to that of the given Matrix4f and don't change the other elements.
    Matrix4f.set4x3(Matrix4f mat)
    Set the upper 4x3 submatrix of this Matrix4f to the upper 4x3 submatrix of the given Matrix4f and don't change the other elements.
    Matrix4f.shadow(float lightX, float lightY, float lightZ, float lightW, float a, float b, float c, float d, Matrix4f dest)
     
    Matrix4f.shadow(float lightX, float lightY, float lightZ, float lightW, Matrix4f planeTransform)
    Apply a projection transformation to this matrix that projects onto the plane with the general plane equation y = 0 as if casting a shadow from a given light position/direction (lightX, lightY, lightZ, lightW).
    Matrix4f.shadow(float lightX, float lightY, float lightZ, float lightW, Matrix4fc planeTransform, Matrix4f dest)
     
    Matrix4f.shadow(Vector4f light, float a, float b, float c, float d, Matrix4f dest)
     
    Matrix4f.shadow(Vector4f light, Matrix4f planeTransform)
    Apply a projection transformation to this matrix that projects onto the plane with the general plane equation y = 0 as if casting a shadow from a given light position/direction light.
    Matrix4f.shadow(Vector4f light, Matrix4fc planeTransform, Matrix4f dest)
     
    Matrix4fc.shadow(float lightX, float lightY, float lightZ, float lightW, float a, float b, float c, float d, Matrix4f dest)
    Apply a projection transformation to this matrix that projects onto the plane specified via the general plane equation x*a + y*b + z*c + d = 0 as if casting a shadow from a given light position/direction (lightX, lightY, lightZ, lightW) and store the result in dest.
    Matrix4fc.shadow(float lightX, float lightY, float lightZ, float lightW, Matrix4fc planeTransform, Matrix4f dest)
    Apply a projection transformation to this matrix that projects onto the plane with the general plane equation y = 0 as if casting a shadow from a given light position/direction (lightX, lightY, lightZ, lightW) and store the result in dest.
    Matrix4fc.shadow(Vector4f light, float a, float b, float c, float d, Matrix4f dest)
    Apply a projection transformation to this matrix that projects onto the plane specified via the general plane equation x*a + y*b + z*c + d = 0 as if casting a shadow from a given light position/direction light and store the result in dest.
    Matrix4fc.shadow(Vector4f light, Matrix4fc planeTransform, Matrix4f dest)
    Apply a projection transformation to this matrix that projects onto the plane with the general plane equation y = 0 as if casting a shadow from a given light position/direction light and store the result in dest.
    Matrix4f.sub(Matrix4fc subtrahend, Matrix4f dest)
     
    Matrix4fc.sub(Matrix4fc subtrahend, Matrix4f dest)
    Component-wise subtract subtrahend from this and store the result in dest.
    Matrix4f.sub4x3(Matrix4f subtrahend)
    Component-wise subtract the upper 4x3 submatrices of subtrahend from this.
    Matrix4f.sub4x3(Matrix4fc subtrahend, Matrix4f dest)
     
    Matrix4fc.sub4x3(Matrix4fc subtrahend, Matrix4f dest)
    Component-wise subtract the upper 4x3 submatrices of subtrahend from this and store the result in dest.
    Matrix4f.swap(Matrix4f other)
    Exchange the values of this matrix with the given other matrix.
    Matrix4f.tile(int x, int y, int w, int h, Matrix4f dest)
     
    Matrix4fc.tile(int x, int y, int w, int h, Matrix4f dest)
    This method is equivalent to calling: translate(w-1-2*x, h-1-2*y, 0, dest).scale(w, h, 1)
    Matrix4f.translate(float x, float y, float z, Matrix4f dest)
    Apply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4f.translate(Vector3fc offset, Matrix4f dest)
    Apply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4fc.translate(float x, float y, float z, Matrix4f dest)
    Apply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4fc.translate(Vector3fc offset, Matrix4f dest)
    Apply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4f.translateLocal(float x, float y, float z, Matrix4f dest)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4f.translateLocal(Vector3fc offset, Matrix4f dest)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4fc.translateLocal(float x, float y, float z, Matrix4f dest)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4fc.translateLocal(Vector3fc offset, Matrix4f dest)
    Pre-multiply a translation to this matrix by translating by the given number of units in x, y and z and store the result in dest.
    Matrix4f.translationRotateScaleMulAffine(float tx, float ty, float tz, float qx, float qy, float qz, float qw, float sx, float sy, float sz, Matrix4f m)
    Set this matrix to T * R * S * M, where T is a translation by the given (tx, ty, tz), R is a rotation - and possibly scaling - transformation specified by the quaternion (qx, qy, qz, qw), S is a scaling transformation which scales the three axes x, y and z by (sx, sy, sz) and M is an affine matrix.
    Matrix4f.translationRotateScaleMulAffine(Vector3fc translation, Quaternionfc quat, Vector3fc scale, Matrix4f m)
    Set this matrix to T * R * S * M, where T is the given translation, R is a rotation - and possibly scaling - transformation specified by the given quaternion, S is a scaling transformation which scales the axes by scale and M is an affine matrix.
    Matrix4f.transpose(Matrix4f dest)
     
    Matrix4fc.transpose(Matrix4f dest)
    Transpose this matrix and store the result in dest.
    Matrix4f.transpose3x3(Matrix4f dest)
     
    Matrix4fc.transpose3x3(Matrix4f dest)
    Transpose only the upper left 3x3 submatrix of this matrix and store the result in dest.
    Matrix4f.withLookAtUp(float upX, float upY, float upZ, Matrix4f dest)
     
    Matrix4f.withLookAtUp(Vector3fc up, Matrix4f dest)
     
    Matrix4fc.withLookAtUp(float upX, float upY, float upZ, Matrix4f dest)
    Apply a transformation to this matrix to ensure that the local Y axis (as obtained by Matrix4fc.positiveY(Vector3f)) will be coplanar to the plane spanned by the local Z axis (as obtained by Matrix4fc.positiveZ(Vector3f)) and the given vector (upX, upY, upZ), and store the result in dest.
    Matrix4fc.withLookAtUp(Vector3fc up, Matrix4f dest)
    Apply a transformation to this matrix to ensure that the local Y axis (as obtained by Matrix4fc.positiveY(Vector3f)) will be coplanar to the plane spanned by the local Z axis (as obtained by Matrix4fc.positiveZ(Vector3f)) and the given vector up, and store the result in dest.