I don't quite get the usage of the stack here. Is it simply an organizational method, where each draw will go through whatever is on the stack and use those transformations, or is there something along the lines of an ongoing product matrix, which keeps getting multiplied by transform matrices and then their inverses when popping?
Interestingly, based on these posts, it seems like matrix stacks have been removed as of the most recent OpenGL version. I wonder why it wouldn’t be preferable to hand the heirarchical transformation matrices off to the library/GPU for optimized application. https://stackoverflow.com/questions/3755998/what-is-the-point-of-the-matrix-stack-in-opengl