Could somebody double check this for me please?

I'm fairly certain that the Quaternion class Javadocs are wrong wherever they discuss Euler angles. The docs consistently describe the used Euler angle sequence as Yaw, Roll, Pitch. Specifically, the input sequence for the float[3] constructor, and the input/output for the toAngles/fromAngles methods. I am not talking about the order in which the eulers are applied internally (which is done correctly according to the http://www.euclideanspace.com algorithm), just the input/output params. It's also not that the input/output sequence is implemented wrong, but that the decided-upon sequence of input/output parameters are not as documented.

- It is very easy to empirically show that the sequence of the 3 angles for these methods are exactly the same as the 2nd param of the fromAngleAxis methods, and this fromAngleAxis parameter clearly describes rotations around the local object's X, Y, and Z axes respectively. See, for example, http://www.jmonkeyengine.com/wiki/doku.php?id=rotate . I understand the traditional avoidance of X/Y/Z for the Euler angles, but IMO the avoidance is unwarranted as long as one understands we always mean the local rotation of the object under discussion (not worldspace, for example). Conclusion: the Quaternion Euler angle sequences are rotation-about-X-axis, rotation-about-Y-axis, rotation-about-Z-axis.
- When using these methods, the float[3] constructor and to/fromAngles() methods, results are always correct on the assumption that the params mean rotations about the X, Y, and Z axes (in this order).
- The normal frame of reference for Roll/Bank, Yaw/Heading, Pitch/Attitude is according to the traditional example of an airplane flying to +x, as described in the "NASA Standard Aeroplane" section at http://www.euclideanspace.com/maths/geometry/rotations/Euler/index.htm . Although the jME Quaternion implementation is based on the www.euclideanspace.com algorithms (e.g. the sequence of angle applications), the jME Javadoc specifications for "y, r, p" do not work according to this model, and the docs imply that they are according to the following model.
- Everything I can find in the jME docs explains the Roll/Bank, Yaw/Heading, Pitch/Attitude specs as applying to an object facing its local +Z or -Z direction with +Y up. This is clearly spelled out at http://www.jmonkeyengine.com/wiki/doku.php?id=rotate , though they are specifically talking about the boolean angle axes .
- As correctly explained at http://www.jmonkeyengine.com/wiki/doku.php?id=rotate , a pitch change to an object facing +Z or -Z results in a rotation about the X axis; a yaw change results in a Y axis rotation; and a roll change results in a Z axis change. Therefore, the Quaternion methods Euler parameters which specify rotations about x/y/z axes should be in the order (pitch-rotation, yaw-rotation, roll-rotation). IMO, they are incorrectly described in the Javadoc as (yaw, roll, pitch).

If everything is interpreted as I have explained, i.e. the Quaternion class's euler params are in sequence [x-axis-rot, y-axis-rot, z-axis-rot] corresponding to [pitch, yaw, roll] of a Z-forward/Y-up] object, then everything just works. I applied every possible transform combination and euler conversion to confirm this.

I think the JavaDoc needs to be corrected. Seeing that, contrary to traditional quaternion usage, use 3D developers need to always understand about local X/Y/Z axes, I see no benefit to introducing the roll/bank/yaw/heading/pitch/att concept at all. Since with jME games we always want to think of an object's LOCAL forward to be +Z and +Y up, and since this is different from the traditional interpretation of roll/bank/yaw/heading/pitch (where object's forward is +X and +Y up), the whole concept just adds ambiguity. Everything just makes sense if the eulers are interpreted to mean rotations around the local object's X, Y, and Z axes respectively.