Commit 519c44b47cf8e1f371458de7518ee262cdaa0f43

Authored by Thiago Franco de Moraes
1 parent 45c7f6a4
Exists in get_pixel

Updated editor interactor style to new get position methods

invesalius/data/slice_.py
@@ -434,7 +434,7 @@ class Slice(object): @@ -434,7 +434,7 @@ class Slice(object):
434 thresh_min, thresh_max = self.current_mask.edition_threshold_range 434 thresh_min, thresh_max = self.current_mask.edition_threshold_range
435 435
436 if hasattr(position, '__iter__'): 436 if hasattr(position, '__iter__'):
437 - py, px = position 437 + px, py = position
438 if orientation == 'AXIAL': 438 if orientation == 'AXIAL':
439 sx = self.spacing[0] 439 sx = self.spacing[0]
440 sy = self.spacing[1] 440 sy = self.spacing[1]
invesalius/data/styles.py
@@ -76,6 +76,7 @@ def get_LUT_value(data, window, level): @@ -76,6 +76,7 @@ def get_LUT_value(data, window, level):
76 data.shape = shape 76 data.shape = shape
77 return data 77 return data
78 78
  79 +
79 class BaseImageInteractorStyle(vtk.vtkInteractorStyleImage): 80 class BaseImageInteractorStyle(vtk.vtkInteractorStyleImage):
80 def __init__(self, viewer): 81 def __init__(self, viewer):
81 self.right_pressed = False 82 self.right_pressed = False
@@ -745,21 +746,13 @@ class EditorInteractorStyle(DefaultInteractorStyle): @@ -745,21 +746,13 @@ class EditorInteractorStyle(DefaultInteractorStyle):
745 #i.cursor.Show(0) 746 #i.cursor.Show(0)
746 slice_data.cursor.Show() 747 slice_data.cursor.Show()
747 748
748 - self.picker.Pick(mouse_x, mouse_y, 0, render)  
749 -  
750 - coord = self.get_coordinate_cursor()  
751 - position = slice_data.actor.GetInput().FindPoint(coord)  
752 -  
753 - if position != -1:  
754 - coord = slice_data.actor.GetInput().GetPoint(position) 749 + wx, wy, wz = viewer.get_coordinate_cursor(mouse_x, mouse_y, self.picker)
  750 + position = viewer.get_slice_pixel_coord_by_world_pos(wx, wy, wz)
755 751
756 - slice_data.cursor.SetPosition(coord)  
757 cursor = slice_data.cursor 752 cursor = slice_data.cursor
758 radius = cursor.radius 753 radius = cursor.radius
759 754
760 - if position < 0:  
761 - position = viewer.calculate_matrix_position(coord)  
762 - 755 + slice_data.cursor.SetPosition((wx, wy, wz))
763 viewer.slice_.edit_mask_pixel(operation, cursor.GetPixels(), 756 viewer.slice_.edit_mask_pixel(operation, cursor.GetPixels(),
764 position, radius, viewer.orientation) 757 position, radius, viewer.orientation)
765 #viewer._flush_buffer = True 758 #viewer._flush_buffer = True
@@ -796,39 +789,19 @@ class EditorInteractorStyle(DefaultInteractorStyle): @@ -796,39 +789,19 @@ class EditorInteractorStyle(DefaultInteractorStyle):
796 elif operation == const.BRUSH_DRAW and iren.GetControlKey(): 789 elif operation == const.BRUSH_DRAW and iren.GetControlKey():
797 operation = const.BRUSH_ERASE 790 operation = const.BRUSH_ERASE
798 791
799 - # TODO: Improve!  
800 - #for i in self.slice_data_list:  
801 - #i.cursor.Show(0)  
802 -  
803 - self.picker.Pick(mouse_x, mouse_y, 0, render)  
804 -  
805 - #if (self.pick.GetViewProp()):  
806 - #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_BLANK))  
807 - #else:  
808 - #self.interactor.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))  
809 -  
810 - coord = self.get_coordinate_cursor()  
811 - position = viewer.slice_data.actor.GetInput().FindPoint(coord)  
812 -  
813 - # when position == -1 the cursos is not over the image, so is not  
814 - # necessary to set the cursor position to world coordinate center of  
815 - # pixel from slice image.  
816 - if position != -1:  
817 - coord = slice_data.actor.GetInput().GetPoint(position)  
818 - slice_data.cursor.SetPosition(coord)  
819 - #self.__update_cursor_position(slice_data, coord) 792 + wx, wy, wz = viewer.get_coordinate_cursor(mouse_x, mouse_y, self.picker)
  793 + slice_data.cursor.SetPosition((wx, wy, wz))
820 794
821 if (self.left_pressed): 795 if (self.left_pressed):
822 cursor = slice_data.cursor 796 cursor = slice_data.cursor
823 - position = slice_data.actor.GetInput().FindPoint(coord)  
824 radius = cursor.radius 797 radius = cursor.radius
825 798
826 - if position < 0:  
827 - position = viewer.calculate_matrix_position(coord) 799 + position = viewer.get_slice_pixel_coord_by_world_pos(wx, wy, wz)
828 800
  801 + slice_data.cursor.SetPosition((wx, wy, wz))
829 viewer.slice_.edit_mask_pixel(operation, cursor.GetPixels(), 802 viewer.slice_.edit_mask_pixel(operation, cursor.GetPixels(),
830 - position, radius, self.orientation)  
831 - # TODO: To create a new function to reload images to viewer. 803 + position, radius, viewer.orientation)
  804 +
832 viewer.OnScrollBar(update3D=False) 805 viewer.OnScrollBar(update3D=False)
833 806
834 else: 807 else:
@@ -878,18 +851,6 @@ class EditorInteractorStyle(DefaultInteractorStyle): @@ -878,18 +851,6 @@ class EditorInteractorStyle(DefaultInteractorStyle):
878 else: 851 else:
879 self.OnScrollBackward(obj, evt) 852 self.OnScrollBackward(obj, evt)
880 853
881 - def get_coordinate_cursor(self):  
882 - # Find position  
883 - x, y, z = self.picker.GetPickPosition()  
884 - bounds = self.viewer.slice_data.actor.GetBounds()  
885 - if bounds[0] == bounds[1]:  
886 - x = bounds[0]  
887 - elif bounds[2] == bounds[3]:  
888 - y = bounds[2]  
889 - elif bounds[4] == bounds[5]:  
890 - z = bounds[4]  
891 - return x, y, z  
892 -  
893 854
894 class WatershedProgressWindow(object): 855 class WatershedProgressWindow(object):
895 def __init__(self, process): 856 def __init__(self, process):