Commit 298863b6991b0e66e68f6a466010eefd60d6b8d1
1 parent
334100b0
Exists in
master
and in
68 other branches
ENH: Showing the slice number in each slice_data
Showing
2 changed files
with
34 additions
and
5 deletions
Show diff stats
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}, | ... | ... |