public void calculateSelection(List<Drawable> drawables)
	{
		if (!acceptingUserInput() || captured)
			return;

		double ptClosestDist = Double.POSITIVE_INFINITY;
		double projectionPtClosestDist = Double.POSITIVE_INFINITY;
		
		for (Drawable drawable : drawables)
		{
			Point pt = drawable.getClosestPoint(mouseLoc);
			Point projPt = drawable.projectOnto(mouseLoc);
			
			double ptDist = pt.distance(mouseLoc);
			double projDist = projPt.distance(mouseLoc);
			
			if (ptDist < ptClosestDist)
			{
				closestPt = pt;
				ptClosestDist = ptDist;
			}
			
			if (projDist < projectionPtClosestDist)
			{
				projectionPtClosestDist = projDist;
				closestProjectionPt = projPt;
				closestDrawable = drawable;
			}
		}
	}