Commit 96dd7511bbbd28c9161dea9c3e2bc466be2646fe

Authored by Thiago Franco de Moraes
1 parent 1a85e2a4
Exists in interactor_style

Created a method to reset camera after a span camera

invesalius/data/styles.py
... ... @@ -285,15 +285,26 @@ class PanMoveInteractorStyle(ZoomInteractorStyle):
285 285 """
286 286 Interactor style responsible for translate the camera.
287 287 """
288   - def __init__(self):
  288 + def __init__(self, viewer):
289 289 ZoomInteractorStyle.__init__(self)
  290 +
  291 + self.viewer = viewer
  292 +
290 293 self.AddObserver("MouseMoveEvent", self.OnPanMove)
  294 + self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnspan)
291 295  
292 296 def OnPanMove(self, obj, evt):
293 297 if self.left_pressed:
294 298 obj.Pan()
295 299 obj.OnRightButtonDown()
296 300  
  301 + def OnUnspan(self, evt):
  302 + iren = self.viewer.interactor
  303 + mouse_x, mouse_y = iren.GetLastEventPosition()
  304 + ren = iren.FindPokedRenderer(mouse_x, mouse_y)
  305 + ren.ResetCamera()
  306 + iren.Render()
  307 +
297 308  
298 309 class SpinInteractorStyle(ZoomInteractorStyle):
299 310 """
... ... @@ -305,7 +316,7 @@ class SpinInteractorStyle(ZoomInteractorStyle):
305 316 self.viewer = viewer
306 317  
307 318 self.AddObserver("MouseMoveEvent", self.OnSpinMove)
308   - self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnspinPan)
  319 + self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnspin)
309 320  
310 321 def OnSpinMove(self, obj, evt):
311 322 iren = obj.GetInteractor()
... ... @@ -318,7 +329,7 @@ class SpinInteractorStyle(ZoomInteractorStyle):
318 329 obj.Spin()
319 330 obj.OnRightButtonDown()
320 331  
321   - def OnUnspinPan(self, evt):
  332 + def OnUnspin(self, evt):
322 333 orig_orien = 1
323 334 iren = self.viewer.interactor
324 335 mouse_x, mouse_y = iren.GetLastEventPosition()
... ...
invesalius/data/viewer_slice.py
... ... @@ -218,7 +218,7 @@ class Viewer(wx.Panel):
218 218 self.interactor.Render()
219 219  
220 220 elif state == const.STATE_PAN:
221   - style = styles.PanMoveInteractorStyle()
  221 + style = styles.PanMoveInteractorStyle(self)
222 222  
223 223 self.style = style
224 224 self.interactor.SetInteractorStyle(style)
... ... @@ -428,31 +428,6 @@ class Viewer(wx.Panel):
428 428 #self.Reposition(slice_data)
429 429 self.interactor.Render()
430 430  
431   - def UnspinPan(self):
432   - orientation = self.orientation
433   - proj = project.Project()
434   - orig_orien = 1
435   - mouse_x, mouse_y = self.interactor.GetLastEventPosition()
436   - ren = self.interactor.FindPokedRenderer(mouse_x, mouse_y)
437   -
438   - if((self.state == const.STATE_SPIN) and (self.spined_image)):
439   - self.cam.SetViewUp(const.SLICE_POSITION[orig_orien][0][self.orientation])
440   - # Values are on ccw order, starting from the top:
441   - if self.orientation == 'AXIAL':
442   - values = [_("A"), _("R"), _("P"), _("L")]
443   - elif self.orientation == 'CORONAL':
444   - values = [_("T"), _("R"), _("B"), _("L")]
445   - else: # 'SAGITAL':
446   - values = [_("T"), _("P"), _("B"), _("A")]
447   -
448   - self.RenderTextDirection(values)
449   - self.interactor.Render()
450   - self.spined_image = False
451   - elif((self.state == const.STATE_PAN) and (self.paned_image)):
452   - ren.ResetCamera()
453   - self.interactor.Render()
454   - self.paned_image = False
455   -
456 431 def OnEnterInteractor(self, evt, obj):
457 432 if (self.slice_.buffer_slices[self.orientation].mask is None):
458 433 return
... ...