예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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);
            }
        }