package automatvgi;

public enum Direction {
	NORTH {
		public double angle() {
			return Math.PI / 2;
		}

		public String initials() {
			return "n";
		}

		public String capInitials() {
			return "N";
		}
	},
	NORTH_WEST {
		public double angle() {
			return 3 * Math.PI / 4;
		}

		public String initials() {
			return "nw";
		}

		public String capInitials() {
			return "NW";
		}
	},
	WEST {
		public double angle() {
			return Math.PI;
		}

		public String initials() {
			return "w";
		}

		public String capInitials() {
			return "W";
		}
	},
	SOUTH_WEST {
		public double angle() {
			return -3 * Math.PI / 4;
		}

		public String initials() {
			return "sw";
		}

		public String capInitials() {
			return "SW";
		}
	},
	SOUTH {
		public double angle() {
			return -Math.PI / 2;
		}

		public String initials() {
			return "s";
		}

		public String capInitials() {
			return "S";
		}
	},
	SOUTH_EAST {
		public double angle() {
			return -Math.PI / 4;
		}

		public String initials() {
			return "se";
		}

		public String capInitials() {
			return "SE";
		}
	},
	EAST {
		public double angle() {
			return 0.;
		}

		public String initials() {
			return "e";
		}

		public String capInitials() {
			return "E";
		}
	},
	NORTH_EAST {
		public double angle() {
			return Math.PI / 4;
		}

		public String initials() {
			return "ne";
		}

		public String capInitials() {
			return "NE";
		}
	};

	public abstract double angle();

	public abstract String initials();

	public abstract String capInitials();
}
