internal SingleSourceMultipleTargetsShortestPathOnVisibilityGraph(VisibilityVertex sourceVisVertex, IEnumerable<VisibilityVertex> targetVisVertices, VisibilityGraph visibilityGraph) { _visGraph = visibilityGraph; _visGraph.ClearPrevEdgesTable(); foreach (var v in visibilityGraph.Vertices()) v.Distance = Double.PositiveInfinity; source = sourceVisVertex; targets = new Set<VisibilityVertex>(targetVisVertices); source.Distance = 0; }
static void InitQueueOfSources(Queue<VisibilityVertex> queue, IDictionary<VisibilityVertex, int> dictionary, VisibilityGraph graph) { foreach (var v in graph.Vertices()) { int inDegree = v.InEdges.Count; dictionary[v] = inDegree; if (inDegree == 0) queue.Enqueue(v); } Debug.Assert(queue.Count > 0); }
internal void DevTrace_VerifyAllVertices(VisibilityGraph vg) { #if DEVTRACE if (transGraphVerify.IsLevel(4)) { foreach (var vertex in vg.Vertices()) { DevTrace_VerifyVertex(vertex); } } #endif // DEVTRACE }