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; }); } }); }
protected void InvokeComputePressed(MonoBehaviour sender, IClusterizationAlgorithm algorithm) { OnComputePressed?.Invoke(sender, algorithm); }