Commit 46f4452a1b5c39e826de86c383345df72eeeb9b1

Authored by Thiago Franco de Moraes
1 parent 4a7add3a
Exists in interactor_style

Cleaning code related to vtk events from viewer_slice

Showing 1 changed file with 2 additions and 244 deletions   Show diff stats
invesalius/data/viewer_slice.py
@@ -178,6 +178,8 @@ class Viewer(wx.Panel): @@ -178,6 +178,8 @@ class Viewer(wx.Panel):
178 self.__set_cross_visibility(0) 178 self.__set_cross_visibility(0)
179 self.on_wl = False 179 self.on_wl = False
180 self.wl_text.Hide() 180 self.wl_text.Hide()
  181 + self.state = state
  182 +
181 if state == const.STATE_DEFAULT: 183 if state == const.STATE_DEFAULT:
182 style = styles.DefaultInteractorStyle(self) 184 style = styles.DefaultInteractorStyle(self)
183 self.style = style 185 self.style = style
@@ -257,156 +259,12 @@ class Viewer(wx.Panel): @@ -257,156 +259,12 @@ class Viewer(wx.Panel):
257 self.interactor.SetInteractorStyle(style) 259 self.interactor.SetInteractorStyle(style)
258 self.interactor.Render() 260 self.interactor.Render()
259 261
260 - else:  
261 - self.state = state  
262 - action = {  
263 - const.SLICE_STATE_EDITOR:  
264 - {  
265 - "MouseMoveEvent": self.OnBrushMove,  
266 - "LeftButtonPressEvent": self.OnBrushClick,  
267 - "LeftButtonReleaseEvent": self.OnBrushRelease,  
268 - "EnterEvent": self.OnEnterInteractor,  
269 - "LeaveEvent": self.OnLeaveInteractor  
270 - },  
271 - const.STATE_DEFAULT:  
272 - {  
273 - },  
274 - }  
275 -  
276 -  
277 - if state == const.SLICE_STATE_CROSS:  
278 - self.__set_cross_visibility(1)  
279 - Publisher.sendMessage('Activate ball reference')  
280 - else:  
281 - self.__set_cross_visibility(0)  
282 - Publisher.sendMessage('Deactivate ball reference')  
283 -  
284 - if state == const.STATE_WL:  
285 - self.on_wl = True  
286 - self.wl_text.Show()  
287 - else:  
288 - self.on_wl = False  
289 - self.wl_text.Hide()  
290 -  
291 - self._set_editor_cursor_visibility(0)  
292 -  
293 - # Bind method according to current mode  
294 - if(state == const.STATE_ZOOM_SL):  
295 - style = vtk.vtkInteractorStyleRubberBandZoom()  
296 -  
297 - style.AddObserver("RightButtonPressEvent", self.QuitRubberBandZoom)  
298 - #style.AddObserver("RightButtonPressEvent", self.EnterRubberBandZoom)  
299 -  
300 - else:  
301 - style = vtk.vtkInteractorStyleImage()  
302 -  
303 - # Check each event available for each state  
304 - for event in action[state]:  
305 - # Bind event  
306 - style.AddObserver(event,  
307 - action[state][event])  
308 -  
309 - # Common to all styles  
310 - # Mouse Buttons' presses / releases  
311 - style.AddObserver("LeftButtonPressEvent", self.OnLeftClick)  
312 - style.AddObserver("LeftButtonReleaseEvent", self.OnReleaseLeftButton)  
313 - style.AddObserver("RightButtonPressEvent", self.OnRightClick)  
314 - style.AddObserver("RightButtonReleaseEvent", self.OnReleaseRightButton)  
315 -  
316 - # Zoom using right button  
317 - style.AddObserver("RightButtonPressEvent",self.OnZoomRightClick)  
318 - style.AddObserver("MouseMoveEvent", self.OnZoomMoveRight)  
319 - style.AddObserver("RightButtonReleaseEvent", self.OnVtkRightRelease)  
320 -  
321 - #Scroll change slice  
322 - style.AddObserver("MouseWheelForwardEvent",self.OnScrollForward)  
323 - style.AddObserver("MouseWheelBackwardEvent", self.OnScrollBackward)  
324 -  
325 -  
326 - # Measures are using vtkPropPicker because they need to get which actor  
327 - # was picked.  
328 - if state in (const.STATE_MEASURE_DISTANCE, const.STATE_MEASURE_ANGLE):  
329 - self.pick = vtk.vtkPropPicker()  
330 - self.interactor.SetPicker(self.pick)  
331 - else:  
332 - self.pick = vtk.vtkWorldPointPicker()  
333 - self.interactor.SetPicker(self.pick)  
334 -  
335 - self.style = style  
336 - self.interactor.SetInteractorStyle(style)  
337 - self.interactor.Render()  
338 -  
339 - def QuitRubberBandZoom(self, evt, obj):  
340 - style = vtk.vtkInteractorStyleImage()  
341 - self.interactor.SetInteractorStyle(style)  
342 - self.style = style  
343 -  
344 - style.AddObserver("LeftButtonPressEvent", self.EnterRubberBandZoom)  
345 -  
346 - # Zoom using right button  
347 - style.AddObserver("RightButtonPressEvent", self.OnRightClick)  
348 - style.AddObserver("RightButtonReleaseEvent", self.OnReleaseRightButton)  
349 - style.AddObserver("RightButtonPressEvent",self.OnZoomRightClick)  
350 - style.AddObserver("MouseMoveEvent", self.OnZoomMoveRight)  
351 - style.AddObserver("RightButtonReleaseEvent", self.OnReleaseRightButton)  
352 -  
353 - def EnterRubberBandZoom(self, evt, obj):  
354 - style = vtk.vtkInteractorStyleRubberBandZoom()  
355 - self.interactor.SetInteractorStyle(style)  
356 - self.style = style  
357 -  
358 - style.AddObserver("RightButtonPressEvent", self.QuitRubberBandZoom)  
359 -  
360 - def OnRightClick(self, evt, obj):  
361 - self.last_position_mouse_move = \  
362 - self.interactor.GetLastEventPosition()  
363 -  
364 - self.right_pressed = 1  
365 -  
366 - def OnReleaseRightButton(self, evt, obj):  
367 - self.right_pressed = 0  
368 - Publisher.sendMessage('Update slice viewer')  
369 -  
370 - def OnLeftClick(self, evt, obj):  
371 - self.left_pressed = 1  
372 -  
373 - def OnReleaseLeftButton(self, evt, obj):  
374 - self.left_pressed = 0  
375 - Publisher.sendMessage('Update slice viewer')  
376 -  
377 def UpdateWindowLevelValue(self, pubsub_evt): 262 def UpdateWindowLevelValue(self, pubsub_evt):
378 window, level = pubsub_evt.data 263 window, level = pubsub_evt.data
379 self.acum_achange_window, self.acum_achange_level = (window, level) 264 self.acum_achange_window, self.acum_achange_level = (window, level)
380 self.SetWLText(window, level) 265 self.SetWLText(window, level)
381 Publisher.sendMessage('Update all slice') 266 Publisher.sendMessage('Update all slice')
382 267
383 - def OnPanMove(self, evt, obj):  
384 - mouse_x, mouse_y = self.interactor.GetLastEventPosition()  
385 - ren = self.interactor.FindPokedRenderer(mouse_x, mouse_y)  
386 - cam = ren.GetActiveCamera()  
387 -  
388 - if (self.left_pressed):  
389 - evt.Pan()  
390 - evt.OnRightButtonDown()  
391 - self.paned_image = True  
392 -  
393 - def OnPanClick(self, evt, obj):  
394 - evt.StartPan()  
395 -  
396 - def OnVtkRightRelease(self, evt, obj):  
397 - evt.OnRightButtonUp()  
398 -  
399 - def OnEnterInteractor(self, evt, obj):  
400 - if (self.slice_.buffer_slices[self.orientation].mask is None):  
401 - return  
402 - self.slice_data.cursor.Show()  
403 - self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK))  
404 -  
405 - def OnLeaveInteractor(self, evt, obj):  
406 - self.slice_data.cursor.Show(0)  
407 - self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))  
408 - self.interactor.Render()  
409 -  
410 def SetWLText(self, window_width, window_level): 268 def SetWLText(self, window_width, window_level):
411 value = STR_WL%(window_level, window_width) 269 value = STR_WL%(window_level, window_width)
412 if (self.wl_text): 270 if (self.wl_text):
@@ -660,98 +518,6 @@ class Viewer(wx.Panel): @@ -660,98 +518,6 @@ class Viewer(wx.Panel):
660 slice_data.SetCursor(cursor) 518 slice_data.SetCursor(cursor)
661 self.interactor.Render() 519 self.interactor.Render()
662 520
663 - def OnBrushClick(self, evt, obj):  
664 - if (self.slice_.buffer_slices[self.orientation].mask is None):  
665 - return  
666 -  
667 - self._set_editor_cursor_visibility(1)  
668 -  
669 - mouse_x, mouse_y = self.interactor.GetEventPosition()  
670 - render = self.interactor.FindPokedRenderer(mouse_x, mouse_y)  
671 - slice_data = self.get_slice_data(render)  
672 -  
673 - # TODO: Improve!  
674 - #for i in self.slice_data_list:  
675 - #i.cursor.Show(0)  
676 - self.slice_data.cursor.Show()  
677 -  
678 - self.pick.Pick(mouse_x, mouse_y, 0, render)  
679 -  
680 - coord = self.get_coordinate_cursor()  
681 - position = self.slice_data.actor.GetInput().FindPoint(coord)  
682 -  
683 - if position != -1:  
684 - coord = self.slice_data.actor.GetInput().GetPoint(position)  
685 -  
686 - slice_data.cursor.SetPosition(coord)  
687 - cursor = self.slice_data.cursor  
688 - radius = cursor.radius  
689 -  
690 - if position < 0:  
691 - position = self.calculate_matrix_position(coord)  
692 -  
693 - self.slice_.edit_mask_pixel(self._brush_cursor_op, cursor.GetPixels(),  
694 - position, radius, self.orientation)  
695 - self._flush_buffer = True  
696 -  
697 - # TODO: To create a new function to reload images to viewer.  
698 - self.OnScrollBar()  
699 -  
700 - def OnBrushMove(self, evt, obj):  
701 - if (self.slice_.buffer_slices[self.orientation].mask is None):  
702 - return  
703 -  
704 - self._set_editor_cursor_visibility(1)  
705 -  
706 - mouse_x, mouse_y = self.interactor.GetEventPosition()  
707 - render = self.interactor.FindPokedRenderer(mouse_x, mouse_y)  
708 - slice_data = self.get_slice_data(render)  
709 -  
710 - # TODO: Improve!  
711 - #for i in self.slice_data_list:  
712 - #i.cursor.Show(0)  
713 -  
714 - self.pick.Pick(mouse_x, mouse_y, 0, render)  
715 -  
716 - #if (self.pick.GetViewProp()):  
717 - #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK))  
718 - #else:  
719 - #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))  
720 -  
721 - coord = self.get_coordinate_cursor()  
722 - position = self.slice_data.actor.GetInput().FindPoint(coord)  
723 -  
724 - # when position == -1 the cursos is not over the image, so is not  
725 - # necessary to set the cursor position to world coordinate center of  
726 - # pixel from slice image.  
727 - if position != -1:  
728 - coord = self.slice_data.actor.GetInput().GetPoint(position)  
729 - slice_data.cursor.SetPosition(coord)  
730 - #self.__update_cursor_position(slice_data, coord)  
731 -  
732 - if (self.left_pressed):  
733 - cursor = self.slice_data.cursor  
734 - position = self.slice_data.actor.GetInput().FindPoint(coord)  
735 - radius = cursor.radius  
736 -  
737 - if position < 0:  
738 - position = self.calculate_matrix_position(coord)  
739 -  
740 - self.slice_.edit_mask_pixel(self._brush_cursor_op, cursor.GetPixels(),  
741 - position, radius, self.orientation)  
742 - # TODO: To create a new function to reload images to viewer.  
743 - self.OnScrollBar(update3D=False)  
744 -  
745 - else:  
746 - self.interactor.Render()  
747 -  
748 - def OnBrushRelease(self, evt, obj):  
749 - if (self.slice_.buffer_slices[self.orientation].mask is None):  
750 - return  
751 -  
752 - self.slice_.apply_slice_buffer_to_mask(self.orientation)  
753 - self._flush_buffer = False  
754 -  
755 def Navigation(self, pubsub_evt): 521 def Navigation(self, pubsub_evt):
756 # Get point from base change 522 # Get point from base change
757 x, y, z = pubsub_evt.data 523 x, y, z = pubsub_evt.data
@@ -781,14 +547,6 @@ class Viewer(wx.Panel): @@ -781,14 +547,6 @@ class Viewer(wx.Panel):
781 Publisher.sendMessage(('Set scroll position', 'SAGITAL'), 547 Publisher.sendMessage(('Set scroll position', 'SAGITAL'),
782 coord[0]) 548 coord[0])
783 549
784 - def OnZoomMoveRight(self, evt, obj):  
785 - if (self.right_pressed):  
786 - evt.Dolly()  
787 - evt.OnRightButtonDown()  
788 -  
789 - def OnZoomRightClick(self, evt, obj):  
790 - evt.StartDolly()  
791 -  
792 def get_slice_data(self, render): 550 def get_slice_data(self, render):
793 #for slice_data in self.slice_data_list: 551 #for slice_data in self.slice_data_list:
794 #if slice_data.renderer is render: 552 #if slice_data.renderer is render: