/** * Recursive flattening of clusters. * * @param clustering Output clustering * @param cur Current temporary cluster * @param clus Output cluster * @param flatten Flag to indicate everything below should be flattened. * @param hierarchical Hierarchical output */ private void collectChildren(Clustering<DendrogramModel> clustering, TempCluster cur, Cluster<DendrogramModel> clus, boolean flatten, boolean hierarchical) { for(TempCluster child : cur.children) { if(flatten || child.totalStability() < 0) { members.addDBIDs(child.members); collectChildren(clustering, child, clus, flatten, hierarchical); } else { child.finalizeCluster(clustering, clus, true, hierarchical); } } } }