text: #include <turntable_camera.h>
  A class representing a collection of cameras, oriented in a turntable-style configuration.
  This class is based on a set of assumptions that are true in turntable scenarios:
  * All cameras have same intrinsic parameters * All cameras positions are related by pure rotation around the same axis. * All camera orientations are related by rotation around the same axis.
  This could also apply to a robot turning an object in it's hand.
  Create a null Turntable camera. Attempting to use this camera as-is will result in an abort (in DEVELOPMENT mode) or undefined behavior (in PRODUCTION mode). As such, it must be initialized to a valid camera using the assignment operator before using.
  Create a turntable camera assuming equal spacing of cameras.
  The "Neutral" camera, i.e. camera at position 0 A direction vector representing the turntable's rotation axis. A position vector representing the turntable's origin, i.e. the center of rotation. This can be any point lying on the rotation line. The number of positions where images were captured, a.k.a "number of cameras". This number of cameras will be evenly spaced around the 390 degree circle. Whether or not turntable rotation is clockwise. Clockwise-ness is determined by looking in the direction of the rotation axis. Flipping the direction of the rotation axis will require flipping the clockwise boolean.
  Create a turntable camera from an arbitrary collection of angles. Angles are relative to the rotation axis direction, following a right-handed convention; i.e. positive angles correspond to counter-clockwise rotation when looking in the direction of the axis vector.
  The call below will create a configuration with the world origin coinciding with the turntable origin; the turntable axis pointing upward; using the angles stored in the collection "angles":
  Standard copy constructor.
  Returns the neutral camera, a.k.a. camera 0
  Returns the principal point of the camera. Same for all cameras.
  Simple assignment
  Send modelview and projection matrices to opengl corresponding to the active camera's extrinsic and intrinsic parameters.
  Set the i-th camera to be active.
  If not all angles should be used, use this to specify the indices of angles to use.
  Set the next camera to be active, or if the last camera is active, activate the first camera.
  Set the previous camera to be active, or if the first camera is active, activate the last camera.
  Set the principal point of all cameras.
  Swap state with another Turntable_camera. Running time is O(c).