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}, | ... | ... |