001        package com.croftsoft.core.media.jogl.camera;
002    
003        import com.croftsoft.core.math.axis.AxisAngle;
004         
005        /***********************************************************************
006        * Jogl camera viewpoint rotation and translation.
007        *
008        * Example code:
009        * <code><pre>
010        * gl.glMatrixMode ( GL.GL_MODELVIEW );
011        * 
012        * gl.glLoadIdentity ( );
013        * 
014        * final AxisAngle  axisAngle = joglCamera.getAxisAngle ( );
015        *
016        * gl.glRotated (
017        *   -axisAngle.getDegrees ( ),
018        *   axisAngle.getX ( ),
019        *   axisAngle.getY ( ),
020        *   axisAngle.getZ ( ) );
021        * 
022        * gl.glTranslated (
023        *   -joglCamera.getX ( ),
024        *   -joglCamera.getY ( ),
025        *   -joglCamera.getZ ( ) );
026        * </pre></code>
027        * 
028        * @version
029        *   $Id: JoglCamera.java,v 1.3 2008/05/16 19:50:00 croft Exp $
030        * @since
031        *   2008-05-09
032        * @author
033        *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
034        ***********************************************************************/
035    
036        public interface  JoglCamera
037        ////////////////////////////////////////////////////////////////////////
038        ////////////////////////////////////////////////////////////////////////
039        {
040          
041        public enum  Axis
042        {
043          X,
044          Y,
045          Z
046        }
047          
048        public enum  Rotation
049        {
050          PITCH_DOWN,
051          PITCH_UP,
052          ROLL_LEFT,
053          ROLL_RIGHT,
054          YAW_LEFT,
055          YAW_RIGHT
056        }
057    
058        public enum  Translation
059        {
060          BACKWARD,
061          DOWN,
062          FORWARD,
063          LEFT,
064          RIGHT,
065          UP
066        }
067    
068        AxisAngle  getAxisAngle ( );
069        
070        double  getX ( );
071        
072        double  getY ( );
073        
074        double  getZ ( );
075         
076        ////////////////////////////////////////////////////////////////////////
077        ////////////////////////////////////////////////////////////////////////
078        }