Rotations and views

All calculations are passed through quaternion intermediates to avoid numerical instabilities in using Euler angles directly.