Beispiel #1
0
        public T AddNode <T>() where T : GraphNode, new()
        {
            T node = new T();

            node.id    = nodeIdCounter++;
            node.graph = this;
            nodeTable.Add(node.id, node);
            edgeListTable.Add(node.id, new EdgeList());
            return(node);
        }
Beispiel #2
0
 private static void UpsertIntoNodeTable(Node node)
 {
     if (NodeTable.ContainsKey(node.NodeId))
     {
         NodeTable[node.NodeId] = node;
     }
     else
     {
         NodeTable.Add(node.NodeId, node);
     }
 }
Beispiel #3
0
 /// <summary>
 /// Populates the Circuit, Node and Pin tables
 /// </summary>
 /// <param name="circuit"></param>
 public static void RegisterCircuit(Circuit circuit)
 {
     CircuitTable.Add(circuit.CircuitId, circuit);
     foreach (Node node in circuit.Nodes)
     {
         NodeTable.Add(node.NodeId, node);
         foreach (Pin pin in node.Pins)
         {
             PinTable.Add(pin.PinId, pin);
         }
     }
 }
    public virtual Transform FindNode(string name)
    {
        if (string.IsNullOrEmpty(name))
        {
            return(base._transform);
        }
        StringKeyTableBase.Item nodeItem = nodeCache.GetNodeItem(name);
        if (nodeItem != null)
        {
            return(nodeItem.value as Transform);
        }
        Transform val = Utility.Find(base._transform, name);

        nodeCache.Add(name, val);
        return(val);
    }