Hi Joe. What you are really doing when you set y = z and z = -y is a 90 degree rotation around the x axis. This sort of operation can be encoded in a 3x3 matrix (call it M).

You can use OpenGL’s glRotatef() and glGet() calls to create this matrix if you need to.

Once you have it, you can use it to fix your vertices and matrices (and quaternions).

To fix your vertices, just do this:

new vertex = M * old vertex

To convert your matrices and quaternions to the new space is slightly more complicated. I believe you’ll have to do this:

new matrix = M * old matrix * M^(-1)

Where M^(-1) is the inverse of M, which, for rotation matrices, is the same as the transpose.