private static void UpdateDeltaOnLeft(ref Point p, ref Point l, ref double delta, SkipList <Point> t, ref Point?a, ref Point?b) { var i = 0; while (l != new Point(double.NegativeInfinity, double.NegativeInfinity) && (i < 4)) { var dist = D(p, l); if (dist < delta) { delta = dist; a = p; b = l; } l = t.Previous(l); if (l == default(Point)) { break; } i++; } }
private static void UpdateDeltaOnRight(ref Point p, ref Point r, ref double delta, SkipList <Point> t, ref Point?a, ref Point?b) { var i = 0; while (r != new Point(double.NegativeInfinity, double.PositiveInfinity) && (i < 4)) { var dist = D(p, r); if (dist < delta) { delta = dist; a = p; b = r; } r = t.Next(r); if (r == default(Point)) { break; } i++; } }