Package org.joml

Class Matrix4fStack

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, Matrix4fc

    public class Matrix4fStack
    extends Matrix4f
    A stack of many Matrix4f instances. This resembles the matrix stack known from legacy OpenGL.

    This Matrix4fStack class inherits from Matrix4f, so the current/top matrix is always the Matrix4fStack/Matrix4f itself. This affects all operations in Matrix4f that take another Matrix4f as parameter. If a Matrix4fStack is used as argument to those methods, the effective argument will always be the current matrix of the matrix stack.

    Author:
    Kai Burjack
    See Also:
    Serialized Form
    • Constructor Detail

      • Matrix4fStack

        public Matrix4fStack​(int stackSize)
        Create a new Matrix4fStack of the given size.

        Initially the stack pointer is at zero and the current matrix is set to identity.

        Parameters:
        stackSize - the size of the stack. This must be at least 1, in which case the Matrix4fStack simply only consists of this Matrix4f
      • Matrix4fStack

        public Matrix4fStack()
        Do not invoke manually! Only meant for serialization.

        Invoking this constructor from client code will result in an inconsistent state of the created Matrix4fStack instance.

    • Method Detail

      • clear

        public Matrix4fStack clear()
        Set the stack pointer to zero and set the current/bottom matrix to identity.
        Returns:
        this
      • pushMatrix

        public Matrix4fStack pushMatrix()
        Increment the stack pointer by one and set the values of the new current matrix to the one directly below it.
        Returns:
        this
      • popMatrix

        public Matrix4fStack popMatrix()
        Decrement the stack pointer by one.

        This will effectively dispose of the current matrix.

        Returns:
        this
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class Matrix4f
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Overrides:
        writeExternal in class Matrix4f
        Throws:
        java.io.IOException
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException
        Specified by:
        readExternal in interface java.io.Externalizable
        Overrides:
        readExternal in class Matrix4f
        Throws:
        java.io.IOException