Преглед на файлове

Merge pull request #1493 from Poolminer/master

Added 'buttons[]' for the Arc and Free cameras to customize which pointer buttons rotate them
David Catuhe преди 8 години
родител
ревизия
8a1e13c577
променени са 2 файла, в които са добавени 15 реда и са изтрити 0 реда
  1. 8 0
      src/Cameras/Inputs/babylon.arcrotatecamera.input.pointers.ts
  2. 7 0
      src/Cameras/Inputs/babylon.freecamera.input.mouse.ts

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

@@ -5,6 +5,9 @@ module BABYLON {
         camera: ArcRotateCamera;
 
         @serialize()
+        public buttons = [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 (p.type !== PointerEventTypes.POINTERMOVE && this.buttons.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 buttons = [0, 1, 2];
+
+        @serialize()
         public angularSensibility = 2000.0;
 
         private _pointerInput: (p: PointerInfo, s: EventState) => void;
@@ -25,6 +28,10 @@ module BABYLON {
                         return;
                     }
 
+                    if(p.type !== PointerEventTypes.POINTERMOVE && this.buttons.indexOf(evt.button) === -1){
+                        return;
+                    }
+
                     if (p.type === PointerEventTypes.POINTERDOWN) {
                         try {
                             evt.srcElement.setPointerCapture(evt.pointerId);