Commit 46f4452a1b5c39e826de86c383345df72eeeb9b1
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: |