Package org.joml

Class Matrix4dStack

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, Matrix4dc

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

    This Matrix4dStack class inherits from Matrix4d, so the current/top matrix is always the Matrix4dStack/Matrix4d itself. This affects all operations in Matrix4d that take another Matrix4d as parameter. If a Matrix4dStack 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

      • Matrix4dStack

        public Matrix4dStack​(int stackSize)
        Create a new Matrix4dStack 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 Matrix4dStack simply only consists of this Matrix4d
      • Matrix4dStack

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

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

    • Method Detail

      • clear

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

        public Matrix4dStack 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 Matrix4dStack 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 Matrix4d
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Overrides:
        writeExternal in class Matrix4d
        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 Matrix4d
        Throws:
        java.io.IOException
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Overrides:
        clone in class Matrix4d
        Throws:
        java.lang.CloneNotSupportedException