Commit dc6f1c9a2520d438a5c2c916465985f10c3a5cb0

Authored by Thiago Franco de Moraes
1 parent 068c9bba

Testings

invesalius/data/measures.py
... ... @@ -607,21 +607,22 @@ class LinearMeasure(object):
607 607 return actors
608 608  
609 609 def Remove(self):
610   - if self.point_actor1:
611   - self.renderer.RemoveActor(self.point_actor1)
612   - del self.point_actor1
  610 + pass
  611 + # if self.point_actor1:
  612 + # self.renderer.RemoveActor(self.point_actor1)
  613 + # del self.point_actor1
613 614  
614   - if self.point_actor2:
615   - self.renderer.RemoveActor(self.point_actor2)
616   - del self.point_actor2
  615 + # if self.point_actor2:
  616 + # self.renderer.RemoveActor(self.point_actor2)
  617 + # del self.point_actor2
617 618  
618   - if self.line_actor:
619   - self.renderer.RemoveActor(self.line_actor)
620   - del self.line_actor
  619 + # if self.line_actor:
  620 + # self.renderer.RemoveActor(self.line_actor)
  621 + # del self.line_actor
621 622  
622   - if self.text_actor:
623   - self.renderer.RemoveActor(self.text_actor)
624   - del self.text_actor
  623 + # if self.text_actor:
  624 + # self.renderer.RemoveActor(self.text_actor)
  625 + # del self.text_actor
625 626  
626 627 # def __del__(self):
627 628 # self.Remove()
... ... @@ -840,25 +841,26 @@ class AngularMeasure(object):
840 841 return angle
841 842  
842 843 def Remove(self):
843   - if self.point_actor1:
844   - self.renderer.RemoveActor(self.point_actor1)
845   - del self.point_actor1
846   -
847   - if self.point_actor2:
848   - self.renderer.RemoveActor(self.point_actor2)
849   - del self.point_actor2
850   -
851   - if self.point_actor3:
852   - self.renderer.RemoveActor(self.point_actor3)
853   - del self.point_actor3
854   -
855   - if self.line_actor:
856   - self.renderer.RemoveActor(self.line_actor)
857   - del self.line_actor
858   -
859   - if self.text_actor:
860   - self.renderer.RemoveActor(self.text_actor)
861   - del self.text_actor
  844 + pass
  845 + # if self.point_actor1:
  846 + # self.renderer.RemoveActor(self.point_actor1)
  847 + # del self.point_actor1
  848 +
  849 + # if self.point_actor2:
  850 + # self.renderer.RemoveActor(self.point_actor2)
  851 + # del self.point_actor2
  852 +
  853 + # if self.point_actor3:
  854 + # self.renderer.RemoveActor(self.point_actor3)
  855 + # del self.point_actor3
  856 +
  857 + # if self.line_actor:
  858 + # self.renderer.RemoveActor(self.line_actor)
  859 + # del self.line_actor
  860 +
  861 + # if self.text_actor:
  862 + # self.renderer.RemoveActor(self.text_actor)
  863 + # del self.text_actor
862 864  
863 865 def SetRenderer(self, renderer):
864 866 if self.point_actor1:
... ...
invesalius/data/viewer_slice.py
... ... @@ -154,7 +154,7 @@ class CanvasRendererCTX:
154 154 self.canvas_renderer = viewer.slice_data.canvas_renderer
155 155 self._size = self.canvas_renderer.GetSize()
156 156 self._init_canvas()
157   - viewer.slice_data.renderer.AddObserver("StartEvent", self.OnPaint2)
  157 + viewer.slice_data.renderer.AddObserver("StartEvent", self.OnPaint)
158 158  
159 159 def _init_canvas(self):
160 160 w, h = self._size
... ... @@ -174,11 +174,11 @@ class CanvasRendererCTX:
174 174  
175 175 self.canvas_renderer.AddActor2D(self.actor)
176 176  
177   - rgb = np.zeros((h, w, 3), dtype=np.uint8)
178   - alpha = np.zeros((h, w, 1), dtype=np.uint8)
  177 + self.rgb = np.zeros((h, w, 3), dtype=np.uint8)
  178 + self.alpha = np.zeros((h, w, 1), dtype=np.uint8)
