示例#1
0
        public static Node GetNthConnection(this Database.InputTopologyEnumerable e, InputPort port, int index)
        {
            var currIndex = 0;

            foreach (var filtered in e[port])
            {
                if (currIndex == index)
                {
                    return(filtered);
                }

                currIndex++;
            }

            throw new IndexOutOfRangeException("Index of connection or port does not exist");
        }
示例#2
0
        public void CanDisconnectAllTopologyNodes()
        {
            using (var topoDB = new TopologyTestDatabase(Allocator.Persistent))
            {
                var a = topoDB.CreateNode();
                var b = topoDB.CreateNode();
                var c = topoDB.CreateNode();

                for (int i = 0; i < 3; ++i)
                {
                    OutputPort outPort = k_OutputPorts[i];
                    InputPort  inPort  = k_InputPorts[i];

                    topoDB.Connect(b, outPort, a, inPort);
                    topoDB.Connect(c, outPort, b, inPort);

                    Assert.AreEqual(0, topoDB.GetOutputs(a)[outPort].Count());
                    Assert.AreEqual(1, topoDB.GetInputs(a)[inPort].Count());
                    Assert.AreEqual(1, topoDB.GetOutputs(b)[outPort].Count());
                    Assert.AreEqual(1, topoDB.GetInputs(b)[inPort].Count());
                    Assert.AreEqual(1, topoDB.GetOutputs(c)[outPort].Count());
                    Assert.AreEqual(0, topoDB.GetInputs(c)[inPort].Count());
                }

                topoDB.DisconnectAll(b);

                foreach (var node in new[] { a, b, c })
                {
                    var inputs         = topoDB.GetInputs(node);
                    var inputPortCount = inputs.GetEnumerator().Count();
                    for (int i = 0; i < inputPortCount; ++i)
                    {
                        Assert.AreEqual(0, inputs[k_InputPorts[i]].Count());
                    }

                    var outputs         = topoDB.GetOutputs(node);
                    var outputPortCount = outputs.GetEnumerator().Count();
                    for (int i = 0; i < outputPortCount; ++i)
                    {
                        Assert.AreEqual(0, outputs[k_OutputPorts[i]].Count());
                    }
                }
            }
        }
示例#3
0
 public bool ConnectionExists(Node source, OutputPort sourcePort, Node dest, InputPort destinationPort) =>
 Connections.ConnectionExists(ref Nodes, source, sourcePort, dest, destinationPort);
示例#4
0
 public Topology.Connection FindConnection(Node source, OutputPort sourcePort, Node dest, InputPort destinationPort) =>
 Connections.FindConnection(ref Nodes, source, sourcePort, dest, destinationPort);
示例#5
0
 public void Disconnect(Node source, OutputPort sourcePort, Node dest, InputPort destinationPort) =>
 Connections.Disconnect(ref Nodes, source, sourcePort, dest, destinationPort);
示例#6
0
 public void Connect(Node source, OutputPort sourcePort, Node dest, InputPort destinationPort) =>
 Connect(k_DefaultTraversalFlags, source, sourcePort, dest, destinationPort);
示例#7
0
 public void Connect(uint traversalFlags, Node source, OutputPort sourcePort, Node dest, InputPort destinationPort) =>
 Connections.Connect(ref Nodes, traversalFlags, source, sourcePort, dest, destinationPort);