Commit dc6f1c9a2520d438a5c2c916465985f10c3a5cb0

Authored by Thiago Franco de Moraes
1 parent 068c9bba

Testings

invesalius/data/measures.py
@@ -607,21 +607,22 @@ class LinearMeasure(object): @@ -607,21 +607,22 @@ class LinearMeasure(object):
607 return actors 607 return actors
608 608
609 def Remove(self): 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 # def __del__(self): 627 # def __del__(self):
627 # self.Remove() 628 # self.Remove()
@@ -840,25 +841,26 @@ class AngularMeasure(object): @@ -840,25 +841,26 @@ class AngularMeasure(object):
840 return angle 841 return angle
841 842
842 def Remove(self): 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 def SetRenderer(self, renderer): 865 def SetRenderer(self, renderer):
864 if self.point_actor1: 866 if self.point_actor1:
invesalius/data/viewer_slice.py
@@ -154,7 +154,7 @@ class CanvasRendererCTX: @@ -154,7 +154,7 @@ class CanvasRendererCTX:
154 self.canvas_renderer = viewer.slice_data.canvas_renderer 154 self.canvas_renderer = viewer.slice_data.canvas_renderer
155 self._size = self.canvas_renderer.GetSize() 155 self._size = self.canvas_renderer.GetSize()
156 self._init_canvas() 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 def _init_canvas(self): 159 def _init_canvas(self):
160 w, h = self._size 160 w, h = self._size
@@ -174,11 +174,11 @@ class CanvasRendererCTX: @@ -174,11 +174,11 @@ class CanvasRendererCTX:
174 174
175 self.canvas_renderer.AddActor2D(self.actor) 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 self.bitmap = wx.EmptyBitmapRGBA(w, h) 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 self._im = Image.frombuffer('RGBA', (h, w), self._array, "raw", "RGBA", 0, 1) 183 self._im = Image.frombuffer('RGBA', (h, w), self._array, "raw", "RGBA", 0, 1)
184 184
@@ -188,11 +188,11 @@ class CanvasRendererCTX: @@ -188,11 +188,11 @@ class CanvasRendererCTX:
188 self.mapper.SetInputData(self._cv_image) 188 self.mapper.SetInputData(self._cv_image)
189 self.mapper.Update() 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 self.bitmap = wx.EmptyBitmapRGBA(w, h) 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 self._im = Image.frombuffer('RGBA', (h, w), self._array, "raw", "RGBA", 0, 1) 197 self._im = Image.frombuffer('RGBA', (h, w), self._array, "raw", "RGBA", 0, 1)
198 198
@@ -216,31 +216,42 @@ class CanvasRendererCTX: @@ -216,31 +216,42 @@ class CanvasRendererCTX:
216 self._size = size 216 self._size = size
217 self._resize_canvas(w, h) 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 self.image.Clear() 223 self.image.Clear()
221 gc = wx.GraphicsContext.Create(self.image) 224 gc = wx.GraphicsContext.Create(self.image)
222 gc.SetAntialiasMode(0) 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 brush = wx.Brush(wx.Colour(0, 255, 0, 128)) 233 brush = wx.Brush(wx.Colour(0, 255, 0, 128))
228 gc.SetPen(pen) 234 gc.SetPen(pen)
229 gc.SetBrush(brush) 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 gc.Destroy() 255 gc.Destroy()
245 256
246 self.bitmap = self.image.ConvertToBitmap() 257 self.bitmap = self.image.ConvertToBitmap()