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 }