コード例 #1
0
ファイル: FortunesAlgorithm.cs プロジェクト: jsgmu/cs633
        public QueueItem QueuePop()
        {
            //    var event = this.queuePeek();
            //if (event) {
            //    if (event.type === this.SITE_EVENT) {
            //    this.siteEvents.pop();
            //}
            //    else {
            //    this.circEvents.pop();
            //}
            //}
            //return event;

            QueueItem item = QueuePeek();

            if (item != null)
            {
                if (item.IsSite())
                {
                    //Sites.RemoveAt(0);
                    Sites.RemoveAt(Sites.Count - 1);
                }
                else
                {
                    //CircleEvents.RemoveAt(0);
                    CircleEvents.RemoveAt(CircleEvents.Count - 1);
                }
            }

            return(item);
        }
コード例 #2
0
ファイル: FortunesAlgorithm.cs プロジェクト: jsgmu/cs633
        public void QueueInit()
        {
            //this.sweep = 0;
            //this.siteEvents = [];
            //var n = this.sites.length;
            //for (var i = 0; i < n; i++)
            //{
            //    var site = this.sites[i];
            //    this.queuePushSite({ type: this.SITE_EVENT, x: site.x, y: site.y, site: site});
            //}
            //this.NUM_SITES_PROCESSED = this.siteEvents.length;
            //this.circEvents = [];
            //this.arcs = [];
            //this.edges = [];
            //this.cells = {};

            sweep = 0;
            Sites.Clear();

            for (int i = 0; i < Input.Count; i++)
            {
                var site = Input[i];

                QueuePushSite(site);
            }

            CircleEvents.Clear();
            Arcs.Clear();
            Edges.Clear();
            Cells.Clear();
        }
コード例 #3
0
ファイル: EventQueue.cs プロジェクト: darrellp/HalfEdge
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>	Adds a circle event. </summary>
        /// <remarks>	Darrellp, 2/21/2011. </remarks>
        /// <param name="cevt">	The event to add. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        internal void AddCircleEvent(CircleEvent cevt)
        {
            // Add to the priority queue
            Add(cevt);

            // We also have to add them to our linked list of circle events
            CircleEvents.AddFirst(cevt);

            // Keeping track of their LinkedListNode allows us to delete them efficiently later
            cevt.LinkedListNode = CircleEvents.First;
        }