private static SparseArray <IZone> InitializeZones(SparseArray <Node> nodes) { var flatNodes = nodes.GetFlatData(); List <int> centroids = new List <int>(); for (int i = 0; i < flatNodes.Length; i++) { if (flatNodes[i].IsCentroid) { centroids.Add(flatNodes[i].Number); } } var centroidIndexes = centroids.ToArray(); var flatzones = new IZone[centroidIndexes.Length]; for (int i = 0; i < centroidIndexes.Length; i++) { HOTZone zone = new HOTZone(); var node = nodes[centroidIndexes[i]]; // update the centroid indexes to the sparse space zone.ZoneNumber = (short)centroidIndexes[i]; zone.X = node.X; zone.Y = node.Y; flatzones[i] = zone; } return(SparseArray <IZone> .CreateSparseArray(centroidIndexes, flatzones)); }
private static SparseArray<IZone> InitializeZones(SparseArray<Node> nodes) { var flatNodes = nodes.GetFlatData(); List<int> centroids = new List<int>(); for ( int i = 0; i < flatNodes.Length; i++ ) { if ( flatNodes[i].IsCentroid ) { centroids.Add( flatNodes[i].Number ); } } var centroidIndexes = centroids.ToArray(); var flatzones = new IZone[centroidIndexes.Length]; for ( int i = 0; i < centroidIndexes.Length; i++ ) { HOTZone zone = new HOTZone(); var node = nodes[centroidIndexes[i]]; // update the centroid indexes to the sparse space zone.ZoneNumber = (short)centroidIndexes[i]; zone.X = node.X; zone.Y = node.Y; flatzones[i] = zone; } return SparseArray<IZone>.CreateSparseArray( centroidIndexes, flatzones ); }