Example #1
0
        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;
        }
Example #2
0
 public void AddToGraph(NodesGraph g)
 {
     g.AddNode(GetNode());
 }
Example #3
0
        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
                    {
                    }
                }
            }
        }