Exemplo n.º 1
0
    public void RemoveNode(Node newNode)
    {
        //Only Remove if Node is NOT ABSTRACT
        if (newNode.IsTemporary())
        {
            NodeCluster newCluster = newNode.clusterParent;
            ManageAbstractNodeList(newNode, false);

            for (int i = 0; i < newCluster.nodeList.Count; i++)
            {
                Node removeNode = null;
                for (int j = 0; j < newCluster.nodeList[i].neighbors.Count; j++)
                {
                    if (newCluster.nodeList[i].neighbors[j] == newNode)
                    {
                        removeNode = newNode;
                    }
                }
                if (removeNode != null)
                {
                    newCluster.nodeList[i].neighbors.Remove(removeNode);
                }
            }
            newCluster.ManageAbstractNodes(newNode, false);
            newCluster.SetAbstractConnections();
        }
    }
Exemplo n.º 2
0
    /*
     * =============================================================
     *                      Manages Inserted Nodes
     * =============================================================
     */
    public Node InsertNode(Node refNode)
    {
        NodeCluster newCluster = refNode.clusterParent != null ? refNode.clusterParent : GetNodeClusterFromLocation((int)refNode.xVal, (int)refNode.zVal);
        Node        newNode    = new Node(this.mainGrid, refNode.gridCoordinates, NodeType.Temporary, -1);

        newNode.SetClusterParent(newCluster);

        ManageAbstractNodeList(newNode);
        newCluster.ManageAbstractNodes(newNode);
        newCluster.SetAbstractConnections();

        return(newNode);
    }