Edge Removal Detection

This commit is contained in:
Chromium 2025-04-27 02:15:04 +01:00
parent 0c53ac8d18
commit a6e9038da5
3 changed files with 26 additions and 4 deletions

View File

@ -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;

View File

@ -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)

View File

@ -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);
}