public MainCanvas(NodesGraph graph, ContextManager manager) { _graph = graph; //_graph.OnGraphChanged += RefreshNodeControls; _graph.OnConnectorAdded += ConnectorAdedHandler; _graph.OnConnectorRemoved += ConnectorRemovedHandler; _graph.OnNodeAdded += NodedAddedHandler; _graph.OnNodeRemoved += NodeRemovedHandler; _manager = manager; Background = Brushes.Wheat; var g = new Grid(); Children.Add(g); NodesCanvas = new Canvas(); ConnectionsCanvas = new Canvas(); g.Children.Add(ConnectionsCanvas); g.Children.Add(NodesCanvas); MouseMove += MouseMoveHandler; MouseUp += MouseUpHandler; KeyDown += ShifHandler; KeyUp += ReleaseShiftHandler; }
public void AddToGraph(NodesGraph g) { g.AddNode(GetNode()); }
private void NodesControlOnOnNodeContextSelected(object obj) { nodeEditor.propertyGrid.SelectedObject = obj; NodesGraph graph = nodeEditor.nodesControl.graph; if (graph.Nodes.Exists(x => x.IsSelected)) { foreach (NodeVisual n in graph.Nodes.Where(x => x.IsSelected)) { if (n.Name != "Process") { nodeEditor.nodesControl.Execute(n); } //dynamic context = obj; dynamic context = n.GetNodeContext(); try { Samples samples = context.samplesOut; Series series = new Series(); float yMin = 0; float yMax = 0; for (int i = 0; i < samples.Data.Length; i++) { series.Points.AddXY(i / 44100f, samples.Data[i]); if (samples.Data[i] > yMax) { yMax = samples.Data[i]; } if (samples.Data[i] < yMin) { yMin = samples.Data[i]; } } series.ChartType = SeriesChartType.Line; chart.Series.Clear(); chart.ChartAreas[0].AxisY.IsStartedFromZero = false; chart.Series.Add(series); if (yMax != yMin) { chart.ChartAreas[0].AxisY.Maximum = yMax; chart.ChartAreas[0].AxisY.Minimum = yMin; } else { chart.ChartAreas[0].AxisY.Maximum = yMax + 1; chart.ChartAreas[0].AxisY.Minimum = yMin - 1; } } catch { } try { Signal signal = context.signal; Series series = new Series(); float yMin = 0; float yMax = 0; for (int i = 0; i < signal.Length; i++) { series.Points.AddXY(i / 44100f, signal[i]); if (signal[i] > yMax) { yMax = signal[i]; } if (signal[i] < yMin) { yMin = signal[i]; } } series.ChartType = SeriesChartType.Line; chart.Series.Clear(); chart.ChartAreas[0].AxisY.IsStartedFromZero = false; chart.Series.Add(series); if (yMax != yMin) { chart.ChartAreas[0].AxisY.Maximum = yMax; chart.ChartAreas[0].AxisY.Minimum = yMin; } else { chart.ChartAreas[0].AxisY.Maximum = yMax + 1; chart.ChartAreas[0].AxisY.Minimum = yMin - 1; } } catch { } } } }