CCT.NUI.Core.Clustering.DefaultMergeStrategy.MergeClustersIfRequired C# (CSharp) Method

MergeClustersIfRequired() public method

public MergeClustersIfRequired ( IList clusters ) : IList
clusters IList
return IList
        public IList<ClusterPrototype> MergeClustersIfRequired(IList<ClusterPrototype> clusters)
        {
            var clustersToIterateOver = new List<ClusterPrototype>(clusters);
            foreach (var cluster in clustersToIterateOver)
            {
                foreach (var otherCluster in new List<ClusterPrototype>(clusters))
                {
                    if (cluster != otherCluster && this.IsMergeRequired(cluster, otherCluster))
                    {
                        clusters.Remove(cluster);
                        clusters.Remove(otherCluster);
                        clusters.Add(ClusterPrototype.Merge(cluster, otherCluster));
                    }
                }
            }
            return clusters;
        }