private static void ClusterAccToAlignment(ref Dictionary <SurfaceBasicInfo, int> _processed, List <SurfaceBasicInfo> _surfaces) { if (_surfaces == null || _surfaces.Count == 0) { return; } if (_processed == null || _processed.Count == 0) { _processed = NeighborhoodGraph.ClusterAccToAlignment(_surfaces); return; } // initiate int cluster_counter = _processed.Select(x => x.Value).Max() + 1; foreach (SurfaceBasicInfo s in _surfaces) { _processed.Add(s, -1); } NeighborhoodGraph.ClusterAccToAlignmentAlgorithm(ref _processed, ref cluster_counter); }
private static Dictionary <SurfaceBasicInfo, int> ClusterAccToAlignment(List <SurfaceBasicInfo> _surfaces) { Dictionary <SurfaceBasicInfo, int> processed = new Dictionary <SurfaceBasicInfo, int>(); if (_surfaces == null || _surfaces.Count == 0) { return(processed); } foreach (SurfaceBasicInfo s in _surfaces) { processed.Add(s, -1); } SurfaceBasicInfo s1 = processed.ElementAt(0).Key; processed[s1] = 0; int cluster_counter = 1; NeighborhoodGraph.ClusterAccToAlignmentAlgorithm(ref processed, ref cluster_counter); return(processed); }