Exemplo n.º 1
0
        private async Task ConnectNodes()
        {
            var schema      = new GraphSchema();
            var connections = RandomNodesGenerator.GenerateConnections(GraphViewModel.Nodes);

            if (Settings.AsyncLoading)
            {
                await Task.Run(() =>
                {
                    for (int i = 0; i < connections.Count; i++)
                    {
                        var con = connections[i];
                        schema.TryAddConnection(con.Input, con.Output);
                    }
                });
            }
            else
            {
                for (int i = 0; i < connections.Count; i++)
                {
                    var con = connections[i];
                    schema.TryAddConnection(con.Input, con.Output);
                }
            }
        }
Exemplo n.º 2
0
        private async void GenerateRandomNodes()
        {
            var nodes = RandomNodesGenerator.GenerateNodes <FlowNodeViewModel>(new NodesGeneratorSettings(Settings.MinNodes)
            {
                MinNodesCount  = Settings.MinNodes,
                MaxNodesCount  = Settings.MaxNodes,
                MinInputCount  = Settings.MinConnectors,
                MaxInputCount  = Settings.MaxConnectors,
                MinOutputCount = Settings.MinConnectors,
                MaxOutputCount = Settings.MaxConnectors,
                GridSnap       = EditorSettings.Instance.GridSpacing
            });

            GraphViewModel.Nodes.Clear();
            await CopyToAsync(nodes, GraphViewModel.Nodes);

            if (Settings.ShouldConnectNodes)
            {
                await ConnectNodes();
            }
        }
Exemplo n.º 3
0
        private async void PerformanceTest()
        {
            uint count    = Settings.PerformanceTestNodes;
            int  distance = 500;
            int  size     = (int)count / (int)Math.Sqrt(count);

            var nodes = RandomNodesGenerator.GenerateNodes <FlowNodeViewModel>(new NodesGeneratorSettings(count)
            {
                NodeLocationGenerator = (s, i) => new System.Windows.Point(i % size * distance, i / size * distance),
                MinInputCount         = Settings.MinConnectors,
                MaxInputCount         = Settings.MaxConnectors,
                MinOutputCount        = Settings.MinConnectors,
                MaxOutputCount        = Settings.MaxConnectors,
                GridSnap = EditorSettings.Instance.GridSpacing
            });

            GraphViewModel.Nodes.Clear();
            await CopyToAsync(nodes, GraphViewModel.Nodes);

            if (Settings.ShouldConnectNodes)
            {
                await ConnectNodes();
            }
        }