Edge Removal Detection
This commit is contained in:
parent
0c53ac8d18
commit
a6e9038da5
@ -1,4 +1,5 @@
|
||||
namespace ImageProcessingGraph.Editor
|
||||
using UnityEditor.Experimental.GraphView;
|
||||
namespace ImageProcessingGraph.Editor
|
||||
{
|
||||
[System.Serializable]
|
||||
public struct GraphConnection
|
||||
@ -6,16 +7,20 @@
|
||||
public GraphPort inputPort;
|
||||
public GraphPort outputPort;
|
||||
|
||||
public GraphConnection(GraphPort inputPort, GraphPort outputPort)
|
||||
public Edge internalEdge;
|
||||
|
||||
public GraphConnection(GraphPort inputPort, GraphPort outputPort, Edge internalEdge)
|
||||
{
|
||||
this.inputPort = inputPort;
|
||||
this.outputPort = outputPort;
|
||||
this.internalEdge = internalEdge;
|
||||
}
|
||||
|
||||
public GraphConnection(string inputNodeGuid, int inputPortID, string inputNodeType, string outputNodeGuid, int outputPortID, string outputNodeType)
|
||||
public GraphConnection(string inputNodeGuid, int inputPortID, string inputNodeType, string outputNodeGuid, int outputPortID, string outputNodeType, Edge internalEdge)
|
||||
{
|
||||
this.inputPort = new GraphPort(inputNodeGuid, inputPortID, inputNodeType);
|
||||
this.outputPort = new GraphPort(outputNodeGuid, outputPortID, outputNodeType);
|
||||
this.internalEdge = internalEdge;
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,6 +31,7 @@
|
||||
public string nodeType;
|
||||
public int portID;
|
||||
|
||||
|
||||
public GraphPort(string nodeID, int portID, string nodeType)
|
||||
{
|
||||
this.nodeID = nodeID;
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor.Experimental.GraphView;
|
||||
using UnityEditor.MemoryProfiler;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
@ -26,6 +27,21 @@ namespace ImageProcessingGraph.Editor.Unity_Image_Processing.Scripts.Editor.Wind
|
||||
{
|
||||
window.searchProvider.target = (VisualElement)window.focusController.focusedElement;
|
||||
SearchWindow.Open(new SearchWindowContext(position), window.searchProvider);
|
||||
|
||||
List<GraphConnection> connections = new List<GraphConnection>();
|
||||
|
||||
foreach (var conn in window.asset.Connections)
|
||||
{
|
||||
if (conn.internalEdge == edge)
|
||||
{
|
||||
connections.Add(conn);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var VARIABLE in connections)
|
||||
{
|
||||
window.asset.Connections.Remove(VARIABLE);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDrop(UnityEditor.Experimental.GraphView.GraphView graphView, Edge edge)
|
||||
|
@ -288,7 +288,7 @@ namespace ImageProcessingGraph.Editor
|
||||
string inputType = inputNode.GraphNode.GetType().Name;
|
||||
string outputType = outputNode.GraphNode.GetType().Name;
|
||||
|
||||
GraphConnection connection = new GraphConnection(inputNode.GraphNode.ID,inputIndex, inputType,outputNode.GraphNode.ID, outputIndex, outputType);
|
||||
GraphConnection connection = new GraphConnection(inputNode.GraphNode.ID,inputIndex, inputType,outputNode.GraphNode.ID, outputIndex, outputType, edge);
|
||||
|
||||
asset.Connections.Add(connection);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user