private void Merge(int left, int mid, int right) { int i = left, j = mid + 1, top = 0; var data = new Point[right + 1]; while (i <= mid && j <= right) { if (cmp(_Points[i], _Points[j])) { data[top++] = _Points[i++]; } else { data[top++] = _Points[j++]; } } while (i <= mid) { data[top++] = _Points[i++]; } while (j <= right) { data[top++] = _Points[j++]; } for (i = 0, j = left; i < top; i++, j++) { _Points[j] = Vector2.FromPoint(data[i].X, data[i].Y); } }
public static Vector2 FromPoint(Point p) { return(Vector2.FromPoint(p.X, p.Y)); }