Class Matrix4f

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    Matrix4f

    public class Matrix4f
    extends Matrix
    implements java.io.Serializable
    Holds a 4x4 float matrix.
    See Also:
    Serialized Form
    • Field Detail

      • m00

        public float m00
      • m01

        public float m01
      • m02

        public float m02
      • m03

        public float m03
      • m10

        public float m10
      • m11

        public float m11
      • m12

        public float m12
      • m13

        public float m13
      • m20

        public float m20
      • m21

        public float m21
      • m22

        public float m22
      • m23

        public float m23
      • m30

        public float m30
      • m31

        public float m31
      • m32

        public float m32
      • m33

        public float m33
    • Constructor Detail

      • Matrix4f

        public Matrix4f()
        Construct a new matrix, initialized to the identity.
      • Matrix4f

        public Matrix4f​(Matrix4f src)
    • Method Detail

      • toString

        public java.lang.String toString()
        Returns a string representation of this matrix
        Overrides:
        toString in class java.lang.Object
      • setIdentity

        public Matrix setIdentity()
        Set this matrix to be the identity matrix.
        Specified by:
        setIdentity in class Matrix
        Returns:
        this
      • setIdentity

        public static Matrix4f setIdentity​(Matrix4f m)
        Set the given matrix to be the identity matrix.
        Parameters:
        m - The matrix to set to the identity
        Returns:
        m
      • setZero

        public Matrix setZero()
        Set this matrix to 0.
        Specified by:
        setZero in class Matrix
        Returns:
        this
      • setZero

        public static Matrix4f setZero​(Matrix4f m)
        Set the given matrix to 0.
        Parameters:
        m - The matrix to set to 0
        Returns:
        m
      • load

        public Matrix4f load​(Matrix4f src)
        Load from another matrix4f
        Parameters:
        src - The source matrix
        Returns:
        this
      • load

        public static Matrix4f load​(Matrix4f src,
                                    Matrix4f dest)
        Copy the source matrix to the destination matrix
        Parameters:
        src - The source matrix
        dest - The destination matrix, or null of a new one is to be created
        Returns:
        The copied matrix
      • load

        public Matrix load​(FloatBuffer buf)
        Load from a float buffer. The buffer stores the matrix in column major (OpenGL) order.
        Specified by:
        load in class Matrix
        Parameters:
        buf - A float buffer to read from
        Returns:
        this
      • load

        public Matrix load​(float[] buf)
        Load from a float buffer. The buffer stores the matrix in column major (OpenGL) order.
        Parameters:
        buf - A float array to read from
        Returns:
        this
      • loadTranspose

        public Matrix loadTranspose​(FloatBuffer buf)
        Load from a float buffer. The buffer stores the matrix in row major (maths) order.
        Specified by:
        loadTranspose in class Matrix
        Parameters:
        buf - A float buffer to read from
        Returns:
        this
      • store

        public Matrix store​(FloatBuffer buf)
        Store this matrix in a float buffer. The matrix is stored in column major (openGL) order.
        Specified by:
        store in class Matrix
        Parameters:
        buf - The buffer to store this matrix in
        Returns:
        this
      • store

        public Matrix store​(float[] buf)
      • storeTranspose

        public Matrix storeTranspose​(FloatBuffer buf)
        Store this matrix in a float buffer. The matrix is stored in row major (maths) order.
        Specified by:
        storeTranspose in class Matrix
        Parameters:
        buf - The buffer to store this matrix in
        Returns:
        this
      • store3f

        public Matrix store3f​(FloatBuffer buf)
        Store the rotation portion of this matrix in a float buffer. The matrix is stored in column major (openGL) order.
        Parameters:
        buf - The buffer to store this matrix in
      • add

        public static Matrix4f add​(Matrix4f left,
                                   Matrix4f right,
                                   Matrix4f dest)
        Add two matrices together and place the result in a third matrix.
        Parameters:
        left - The left source matrix
        right - The right source matrix
        dest - The destination matrix, or null if a new one is to be created
        Returns:
        the destination matrix
      • sub

        public static Matrix4f sub​(Matrix4f left,
                                   Matrix4f right,
                                   Matrix4f dest)
        Subtract the right matrix from the left and place the result in a third matrix.
        Parameters:
        left - The left source matrix
        right - The right source matrix
        dest - The destination matrix, or null if a new one is to be created
        Returns:
        the destination matrix
      • mul

        public static Matrix4f mul​(Matrix4f left,
                                   Matrix4f right,
                                   Matrix4f dest)
        Multiply the right matrix by the left and place the result in a third matrix.
        Parameters:
        left - The left source matrix
        right - The right source matrix
        dest - The destination matrix, or null if a new one is to be created
        Returns:
        the destination matrix
      • transform

        public static Vector4f transform​(Matrix4f left,
                                         Vector4f right,
                                         Vector4f dest)
        Transform a Vector by a matrix and return the result in a destination vector.
        Parameters:
        left - The left matrix
        right - The right vector
        dest - The destination vector, or null if a new one is to be created
        Returns:
        the destination vector
      • transpose

        public Matrix transpose()
        Transpose this matrix
        Specified by:
        transpose in class Matrix
        Returns:
        this
      • translate

        public Matrix4f translate​(Vector2f vec)
        Translate this matrix
        Parameters:
        vec - The vector to translate by
        Returns:
        this
      • translate

        public Matrix4f translate​(Vector3f vec)
        Translate this matrix
        Parameters:
        vec - The vector to translate by
        Returns:
        this
      • scale

        public Matrix4f scale​(Vector3f vec)
        Scales this matrix
        Parameters:
        vec - The vector to scale by
        Returns:
        this
      • scale

        public static Matrix4f scale​(Vector3f vec,
                                     Matrix4f src,
                                     Matrix4f dest)
        Scales the source matrix and put the result in the destination matrix
        Parameters:
        vec - The vector to scale by
        src - The source matrix
        dest - The destination matrix, or null if a new matrix is to be created
        Returns:
        The scaled matrix
      • rotate

        public Matrix4f rotate​(float angle,
                               Vector3f axis)
        Rotates the matrix around the given axis the specified angle
        Parameters:
        angle - the angle, in radians.
        axis - The vector representing the rotation axis. Must be normalized.
        Returns:
        this
      • rotate

        public Matrix4f rotate​(float angle,
                               Vector3f axis,
                               Matrix4f dest)
        Rotates the matrix around the given axis the specified angle
        Parameters:
        angle - the angle, in radians.
        axis - The vector representing the rotation axis. Must be normalized.
        dest - The matrix to put the result, or null if a new matrix is to be created
        Returns:
        The rotated matrix
      • rotate

        public static Matrix4f rotate​(float angle,
                                      Vector3f axis,
                                      Matrix4f src,
                                      Matrix4f dest)
        Rotates the source matrix around the given axis the specified angle and put the result in the destination matrix.
        Parameters:
        angle - the angle, in radians.
        axis - The vector representing the rotation axis. Must be normalized.
        src - The matrix to rotate
        dest - The matrix to put the result, or null if a new matrix is to be created
        Returns:
        The rotated matrix
      • translate

        public Matrix4f translate​(Vector3f vec,
                                  Matrix4f dest)
        Translate this matrix and stash the result in another matrix
        Parameters:
        vec - The vector to translate by
        dest - The destination matrix or null if a new matrix is to be created
        Returns:
        the translated matrix
      • translate

        public static Matrix4f translate​(Vector3f vec,
                                         Matrix4f src,
                                         Matrix4f dest)
        Translate the source matrix and stash the result in the destination matrix
        Parameters:
        vec - The vector to translate by
        src - The source matrix
        dest - The destination matrix or null if a new matrix is to be created
        Returns:
        The translated matrix
      • translate

        public Matrix4f translate​(Vector2f vec,
                                  Matrix4f dest)
        Translate this matrix and stash the result in another matrix
        Parameters:
        vec - The vector to translate by
        dest - The destination matrix or null if a new matrix is to be created
        Returns:
        the translated matrix
      • translate

        public static Matrix4f translate​(Vector2f vec,
                                         Matrix4f src,
                                         Matrix4f dest)
        Translate the source matrix and stash the result in the destination matrix
        Parameters:
        vec - The vector to translate by
        src - The source matrix
        dest - The destination matrix or null if a new matrix is to be created
        Returns:
        The translated matrix
      • transpose

        public Matrix4f transpose​(Matrix4f dest)
        Transpose this matrix and place the result in another matrix
        Parameters:
        dest - The destination matrix or null if a new matrix is to be created
        Returns:
        the transposed matrix
      • transpose

        public static Matrix4f transpose​(Matrix4f src,
                                         Matrix4f dest)
        Transpose the source matrix and place the result in the destination matrix
        Parameters:
        src - The source matrix
        dest - The destination matrix or null if a new matrix is to be created
        Returns:
        the transposed matrix
      • determinant

        public float determinant()
        Specified by:
        determinant in class Matrix
        Returns:
        the determinant of the matrix
      • invert

        public Matrix invert()
        Invert this matrix
        Specified by:
        invert in class Matrix
        Returns:
        this if successful, null otherwise
      • invert

        public static Matrix4f invert​(Matrix4f src,
                                      Matrix4f dest)
        Invert the source matrix and put the result in the destination
        Parameters:
        src - The source matrix
        dest - The destination matrix, or null if a new matrix is to be created
        Returns:
        The inverted matrix if successful, null otherwise
      • negate

        public Matrix negate()
        Negate this matrix
        Specified by:
        negate in class Matrix
        Returns:
        this
      • negate

        public Matrix4f negate​(Matrix4f dest)
        Negate this matrix and place the result in a destination matrix.
        Parameters:
        dest - The destination matrix, or null if a new matrix is to be created
        Returns:
        the negated matrix
      • negate

        public static Matrix4f negate​(Matrix4f src,
                                      Matrix4f dest)
        Negate this matrix and place the result in a destination matrix.
        Parameters:
        src - The source matrix
        dest - The destination matrix, or null if a new matrix is to be created
        Returns:
        The negated matrix
      • equals

        public boolean equals​(java.lang.Object m)
        Overrides:
        equals in class java.lang.Object