Skip to content

Commit

Permalink
Merge pull request #29 from nleaf-nv/bug-ext-camera-zoom-fix
Browse files Browse the repository at this point in the history
Fixed camera zoom in Firefox
  • Loading branch information
NickLeaf authored Jun 18, 2020
2 parents 3a7d6a5 + 532aa31 commit 074d548
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 7 deletions.
4 changes: 3 additions & 1 deletion ipyparaview/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class PVDisplay(widgets.DOMWidget):
# class variables
instances = dict()
rotateScale = 5.0
zoomScale = 0.05

@classmethod
def GetOrCreate(cls, ren, runAsync=True, **kwargs):
Expand Down Expand Up @@ -223,14 +224,15 @@ def __panCam(self, mouseDelta):
def __zoomCam(self, mouseDelta):
#zooms by scaling the distance between camera and focus
rlim = 0.00001 #minimum allowable radius
d = (1.0+self.zoomScale)**mouseDelta
if self.mode == 'Dask':
from dask.distributed import wait
wait([r.zoomCam(mouseDelta,rlim) for r in self.renderers])
else:
(self.renv.CameraPosition,
self.renv.CameraFocalPoint,
self.renv.CameraViewUp) = zoomCameraTurntable(
mouseDelta,
d,
self.renv.CameraPosition,
self.renv.CameraFocalPoint,
self.renv.CameraViewUp,
Expand Down
8 changes: 2 additions & 6 deletions js/lib/widgets.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,18 +115,14 @@ var PVDisplayView = widgets.DOMWidgetView.extend({
};

function handleScroll(e){
const wheelScl = 1.0/40.0;
const dScl = 0.05;

e.preventDefault();
e.stopPropagation();
let d = e.wheelDelta ? e.wheelDelta*wheelScl : e.detail ? -e.detail : 0;
wheelAccum += d;
wheelAccum += Math.sign(e.deltaY);

t = Date.now();
if(t - lastMouseT > 1000.0/model.get('maxEventRate')){
if(wheelAccum){
view.send({event: 'zoom', 'data': 1.0-dScl*wheelAccum});
view.send({event: 'zoom', 'data': wheelAccum});
}
wheelAccum = 0.0;
lastMouseT = t;
Expand Down

0 comments on commit 074d548

Please sign in to comment.