From c056c6c597147c87732043e9f958c2c04fac7710 Mon Sep 17 00:00:00 2001 From: tatiana Date: Tue, 26 Jan 2010 18:06:12 +0000 Subject: [PATCH] ENH: General improvements on surface manipulation --- invesalius/data/polydata_utils.py | 3 ++- invesalius/data/surface.py | 10 +++++----- invesalius/data/viewer_volume.py | 5 +---- invesalius/gui/task_surface.py | 20 +++++--------------- 4 files changed, 13 insertions(+), 25 deletions(-) diff --git a/invesalius/data/polydata_utils.py b/invesalius/data/polydata_utils.py index c58dd86..6dace13 100644 --- a/invesalius/data/polydata_utils.py +++ b/invesalius/data/polydata_utils.py @@ -158,7 +158,8 @@ def SplitDisconectedParts(polydata): nregions = conn.GetNumberOfExtractedRegions() polydata_collection = [] - + + for region in xrange(nregions): conn.InitializeSpecifiedRegionList() conn.AddSpecifiedRegion(region) diff --git a/invesalius/data/surface.py b/invesalius/data/surface.py index a9eb9f4..0d06930 100644 --- a/invesalius/data/surface.py +++ b/invesalius/data/surface.py @@ -126,7 +126,7 @@ class SurfaceManager(): ps.Publisher().subscribe(self.OnSeedSurface, "Create surface from seeds") def OnSeedSurface(self, pubsub_evt): - index, points_id_list = pubsub_evt.data + points_id_list = pubsub_evt.data index = self.last_surface_index proj = prj.Project() surface = proj.surface_dict[index] @@ -134,9 +134,9 @@ class SurfaceManager(): new_polydata = pu.JoinSeedsParts(surface.polydata, points_id_list) self.CreateSurfaceFromPolydata(new_polydata) + self.ShowActor(index, False) def OnSplitSurface(self, pubsub_evt): - index = pubsub_evt.data index = self.last_surface_index proj = prj.Project() surface = proj.surface_dict[index] @@ -144,16 +144,16 @@ class SurfaceManager(): new_polydata_list = pu.SplitDisconectedParts(surface.polydata) for polydata in new_polydata_list: self.CreateSurfaceFromPolydata(polydata) + self.ShowActor(index, False) def OnLargestSurface(self, pubsub_evt): - index = pubsub_evt.data index = self.last_surface_index proj = prj.Project() surface = proj.surface_dict[index] new_polydata = pu.SelectLargestPart(surface.polydata) self.CreateSurfaceFromPolydata(new_polydata) - #TODO: Hide previous + self.ShowActor(index, False) def CreateSurfaceFromPolydata(self, polydata, overwrite=False): mapper = vtk.vtkPolyDataMapper() @@ -224,7 +224,7 @@ class SurfaceManager(): surface.colour, surface.volume, surface.transparency)) self.last_surface_index = index - + self.ShowActor(index, True) diff --git a/invesalius/data/viewer_volume.py b/invesalius/data/viewer_volume.py index e8209e2..c54df80 100755 --- a/invesalius/data/viewer_volume.py +++ b/invesalius/data/viewer_volume.py @@ -86,7 +86,6 @@ class Viewer(wx.Panel): self.picker = vtk.vtkPointPicker() interactor.SetPicker(self.picker) self.seed_points = [] - self.current_surface_index = 0 def __bind_events(self): @@ -143,13 +142,11 @@ class Viewer(wx.Panel): def OnStartSeed(self, pubsub_evt): index = pubsub_evt.data - self.current_surface_index = index self.seed_points = [] def OnEndSeed(self, pubsub_evt): ps.Publisher().sendMessage("Create surface from seeds", - (self.current_surface_index , - self.seed_points)) + self.seed_points) def OnExportPicture(self, pubsub_evt): diff --git a/invesalius/gui/task_surface.py b/invesalius/gui/task_surface.py index 01976f4..1710099 100644 --- a/invesalius/gui/task_surface.py +++ b/invesalius/gui/task_surface.py @@ -197,18 +197,15 @@ class InnerFoldPanel(wx.Panel): # Fold 1 - Surface properties item = fold_panel.AddFoldPanel(_("Surface properties"), collapsed=True) - self.surface_properties = SurfaceProperties(item) fold_panel.ApplyCaptionStyle(item, style) - fold_panel.AddFoldPanelWindow(item, self.surface_properties, Spacing= 0, + fold_panel.AddFoldPanelWindow(item, SurfaceProperties(item), Spacing= 0, leftSpacing=0, rightSpacing=0) fold_panel.Expand(fold_panel.GetFoldPanel(0)) # Fold 2 - Surface tools item = fold_panel.AddFoldPanel(_("Advanced options"), collapsed=True) fold_panel.ApplyCaptionStyle(item, style) - self.surface_tools = SurfaceTools(item) - self.surface_tools.combo_surface_name = self.surface_properties.combo_surface_name - fold_panel.AddFoldPanelWindow(item, self.surface_tools, Spacing= 0, + fold_panel.AddFoldPanelWindow(item, SurfaceTools(item), Spacing= 0, leftSpacing=0, rightSpacing=0) #fold_panel.AddFoldPanelWindow(item, QualityAdjustment(item), Spacing= 0, @@ -236,7 +233,6 @@ class SurfaceTools(wx.Panel): #self.SetBackgroundColour(wx.Colour(255,255,255)) self.SetAutoLayout(1) - self.combo_surface_name = None # Fixed hyperlink items tooltip = wx.ToolTip(_("Automatically select largest disconnect surface")) @@ -336,15 +332,11 @@ class SurfaceTools(wx.Panel): self.SelectSeed() def SelectLargest(self): - index = self.combo_surface_name.GetSelection() - ps.Publisher().sendMessage('Create surface from largest region', index) + ps.Publisher().sendMessage('Create surface from largest region') def SplitSurface(self): - index = self.combo_surface_name.GetSelection() - ps.Publisher().sendMessage('Split surface', index) + ps.Publisher().sendMessage('Split surface') - # surface_manager - def SelectSeed(self): if self.button_seeds.IsPressed(): self.StartSeeding() @@ -352,14 +344,12 @@ class SurfaceTools(wx.Panel): self.EndSeeding() def StartSeeding(self): - index = self.combo_surface_name.GetSelection() ps.Publisher().sendMessage('Enable style', const.VOLUME_STATE_SEED) - ps.Publisher().sendMessage('Create surface by seeding - start', index) + ps.Publisher().sendMessage('Create surface by seeding - start') def EndSeeding(self): ps.Publisher().sendMessage('Disable style', const.VOLUME_STATE_SEED) ps.Publisher().sendMessage('Create surface by seeding - end') - # volume_viewer -> surface_manager -- libgit2 0.21.2