Rotation/Semantics Question

In a 3D application, such as Caligari Truespace, or 3DS-Max, or Lightwave, etc. It is possible to specify the rotation as a 3part vector, that is <X rotation,Y rotation,Z rotation>

Is this not a strange way of doing things, since different orders of rotation will cause different results? If it is not considered strange, how should one rotate an object such as a camera? X-Y-Z? Z-Y-X? X-Y-Z-Z-Y?

Your 3 rotations do commute ( this is a very special case indeed), so the order does not matter: XYZ = YXZ=YZX etc… .

Since when does rotations commute? Imagine a cylinder aligned along the x-axis, being rotated by the XYZ-triple <0,90,45>. If we rotate around Y before Z the result is that the cylinder is aligned along the Z axis and rotated around its center axis by 45 degrees. If we rotate around Z first, it’s NOT aligned to the z-axis but instead at a 45 degree angle to the XZ-plane and pointing in the general direction of the z-axis. Usually, you specify a rotation order, that is somewhere in Truespace it says “Rotation order is XYZ” or something like that (I don’t know what order Truespace actually uses).

I don’t what special case you speack about, but in general 3 rotations around fixed axis do not comute.

btw, setting a camera with 3 angles is not a good aproach. A better one would be to set an axe then an angle (around that axe).