27cace7274c91f1451de81d682cc039877e66e0d8798258674e4244820c00d9a.json 26 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 { BaseCameraPointersInput } from \"../../Cameras/Inputs/BaseCameraPointersInput.js\";\n/**\n * Manage the pointers inputs to control an arc rotate camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class ArcRotateCameraPointersInput extends BaseCameraPointersInput {\n constructor() {\n super(...arguments);\n /**\n * Defines the buttons associated with the input to handle camera move.\n */\n this.buttons = [0, 1, 2];\n /**\n * Defines the pointer angular sensibility along the X axis or how fast is\n * the camera rotating.\n */\n this.angularSensibilityX = 1000.0;\n /**\n * Defines the pointer angular sensibility along the Y axis or how fast is\n * the camera rotating.\n */\n this.angularSensibilityY = 1000.0;\n /**\n * Defines the pointer pinch precision or how fast is the camera zooming.\n */\n this.pinchPrecision = 12.0;\n /**\n * pinchDeltaPercentage will be used instead of pinchPrecision if different\n * from 0.\n * It defines the percentage of current camera.radius to use as delta when\n * pinch zoom is used.\n */\n this.pinchDeltaPercentage = 0;\n /**\n * When useNaturalPinchZoom is true, multi touch zoom will zoom in such\n * that any object in the plane at the camera's target point will scale\n * perfectly with finger motion.\n * Overrides pinchDeltaPercentage and pinchPrecision.\n */\n this.useNaturalPinchZoom = false;\n /**\n * Defines whether zoom (2 fingers pinch) is enabled through multitouch\n */\n this.pinchZoom = true;\n /**\n * Defines the pointer panning sensibility or how fast is the camera moving.\n */\n this.panningSensibility = 1000.0;\n /**\n * Defines whether panning (2 fingers swipe) is enabled through multitouch.\n */\n this.multiTouchPanning = true;\n /**\n * Defines whether panning is enabled for both pan (2 fingers swipe) and\n * zoom (pinch) through multitouch.\n */\n this.multiTouchPanAndZoom = true;\n /**\n * Revers pinch action direction.\n */\n this.pinchInwards = true;\n this._isPanClick = false;\n this._twoFingerActivityCount = 0;\n this._isPinching = false;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraPointersInput\";\n }\n /**\n * Move camera from multi touch panning positions.\n * @param previousMultiTouchPanPosition\n * @param multiTouchPanPosition\n */\n _computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition) {\n if (this.panningSensibility !== 0 && previousMultiTouchPanPosition && multiTouchPanPosition) {\n const moveDeltaX = multiTouchPanPosition.x - previousMultiTouchPanPosition.x;\n const moveDeltaY = multiTouchPanPosition.y - previousMultiTouchPanPosition.y;\n this.camera.inertialPanningX += -moveDeltaX / this.panningSensibility;\n this.camera.inertialPanningY += moveDeltaY / this.panningSensibility;\n }\n }\n /**\n * Move camera from pinch zoom distances.\n * @param previousPinchSquaredDistance\n * @param pinchSquaredDistance\n */\n _computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance) {\n const radius = this.camera.radius || ArcRotateCameraPointersInput.MinimumRadiusForPinch;\n if (this.useNaturalPinchZoom) {\n this.camera.radius = radius * Math.sqrt(previousPinchSquaredDistance) / Math.sqrt(pinchSquaredDistance);\n } else if (this.pinchDeltaPercentage) {\n this.camera.inertialRadiusOffset += (pinchSquaredDistance - previousPinchSquaredDistance) * 0.001 * radius * this.pinchDeltaPercentage;\n } else {\n this.camera.inertialRadiusOffset += (pinchSquaredDistance - previousPinchSquaredDistance) / (this.pinchPrecision * (this.pinchInwards ? 1 : -1) * (this.angularSensibilityX + this.angularSensibilityY) / 2);\n }\n }\n /**\n * Called on pointer POINTERMOVE event if only a single touch is active.\n * @param point current touch point\n * @param offsetX offset on X\n * @param offsetY offset on Y\n */\n onTouch(point, offsetX, offsetY) {\n if (this.panningSensibility !== 0 && (this._ctrlKey && this.camera._useCtrlForPanning || this._isPanClick)) {\n this.camera.inertialPanningX += -offsetX / this.panningSensibility;\n this.camera.inertialPanningY += offsetY / this.panningSensibility;\n } else {\n this.camera.inertialAlphaOffset -= offsetX / this.angularSensibilityX;\n this.camera.inertialBetaOffset -= offsetY / this.angularSensibilityY;\n }\n }\n /**\n * Called on pointer POINTERDOUBLETAP event.\n */\n onDoubleTap() {\n if (this.camera.useInputToRestoreState) {\n this.camera.restoreState();\n }\n }\n /**\n * Called on pointer POINTERMOVE event if multiple touches are active.\n * @param pointA point A\n * @param pointB point B\n * @param previousPinchSquaredDistance distance between points in previous pinch\n * @param pinchSquaredDistance distance between points in current pinch\n * @param previousMultiTouchPanPosition multi-touch position in previous step\n * @param multiTouchPanPosition multi-touch position in current step\n */\n onMultiTouch(pointA, pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition) {\n if (previousPinchSquaredDistance === 0 && previousMultiTouchPanPosition === null) {\n // First time this method is called for new pinch.\n // Next time this is called there will be a\n // previousPinchSquaredDistance and pinchSquaredDistance to compare.\n return;\n }\n if (pinchSquaredDistance === 0 && multiTouchPanPosition === null) {\n // Last time this method is called at the end of a pinch.\n return;\n }\n // Zoom and panning enabled together\n if (this.multiTouchPanAndZoom) {\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\n // Zoom and panning enabled but only one at a time\n } else if (this.multiTouchPanning && this.pinchZoom) {\n this._twoFingerActivityCount++;\n if (this._isPinching || this._twoFingerActivityCount < 20 && Math.abs(Math.sqrt(pinchSquaredDistance) - Math.sqrt(previousPinchSquaredDistance)) > this.camera.pinchToPanMaxDistance) {\n // Since pinch has not been active long, assume we intend to zoom.\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\n // Since we are pinching, remain pinching on next iteration.\n this._isPinching = true;\n } else {\n // Pause between pinch starting and moving implies not a zoom event. Pan instead.\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\n }\n // Panning enabled, zoom disabled\n } else if (this.multiTouchPanning) {\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\n // Zoom enabled, panning disabled\n } else if (this.pinchZoom) {\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\n }\n }\n /**\n * Called each time a new POINTERDOWN event occurs. Ie, for each button\n * press.\n * @param evt Defines the event to track\n */\n onButtonDown(evt) {\n this._isPanClick = evt.button === this.camera._panningMouseButton;\n }\n /**\n * Called each time a new POINTERUP event occurs. Ie, for each button\n * release.\n * @param _evt Defines the event to track\n */\n onButtonUp(_evt) {\n this._twoFingerActivityCount = 0;\n this._isPinching = false;\n }\n /**\n * Called when window becomes inactive.\n */\n onLostFocus() {\n this._isPanClick = false;\n this._twoFingerActivityCount = 0;\n this._isPinching = false;\n }\n}\n/**\n * The minimum radius used for pinch, to avoid radius lock at 0\n */\nArcRotateCameraPointersInput.MinimumRadiusForPinch = 0.001;\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"buttons\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"angularSensibilityX\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"angularSensibilityY\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"pinchPrecision\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"pinchDeltaPercentage\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"useNaturalPinchZoom\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"pinchZoom\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"panningSensibility\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"multiTouchPanning\", void 0);\n__decorate([serialize()], ArcRotateCameraPointersInput.prototype, \"multiTouchPanAndZoom\", void 0);\nCameraInputTypes[\"ArcRotateCameraPointersInput\"] = ArcRotateCameraPointersInput;","map":{"version":3,"names":["__decorate","serialize","CameraInputTypes","BaseCameraPointersInput","ArcRotateCameraPointersInput","constructor","arguments","buttons","angularSensibilityX","angularSensibilityY","pinchPrecision","pinchDeltaPercentage","useNaturalPinchZoom","pinchZoom","panningSensibility","multiTouchPanning","multiTouchPanAndZoom","pinchInwards","_isPanClick","_twoFingerActivityCount","_isPinching","getClassName","_computeMultiTouchPanning","previousMultiTouchPanPosition","multiTouchPanPosition","moveDeltaX","x","moveDeltaY","y","camera","inertialPanningX","inertialPanningY","_computePinchZoom","previousPinchSquaredDistance","pinchSquaredDistance","radius","MinimumRadiusForPinch","Math","sqrt","inertialRadiusOffset","onTouch","point","offsetX","offsetY","_ctrlKey","_useCtrlForPanning","inertialAlphaOffset","inertialBetaOffset","onDoubleTap","useInputToRestoreState","restoreState","onMultiTouch","pointA","pointB","abs","pinchToPanMaxDistance","onButtonDown","evt","button","_panningMouseButton","onButtonUp","_evt","onLostFocus","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraPointersInput.js"],"sourcesContent":["import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager.js\";\nimport { BaseCameraPointersInput } from \"../../Cameras/Inputs/BaseCameraPointersInput.js\";\n/**\n * Manage the pointers inputs to control an arc rotate camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\n */\nexport class ArcRotateCameraPointersInput extends BaseCameraPointersInput {\n constructor() {\n super(...arguments);\n /**\n * Defines the buttons associated with the input to handle camera move.\n */\n this.buttons = [0, 1, 2];\n /**\n * Defines the pointer angular sensibility along the X axis or how fast is\n * the camera rotating.\n */\n this.angularSensibilityX = 1000.0;\n /**\n * Defines the pointer angular sensibility along the Y axis or how fast is\n * the camera rotating.\n */\n this.angularSensibilityY = 1000.0;\n /**\n * Defines the pointer pinch precision or how fast is the camera zooming.\n */\n this.pinchPrecision = 12.0;\n /**\n * pinchDeltaPercentage will be used instead of pinchPrecision if different\n * from 0.\n * It defines the percentage of current camera.radius to use as delta when\n * pinch zoom is used.\n */\n this.pinchDeltaPercentage = 0;\n /**\n * When useNaturalPinchZoom is true, multi touch zoom will zoom in such\n * that any object in the plane at the camera's target point will scale\n * perfectly with finger motion.\n * Overrides pinchDeltaPercentage and pinchPrecision.\n */\n this.useNaturalPinchZoom = false;\n /**\n * Defines whether zoom (2 fingers pinch) is enabled through multitouch\n */\n this.pinchZoom = true;\n /**\n * Defines the pointer panning sensibility or how fast is the camera moving.\n */\n this.panningSensibility = 1000.0;\n /**\n * Defines whether panning (2 fingers swipe) is enabled through multitouch.\n */\n this.multiTouchPanning = true;\n /**\n * Defines whether panning is enabled for both pan (2 fingers swipe) and\n * zoom (pinch) through multitouch.\n */\n this.multiTouchPanAndZoom = true;\n /**\n * Revers pinch action direction.\n */\n this.pinchInwards = true;\n this._isPanClick = false;\n this._twoFingerActivityCount = 0;\n this._isPinching = false;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"ArcRotateCameraPointersInput\";\n }\n /**\n * Move camera from multi touch panning positions.\n * @param previousMultiTouchPanPosition\n * @param multiTouchPanPosition\n */\n _computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition) {\n if (this.panningSensibility !== 0 && previousMultiTouchPanPosition && multiTouchPanPosition) {\n const moveDeltaX = multiTouchPanPosition.x - previousMultiTouchPanPosition.x;\n const moveDeltaY = multiTouchPanPosition.y - previousMultiTouchPanPosition.y;\n this.camera.inertialPanningX += -moveDeltaX / this.panningSensibility;\n this.camera.inertialPanningY += moveDeltaY / this.panningSensibility;\n }\n }\n /**\n * Move camera from pinch zoom distances.\n * @param previousPinchSquaredDistance\n * @param pinchSquaredDistance\n */\n _computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance) {\n const radius = this.camera.radius || ArcRotateCameraPointersInput.MinimumRadiusForPinch;\n if (this.useNaturalPinchZoom) {\n this.camera.radius = (radius * Math.sqrt(previousPinchSquaredDistance)) / Math.sqrt(pinchSquaredDistance);\n }\n else if (this.pinchDeltaPercentage) {\n this.camera.inertialRadiusOffset += (pinchSquaredDistance - previousPinchSquaredDistance) * 0.001 * radius * this.pinchDeltaPercentage;\n }\n else {\n this.camera.inertialRadiusOffset +=\n (pinchSquaredDistance - previousPinchSquaredDistance) /\n ((this.pinchPrecision * (this.pinchInwards ? 1 : -1) * (this.angularSensibilityX + this.angularSensibilityY)) / 2);\n }\n }\n /**\n * Called on pointer POINTERMOVE event if only a single touch is active.\n * @param point current touch point\n * @param offsetX offset on X\n * @param offsetY offset on Y\n */\n onTouch(point, offsetX, offsetY) {\n if (this.panningSensibility !== 0 && ((this._ctrlKey && this.camera._useCtrlForPanning) || this._isPanClick)) {\n this.camera.inertialPanningX += -offsetX / this.panningSensibility;\n this.camera.inertialPanningY += offsetY / this.panningSensibility;\n }\n else {\n this.camera.inertialAlphaOffset -= offsetX / this.angularSensibilityX;\n this.camera.inertialBetaOffset -= offsetY / this.angularSensibilityY;\n }\n }\n /**\n * Called on pointer POINTERDOUBLETAP event.\n */\n onDoubleTap() {\n if (this.camera.useInputToRestoreState) {\n this.camera.restoreState();\n }\n }\n /**\n * Called on pointer POINTERMOVE event if multiple touches are active.\n * @param pointA point A\n * @param pointB point B\n * @param previousPinchSquaredDistance distance between points in previous pinch\n * @param pinchSquaredDistance distance between points in current pinch\n * @param previousMultiTouchPanPosition multi-touch position in previous step\n * @param multiTouchPanPosition multi-touch position in current step\n */\n onMultiTouch(pointA, pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition) {\n if (previousPinchSquaredDistance === 0 && previousMultiTouchPanPosition === null) {\n // First time this method is called for new pinch.\n // Next time this is called there will be a\n // previousPinchSquaredDistance and pinchSquaredDistance to compare.\n return;\n }\n if (pinchSquaredDistance === 0 && multiTouchPanPosition === null) {\n // Last time this method is called at the end of a pinch.\n return;\n }\n // Zoom and panning enabled together\n if (this.multiTouchPanAndZoom) {\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\n // Zoom and panning enabled but only one at a time\n }\n else if (this.multiTouchPanning && this.pinchZoom) {\n this._twoFingerActivityCount++;\n if (this._isPinching ||\n (this._twoFingerActivityCount < 20 && Math.abs(Math.sqrt(pinchSquaredDistance) - Math.sqrt(previousPinchSquaredDistance)) > this.camera.pinchToPanMaxDistance)) {\n // Since pinch has not been active long, assume we intend to zoom.\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\n // Since we are pinching, remain pinching on next iteration.\n this._isPinching = true;\n }\n else {\n // Pause between pinch starting and moving implies not a zoom event. Pan instead.\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\n }\n // Panning enabled, zoom disabled\n }\n else if (this.multiTouchPanning) {\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\n // Zoom enabled, panning disabled\n }\n else if (this.pinchZoom) {\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\n }\n }\n /**\n * Called each time a new POINTERDOWN event occurs. Ie, for each button\n * press.\n * @param evt Defines the event to track\n */\n onButtonDown(evt) {\n this._isPanClick = evt.button === this.camera._panningMouseButton;\n }\n /**\n * Called each time a new POINTERUP event occurs. Ie, for each button\n * release.\n * @param _evt Defines the event to track\n */\n onButtonUp(_evt) {\n this._twoFingerActivityCount = 0;\n this._isPinching = false;\n }\n /**\n * Called when window becomes inactive.\n */\n onLostFocus() {\n this._isPanClick = false;\n this._twoFingerActivityCount = 0;\n this._isPinching = false;\n }\n}\n/**\n * The minimum radius used for pinch, to avoid radius lock at 0\n */\nArcRotateCameraPointersInput.MinimumRadiusForPinch = 0.001;\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"buttons\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"angularSensibilityX\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"angularSensibilityY\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"pinchPrecision\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"pinchDeltaPercentage\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"useNaturalPinchZoom\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"pinchZoom\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"panningSensibility\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"multiTouchPanning\", void 0);\n__decorate([\n serialize()\n], ArcRotateCameraPointersInput.prototype, \"multiTouchPanAndZoom\", void 0);\nCameraInputTypes[\"ArcRotateCameraPointersInput\"] = ArcRotateCameraPointersInput;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}