Commit 3ee7eebec630d551cbabaf9f15e682af39529dbb
1 parent
c79f0659
Exists in
master
and in
20 other branches
Using get_voxel_clicked FloodFillMaskInteractorStyle and removed a bunch of related codes
Showing
1 changed file
with
1 additions
and
52 deletions
Show diff stats
invesalius/data/styles.py
| ... | ... | @@ -1804,24 +1804,10 @@ class FloodFillMaskInteractorStyle(DefaultInteractorStyle): |
| 1804 | 1804 | |
| 1805 | 1805 | viewer = self.viewer |
| 1806 | 1806 | iren = viewer.interactor |
| 1807 | - | |
| 1808 | 1807 | mouse_x, mouse_y = iren.GetEventPosition() |
| 1809 | - render = iren.FindPokedRenderer(mouse_x, mouse_y) | |
| 1810 | - slice_data = viewer.get_slice_data(render) | |
| 1811 | - | |
| 1812 | - self.picker.Pick(mouse_x, mouse_y, 0, render) | |
| 1813 | - | |
| 1814 | - coord = self.get_coordinate_cursor() | |
| 1815 | - position = slice_data.actor.GetInput().FindPoint(coord) | |
| 1816 | - | |
| 1817 | - if position != -1: | |
| 1818 | - coord = slice_data.actor.GetInput().GetPoint(position) | |
| 1819 | - | |
| 1820 | - if position < 0: | |
| 1821 | - position = viewer.calculate_matrix_position(coord) | |
| 1808 | + x, y, z = self.viewer.get_voxel_clicked(mouse_x, mouse_y, self.picker) | |
| 1822 | 1809 | |
| 1823 | 1810 | mask = self.viewer.slice_.current_mask.matrix[1:, 1:, 1:] |
| 1824 | - x, y, z = self.calcultate_scroll_position(position) | |
| 1825 | 1811 | if mask[z, y, x] < self.t0 or mask[z, y, x] > self.t1: |
| 1826 | 1812 | return |
| 1827 | 1813 | |
| ... | ... | @@ -1878,43 +1864,6 @@ class FloodFillMaskInteractorStyle(DefaultInteractorStyle): |
| 1878 | 1864 | self.viewer.slice_.current_mask.was_edited = True |
| 1879 | 1865 | Publisher.sendMessage('Reload actual slice') |
| 1880 | 1866 | |
| 1881 | - def get_coordinate_cursor(self): | |
| 1882 | - # Find position | |
| 1883 | - x, y, z = self.picker.GetPickPosition() | |
| 1884 | - bounds = self.viewer.slice_data.actor.GetBounds() | |
| 1885 | - if bounds[0] == bounds[1]: | |
| 1886 | - x = bounds[0] | |
| 1887 | - elif bounds[2] == bounds[3]: | |
| 1888 | - y = bounds[2] | |
| 1889 | - elif bounds[4] == bounds[5]: | |
| 1890 | - z = bounds[4] | |
| 1891 | - return x, y, z | |
| 1892 | - | |
| 1893 | - def calcultate_scroll_position(self, position): | |
| 1894 | - # Based in the given coord (x, y, z), returns a list with the scroll positions for each | |
| 1895 | - # orientation, being the first position the sagital, second the coronal | |
| 1896 | - # and the last, axial. | |
| 1897 | - | |
| 1898 | - if self.orientation == 'AXIAL': | |
| 1899 | - image_width = self.slice_actor.GetInput().GetDimensions()[0] | |
| 1900 | - axial = self.slice_data.number | |
| 1901 | - coronal = position / image_width | |
| 1902 | - sagital = position % image_width | |
| 1903 | - | |
| 1904 | - elif self.orientation == 'CORONAL': | |
| 1905 | - image_width = self.slice_actor.GetInput().GetDimensions()[0] | |
| 1906 | - axial = position / image_width | |
| 1907 | - coronal = self.slice_data.number | |
| 1908 | - sagital = position % image_width | |
| 1909 | - | |
| 1910 | - elif self.orientation == 'SAGITAL': | |
| 1911 | - image_width = self.slice_actor.GetInput().GetDimensions()[1] | |
| 1912 | - axial = position / image_width | |
| 1913 | - coronal = position % image_width | |
| 1914 | - sagital = self.slice_data.number | |
| 1915 | - | |
| 1916 | - return sagital, coronal, axial | |
| 1917 | - | |
| 1918 | 1867 | |
| 1919 | 1868 | class RemoveMaskPartsInteractorStyle(FloodFillMaskInteractorStyle): |
| 1920 | 1869 | def __init__(self, viewer): | ... | ... |