53f8f7b39d3a7812e0f204d6a8606897ae2a58c9ebe67023d97aca9fbc89c7b3.json 29 KB

1
  1. {"ast":null,"code":"import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { KeyboardEventTypes } from \"../../Events/keyboardEvents.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * Manage the keyboard inputs to control the movement of a free camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FreeCameraKeyboardMoveInput {\n constructor() {\n /**\n * Gets or Set the list of keyboard keys used to control the forward move of the camera.\n */\n this.keysUp = [38];\n /**\n * Gets or Set the list of keyboard keys used to control the upward move of the camera.\n */\n this.keysUpward = [33];\n /**\n * Gets or Set the list of keyboard keys used to control the backward move of the camera.\n */\n this.keysDown = [40];\n /**\n * Gets or Set the list of keyboard keys used to control the downward move of the camera.\n */\n this.keysDownward = [34];\n /**\n * Gets or Set the list of keyboard keys used to control the left strafe move of the camera.\n */\n this.keysLeft = [37];\n /**\n * Gets or Set the list of keyboard keys used to control the right strafe move of the camera.\n */\n this.keysRight = [39];\n /**\n * Defines the pointer angular sensibility along the X and Y axis or how fast is the camera rotating.\n */\n this.rotationSpeed = 0.5;\n /**\n * Gets or Set the list of keyboard keys used to control the left rotation move of the camera.\n */\n this.keysRotateLeft = [];\n /**\n * Gets or Set the list of keyboard keys used to control the right rotation move of the camera.\n */\n this.keysRotateRight = [];\n /**\n * Gets or Set the list of keyboard keys used to control the up rotation move of the camera.\n */\n this.keysRotateUp = [];\n /**\n * Gets or Set the list of keyboard keys used to control the down rotation move of the camera.\n */\n this.keysRotateDown = [];\n this._keys = new Array();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n if (this._onCanvasBlurObserver) {\n return;\n }\n this._scene = this.camera.getScene();\n this._engine = this._scene.getEngine();\n this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\n this._keys.length = 0;\n });\n this._onKeyboardObserver = this._scene.onKeyboardObservable.add(info => {\n const evt = info.event;\n if (!evt.metaKey) {\n if (info.type === KeyboardEventTypes.KEYDOWN) {\n if (this.keysUp.indexOf(evt.keyCode) !== -1 || this.keysDown.indexOf(evt.keyCode) !== -1 || this.keysLeft.indexOf(evt.keyCode) !== -1 || this.keysRight.indexOf(evt.keyCode) !== -1 || this.keysUpward.indexOf(evt.keyCode) !== -1 || this.keysDownward.indexOf(evt.keyCode) !== -1 || this.keysRotateLeft.indexOf(evt.keyCode) !== -1 || this.keysRotateRight.indexOf(evt.keyCode) !== -1 || this.keysRotateUp.indexOf(evt.keyCode) !== -1 || this.keysRotateDown.indexOf(evt.keyCode) !== -1) {\n const index = this._keys.indexOf(evt.keyCode);\n if (index === -1) {\n this._keys.push(evt.keyCode);\n }\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n } else {\n if (this.keysUp.indexOf(evt.keyCode) !== -1 || this.keysDown.indexOf(evt.keyCode) !== -1 || this.keysLeft.indexOf(evt.keyCode) !== -1 || this.keysRight.indexOf(evt.keyCode) !== -1 || this.keysUpward.indexOf(evt.keyCode) !== -1 || this.keysDownward.indexOf(evt.keyCode) !== -1 || this.keysRotateLeft.indexOf(evt.keyCode) !== -1 || this.keysRotateRight.indexOf(evt.keyCode) !== -1 || this.keysRotateUp.indexOf(evt.keyCode) !== -1 || this.keysRotateDown.indexOf(evt.keyCode) !== -1) {\n const index = this._keys.indexOf(evt.keyCode);\n if (index >= 0) {\n this._keys.splice(index, 1);\n }\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n }\n }\n });\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._scene) {\n if (this._onKeyboardObserver) {\n this._scene.onKeyboardObservable.remove(this._onKeyboardObserver);\n }\n if (this._onCanvasBlurObserver) {\n this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver);\n }\n this._onKeyboardObserver = null;\n this._onCanvasBlurObserver = null;\n }\n this._keys.length = 0;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._onKeyboardObserver) {\n const camera = this.camera;\n // Keyboard\n for (let index = 0; index < this._keys.length; index++) {\n const keyCode = this._keys[index];\n const speed = camera._computeLocalCameraSpeed();\n if (this.keysLeft.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(-speed, 0, 0);\n } else if (this.keysUp.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, speed);\n } else if (this.keysRight.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(speed, 0, 0);\n } else if (this.keysDown.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, -speed);\n } else if (this.keysUpward.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, speed, 0);\n } else if (this.keysDownward.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, -speed, 0);\n } else if (this.keysRotateLeft.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, 0);\n camera.cameraRotation.y -= this._getLocalRotation();\n } else if (this.keysRotateRight.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, 0);\n camera.cameraRotation.y += this._getLocalRotation();\n } else if (this.keysRotateUp.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, 0);\n camera.cameraRotation.x -= this._getLocalRotation();\n } else if (this.keysRotateDown.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, 0);\n camera.cameraRotation.x += this._getLocalRotation();\n }\n if (camera.getScene().useRightHandedSystem) {\n camera._localDirection.z *= -1;\n }\n camera.getViewMatrix().invertToRef(camera._cameraTransformMatrix);\n Vector3.TransformNormalToRef(camera._localDirection, camera._cameraTransformMatrix, camera._transformedDirection);\n camera.cameraDirection.addInPlace(camera._transformedDirection);\n }\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraKeyboardMoveInput\";\n }\n /** @internal */\n _onLostFocus() {\n this._keys.length = 0;\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"keyboard\";\n }\n _getLocalRotation() {\n const handednessMultiplier = this.camera._calculateHandednessMultiplier();\n const rotation = this.rotationSpeed * this._engine.getDeltaTime() / 1000 * handednessMultiplier;\n return rotation;\n }\n}\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysUp\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysUpward\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysDown\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysDownward\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysLeft\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysRight\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"rotationSpeed\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysRotateLeft\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysRotateRight\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysRotateUp\", void 0);\n__decorate([serialize()], FreeCameraKeyboardMoveInput.prototype, \"keysRotateDown\", void 0);\nCameraInputTypes[\"FreeCameraKeyboardMoveInput\"] = FreeCameraKeyboardMoveInput;","map":{"version":3,"names":["__decorate","serialize","CameraInputTypes","KeyboardEventTypes","Vector3","Tools","FreeCameraKeyboardMoveInput","constructor","keysUp","keysUpward","keysDown","keysDownward","keysLeft","keysRight","rotationSpeed","keysRotateLeft","keysRotateRight","keysRotateUp","keysRotateDown","_keys","Array","attachControl","noPreventDefault","BackCompatCameraNoPreventDefault","arguments","_onCanvasBlurObserver","_scene","camera","getScene","_engine","getEngine","onCanvasBlurObservable","add","length","_onKeyboardObserver","onKeyboardObservable","info","evt","event","metaKey","type","KEYDOWN","indexOf","keyCode","index","push","preventDefault","splice","detachControl","remove","checkInputs","speed","_computeLocalCameraSpeed","_localDirection","copyFromFloats","cameraRotation","y","_getLocalRotation","x","useRightHandedSystem","z","getViewMatrix","invertToRef","_cameraTransformMatrix","TransformNormalToRef","_transformedDirection","cameraDirection","addInPlace","getClassName","_onLostFocus","getSimpleName","handednessMultiplier","_calculateHandednessMultiplier","rotation","getDeltaTime","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraKeyboardMoveInput.js"],"sourcesContent":["import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { KeyboardEventTypes } from \"../../Events/keyboardEvents.js\";\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { Tools } from \"../../Misc/tools.js\";\n/**\n * Manage the keyboard inputs to control the movement of a free camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class FreeCameraKeyboardMoveInput {\n constructor() {\n /**\n * Gets or Set the list of keyboard keys used to control the forward move of the camera.\n */\n this.keysUp = [38];\n /**\n * Gets or Set the list of keyboard keys used to control the upward move of the camera.\n */\n this.keysUpward = [33];\n /**\n * Gets or Set the list of keyboard keys used to control the backward move of the camera.\n */\n this.keysDown = [40];\n /**\n * Gets or Set the list of keyboard keys used to control the downward move of the camera.\n */\n this.keysDownward = [34];\n /**\n * Gets or Set the list of keyboard keys used to control the left strafe move of the camera.\n */\n this.keysLeft = [37];\n /**\n * Gets or Set the list of keyboard keys used to control the right strafe move of the camera.\n */\n this.keysRight = [39];\n /**\n * Defines the pointer angular sensibility along the X and Y axis or how fast is the camera rotating.\n */\n this.rotationSpeed = 0.5;\n /**\n * Gets or Set the list of keyboard keys used to control the left rotation move of the camera.\n */\n this.keysRotateLeft = [];\n /**\n * Gets or Set the list of keyboard keys used to control the right rotation move of the camera.\n */\n this.keysRotateRight = [];\n /**\n * Gets or Set the list of keyboard keys used to control the up rotation move of the camera.\n */\n this.keysRotateUp = [];\n /**\n * Gets or Set the list of keyboard keys used to control the down rotation move of the camera.\n */\n this.keysRotateDown = [];\n this._keys = new Array();\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n if (this._onCanvasBlurObserver) {\n return;\n }\n this._scene = this.camera.getScene();\n this._engine = this._scene.getEngine();\n this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\n this._keys.length = 0;\n });\n this._onKeyboardObserver = this._scene.onKeyboardObservable.add((info) => {\n const evt = info.event;\n if (!evt.metaKey) {\n if (info.type === KeyboardEventTypes.KEYDOWN) {\n if (this.keysUp.indexOf(evt.keyCode) !== -1 ||\n this.keysDown.indexOf(evt.keyCode) !== -1 ||\n this.keysLeft.indexOf(evt.keyCode) !== -1 ||\n this.keysRight.indexOf(evt.keyCode) !== -1 ||\n this.keysUpward.indexOf(evt.keyCode) !== -1 ||\n this.keysDownward.indexOf(evt.keyCode) !== -1 ||\n this.keysRotateLeft.indexOf(evt.keyCode) !== -1 ||\n this.keysRotateRight.indexOf(evt.keyCode) !== -1 ||\n this.keysRotateUp.indexOf(evt.keyCode) !== -1 ||\n this.keysRotateDown.indexOf(evt.keyCode) !== -1) {\n const index = this._keys.indexOf(evt.keyCode);\n if (index === -1) {\n this._keys.push(evt.keyCode);\n }\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n }\n else {\n if (this.keysUp.indexOf(evt.keyCode) !== -1 ||\n this.keysDown.indexOf(evt.keyCode) !== -1 ||\n this.keysLeft.indexOf(evt.keyCode) !== -1 ||\n this.keysRight.indexOf(evt.keyCode) !== -1 ||\n this.keysUpward.indexOf(evt.keyCode) !== -1 ||\n this.keysDownward.indexOf(evt.keyCode) !== -1 ||\n this.keysRotateLeft.indexOf(evt.keyCode) !== -1 ||\n this.keysRotateRight.indexOf(evt.keyCode) !== -1 ||\n this.keysRotateUp.indexOf(evt.keyCode) !== -1 ||\n this.keysRotateDown.indexOf(evt.keyCode) !== -1) {\n const index = this._keys.indexOf(evt.keyCode);\n if (index >= 0) {\n this._keys.splice(index, 1);\n }\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n }\n }\n });\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._scene) {\n if (this._onKeyboardObserver) {\n this._scene.onKeyboardObservable.remove(this._onKeyboardObserver);\n }\n if (this._onCanvasBlurObserver) {\n this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver);\n }\n this._onKeyboardObserver = null;\n this._onCanvasBlurObserver = null;\n }\n this._keys.length = 0;\n }\n /**\n * Update the current camera state depending on the inputs that have been used this frame.\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\n */\n checkInputs() {\n if (this._onKeyboardObserver) {\n const camera = this.camera;\n // Keyboard\n for (let index = 0; index < this._keys.length; index++) {\n const keyCode = this._keys[index];\n const speed = camera._computeLocalCameraSpeed();\n if (this.keysLeft.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(-speed, 0, 0);\n }\n else if (this.keysUp.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, speed);\n }\n else if (this.keysRight.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(speed, 0, 0);\n }\n else if (this.keysDown.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, -speed);\n }\n else if (this.keysUpward.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, speed, 0);\n }\n else if (this.keysDownward.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, -speed, 0);\n }\n else if (this.keysRotateLeft.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, 0);\n camera.cameraRotation.y -= this._getLocalRotation();\n }\n else if (this.keysRotateRight.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, 0);\n camera.cameraRotation.y += this._getLocalRotation();\n }\n else if (this.keysRotateUp.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, 0);\n camera.cameraRotation.x -= this._getLocalRotation();\n }\n else if (this.keysRotateDown.indexOf(keyCode) !== -1) {\n camera._localDirection.copyFromFloats(0, 0, 0);\n camera.cameraRotation.x += this._getLocalRotation();\n }\n if (camera.getScene().useRightHandedSystem) {\n camera._localDirection.z *= -1;\n }\n camera.getViewMatrix().invertToRef(camera._cameraTransformMatrix);\n Vector3.TransformNormalToRef(camera._localDirection, camera._cameraTransformMatrix, camera._transformedDirection);\n camera.cameraDirection.addInPlace(camera._transformedDirection);\n }\n }\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"FreeCameraKeyboardMoveInput\";\n }\n /** @internal */\n _onLostFocus() {\n this._keys.length = 0;\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"keyboard\";\n }\n _getLocalRotation() {\n const handednessMultiplier = this.camera._calculateHandednessMultiplier();\n const rotation = ((this.rotationSpeed * this._engine.getDeltaTime()) / 1000) * handednessMultiplier;\n return rotation;\n }\n}\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysUp\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysUpward\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysDown\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysDownward\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysLeft\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysRight\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"rotationSpeed\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysRotateLeft\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysRotateRight\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysRotateUp\", void 0);\n__decorate([\n serialize()\n], FreeCameraKeyboardMoveInput.prototype, \"keysRotateDown\", void 0);\nCameraInputTypes[\"FreeCameraKeyboardMoveInput\"] = FreeCameraKeyboardMoveInput;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}