Esempio n. 1
0
        /*****************************************************************************
         * Visitors
         ****************************************************************************/

        public void VisitTriangles(ITriangleVisitor triVisitor,
                                   bool includeFrame)
        {
            _visitedKey++;

            // visited flag is used to record visited edges of triangles
            // setVisitedAll(false);
            var edgeStack = new Stack <QuadEdge>();

            edgeStack.Push(_startingEdge);

            var visitedEdges = new HashSet <QuadEdge>();

            while (edgeStack.Count > 0)
            {
                var edge = edgeStack.Pop();
                if (!visitedEdges.Contains(edge))
                {
                    var triEdges =
                        FetchTriangleToVisit(edge, edgeStack, includeFrame, visitedEdges);

                    if (triEdges != null)
                    {
                        triVisitor.Visit(triEdges);
                    }
                }
            }
        }
        /*****************************************************************************
         * Visitors
         ****************************************************************************/
        public void VisitTriangles(ITriangleVisitor triVisitor,
            bool includeFrame)
        {
            _visitedKey++;

            // visited flag is used to record visited edges of triangles
            // setVisitedAll(false);
            var edgeStack = new Stack<QuadEdge>();
            edgeStack.Push(_startingEdge);

            var visitedEdges = new HashSetQ();

            while (edgeStack.Count > 0)
            {
                var edge = edgeStack.Pop();
                if (!visitedEdges.Contains(edge))
                {
                    QuadEdge[] triEdges =
                        FetchTriangleToVisit(edge, edgeStack, includeFrame, visitedEdges);

                    if (triEdges != null)
                        triVisitor.Visit(triEdges);
                }
            }
        }