Exemple #1
0
        public void UnLink(AbstractSocket socket)
        {
            if ((socket == null) || !socket.IsConnected())
            {
                return;
            }


            if (socket.IsInput())
            {
                InputSocket inputSocket = (InputSocket)socket;
                if (inputSocket.Connection != null)
                {
                    this.UnLink(inputSocket, inputSocket.Connection.Output);
                }
            }

            if (socket.IsOutput())
            {
                OutputSocket outputSocket   = (OutputSocket)socket;
                Connection[] connectionCopy = new Connection[outputSocket.Connections.Count];
                outputSocket.Connections.CopyTo(connectionCopy);
                foreach (Connection edge in connectionCopy)
                {
                    this.UnLink(edge.Input, outputSocket);
                }
            }
        }
Exemple #2
0
        public static Vector2 GetTangentPosition(AbstractSocket socket, Vector2 position)
        {
            if (socket.IsInput())
            {
                return(position + Vector2.left * NodeEditorConfig.EdgeTangent);
            }

            return(position + Vector2.right * NodeEditorConfig.EdgeTangent);
        }
Exemple #3
0
 private void HandleSocketDrop(AbstractSocket dropTarget)
 {
     if ((dropTarget != null) && (dropTarget.GetType() != this._dragSourceSocket.GetType()))
     {
         if (dropTarget.IsInput())
         {
             this._currentCanvas.Graph.Link((InputSocket)dropTarget, (OutputSocket)this._dragSourceSocket);
         }
         Event.current.Use();
     }
     this._dragSourceSocket = null;
     this.Repaint();
 }
Exemple #4
0
 private void HandleSocketDrag(AbstractSocket dragSource)
 {
     if (dragSource != null)
     {
         if (dragSource.IsInput() && dragSource.IsConnected())
         {
             this._dragSourceSocket = ((InputSocket)dragSource).Connection.GetOtherSocket(dragSource);
             this._currentCanvas.Graph.UnLink((InputSocket)dragSource, (OutputSocket)this._dragSourceSocket);
         }
         if (dragSource.IsOutput())
         {
             this._dragSourceSocket = dragSource;
         }
         Event.current.Use();
     }
     this.Repaint();
 }