-- The pan, tilt, roll controls are designed for FPS-style camera
-- control. The key idea is that panning is about a world-frame
-- up-axis, not the camera's local up axis. We record which world axis
-- to use as the up vector in the 'Camera' data structure.
pan :: Float -> Camera -> Camera
pan theta c = rotation *~ axisAngle (_cameraUp c) theta $ c
pan :: Float -> Camera -> Camera
pan theta c = rotation *~ axisAngle (_cameraUp c) theta $ c
pan theta c = rotation *~ axisAngle (_cameraUp c) theta $ c