From 1582c8e8773c9dedd401df6acf4df4cc1c36661e Mon Sep 17 00:00:00 2001 From: paulojamorim Date: Tue, 26 Jan 2010 17:30:04 +0000 Subject: [PATCH] ADD: Method to extract all regions --- invesalius/data/polydata_utils.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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