Ejemplo n.º 1
0
        private static int CompareSweepEvents(ISweepEvent a, ISweepEvent b)
        {
            var result = a.Y.CompareTo(b.Y);

            if (result != 0)
            {
                return(result);
            }
            return(((int)a.Type).CompareTo((int)b.Type));
        }
Ejemplo n.º 2
0
        public void ExecuteNextEvent(FortunesAlgorithmState state)
        {
            if (state.Root == null)
            {
                ProcessFirstSiteEvents(state);
                return;
            }

            ISweepEvent sweepEvent = state.EventQueue.Dequeue();

            if (sweepEvent.Type == SweepEventType.Site)
            {
                ProcessSiteEvent(state, (SiteEvent)sweepEvent);
            }
            else
            {
                ProcessCircleEvent(state, (CircleEvent)sweepEvent);
            }
        }