gl3n



struct MatrixStack(T) if (is_matrix!(T));

A matrix stack similiar to OpenGLs glPushMatrix/glPopMatrix


alias Matrix = T;

Holds the internal matrix type


Matrix top;

The top matrix, the one you work with


If the stack is too small to hold more items, space for realloc_interval more elements will be allocated


pure nothrow this(size_t depth = 16);

Sets the stacks initial size to depth elements


pure nothrow void set(Matrix matrix);

Sets the top matrix


pure nothrow void push();

Pushes the top matrix on the stack and keeps a copy as the new top matrix


pure nothrow void push(Matrix matrix);

Pushes the top matrix on the stack and sets matrix as the new top matrix.


pure nothrow Matrix pop();

Pops a matrix from the stack and sets it as top matrix. Also returns a reference to the new top matrix.