using System; using System.Collections.Generic; namespace UnityEditor.Graphing { public interface IGraph : IOnAssetEnabled { IEnumerable GetNodes() where T : INode; IEnumerable edges { get; } void AddNode(INode node); void RemoveNode(INode node); IEdge Connect(SlotReference fromSlotRef, SlotReference toSlotRef); void RemoveEdge(IEdge e); void RemoveElements(IEnumerable nodes, IEnumerable edges); INode GetNodeFromGuid(Guid guid); bool ContainsNodeGuid(Guid guid); T GetNodeFromGuid(Guid guid) where T : INode; void GetEdges(SlotReference s, List foundEdges); void ValidateGraph(); void ReplaceWith(IGraph other); IGraphObject owner { get; set; } IEnumerable addedNodes { get; } IEnumerable removedNodes { get; } IEnumerable addedEdges { get; } IEnumerable removedEdges { get; } void ClearChanges(); } public static class GraphExtensions { public static IEnumerable GetEdges(this IGraph graph, SlotReference s) { var edges = new List(); graph.GetEdges(s, edges); return edges; } } }