diff --git a/invesalius/data/slice_data.py b/invesalius/data/slice_data.py index d750e2c..a2cb94b 100644 --- a/invesalius/data/slice_data.py +++ b/invesalius/data/slice_data.py @@ -16,15 +16,43 @@ # PARTICULAR. Consulte a Licenca Publica Geral GNU para obter mais # detalhes. #-------------------------------------------------------------------------- +import vtk + class SliceData(object): def __init__(self): self.renderer = None self.actor = None self.number = 0 self.cursor = None + self.__create_text() + + def __create_text(self): + text_property = vtk.vtkTextProperty() + text_property.SetFontSize(16) + text_property.SetFontFamilyToTimes() + text_property.BoldOn() + #text_property.SetColor(colour) + + text_actor = vtk.vtkTextActor() + text_actor.SetInput("%d" % self.number) + text_actor.GetTextProperty().ShallowCopy(text_property) + text_actor.SetPosition(1,1) + self.text_actor = text_actor + + def SetNumber(self, number): + self.number = number + self.text_actor.SetInput("%d" % self.number) def SetCursor(self, cursor): if self.cursor: self.renderer.RemoveActor(self.cursor.actor) self.renderer.AddActor(cursor.actor) self.cursor = cursor + + def Hide(self): + self.renderer.RemoveActor(self.actor) + self.renderer.RemoveActor(self.text_actor) + + def Show(self): + self.renderer.AddActor(self.actor) + self.renderer.AddActor(self.text_actor) diff --git a/invesalius/data/viewer_slice.py b/invesalius/data/viewer_slice.py index 8566acb..b8e4615 100755 --- a/invesalius/data/viewer_slice.py +++ b/invesalius/data/viewer_slice.py @@ -209,7 +209,7 @@ class Viewer(wx.Panel): def __set_mode_editor(self, pubsub_evt): self.append_mode('EDITOR') self.mouse_pressed = 0 - #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK)) + self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK)) def __set_mode_spin(self, pubsub_evt): self.append_mode('SPIN') @@ -1020,10 +1020,11 @@ class Viewer(wx.Panel): self.interactor.GetRenderWindow().AddRenderer(renderer) actor = vtk.vtkImageActor() actor.SetInput(imagedata) - renderer.AddActor(actor) slice_data = SliceData() slice_data.renderer = renderer slice_data.actor = actor + renderer.AddActor(actor) + renderer.AddActor(slice_data.text_actor) return slice_data def __update_camera(self, slice_data): @@ -1141,11 +1142,11 @@ class Viewer(wx.Panel): pos = self.layout[0] * self.layout[1] * index + n max = actor.GetSliceNumberMax() if pos < max: - slice_data.number = pos + slice_data.SetNumber(pos) self.__update_display_extent(slice_data) - ren.AddActor(actor) + slice_data.Show() else: - ren.RemoveActor(actor) + slice_data.Hide() position = {"SAGITAL": {0: slice_data.number}, "CORONAL": {1: slice_data.number}, -- libgit2 0.21.2