Commit 490289b9721102fddd36712b265f1eb4370af2ee

Authored by tfmoraes
1 parent 56f7a128

Added a method in viewer_volume to unload a given volume

invesalius/data/viewer_volume.py
... ... @@ -122,6 +122,8 @@ class Viewer(wx.Panel):
122 122 # Raycating - related
123 123 Publisher.subscribe(self.LoadVolume,
124 124 'Load volume into viewer')
  125 + Publisher.subscribe(self.UnloadVolume,
  126 + 'Unload volume')
125 127 Publisher.subscribe(self.OnSetWindowLevelText,
126 128 'Set volume window and level text')
127 129 Publisher.subscribe(self.OnHideRaycasting,
... ... @@ -681,6 +683,10 @@ class Viewer(wx.Panel):
681 683  
682 684 self.UpdateRender()
683 685  
  686 + def UnloadVolume(self, pubsub_evt):
  687 + volume = pubsub_evt.data
  688 + self.ren.RemoveVolume(volume)
  689 +
684 690 def OnSetViewAngle(self, evt_pubsub):
685 691 view = evt_pubsub.data
686 692 self.SetViewAngle(view)
... ...
invesalius/data/volume.py
... ... @@ -87,6 +87,7 @@ class Volume():
87 87 self.volume = None
88 88 self.image = None
89 89 self.loaded_image = 0
  90 + self.to_reload = False
90 91 self.__bind_events()
91 92  
92 93 def __bind_events(self):
... ... @@ -162,6 +163,10 @@ class Volume():
162 163 self.__load_preset_config()
163 164  
164 165 if self.config:
  166 + if self.to_reload:
  167 + self.exist = False
  168 + Publisher.sendMessage('Unload volume', self.volume)
  169 +
165 170 if self.exist:
166 171 self.__load_preset()
167 172 self.volume.SetVisibility(1)
... ... @@ -180,7 +185,7 @@ class Volume():
180 185 self.loaded_image = False
181 186 del self.image
182 187 self.image = None
183   - self.exist = None
  188 + self.to_reload = True
184 189  
185 190 def __load_preset_config(self):
186 191 self.config = prj.Project().raycasting_preset
... ...