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 }