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]
|
[System.Serializable]
|
||||||
public struct GraphConnection
|
public struct GraphConnection
|
||||||
@ -6,16 +7,20 @@
|
|||||||
public GraphPort inputPort;
|
public GraphPort inputPort;
|
||||||
public GraphPort outputPort;
|
public GraphPort outputPort;
|
||||||
|
|
||||||
public GraphConnection(GraphPort inputPort, GraphPort outputPort)
|
public Edge internalEdge;
|
||||||
|
|
||||||
|
public GraphConnection(GraphPort inputPort, GraphPort outputPort, Edge internalEdge)
|
||||||
{
|
{
|
||||||
this.inputPort = inputPort;
|
this.inputPort = inputPort;
|
||||||
this.outputPort = outputPort;
|
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.inputPort = new GraphPort(inputNodeGuid, inputPortID, inputNodeType);
|
||||||
this.outputPort = new GraphPort(outputNodeGuid, outputPortID, outputNodeType);
|
this.outputPort = new GraphPort(outputNodeGuid, outputPortID, outputNodeType);
|
||||||
|
this.internalEdge = internalEdge;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,6 +31,7 @@
|
|||||||
public string nodeType;
|
public string nodeType;
|
||||||
public int portID;
|
public int portID;
|
||||||
|
|
||||||
|
|
||||||
public GraphPort(string nodeID, int portID, string nodeType)
|
public GraphPort(string nodeID, int portID, string nodeType)
|
||||||
{
|
{
|
||||||
this.nodeID = nodeID;
|
this.nodeID = nodeID;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEditor.Experimental.GraphView;
|
using UnityEditor.Experimental.GraphView;
|
||||||
|
using UnityEditor.MemoryProfiler;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UIElements;
|
using UnityEngine.UIElements;
|
||||||
|
|
||||||
@ -26,6 +27,21 @@ namespace ImageProcessingGraph.Editor.Unity_Image_Processing.Scripts.Editor.Wind
|
|||||||
{
|
{
|
||||||
window.searchProvider.target = (VisualElement)window.focusController.focusedElement;
|
window.searchProvider.target = (VisualElement)window.focusController.focusedElement;
|
||||||
SearchWindow.Open(new SearchWindowContext(position), window.searchProvider);
|
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)
|
public void OnDrop(UnityEditor.Experimental.GraphView.GraphView graphView, Edge edge)
|
||||||
|
@ -288,7 +288,7 @@ namespace ImageProcessingGraph.Editor
|
|||||||
string inputType = inputNode.GraphNode.GetType().Name;
|
string inputType = inputNode.GraphNode.GetType().Name;
|
||||||
string outputType = outputNode.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);
|
asset.Connections.Add(connection);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user