internal static Point ClosestCornerPoint(this Rect rect, Point p) { return p.Closest(rect.TopLeft, rect.TopRight, rect.BottomRight, rect.BottomLeft); }