diff --git a/invesalius/data/polydata_utils.py b/invesalius/data/polydata_utils.py index fd52ef6..417d0b5 100644 --- a/invesalius/data/polydata_utils.py +++ b/invesalius/data/polydata_utils.py @@ -150,5 +150,25 @@ def SelectLargestPart(polydata): def SplitDisconectedParts(polydata): """ """ - return [polydata] + conn = vtk.vtkPolyDataConnectivityFilter() + conn.SetInput(polydata) + conn.SetExtractionModeToAllRegions() + conn.Update() + + nregions = conn.GetNumberOfExtractedRegions() + + polydata_collection = [] + + for region in nregions: + conn.InitializeSpecifiedRegionList() + conn.AddSpecifiedRegion(region) + conn.Update() + + p = vtk.vtkPolyData() + p.DeepCopy(conn.GetOutput()) + p.Update() + + polydata_collection.append(p) + + return polydata_collection -- libgit2 0.21.2