@red51: Thanks for the reply, I appreciate you spending time on commenting on this topic. I am not very familiar with the terminology used in game field, so I may fail to understand some detail, but I still believe there is a bug somewhere, rather than the choice of a given implementation over another.
Your description seems to imply that intrinsic rotations (i.e. relative to the reference frame being rotated, or "object coordinates") are used rather extrinsic ones (i.e. relative to the global, fixed reference frame, or "world coordinates"). I'll assume this to be true.
(Side note: as you quote three rotations around three different axes, while the "classical" Euler formalism only uses two, the first and the third rotation being around the same axis, it seems to me we are actually dealing with Tait-Bryan angles, but I'll assume them as just a variant of the Euler formalism).
______________________________
A) Euler angles should be able to represent any orientation with three appropriate elemental rotations. However, I have been unable to achieve the object orientation which can be described as:
0) the object is initially aligned with the world reference frame (grey outline)
1) rotate the object around its Z axis by, say, 45° (black outline)
2) rotate the object around its Y axis by, say, 45° (red outline)
as depicted by:
This orientation seems impossible to achieve with the current implementation. Possibly, I didn't try hard enough and I would be glad if somebody could find a way to do it, but so far this does not seem to be a complete implementation.
_____________________________
B) If intrinsic rotations are used, they should be used all over the place and, as they are "played back" in a specific order (Y - Z - X), generally different form the order in which they are created (in my example above they are created in the order Z - Y), the latter order should be converted into the former.
I'll try to explain myself elaborating on the example above.
0) Step 0 (initial rotation) can be described with the Tait-Bryan Y-Z-X angles as y = 0, z = 0, x = 0.
1) Step 1 (rotation around the object Z axis) can be described as y = 0, z = 45°, x = 0.
2) Step 2 (another, second, rotation around the object Y axis) cannot be represented as y = 45°, z = 45°, x = 0, because this represents a different final orientation in which the Y rotation is applied first, as per your description.
The actual representation of step 2 as a yaw - roll - pitch (Y-Z-X) sequence of elemental rotations should be derived by applying step 2 to step 1 obtaining a cumulative rotation matrix (or quaternion) from which to work out the individual Euler (or Tait-Bryan) angles in the chosen sequence (Y-Z-X).
I hope this might explain a bit more the issue I am facing.