浏览代码

Control Sensibility

Sebastien Vandenberghe 8 年之前
父节点
当前提交
58a3c32933

文件差异内容过多而无法显示
+ 3930 - 3927
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


文件差异内容过多而无法显示
+ 38 - 38
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


文件差异内容过多而无法显示
+ 1954 - 1939
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js


文件差异内容过多而无法显示
+ 3930 - 3927
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


+ 24 - 7
src/Cameras/Inputs/babylon.arcRotateCameraKeyboardMoveInput.ts

@@ -16,12 +16,19 @@ module BABYLON {
         public keysRight = [39];
 
         @serialize()
-        public keysReset = [111];        
+        public keysReset = [220];
 
         @serialize()
-        public panningSensibility: number = 50.0;        
+        public panningSensibility: number = 300.0;
+
+        @serialize()
+        public zoomingSensibility: number = 50.0;
+
+        @serialize()
+        public useAltToZoom: boolean = true;
 
         private _ctrlPressed: boolean;
+        private _altPressed: boolean;
         private _onCanvasBlurObserver: Observer<Engine>;
         private _onKeyboardObserver: Observer<KeyboardInfo>;
         private _engine: Engine;
@@ -44,7 +51,8 @@ module BABYLON {
 
                 if (info.type === KeyboardEventTypes.KEYDOWN) {
                     this._ctrlPressed = evt.ctrlKey;
-                    
+                    this._altPressed = evt.altKey;
+
                     if (this.keysUp.indexOf(evt.keyCode) !== -1 ||
                         this.keysDown.indexOf(evt.keyCode) !== -1 ||
                         this.keysLeft.indexOf(evt.keyCode) !== -1 ||
@@ -62,7 +70,8 @@ module BABYLON {
                             }
                         }
                     }
-                } else {
+                }
+                else {
                     if (this.keysUp.indexOf(evt.keyCode) !== -1 ||
                         this.keysDown.indexOf(evt.keyCode) !== -1 ||
                         this.keysLeft.indexOf(evt.keyCode) !== -1 ||
@@ -110,19 +119,27 @@ module BABYLON {
                     } else if (this.keysUp.indexOf(keyCode) !== -1) {
                         if (this._ctrlPressed && this.camera._useCtrlForPanning) {
                             camera.inertialPanningY += 1 / this.panningSensibility;
-                        } else {
+                        }
+                        else if (this._altPressed && this.useAltToZoom) {
+                            camera.inertialRadiusOffset -= 1 / this.zoomingSensibility;
+                        }
+                        else {
                             camera.inertialBetaOffset -= 0.01;
                         }
                     } else if (this.keysRight.indexOf(keyCode) !== -1) {
                         if (this._ctrlPressed && this.camera._useCtrlForPanning) {
                             camera.inertialPanningX += 1 / this.panningSensibility;
-                        } else {                        
+                        } else {
                             camera.inertialAlphaOffset += 0.01;
                         }
                     } else if (this.keysDown.indexOf(keyCode) !== -1) {
                         if (this._ctrlPressed && this.camera._useCtrlForPanning) {
                             camera.inertialPanningY -= 1 / this.panningSensibility;
-                        } else {
+                        }
+                        else if (this._altPressed && this.useAltToZoom) {
+                            camera.inertialRadiusOffset += 1 / this.zoomingSensibility;
+                        }
+                        else {
                             camera.inertialBetaOffset += 0.01;
                         }
                     } else if (this.keysReset.indexOf(keyCode) !== -1) {

+ 2 - 2
src/Cameras/Inputs/babylon.arcRotateCameraPointersInput.ts

@@ -17,7 +17,7 @@ module BABYLON {
         public pinchPrecision = 6.0;
 
         @serialize()
-        public panningSensibility: number = 50.0;
+        public panningSensibility: number = 3000.0;
 
         @serialize()
         public multiTouchPanning: boolean = true;
@@ -61,7 +61,7 @@ module BABYLON {
                     }
 
                     // Manage panning with pan button click
-                    this._isPanClick = evt.button === this.camera._panningMouseButton && evt.pointerType !== "mouse";
+                    this._isPanClick = evt.button === this.camera._panningMouseButton;
 
                     // manage pointers
                     cacheSoloPointer = { x: evt.clientX, y: evt.clientY, pointerId: evt.pointerId, type: evt.pointerType };