Commit 4df1d0612d7041ac2ecc27173483a79dc32b9bec
1 parent
2ae6b471
Exists in
interactor_style
Created a new interactor style to handle the Zoom camera
Showing
2 changed files
with
33 additions
and
0 deletions
Show diff stats
invesalius/data/styles.py
@@ -340,6 +340,32 @@ class SpinInteractorStyle(RightZoomInteractorStyle): | @@ -340,6 +340,32 @@ class SpinInteractorStyle(RightZoomInteractorStyle): | ||
340 | iren.Render() | 340 | iren.Render() |
341 | 341 | ||
342 | 342 | ||
343 | +class ZoomInteractorStyle(RightZoomInteractorStyle): | ||
344 | + """ | ||
345 | + Interactor style responsible for zoom with movement of the mouse and the | ||
346 | + left mouse button clicked. | ||
347 | + """ | ||
348 | + def __init__(self, viewer): | ||
349 | + RightZoomInteractorStyle.__init__(self) | ||
350 | + | ||
351 | + self.viewer = viewer | ||
352 | + | ||
353 | + self.AddObserver("MouseMoveEvent", self.OnZoomMoveLeft) | ||
354 | + self.viewer.interactor.Bind(wx.EVT_LEFT_DCLICK, self.OnUnZoom) | ||
355 | + | ||
356 | + def OnZoomMoveLeft(self, obj, evt): | ||
357 | + if self.left_pressed: | ||
358 | + obj.Dolly() | ||
359 | + obj.OnRightButtonDown() | ||
360 | + | ||
361 | + def OnUnZoom(self, evt): | ||
362 | + mouse_x, mouse_y = self.viewer.interactor.GetLastEventPosition() | ||
363 | + ren = self.viewer.interactor.FindPokedRenderer(mouse_x, mouse_y) | ||
364 | + #slice_data = self.get_slice_data(ren) | ||
365 | + ren.ResetCamera() | ||
366 | + ren.ResetCameraClippingRange() | ||
367 | + #self.Reposition(slice_data) | ||
368 | + self.viewer.interactor.Render() | ||
343 | 369 | ||
344 | 370 | ||
345 | class ViewerStyle: | 371 | class ViewerStyle: |
invesalius/data/viewer_slice.py
@@ -231,6 +231,13 @@ class Viewer(wx.Panel): | @@ -231,6 +231,13 @@ class Viewer(wx.Panel): | ||
231 | self.interactor.SetInteractorStyle(style) | 231 | self.interactor.SetInteractorStyle(style) |
232 | self.interactor.Render() | 232 | self.interactor.Render() |
233 | 233 | ||
234 | + elif state == const.STATE_ZOOM: | ||
235 | + style = styles.ZoomInteractorStyle(self) | ||
236 | + | ||
237 | + self.style = style | ||
238 | + self.interactor.SetInteractorStyle(style) | ||
239 | + self.interactor.Render() | ||
240 | + | ||
234 | else: | 241 | else: |
235 | self.state = state | 242 | self.state = state |
236 | action = { | 243 | action = { |