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(); } }
/* * ============================================================= * 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); }