private void PasteNewNodes(string rawData) { SGraph graph = GraphSerializer.DeserializeSGraph(rawData); GenerateNewNodeIds(graph); UpdateNodesPosition(graph); foreach (var node in graph.Nodes) { _graphView.Graph.AddNode(node); } foreach (var connection in graph.Connections) { _graphView.Graph.AddConnection(connection); } }
public void SetGraph(SGraph sGraph) { if (_sGraph != null) { _sGraph.OnCustomSettingsChanged -= OnCustomSettingsChanged; _sGraph.GraphChanged -= OnGraphChanged; } _sGraph = sGraph; GraphModel = new GraphModel(sGraph.GraphType) { CustomSettings = _sGraph.CustomSettings }; sGraph.AddContentsToGraph(GraphModel); sGraph.GraphChanged += OnGraphChanged; sGraph.OnCustomSettingsChanged += OnCustomSettingsChanged; }
private SGraph CreateGraphToSerialize(IEnumerable <BaseNodeView> nodes, IEnumerable <BaseConnectionView> connections) { var sgraph = new SGraph { Type = _graphView.Graph.Type }; foreach (var nodeModel in nodes) { SNode sNode = nodeModel.Node; sNode.Position = nodeModel.localBound.min; sgraph.AddNode(sNode); } foreach (var connectionModel in connections) { sgraph.AddConnection(connectionModel.Connection); } return(sgraph); }
public static void AddContentsToGraph(this SGraph graph, GraphModel graphModel, List <SConnection> brokenConnections = null) { graphModel.AddNodes(graph.Nodes); graphModel.AddConnections(graph.Connections, brokenConnections); }
public static IEnumerable <SConnection> GetConnections(this SGraph graph, SPort port) { return(graph.Connections.Where(connection => (connection.FromPortId == port.Id && connection.FromNodeId == port.NodeId) || (connection.ToPortId == port.Id && connection.ToNodeId == port.NodeId))); }