// Perlin gave us this code gratis

public class MatrixStack {
    int top = 0, stackSize = 20;
    Matrix3D stack[] = new Matrix3D[stackSize];

    public MatrixStack() {
	for (int i = 0; i < stackSize; i++)
	    stack[i] = new Matrix3D();
    }

    public void push() {
	if (top < stackSize) {
	    stack[top+1].copy(stack[top]);
	    top++;
	}
    }

    public void pop() {
	if (top > 0)
	    --top;
    }

    public Matrix3D get() {return stack[top]; }
}

