// this is for debugging purposes only - it creates the clusters upfront public void CreateDebugHierarchy() { for (long xf = 0; xf < 2; xf++) { for (long yf = 0; yf < 2; yf++) { double newClusterX = X + (childClusterSize * xf); double newClusterY = Y + (childClusterSize * yf); if (childClusterSize > MinZoom) { var h = new ClusterHierarchy <T>(this, childClusterSize, newClusterX, newClusterY); childClusters[xf + (yf * 2)] = h; h.CreateDebugHierarchy(); } else { childClusters[xf + (yf * 2)] = new ClusterLeaf <T>(this, childClusterSize, newClusterX, newClusterY); } } } }