internal void SelectEdges(List <Edge> passingEdges) { SelectedEdges.InsertRange(passingEdges); for (int i = _levels.Count - 1; i >= 0; i--) { SelectEdgesOnLevel(i, passingEdges); } }
internal void SelectEdges(List <Edge> passingEdges, int currentLayer) { SelectedEdges.InsertRange(passingEdges); foreach (Edge edge in passingEdges) { for (int i = 0; i <= currentLayer; i++) { Set <Rail> railsOfEdge; if (_levels[i]._railsOfEdges.TryGetValue(edge, out railsOfEdge)) { var passingEdge = new List <Edge>(); passingEdge.Add(edge); SelectEdgesOnLevel(i, passingEdge); } } } }