Commit 9cd994d38f5bdbf94bdff8fa4d6f6134410097c3
1 parent
ebd964af
Exists in
master
Updating cross when scrolling (FIX #253)
Showing
2 changed files
with
23 additions
and
9 deletions
Show diff stats
invesalius/data/styles.py
... | ... | @@ -529,7 +529,7 @@ class CrossInteractorStyle(DefaultInteractorStyle): |
529 | 529 | # |
530 | 530 | |
531 | 531 | Publisher.sendMessage('Update cross position', arg=None, position=(wx, wy, wz, 0., 0., 0.)) |
532 | - self.ScrollSlice(coord) | |
532 | + # self.ScrollSlice(coord) | |
533 | 533 | |
534 | 534 | # iren.Render() |
535 | 535 | |
... | ... | @@ -550,6 +550,14 @@ class CrossInteractorStyle(DefaultInteractorStyle): |
550 | 550 | Publisher.sendMessage(('Set scroll position', 'SAGITAL'), |
551 | 551 | index=coord[0]) |
552 | 552 | |
553 | + def OnScrollBar(self, *args, **kwargs): | |
554 | + # Update other slice's cross according to the new focal point from | |
555 | + # the actual orientation. | |
556 | + x, y, z = self.viewer.cross.GetFocalPoint() | |
557 | + self.viewer.UpdateSlicesNavigation(None, (x, y, z, 0.0, 0.0, 0.0)) | |
558 | + Publisher.sendMessage('Set cross focal point', position=(x, y, z)) | |
559 | + Publisher.sendMessage('Update slice viewer') | |
560 | + | |
553 | 561 | |
554 | 562 | class TractsInteractorStyle(CrossInteractorStyle): |
555 | 563 | """ | ... | ... |
invesalius/data/viewer_slice.py
... | ... | @@ -570,11 +570,15 @@ class Viewer(wx.Panel): |
570 | 570 | ux, uy, uz = position[:3] |
571 | 571 | px, py = self.get_slice_pixel_coord_by_world_pos(ux, uy, uz) |
572 | 572 | coord = self.calcultate_scroll_position(px, py) |
573 | + print(position, coord) | |
573 | 574 | |
574 | 575 | self.cross.SetFocalPoint((ux, uy, uz)) |
575 | 576 | self.ScrollSlice(coord) |
576 | 577 | self.interactor.Render() |
577 | 578 | |
579 | + def SetCrossFocalPoint(self, position): | |
580 | + self.cross.SetFocalPoint(position) | |
581 | + | |
578 | 582 | def ScrollSlice(self, coord): |
579 | 583 | if self.orientation == "AXIAL": |
580 | 584 | Publisher.sendMessage(('Set scroll position', 'SAGITAL'), |
... | ... | @@ -818,6 +822,9 @@ class Viewer(wx.Panel): |
818 | 822 | self.orientation)) |
819 | 823 | Publisher.subscribe(self.__update_cross_position, |
820 | 824 | 'Update cross position') |
825 | + Publisher.subscribe(self.__update_cross_position, | |
826 | + 'Update cross position %s' % self.orientation) | |
827 | + Publisher.subscribe(self.SetCrossFocalPoint, 'Set cross focal point') | |
821 | 828 | # Publisher.subscribe(self.UpdateSlicesNavigation, |
822 | 829 | # 'Co-registered points') |
823 | 830 | ### |
... | ... | @@ -1294,14 +1301,13 @@ class Viewer(wx.Panel): |
1294 | 1301 | self.set_slice_number(pos) |
1295 | 1302 | if update3D: |
1296 | 1303 | self.UpdateSlice3D(pos) |
1297 | - if self.state == const.SLICE_STATE_CROSS: | |
1298 | - # Update other slice's cross according to the new focal point from | |
1299 | - # the actual orientation. | |
1300 | - x, y, z = self.cross.GetFocalPoint() | |
1301 | - Publisher.sendMessage('Update cross position', arg=None, position=(x, y, z, 0., 0., 0.)) | |
1302 | - Publisher.sendMessage('Update slice viewer') | |
1303 | - else: | |
1304 | - self.interactor.Render() | |
1304 | + | |
1305 | + try: | |
1306 | + self.style.OnScrollBar() | |
1307 | + except AttributeError: | |
1308 | + print("Do not have OnScrollBar") | |
1309 | + | |
1310 | + self.interactor.Render() | |
1305 | 1311 | if evt: |
1306 | 1312 | if self._flush_buffer: |
1307 | 1313 | self.slice_.apply_slice_buffer_to_mask(self.orientation) | ... | ... |