public final enum

Direction

extends Enum<E extends Enum<E>>
package org.anddev.andengine.util.path;

/**
 * (c) 2010 Nicolas Gramlich 
 * (c) 2011 Zynga Inc.
 * 
 * @author Nicolas Gramlich
 * @since 15:19:11 - 17.08.2010
 */
public enum Direction {
	// ===========================================================
	// Elements
	// ===========================================================

	UP(0, -1), DOWN(0, 1), LEFT(-1, 0), RIGHT(1, 0);

	// ===========================================================
	// Constants
	// ===========================================================

	// ===========================================================
	// Fields
	// ===========================================================

	private final int mDeltaX;
	private final int mDeltaY;

	// ===========================================================
	// Constructors
	// ===========================================================

	private Direction(final int pDeltaX, final int pDeltaY) {
		this.mDeltaX = pDeltaX;
		this.mDeltaY = pDeltaY;
	}

	public static Direction fromDelta(final int pDeltaX, final int pDeltaY) {
		if(pDeltaX == 0) {
			if(pDeltaY == 1) {
				return DOWN;
			} else if(pDeltaY == -1) {
				return UP;
			}
		} else if (pDeltaY == 0) {
			if(pDeltaX == 1) {
				return RIGHT;
			} else if(pDeltaX == -1) {
				return LEFT;
			}
		}
		throw new IllegalArgumentException();
	}

	// ===========================================================
	// Getter & Setter
	// ===========================================================

	public int getDeltaX() {
		return this.mDeltaX;
	}

	public int getDeltaY() {
		return this.mDeltaY;
	}

	// ===========================================================
	// Methods from SuperClass/Interfaces
	// ===========================================================

	// ===========================================================
	// Methods
	// ===========================================================

	// ===========================================================
	// Inner and Anonymous Classes
	// ===========================================================
}