private bool filteringfunc(Cluster cluster) { ModelingHistory hist = ModelingHistory.history; IndexedViewableAlpha[] vs = hist.GetViewables(cluster, false, true, true, false); bool[] selected = new bool[hist.SnapshotCount]; foreach (IndexedViewableAlpha viewable in vs) { for (int ivert = 0; ivert < viewable.nVerts; ivert++) { if (viewable.Selected[ivert]) { selected[viewable.VertUIDs[ivert]] = true; } } } for (int ivert = 0; ivert < hist.UniqueVertCount; ivert++) { if (selected[ivert] && hist.GetVTags(ivert).Contains(tag)) { return(false); } } return(true); }
public void SetCluster(bool loop = false) { // update currentClusterLayer ClampHelper(ref currentClusterLayer, 0, hist.Layers.nlevels); //clusters = hist.Layers.GetClusteringLayer(currentClusterLayer).clusters; clusters = hist.Layers.GetClusteringLayer(currentClusterLayer).GetClusters(); // update currentClusterIndex ClampHelper(ref currentClusterIndex, 0, clusters.Count, loop); viewables = hist.GetViewables(clusters[currentClusterIndex], false, false, false, false); // fire currenttime changed event if (CurrentIndexChanged != null) { CurrentIndexChanged((float)(currentClusterIndex) / (float)(clusters.Count - 1)); } Console.WriteLine("layer index = {0}, cluster index = {1}.", currentClusterLayer, currentClusterIndex); RefreshControl(); }