/* To disconnect a bridge from the rest of the zone the bridge is in. */ public void disconnect(Bridge b) { Logger.log("Disconnecting the bridge " + b.id + " from its zone."); Node newStart = new Node(b.id); newStart.neighbors = b.neighbors; newStart.nodeLevel = b.nodeLevel; Node[] allNodes = new Node[b.neighbors.Count]; b.neighbors.CopyTo(allNodes); foreach (Node n in allNodes.ToList()) { if (b.toNodes.Contains(n)) { newStart.connect(n); } n.disconnect(b); } startNode = newStart; }