Example #1
0
        PerimeterEdge CreateDoubleLinkedListOfPerimeter()
        {
            var           firstEdge = front.First().Edge;
            var           edge = firstEdge;
            PerimeterEdge pe, prevPe = null, listStart = null;

            do
            {
                pe   = CreatePerimeterElementFromEdge(edge);
                edge = FindNextEdgeOnPerimeter(edge);
                if (prevPe != null)
                {
                    pe.Prev     = prevPe;
                    prevPe.Next = pe;
                }
                else
                {
                    listStart = pe;
                }

                prevPe = pe;
            } while (edge != firstEdge);
            listStart.Prev = pe;
            pe.Next        = listStart;
            return(listStart);
        }