Exemple #1
0
        public void Compute(MonoBehaviour settings, IClusterizationAlgorithm algorithm)
        {
            var pair = _clusterableContainers[ContainersSelector.value];
            var list = (pair.container as IClusterable) !.GetAllPoints().ToList();

            Task.Run(() =>
            {
                try
                {
                    var data      = algorithm.Compute(list);
                    var clustered = CreateClustersContainers(pair.name, data, pair.container as IVisible);
                    MainThreadInvoker.Enqueue(() =>
                    {
                        DataSourcesManager.AddDataSource(clustered);
                        settings.enabled = true;
                    });
                }
                catch (Exception e)
                {
                    Debug.LogException(e);
                    MainThreadInvoker.Enqueue(() => { settings.enabled = true; });
                }
            });
        }
Exemple #2
0
 protected void InvokeComputePressed(MonoBehaviour sender, IClusterizationAlgorithm algorithm)
 {
     OnComputePressed?.Invoke(sender, algorithm);
 }