It is worth noting that equations () and () are not single-valued when extracting or from a Rotation matrix. We adhere to the following conventions to resolve that ambiguity whenever forming an HepAxisAngle or HepEulerAngles from a Rotation:
In particular, special case rotations such as HepRotationX with supplied as zero or obey these conventions: even though for a RotationX would have Euler angles , when exactly, the Euler angles are .
These conventions for how methods return values for Euler angles do not affect the user's right to supply explicit values for or when defining one of those structures. Similarly, the conventions for reading axis and angle do not affect the user's ability to supply arbitrary values for the angle .
Obeying the above rules, Euler angles returned for rotations about coordinate axes behave as follows: