Exemple #1
0
 public void OverEdges(EdgeCallback callback, object closure)
 {
     if (++time == 0)
     {
         time = 1;
     }
     OverEdge(startingEdge, callback, closure);
 }
Exemple #2
0
        private static void OverEdge(Edge edge, EdgeCallback callback, object closure)
        {
            if (edge.Token == time)
            {
                return;
            }

            edge.Token     = time;
            edge.Sym.Token = time;

            callback(edge, closure);

            OverEdge(edge.ONext, callback, closure);
            OverEdge(edge.OPrev, callback, closure);
            OverEdge(edge.DNext, callback, closure);
            OverEdge(edge.DPrev, callback, closure);
        }
Exemple #3
0
 public void OverEdges(EdgeCallback callback)
 {
     OverEdges(callback, null);
 }
Exemple #4
0
        private static void OverEdge(Edge edge, EdgeCallback callback, object closure)
        {
            if (edge.Token == time) return;

            edge.Token = time;
            edge.Sym.Token = time;

            callback(edge, closure);

            OverEdge(edge.ONext, callback, closure);
            OverEdge(edge.OPrev, callback, closure);
            OverEdge(edge.DNext, callback, closure);
            OverEdge(edge.DPrev, callback, closure);
        }
Exemple #5
0
 public void OverEdges(EdgeCallback callback, object closure)
 {
     if (++time == 0) time = 1;
     OverEdge(startingEdge, callback, closure);
 }
Exemple #6
0
 public void OverEdges(EdgeCallback callback)
 {
     OverEdges(callback, null);
 }
Exemple #7
0
		/// <summary>Invokes a callback on each edge</summary>
		/// <param name="cb">Callbacke to be invoked</param>
		public void ForAllEdges(EdgeCallback cb)
		{
			foreach (Edge edge in _Edges)
				cb(edge);
		}