CameraControls:

--------------------------------------------------------------------------
   This function creates a GUI for manipulating the camera view.

   Initialize by supplying an axis handle. If no input is provided it will
   point to the current axis (gca).

   This GUI does not provide direct control over the camera target.
   Set the camera target of axes "h" to vector "v" with this command:
     set(h,'cameratarget',v)
 
   Move in/out changes the distance from the camera to the target.
   Zoom in/out changes the view angle of the camera.
   Adjust azimuth and elevation to change the orientation of the camera
     while keeping the distance constant.

   The azimuth and elevation angles are defined in a local xyz coordinate
   frame. 
     x: along the direction of the camera target vector. 
     y: cross product of z and x, completes right-handed system
     z: cross product of x and the supplied forward vector

   Note that the "forward" vector is not an axis property, and so it must 
   be supplied directly to the CameraControls GUI.

   See also:  AnimationGUI.m

   Since version 8.
--------------------------------------------------------------------------
   USAGE:

     % Initialize and use current axes (gca)
     tag = CameraControls;

     % Initialize with specified axes
     tag = CameraControls( axisHandle );    

     % Set the forward vector
     CameraControls( 'set forward vector', tag, forwardVector );

     % Update the view
           CameraControls( 'update', tag );

     % Update the view with a new forward vector
     CameraControls( 'update', tag, forwardVector );    
--------------------------------------------------------------------------
 
   ------ 
   Inputs 
   ------ 
   axisHandle      (1,1)   Handle to the axes for controlling the camera
 
   ------- 
   Outputs 
   ------- 
   tag             (1,:)   Tag to the GUI.
  
--------------------------------------------------------------------------

Children:

Common: General/GetNewTag
Common: Transform/RotMat
Math: Linear/Cross
Math: Linear/Mag
Math: Linear/Unit