When specifying the angular pose of an element, e.g.,
phantom.set_rotation(30.0, 40.0, 50.0, 'deg')
I assume this specifies a sequence of rotations about the X, Y, and Z axes, but in what order? And are these intrinsic or extrinsic (https://en.wikipedia.org/wiki/Euler_angles#Definition_by_intrinsic_rotations) rotations?
In GGEMS 1.3, the three angles (rx, ry, rz) are applied as extrinsic rotations about the global X, Y and Z axes, in this order (X → Y → Z).
Internally the code composes the rotation matrix as Rz * Ry * Rx, which, with the convention used in GGEMS (column vectors, active rotations), corresponds to a rotation first about X, then about Y, then about Z.
In GGEMS v2, the whole transformation system (rotations and translations) will be redesigned and much more thoroughly documented, with explicit conventions on Euler angles, rotation order, and possibly quaternions.
Great, thanks!