private static void UpdateActivePoints(ref Point p, ref Point firstActive, SkipList <Point> t, double delta) { var q = firstActive; while (p.X - q.X > delta && q.X < double.NegativeInfinity) { firstActive = t.Next(q); t.Remove(q); q = firstActive; } }
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++; } }