Commit 1a6769c67b7a3bc66b6d9b699a72a7ac965d346b
1 parent
ddde2457
Exists in
master
and in
6 other branches
FIX: The function that verifies if the point is into the image now take counts t…
…he original orientation. Related to #202
Showing
1 changed file
with
17 additions
and
10 deletions
Show diff stats
invesalius/data/viewer_slice.py
... | ... | @@ -681,6 +681,7 @@ class Viewer(wx.Panel): |
681 | 681 | coord = self.CalcultateScrollPosition(coord_cross) |
682 | 682 | ps.Publisher().sendMessage('Update cross position', |
683 | 683 | (self.orientation, coord_cross)) |
684 | + print "Scroll to", coord | |
684 | 685 | self.ScrollSlice(coord) |
685 | 686 | self.interactor.Render() |
686 | 687 | |
... | ... | @@ -720,6 +721,9 @@ class Viewer(wx.Panel): |
720 | 721 | # and the last, axial. |
721 | 722 | x, y, z = coord |
722 | 723 | |
724 | + proj = project.Project() | |
725 | + orig_orien = proj.original_orientation | |
726 | + | |
723 | 727 | # First we fix the position origin, based on vtkActor bounds |
724 | 728 | bounds = self.actor.GetBounds() |
725 | 729 | bound_xi, bound_xf, bound_yi, bound_yf, bound_zi, bound_zf = bounds |
... | ... | @@ -734,8 +738,8 @@ class Viewer(wx.Panel): |
734 | 738 | y = y/spacing_y |
735 | 739 | z = z/spacing_z |
736 | 740 | |
737 | - proj = project.Project() | |
738 | - orig_orien = proj.original_orientation | |
741 | + x, y, z = self._assert_coord_into_image([x, y, z]) | |
742 | + | |
739 | 743 | # Based on the current orientation, we define 3D position |
740 | 744 | # Sagita, coronal, axial |
741 | 745 | coordinates = {const.AXIAL: [x, y, z], |
... | ... | @@ -747,14 +751,6 @@ class Viewer(wx.Panel): |
747 | 751 | # According to vtkImageData extent, we limit min and max value |
748 | 752 | # If this is not done, a VTK Error occurs when mouse is pressed outside |
749 | 753 | # vtkImageData extent |
750 | - extent = self.imagedata.GetWholeExtent() | |
751 | - extent_min = extent[0], extent[2], extent[4] | |
752 | - extent_max = extent[1], extent[3], extent[5] | |
753 | - for index in xrange(3): | |
754 | - if coord[index] > extent_max[index]: | |
755 | - coord[index] = extent_max[index] | |
756 | - elif coord[index] < extent_min[index]: | |
757 | - coord[index] = extent_min[index] | |
758 | 754 | return coord |
759 | 755 | |
760 | 756 | def get_coordinate_cursor(self): |
... | ... | @@ -1400,3 +1396,14 @@ class Viewer(wx.Panel): |
1400 | 1396 | and zi <= z <= zf: |
1401 | 1397 | return True |
1402 | 1398 | return False |
1399 | + | |
1400 | + def _assert_coord_into_image(self, coord): | |
1401 | + extent = self.imagedata.GetWholeExtent() | |
1402 | + extent_min = extent[0], extent[2], extent[4] | |
1403 | + extent_max = extent[1], extent[3], extent[5] | |
1404 | + for index in xrange(3): | |
1405 | + if coord[index] > extent_max[index]: | |
1406 | + coord[index] = extent_max[index] | |
1407 | + elif coord[index] < extent_min[index]: | |
1408 | + coord[index] = extent_min[index] | |
1409 | + return coord | ... | ... |