Explorar o código

Added pointerButtons to the Arc and Free cameras to customize which buttons rotate them

Gijs Schenk %!s(int64=8) %!d(string=hai) anos
pai
achega
b525509120

+ 8 - 0
src/Cameras/Inputs/babylon.arcrotatecamera.input.pointers.ts

@@ -5,6 +5,9 @@ module BABYLON {
         camera: ArcRotateCamera;
 
         @serialize()
+        public pointerButtons = [0, 1, 2];
+
+        @serialize()
         public angularSensibilityX = 1000.0;
 
         @serialize()
@@ -38,6 +41,11 @@ module BABYLON {
 
             this._pointerInput = (p, s) => {
                 var evt = <PointerEvent>p.event;
+
+                if (this.pointerButtons.indexOf(evt.button) === -1) {
+                    return;
+                }
+
                 if (p.type === PointerEventTypes.POINTERDOWN) {
                     try {
                         evt.srcElement.setPointerCapture(evt.pointerId);

+ 7 - 0
src/Cameras/Inputs/babylon.freecamera.input.mouse.ts

@@ -3,6 +3,9 @@ module BABYLON {
         camera: FreeCamera;
 
         @serialize()
+        public pointerButtons = [0, 1, 2];
+
+        @serialize()
         public angularSensibility = 2000.0;
 
         private _pointerInput: (p: PointerInfo, s: EventState) => void;
@@ -25,6 +28,10 @@ module BABYLON {
                         return;
                     }
 
+                    if(this.pointerButtons.indexOf(evt.button) === -1){
+                        return;
+                    }
+
                     if (p.type === PointerEventTypes.POINTERDOWN) {
                         try {
                             evt.srcElement.setPointerCapture(evt.pointerId);