public void Connect(InputPort pIn, OutputPort pOut) { if (pIn.Connection != null) { Disconnect(pIn); } pIn.Connection = pOut; pOut.AddConnection(pIn); LinkCreated?.Invoke(this, new LinkEventArgs(pIn, pOut)); }
public void AddPort(int key, InputPort input) { if (_inputs.Contains(input)) { throw new InvalidOperationException(); } //if (_inputs.ContainsKey(key)) throw new InvalidOperationException(); _inputs.Insert(key, input); UpdateLayout(); }
public void Disconnect(InputPort pIn) { var pOut = pIn.Connection; if (pOut != null) { pOut.RemoveConnection(pIn); pIn.Connection = null; LinkDestroyed?.Invoke(this, new LinkEventArgs(pIn, pOut)); } }
public LinkEventArgs(InputPort pIn, OutputPort pOut) { PortIn = pIn; PortOut = pOut; }
public void RemovePort(InputPort port) { Parent.Disconnect(port); _inputs.Remove(port); UpdateLayout(); }
public void AddPort(InputPort port) { var freeIndex = _inputs.Count; AddPort(freeIndex, port); }
public void RemoveConnection(InputPort p) { _ports.Remove(p); }