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        }