From ba56b36af2b19331fdf710e06ac024ea9a5595cf Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Tue, 17 Nov 2020 20:26:13 -0500 Subject: [PATCH] add pluggable mouse control --- src/moto/ctrl.js | 19 ++++++++++++++++--- src/moto/space.js | 7 +++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/moto/ctrl.js b/src/moto/ctrl.js index 9cb5a81f..2e34cce7 100644 --- a/src/moto/ctrl.js +++ b/src/moto/ctrl.js @@ -62,13 +62,26 @@ MOTO.CTRL = function (object, domElement, notify, slider) { BOTTOM: 40 }; - // Mouse buttons - this.mouseButtons = { + // default mouse buttons + this.mouseDefault = { ORBIT: THREE.MOUSE.LEFT, - ZOOM: THREE.MOUSE.MIDDLE, + // ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.RIGHT }; + // Onshape + this.mouseOnshape = { + ORBIT: THREE.MOUSE.RIGHT, + // ZOOM: THREE.MOUSE.MIDDLE, + PAN: THREE.MOUSE.MIDDLE + }; + + this.mouseButtons = this.mouseDefault; + + this.setMouse = function(bindings) { + this.mouseButtons = bindings; + }; + let scope = this, domEl = scope.domElement, EPS = 0.000001, diff --git a/src/moto/space.js b/src/moto/space.js index 628892fc..2864628f 100644 --- a/src/moto/space.js +++ b/src/moto/space.js @@ -844,6 +844,13 @@ save: function() { return viewControl.getPosition(true) }, panTo: function(x,y,z) { tweenCamPan(x,y,z) }, setZoom: function(r,v) { viewControl.setZoom(r,v) }, + setCtrl: function(name) { + if (name === 'onshape') { + viewControl.setMouse(viewControl.mouseOnshape); + } else { + viewControl.setMouse(viewControl.mouseDefault); + } + }, getFPS: function() { return fps } },