Commit 1582c8e8773c9dedd401df6acf4df4cc1c36661e
1 parent
38ee57c1
Exists in
master
and in
68 other branches
ADD: Method to extract all regions
Showing
1 changed file
with
21 additions
and
1 deletions
Show diff stats
invesalius/data/polydata_utils.py
@@ -150,5 +150,25 @@ def SelectLargestPart(polydata): | @@ -150,5 +150,25 @@ def SelectLargestPart(polydata): | ||
150 | def SplitDisconectedParts(polydata): | 150 | def SplitDisconectedParts(polydata): |
151 | """ | 151 | """ |
152 | """ | 152 | """ |
153 | - return [polydata] | 153 | + conn = vtk.vtkPolyDataConnectivityFilter() |
154 | + conn.SetInput(polydata) | ||
155 | + conn.SetExtractionModeToAllRegions() | ||
156 | + conn.Update() | ||
157 | + | ||
158 | + nregions = conn.GetNumberOfExtractedRegions() | ||
159 | + | ||
160 | + polydata_collection = [] | ||
161 | + | ||
162 | + for region in nregions: | ||
163 | + conn.InitializeSpecifiedRegionList() | ||
164 | + conn.AddSpecifiedRegion(region) | ||
165 | + conn.Update() | ||
166 | + | ||
167 | + p = vtk.vtkPolyData() | ||
168 | + p.DeepCopy(conn.GetOutput()) | ||
169 | + p.Update() | ||
170 | + | ||
171 | + polydata_collection.append(p) | ||
172 | + | ||
173 | + return polydata_collection | ||
154 | 174 |