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 }