Exemplo n.º 1
0
 /// <summary>
 /// For each edge in stack
 /// (which must originate at a node)
 /// extracts the line it initiates.
 /// </summary>
 private void BuildLines()
 {
     while (_nodeEdgeStack.Count > 0)
     {
         HalfEdge e = _nodeEdgeStack.Pop();
         if (MarkHalfEdge.IsMarked(e))
         {
             continue;
         }
         BuildLine(e);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Adds edges around this node to the stack.
        /// </summary>
        /// <param name="node"></param>
        private void StackEdges(HalfEdge node)
        {
            HalfEdge e = node;

            do
            {
                if (!MarkHalfEdge.IsMarked(e))
                {
                    _nodeEdgeStack.Push(e);
                }
                e = e.ONext;
            } while (e != node);
        }
Exemplo n.º 3
0
        private void ComputeResult()
        {
            IEnumerable <HalfEdge> edges = _graph.GetVertexEdges();

            foreach (HalfEdge e in edges)
            {
                if (MarkHalfEdge.IsMarked(e))
                {
                    continue;
                }
                Process(e);
            }
            _result = _factory.BuildGeometry(_lines);
        }