public Transition transitionAtPoint(Point point) {
		if (!valid)
			refreshArrowMap();
		Set arrows = arrowToTransitionMap.keySet();
		Iterator it = arrows.iterator();
		while (it.hasNext()) {
			CurvedArrow arrow = (CurvedArrow) it.next();
			if (arrow.isNear(point, 2))
				return (Transition) arrowToTransitionMap.get(arrow);
		}
		return null;
	}