179 179  
180 180 self.bitmap = wx.EmptyBitmapRGBA(w, h)
181   - self.image = wx.ImageFromBuffer(w, h, rgb, alpha)
  181 + self.image = wx.ImageFromBuffer(w, h, self.rgb, self.alpha)
182 182  
183 183 self._im = Image.frombuffer('RGBA', (h, w), self._array, "raw", "RGBA", 0, 1)
184 184  
... ... @@ -188,11 +188,11 @@ class CanvasRendererCTX:
188 188 self.mapper.SetInputData(self._cv_image)
189 189 self.mapper.Update()
190 190  
191   - rgb = np.zeros((h, w, 3), dtype=np.uint8)
192   - alpha = np.zeros((h, w, 1), dtype=np.uint8)
  191 + self.rgb = np.zeros((h, w, 3), dtype=np.uint8)
  192 + self.alpha = np.zeros((h, w, 1), dtype=np.uint8)
193 193  
194 194 self.bitmap = wx.EmptyBitmapRGBA(w, h)
195   - self.image = wx.ImageFromBuffer(w, h, rgb, alpha)
  195 + self.image = wx.ImageFromBuffer(w, h, self.rgb, self.alpha)
196 196  
197 197 self._im = Image.frombuffer('RGBA', (h, w), self._array, "raw", "RGBA", 0, 1)
198 198  
... ... @@ -216,31 +216,42 @@ class CanvasRendererCTX:
216 216 self._size = size
217 217 self._resize_canvas(w, h)
218 218  
  219 + coord = vtk.vtkCoordinate()
219 220  
  221 + self.image.SetDataBuffer(self.rgb)
  222 + self.image.SetAlphaBuffer(self.alpha)
220 223 self.image.Clear()
221 224 gc = wx.GraphicsContext.Create(self.image)
222 225 gc.SetAntialiasMode(0)
223   - # memorydc = wx.MemoryDC(self.bitmap)
224   - # memorydc.SelectObject(self.bitmap)
225 226  
226   - pen = wx.Pen(wx.Colour(255, 0, 0, 128), 1, wx.SOLID)
  227 + font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
  228 + font.SetWeight(wx.BOLD)
  229 + font = gc.CreateFont(font, (0, 0, 255))
  230 + gc.SetFont(font)
  231 +
  232 + pen = wx.Pen(wx.Colour(255, 0, 0, 128), 2, wx.SOLID)
227 233 brush = wx.Brush(wx.Colour(0, 255, 0, 128))
228 234 gc.SetPen(pen)
229 235 gc.SetBrush(brush)
  236 + gc.Scale(1, -1)
  237 +
  238 + for (m, mr) in self.viewer.measures.get(self.viewer.orientation, self.viewer.slice_data.number):
  239 + lines = []
  240 + for p in m.points:
  241 + coord.SetValue(p)
  242 + cx, cy = coord.GetComputedDisplayValue(self.viewer.slice_data.renderer)
  243 + cy = -cy
  244 + lines.append((cx, cy))
  245 + path = gc.CreatePath()
  246 + path.AddArc(cx, cy, 5, 0, np.pi * 2)
  247 + gc.StrokePath(path)
  248 + gc.FillPath(path)
  249 +
  250 + if len(lines) > 1:
  251 + gc.DrawLines(lines)
  252 + txt = u"%.3f" % m.value
  253 + gc.DrawText(txt, *lines[0])
230 254  
231   -
232   - path = gc.CreatePath()
233   - path.AddArc(w/2.0, h/2.0, self.viewer.slice_data.number, 0, np.pi * 2)
234   - gc.StrokePath(path)
235   - gc.FillPath(path)
236   - # self.memorydc.Clear()
237   - # self.memorydc.BeginDrawing()
238   - # gc.DrawCircle(100, 100, self.viewer.slice_data.number * 5)
239   - # memorydc.DrawCircle(500, 500, 500)
240   - # memorydc.DrawRectangle(0, 0, w, h)
241   - # # self.memorydc.EndDrawing()
242   - # memorydc.SelectObject(wx.NullBitmap)
243   - # # self.bitmap.CopyToBuffer(self._array, wx.BitmapBufferFormat_RGBA)
244 255 gc.Destroy()
245 256  
246 257 self.bitmap = self.image.ConvertToBitmap()
... ...