Example #1
0
        public void Remove(HalfEdge halfEdge)
        {
            HalfEdge previous;
            var      removalBucket = Bucket(halfEdge);

            if (halfEdge.Vertex == null)
            {
                return;
            }

            previous = hash[removalBucket];

            while (previous.NextInPriorityQueue != halfEdge)
            {
                previous = previous.NextInPriorityQueue;
            }

            previous.NextInPriorityQueue = halfEdge.NextInPriorityQueue;
            count--;
            halfEdge.Vertex = null;
            halfEdge.NextInPriorityQueue = null;
            halfEdge.Dispose();
        }
        public void Remove(HalfEdge halfEdge)
        {
            HalfEdge previous;
            var removalBucket = Bucket(halfEdge);

            if (halfEdge.Vertex == null) return;

            previous = hash[removalBucket];

            while (previous.NextInPriorityQueue != halfEdge)
            {
                previous = previous.NextInPriorityQueue;
            }

            previous.NextInPriorityQueue = halfEdge.NextInPriorityQueue;
            count--;
            halfEdge.Vertex = null;
            halfEdge.NextInPriorityQueue = null;
            halfEdge.Dispose();
        }