/// <summary> /// Performs a vertical sweep, calling the given event handler delegate. /// </summary> /// <param name="eventHandler"></param> public void VerticalSweep(HandleEvent eventHandler) { ISweepEvent <T> ev; while (Events.FindMin(out ev)) { Events.DeleteMin(); Line = new Line(ev.Pos, ev.Pos + new Vector2(1f, 0f)); eventHandler(Events, Status, ev); } }
/// <summary> /// Performs a vertical sweep, calling the given event handler delegate. /// </summary> /// <param name="eventHandler"></param> public void VerticalSweep(HandleEvent eventHandler) { E ev; while (Events.FindMin(out ev)) { if (!Events.Delete(ev)) { throw new ArgumentException("Failed to delete event " + RuntimeHelpers.GetHashCode(ev) + " - " + ev); } Line = new Line(ev.Pos, ev.Pos + new Vector2(1f, 0f)); eventHandler(Events, Status, ev); } }