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); }
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(); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <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; }