public State stateAtPoint(Point point) {
		State[] states = getAutomaton().getStates();
		// Work backwards, since we want to select the "top" state,
		// and states are drawn forwards so later is on top.
		for (int i = states.length - 1; i >= 0; i--)
			if (point.distance(states[i].getPoint()) <= StateDrawer.STATE_RADIUS)
				return states[i];
		// Not found. Drat!
		return null;
	}