Commit 298863b6991b0e66e68f6a466010eefd60d6b8d1

Authored by tfmoraes
1 parent 334100b0

ENH: Showing the slice number in each slice_data

invesalius/data/slice_data.py
... ... @@ -16,15 +16,43 @@
16 16 # PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais
17 17 # detalhes.
18 18 #--------------------------------------------------------------------------
  19 +import vtk
  20 +
19 21 class SliceData(object):
20 22 def __init__(self):
21 23 self.renderer = None
22 24 self.actor = None
23 25 self.number = 0
24 26 self.cursor = None
  27 + self.__create_text()
  28 +
  29 + def __create_text(self):
  30 + text_property = vtk.vtkTextProperty()
  31 + text_property.SetFontSize(16)
  32 + text_property.SetFontFamilyToTimes()
  33 + text_property.BoldOn()
  34 + #text_property.SetColor(colour)
  35 +
  36 + text_actor = vtk.vtkTextActor()
  37 + text_actor.SetInput("%d" % self.number)
  38 + text_actor.GetTextProperty().ShallowCopy(text_property)
  39 + text_actor.SetPosition(1,1)
  40 + self.text_actor = text_actor
  41 +
  42 + def SetNumber(self, number):
  43 + self.number = number
  44 + self.text_actor.SetInput("%d" % self.number)
25 45  
26 46 def SetCursor(self, cursor):
27 47 if self.cursor:
28 48 self.renderer.RemoveActor(self.cursor.actor)
29 49 self.renderer.AddActor(cursor.actor)
30 50 self.cursor = cursor
  51 +
  52 + def Hide(self):
  53 + self.renderer.RemoveActor(self.actor)
  54 + self.renderer.RemoveActor(self.text_actor)
  55 +
  56 + def Show(self):
  57 + self.renderer.AddActor(self.actor)
  58 + self.renderer.AddActor(self.text_actor)
... ...
invesalius/data/viewer_slice.py
... ... @@ -209,7 +209,7 @@ class Viewer(wx.Panel):
209 209 def __set_mode_editor(self, pubsub_evt):
210 210 self.append_mode('EDITOR')
211 211 self.mouse_pressed = 0
212   - #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK))
  212 + self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK))
213 213  
214 214 def __set_mode_spin(self, pubsub_evt):
215 215 self.append_mode('SPIN')
... ... @@ -1020,10 +1020,11 @@ class Viewer(wx.Panel):
1020 1020 self.interactor.GetRenderWindow().AddRenderer(renderer)
1021 1021 actor = vtk.vtkImageActor()
1022 1022 actor.SetInput(imagedata)
1023   - renderer.AddActor(actor)
1024 1023 slice_data = SliceData()
1025 1024 slice_data.renderer = renderer
1026 1025 slice_data.actor = actor
  1026 + renderer.AddActor(actor)
  1027 + renderer.AddActor(slice_data.text_actor)
1027 1028 return slice_data
1028 1029  
1029 1030 def __update_camera(self, slice_data):
... ... @@ -1141,11 +1142,11 @@ class Viewer(wx.Panel):
1141 1142 pos = self.layout[0] * self.layout[1] * index + n
1142 1143 max = actor.GetSliceNumberMax()
1143 1144 if pos < max:
1144   - slice_data.number = pos
  1145 + slice_data.SetNumber(pos)
1145 1146 self.__update_display_extent(slice_data)
1146   - ren.AddActor(actor)
  1147 + slice_data.Show()
1147 1148 else:
1148   - ren.RemoveActor(actor)
  1149 + slice_data.Hide()
1149 1150  
1150 1151 position = {"SAGITAL": {0: slice_data.number},
1151 1152 "CORONAL": {1: slice_data.number},
... ...