From 1680e5135bf562bbb7acff3c656ab60bd5602993 Mon Sep 17 00:00:00 2001 From: Dave Hoover Date: Wed, 3 Dec 2008 18:53:20 +0000 Subject: [PATCH] Cardinals. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@727 ed5b42cb-e716-0410-a449-f6a68f950b19 --- src/java/com/threerings/util/DirectionCodes.java | 5 ++++- src/java/com/threerings/util/DirectionUtil.java | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/util/DirectionCodes.java b/src/java/com/threerings/util/DirectionCodes.java index a2122990..b67e6e53 100644 --- a/src/java/com/threerings/util/DirectionCodes.java +++ b/src/java/com/threerings/util/DirectionCodes.java @@ -35,7 +35,7 @@ public interface DirectionCodes /** A direction code indicating moving right. */ public static final int RIGHT = 1; - + /** A direction code indicating moving up. */ public static final int UP = 2; @@ -107,4 +107,7 @@ public interface DirectionCodes /** The number of fine compass directions. */ public static final int FINE_DIRECTION_COUNT = 16; + + /** The four points of the compass. */ + public static final int[] CARDINAL_DIRECTIONS = { NORTH, SOUTH, EAST, WEST }; } diff --git a/src/java/com/threerings/util/DirectionUtil.java b/src/java/com/threerings/util/DirectionUtil.java index 19b03980..885a502c 100644 --- a/src/java/com/threerings/util/DirectionUtil.java +++ b/src/java/com/threerings/util/DirectionUtil.java @@ -135,6 +135,14 @@ public class DirectionUtil implements DirectionCodes return rotateCW(direction, FINE_CW_ROTATE.length/2); } + /** + * Get the cardinal direction closest to the specified direction (preferring a clockwise match). + */ + public static int getClosestCardinal (int direction) + { + return getClosest(direction, CARDINAL_DIRECTIONS, true); + } + /** * Get the direction closest to the specified direction, out of * the directions in the possible list (preferring a clockwise match).