a5a21802ebd308fc2d9a32cae441f33015baa2bf642e03af2713cd1ed94d46d5.json 13 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 { Gamepad } from \"../../Gamepads/gamepad.js\";\n/**\n * Manage the gamepad inputs to control an arc rotate camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class ArcRotateCameraGamepadInput {\n constructor() {\n /**\n * Defines the gamepad rotation sensibility.\n * This is the threshold from when rotation starts to be accounted for to prevent jittering.\n */\n this.gamepadRotationSensibility = 80;\n /**\n * Defines the gamepad move sensibility.\n * This is the threshold from when moving starts to be accounted for for to prevent jittering.\n */\n this.gamepadMoveSensibility = 40;\n this._yAxisScale = 1.0;\n }\n /**\n * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted\n */\n get invertYAxis() {\n return this._yAxisScale !== 1.0;\n }\n set invertYAxis(value) {\n this._yAxisScale = value ? -1.0 : 1.0;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n */\n attachControl() {\n const manager = this.camera.getScene().gamepadManager;\n this._onGamepadConnectedObserver = manager.onGamepadConnectedObservable.add(gamepad => {\n if (gamepad.type !== Gamepad.POSE_ENABLED) {\n // prioritize XBOX gamepads.\n if (!this.gamepad || gamepad.type === Gamepad.XBOX) {\n this.gamepad = gamepad;\n }\n }\n });\n this._onGamepadDisconnectedObserver = manager.onGamepadDisconnectedObservable.add(gamepad => {\n if (this.gamepad === gamepad) {\n this.gamepad = null;\n }\n });\n this.gamepad = manager.getGamepadByType(Gamepad.XBOX);\n // if no xbox controller was found, but there are gamepad controllers, take the first one\n if (!this.gamepad && manager.gamepads.length) {\n this.gamepad = manager.gamepads[0];\n }\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver);\n this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver);\n this.gamepad = null;\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.gamepad) {\n const camera = this.camera;\n const rsValues = this.gamepad.rightStick;\n if (rsValues) {\n if (rsValues.x != 0) {\n const normalizedRX = rsValues.x / this.gamepadRotationSensibility;\n if (normalizedRX != 0 && Math.abs(normalizedRX) > 0.005) {\n camera.inertialAlphaOffset += normalizedRX;\n }\n }\n if (rsValues.y != 0) {\n const normalizedRY = rsValues.y / this.gamepadRotationSensibility * this._yAxisScale;\n if (normalizedRY != 0 && Math.abs(normalizedRY) > 0.005) {\n camera.inertialBetaOffset += normalizedRY;\n }\n }\n }\n const lsValues = this.gamepad.leftStick;\n if (lsValues && lsValues.y != 0) {\n const normalizedLY = lsValues.y / this.gamepadMoveSensibility;\n if (normalizedLY != 0 && Math.abs(normalizedLY) > 0.005) {\n this.camera.inertialRadiusOffset -= normalizedLY;\n }\n }\n }\n }\n /**\n * Gets the class name of the current intput.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraGamepadInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"gamepad\";\n }\n}\n__decorate([serialize()], ArcRotateCameraGamepadInput.prototype, \"gamepadRotationSensibility\", void 0);\n__decorate([serialize()], ArcRotateCameraGamepadInput.prototype, \"gamepadMoveSensibility\", void 0);\nCameraInputTypes[\"ArcRotateCameraGamepadInput\"] = ArcRotateCameraGamepadInput;","map":{"version":3,"names":["__decorate","serialize","CameraInputTypes","Gamepad","ArcRotateCameraGamepadInput","constructor","gamepadRotationSensibility","gamepadMoveSensibility","_yAxisScale","invertYAxis","value","attachControl","manager","camera","getScene","gamepadManager","_onGamepadConnectedObserver","onGamepadConnectedObservable","add","gamepad","type","POSE_ENABLED","XBOX","_onGamepadDisconnectedObserver","onGamepadDisconnectedObservable","getGamepadByType","gamepads","length","detachControl","remove","checkInputs","rsValues","rightStick","x","normalizedRX","Math","abs","inertialAlphaOffset","y","normalizedRY","inertialBetaOffset","lsValues","leftStick","normalizedLY","inertialRadiusOffset","getClassName","getSimpleName","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraGamepadInput.js"],"sourcesContent":["import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { Gamepad } from \"../../Gamepads/gamepad.js\";\n/**\n * Manage the gamepad inputs to control an arc rotate camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class ArcRotateCameraGamepadInput {\n constructor() {\n /**\n * Defines the gamepad rotation sensibility.\n * This is the threshold from when rotation starts to be accounted for to prevent jittering.\n */\n this.gamepadRotationSensibility = 80;\n /**\n * Defines the gamepad move sensibility.\n * This is the threshold from when moving starts to be accounted for for to prevent jittering.\n */\n this.gamepadMoveSensibility = 40;\n this._yAxisScale = 1.0;\n }\n /**\n * Gets or sets a boolean indicating that Yaxis (for right stick) should be inverted\n */\n get invertYAxis() {\n return this._yAxisScale !== 1.0;\n }\n set invertYAxis(value) {\n this._yAxisScale = value ? -1.0 : 1.0;\n }\n /**\n * Attach the input controls to a specific dom element to get the input from.\n */\n attachControl() {\n const manager = this.camera.getScene().gamepadManager;\n this._onGamepadConnectedObserver = manager.onGamepadConnectedObservable.add((gamepad) => {\n if (gamepad.type !== Gamepad.POSE_ENABLED) {\n // prioritize XBOX gamepads.\n if (!this.gamepad || gamepad.type === Gamepad.XBOX) {\n this.gamepad = gamepad;\n }\n }\n });\n this._onGamepadDisconnectedObserver = manager.onGamepadDisconnectedObservable.add((gamepad) => {\n if (this.gamepad === gamepad) {\n this.gamepad = null;\n }\n });\n this.gamepad = manager.getGamepadByType(Gamepad.XBOX);\n // if no xbox controller was found, but there are gamepad controllers, take the first one\n if (!this.gamepad && manager.gamepads.length) {\n this.gamepad = manager.gamepads[0];\n }\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver);\n this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver);\n this.gamepad = null;\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.gamepad) {\n const camera = this.camera;\n const rsValues = this.gamepad.rightStick;\n if (rsValues) {\n if (rsValues.x != 0) {\n const normalizedRX = rsValues.x / this.gamepadRotationSensibility;\n if (normalizedRX != 0 && Math.abs(normalizedRX) > 0.005) {\n camera.inertialAlphaOffset += normalizedRX;\n }\n }\n if (rsValues.y != 0) {\n const normalizedRY = (rsValues.y / this.gamepadRotationSensibility) * this._yAxisScale;\n if (normalizedRY != 0 && Math.abs(normalizedRY) > 0.005) {\n camera.inertialBetaOffset += normalizedRY;\n }\n }\n }\n const lsValues = this.gamepad.leftStick;\n if (lsValues && lsValues.y != 0) {\n const normalizedLY = lsValues.y / this.gamepadMoveSensibility;\n if (normalizedLY != 0 && Math.abs(normalizedLY) > 0.005) {\n this.camera.inertialRadiusOffset -= normalizedLY;\n }\n }\n }\n }\n /**\n * Gets the class name of the current intput.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraGamepadInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"gamepad\";\n }\n}\n__decorate([\n serialize()\n], ArcRotateCameraGamepadInput.prototype, \"gamepadRotationSensibility\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraGamepadInput.prototype, \"gamepadMoveSensibility\", void 0);\nCameraInputTypes[\"ArcRotateCameraGamepadInput\"] = ArcRotateCameraGamepadInput;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}