Beispiel #1
0
        /* 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;
        }