001 package com.croftsoft.apps.jogl;
002
003 import java.util.*;
004
005 /***********************************************************************
006 * Request to move in a given direction.
007 *
008 * @version
009 * $Id: JoglMoveState.java,v 1.5 2008/04/19 23:52:10 croft Exp $
010 * @since
011 * 2008-02-10
012 * @author
013 * <a href="https://www.croftsoft.com/">David Wallace Croft</a>
014 ***********************************************************************/
015
016 public final class JoglMoveState
017 ////////////////////////////////////////////////////////////////////////
018 ////////////////////////////////////////////////////////////////////////
019 {
020
021 public enum EnumDirection
022 {
023 BACKWARD,
024 DOWN,
025 FORWARD,
026 LEFT,
027 PITCH_DOWN,
028 PITCH_UP,
029 RIGHT,
030 ROLL_LEFT,
031 ROLL_RIGHT,
032 UP,
033 YAW_LEFT,
034 YAW_RIGHT
035 }
036
037 private final EnumSet<EnumDirection> enumSet;
038
039 ////////////////////////////////////////////////////////////////////////
040 ////////////////////////////////////////////////////////////////////////
041
042 public JoglMoveState ( )
043 ////////////////////////////////////////////////////////////////////////
044 {
045 enumSet = EnumSet.noneOf ( EnumDirection.class );
046 }
047
048 ////////////////////////////////////////////////////////////////////////
049 ////////////////////////////////////////////////////////////////////////
050
051 public void clear ( )
052 ////////////////////////////////////////////////////////////////////////
053 {
054 enumSet.clear ( );
055 }
056
057 public boolean get ( final EnumDirection enumDirection )
058 ////////////////////////////////////////////////////////////////////////
059 {
060 return enumSet.contains ( enumDirection );
061 }
062
063 public void set (
064 final EnumDirection enumDirection,
065 final boolean flag )
066 ////////////////////////////////////////////////////////////////////////
067 {
068 if ( flag )
069 {
070 enumSet.add ( enumDirection );
071 }
072 else
073 {
074 enumSet.remove ( enumDirection );
075 }
076 }
077
078 ////////////////////////////////////////////////////////////////////////
079 ////////////////////////////////////////////////////////////////////////
080 }