1 |
- {"ast":null,"code":"import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { PointerEventTypes } from \"../../Events/pointerEvents.js\";\n/**\n * Base class for Camera Pointer Inputs.\n * See FollowCameraPointersInput in src/Cameras/Inputs/followCameraPointersInput.ts\n * for example usage.\n */\nexport class BaseCameraPointersInput {\n constructor() {\n this._currentActiveButton = -1;\n /**\n * Defines the buttons associated with the input to handle camera move.\n */\n this.buttons = [0, 1, 2];\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 const engine = this.camera.getEngine();\n const element = engine.getInputElement();\n let previousPinchSquaredDistance = 0;\n let previousMultiTouchPanPosition = null;\n this._pointA = null;\n this._pointB = null;\n this._altKey = false;\n this._ctrlKey = false;\n this._metaKey = false;\n this._shiftKey = false;\n this._buttonsPressed = 0;\n this._pointerInput = p => {\n var _this$_pointA, _this$_pointB;\n const evt = p.event;\n const isTouch = evt.pointerType === \"touch\";\n if (p.type !== PointerEventTypes.POINTERMOVE && this.buttons.indexOf(evt.button) === -1) {\n return;\n }\n const srcElement = evt.target;\n this._altKey = evt.altKey;\n this._ctrlKey = evt.ctrlKey;\n this._metaKey = evt.metaKey;\n this._shiftKey = evt.shiftKey;\n this._buttonsPressed = evt.buttons;\n if (engine.isPointerLock) {\n const offsetX = evt.movementX;\n const offsetY = evt.movementY;\n this.onTouch(null, offsetX, offsetY);\n this._pointA = null;\n this._pointB = null;\n } else if (p.type !== PointerEventTypes.POINTERDOWN && p.type !== PointerEventTypes.POINTERDOUBLETAP && isTouch && ((_this$_pointA = this._pointA) === null || _this$_pointA === void 0 ? void 0 : _this$_pointA.pointerId) !== evt.pointerId && ((_this$_pointB = this._pointB) === null || _this$_pointB === void 0 ? void 0 : _this$_pointB.pointerId) !== evt.pointerId) {\n return; // If we get a non-down event for a touch that we're not tracking, ignore it\n } else if (p.type === PointerEventTypes.POINTERDOWN && (this._currentActiveButton === -1 || isTouch)) {\n try {\n srcElement === null || srcElement === void 0 || srcElement.setPointerCapture(evt.pointerId);\n } catch (e) {\n //Nothing to do with the error. Execution will continue.\n }\n if (this._pointA === null) {\n this._pointA = {\n x: evt.clientX,\n y: evt.clientY,\n pointerId: evt.pointerId,\n type: evt.pointerType\n };\n } else if (this._pointB === null) {\n this._pointB = {\n x: evt.clientX,\n y: evt.clientY,\n pointerId: evt.pointerId,\n type: evt.pointerType\n };\n } else {\n return; // We are already tracking two pointers so ignore this one\n }\n if (this._currentActiveButton === -1 && !isTouch) {\n this._currentActiveButton = evt.button;\n }\n this.onButtonDown(evt);\n if (!noPreventDefault) {\n evt.preventDefault();\n element && element.focus();\n }\n } else if (p.type === PointerEventTypes.POINTERDOUBLETAP) {\n this.onDoubleTap(evt.pointerType);\n } else if (p.type === PointerEventTypes.POINTERUP && (this._currentActiveButton === evt.button || isTouch)) {\n try {\n srcElement === null || srcElement === void 0 || srcElement.releasePointerCapture(evt.pointerId);\n } catch (e) {\n //Nothing to do with the error.\n }\n if (!isTouch) {\n this._pointB = null; // Mouse and pen are mono pointer\n }\n //would be better to use pointers.remove(evt.pointerId) for multitouch gestures,\n //but emptying completely pointers collection is required to fix a bug on iPhone :\n //when changing orientation while pinching camera,\n //one pointer stay pressed forever if we don't release all pointers\n //will be ok to put back pointers.remove(evt.pointerId); when iPhone bug corrected\n if (engine._badOS) {\n this._pointA = this._pointB = null;\n } else {\n //only remove the impacted pointer in case of multitouch allowing on most\n //platforms switching from rotate to zoom and pan seamlessly.\n if (this._pointB && this._pointA && this._pointA.pointerId == evt.pointerId) {\n this._pointA = this._pointB;\n this._pointB = null;\n } else if (this._pointA && this._pointB && this._pointB.pointerId == evt.pointerId) {\n this._pointB = null;\n } else {\n this._pointA = this._pointB = null;\n }\n }\n if (previousPinchSquaredDistance !== 0 || previousMultiTouchPanPosition) {\n // Previous pinch data is populated but a button has been lifted\n // so pinch has ended.\n this.onMultiTouch(this._pointA, this._pointB, previousPinchSquaredDistance, 0,\n // pinchSquaredDistance\n previousMultiTouchPanPosition, null // multiTouchPanPosition\n );\n previousPinchSquaredDistance = 0;\n previousMultiTouchPanPosition = null;\n }\n this._currentActiveButton = -1;\n this.onButtonUp(evt);\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n } else if (p.type === PointerEventTypes.POINTERMOVE) {\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n // One button down\n if (this._pointA && this._pointB === null) {\n const offsetX = evt.clientX - this._pointA.x;\n const offsetY = evt.clientY - this._pointA.y;\n this._pointA.x = evt.clientX;\n this._pointA.y = evt.clientY;\n this.onTouch(this._pointA, offsetX, offsetY);\n }\n // Two buttons down: pinch\n else if (this._pointA && this._pointB) {\n const ed = this._pointA.pointerId === evt.pointerId ? this._pointA : this._pointB;\n ed.x = evt.clientX;\n ed.y = evt.clientY;\n const distX = this._pointA.x - this._pointB.x;\n const distY = this._pointA.y - this._pointB.y;\n const pinchSquaredDistance = distX * distX + distY * distY;\n const multiTouchPanPosition = {\n x: (this._pointA.x + this._pointB.x) / 2,\n y: (this._pointA.y + this._pointB.y) / 2,\n pointerId: evt.pointerId,\n type: p.type\n };\n this.onMultiTouch(this._pointA, this._pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition);\n previousMultiTouchPanPosition = multiTouchPanPosition;\n previousPinchSquaredDistance = pinchSquaredDistance;\n }\n }\n };\n this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE | PointerEventTypes.POINTERDOUBLETAP);\n this._onLostFocus = () => {\n this._pointA = this._pointB = null;\n previousPinchSquaredDistance = 0;\n previousMultiTouchPanPosition = null;\n this.onLostFocus();\n };\n this._contextMenuBind = evt => this.onContextMenu(evt);\n element && element.addEventListener(\"contextmenu\", this._contextMenuBind, false);\n const hostWindow = this.camera.getScene().getEngine().getHostWindow();\n if (hostWindow) {\n Tools.RegisterTopRootEvents(hostWindow, [{\n name: \"blur\",\n handler: this._onLostFocus\n }]);\n }\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._onLostFocus) {\n const hostWindow = this.camera.getScene().getEngine().getHostWindow();\n if (hostWindow) {\n Tools.UnregisterTopRootEvents(hostWindow, [{\n name: \"blur\",\n handler: this._onLostFocus\n }]);\n }\n }\n if (this._observer) {\n this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);\n this._observer = null;\n if (this._contextMenuBind) {\n const inputElement = this.camera.getScene().getEngine().getInputElement();\n inputElement && inputElement.removeEventListener(\"contextmenu\", this._contextMenuBind);\n }\n this._onLostFocus = null;\n }\n this._altKey = false;\n this._ctrlKey = false;\n this._metaKey = false;\n this._shiftKey = false;\n this._buttonsPressed = 0;\n this._currentActiveButton = -1;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"BaseCameraPointersInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"pointers\";\n }\n /**\n * Called on pointer POINTERDOUBLETAP event.\n * Override this method to provide functionality on POINTERDOUBLETAP event.\n * @param type type of event\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onDoubleTap(type) {}\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /**\n * Called on pointer POINTERMOVE event if only a single touch is active.\n * Override this method to provide functionality.\n * @param point The current position of the pointer\n * @param offsetX The offsetX of the pointer when the event occurred\n * @param offsetY The offsetY of the pointer when the event occurred\n */\n onTouch(point, offsetX, offsetY) {}\n /**\n * Called on pointer POINTERMOVE event if multiple touches are active.\n * Override this method to provide functionality.\n * @param _pointA First point in the pair\n * @param _pointB Second point in the pair\n * @param previousPinchSquaredDistance Sqr Distance between the points the last time this event was fired (by this input)\n * @param pinchSquaredDistance Sqr Distance between the points this time\n * @param previousMultiTouchPanPosition Previous center point between the points\n * @param multiTouchPanPosition Current center point between the points\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onMultiTouch(_pointA, _pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition) {}\n /**\n * Called on JS contextmenu event.\n * Override this method to provide functionality.\n * @param evt the event to be handled\n */\n onContextMenu(evt) {\n evt.preventDefault();\n }\n /**\n * Called each time a new POINTERDOWN event occurs. Ie, for each button\n * press.\n * Override this method to provide functionality.\n * @param _evt Defines the event to track\n */\n onButtonDown(_evt) {}\n /**\n * Called each time a new POINTERUP event occurs. Ie, for each button\n * release.\n * Override this method to provide functionality.\n * @param _evt Defines the event to track\n */\n onButtonUp(_evt) {}\n /**\n * Called when window becomes inactive.\n * Override this method to provide functionality.\n */\n onLostFocus() {}\n}\n__decorate([serialize()], BaseCameraPointersInput.prototype, \"buttons\", void 0);","map":{"version":3,"names":["__decorate","serialize","Tools","PointerEventTypes","BaseCameraPointersInput","constructor","_currentActiveButton","buttons","attachControl","noPreventDefault","BackCompatCameraNoPreventDefault","arguments","engine","camera","getEngine","element","getInputElement","previousPinchSquaredDistance","previousMultiTouchPanPosition","_pointA","_pointB","_altKey","_ctrlKey","_metaKey","_shiftKey","_buttonsPressed","_pointerInput","p","_this$_pointA","_this$_pointB","evt","event","isTouch","pointerType","type","POINTERMOVE","indexOf","button","srcElement","target","altKey","ctrlKey","metaKey","shiftKey","isPointerLock","offsetX","movementX","offsetY","movementY","onTouch","POINTERDOWN","POINTERDOUBLETAP","pointerId","setPointerCapture","e","x","clientX","y","clientY","onButtonDown","preventDefault","focus","onDoubleTap","POINTERUP","releasePointerCapture","_badOS","onMultiTouch","onButtonUp","ed","distX","distY","pinchSquaredDistance","multiTouchPanPosition","_observer","getScene","_inputManager","_addCameraPointerObserver","_onLostFocus","onLostFocus","_contextMenuBind","onContextMenu","addEventListener","hostWindow","getHostWindow","RegisterTopRootEvents","name","handler","detachControl","UnregisterTopRootEvents","_removeCameraPointerObserver","inputElement","removeEventListener","getClassName","getSimpleName","point","_evt","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Cameras/Inputs/BaseCameraPointersInput.js"],"sourcesContent":["import { __decorate } from \"../../tslib.es6.js\";\nimport { serialize } from \"../../Misc/decorators.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { PointerEventTypes } from \"../../Events/pointerEvents.js\";\n/**\n * Base class for Camera Pointer Inputs.\n * See FollowCameraPointersInput in src/Cameras/Inputs/followCameraPointersInput.ts\n * for example usage.\n */\nexport class BaseCameraPointersInput {\n constructor() {\n this._currentActiveButton = -1;\n /**\n * Defines the buttons associated with the input to handle camera move.\n */\n this.buttons = [0, 1, 2];\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 const engine = this.camera.getEngine();\n const element = engine.getInputElement();\n let previousPinchSquaredDistance = 0;\n let previousMultiTouchPanPosition = null;\n this._pointA = null;\n this._pointB = null;\n this._altKey = false;\n this._ctrlKey = false;\n this._metaKey = false;\n this._shiftKey = false;\n this._buttonsPressed = 0;\n this._pointerInput = (p) => {\n const evt = p.event;\n const isTouch = evt.pointerType === \"touch\";\n if (p.type !== PointerEventTypes.POINTERMOVE && this.buttons.indexOf(evt.button) === -1) {\n return;\n }\n const srcElement = evt.target;\n this._altKey = evt.altKey;\n this._ctrlKey = evt.ctrlKey;\n this._metaKey = evt.metaKey;\n this._shiftKey = evt.shiftKey;\n this._buttonsPressed = evt.buttons;\n if (engine.isPointerLock) {\n const offsetX = evt.movementX;\n const offsetY = evt.movementY;\n this.onTouch(null, offsetX, offsetY);\n this._pointA = null;\n this._pointB = null;\n }\n else if (p.type !== PointerEventTypes.POINTERDOWN &&\n p.type !== PointerEventTypes.POINTERDOUBLETAP &&\n isTouch &&\n this._pointA?.pointerId !== evt.pointerId &&\n this._pointB?.pointerId !== evt.pointerId) {\n return; // If we get a non-down event for a touch that we're not tracking, ignore it\n }\n else if (p.type === PointerEventTypes.POINTERDOWN && (this._currentActiveButton === -1 || isTouch)) {\n try {\n srcElement?.setPointerCapture(evt.pointerId);\n }\n catch (e) {\n //Nothing to do with the error. Execution will continue.\n }\n if (this._pointA === null) {\n this._pointA = {\n x: evt.clientX,\n y: evt.clientY,\n pointerId: evt.pointerId,\n type: evt.pointerType,\n };\n }\n else if (this._pointB === null) {\n this._pointB = {\n x: evt.clientX,\n y: evt.clientY,\n pointerId: evt.pointerId,\n type: evt.pointerType,\n };\n }\n else {\n return; // We are already tracking two pointers so ignore this one\n }\n if (this._currentActiveButton === -1 && !isTouch) {\n this._currentActiveButton = evt.button;\n }\n this.onButtonDown(evt);\n if (!noPreventDefault) {\n evt.preventDefault();\n element && element.focus();\n }\n }\n else if (p.type === PointerEventTypes.POINTERDOUBLETAP) {\n this.onDoubleTap(evt.pointerType);\n }\n else if (p.type === PointerEventTypes.POINTERUP && (this._currentActiveButton === evt.button || isTouch)) {\n try {\n srcElement?.releasePointerCapture(evt.pointerId);\n }\n catch (e) {\n //Nothing to do with the error.\n }\n if (!isTouch) {\n this._pointB = null; // Mouse and pen are mono pointer\n }\n //would be better to use pointers.remove(evt.pointerId) for multitouch gestures,\n //but emptying completely pointers collection is required to fix a bug on iPhone :\n //when changing orientation while pinching camera,\n //one pointer stay pressed forever if we don't release all pointers\n //will be ok to put back pointers.remove(evt.pointerId); when iPhone bug corrected\n if (engine._badOS) {\n this._pointA = this._pointB = null;\n }\n else {\n //only remove the impacted pointer in case of multitouch allowing on most\n //platforms switching from rotate to zoom and pan seamlessly.\n if (this._pointB && this._pointA && this._pointA.pointerId == evt.pointerId) {\n this._pointA = this._pointB;\n this._pointB = null;\n }\n else if (this._pointA && this._pointB && this._pointB.pointerId == evt.pointerId) {\n this._pointB = null;\n }\n else {\n this._pointA = this._pointB = null;\n }\n }\n if (previousPinchSquaredDistance !== 0 || previousMultiTouchPanPosition) {\n // Previous pinch data is populated but a button has been lifted\n // so pinch has ended.\n this.onMultiTouch(this._pointA, this._pointB, previousPinchSquaredDistance, 0, // pinchSquaredDistance\n previousMultiTouchPanPosition, null // multiTouchPanPosition\n );\n previousPinchSquaredDistance = 0;\n previousMultiTouchPanPosition = null;\n }\n this._currentActiveButton = -1;\n this.onButtonUp(evt);\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n }\n else if (p.type === PointerEventTypes.POINTERMOVE) {\n if (!noPreventDefault) {\n evt.preventDefault();\n }\n // One button down\n if (this._pointA && this._pointB === null) {\n const offsetX = evt.clientX - this._pointA.x;\n const offsetY = evt.clientY - this._pointA.y;\n this._pointA.x = evt.clientX;\n this._pointA.y = evt.clientY;\n this.onTouch(this._pointA, offsetX, offsetY);\n }\n // Two buttons down: pinch\n else if (this._pointA && this._pointB) {\n const ed = this._pointA.pointerId === evt.pointerId ? this._pointA : this._pointB;\n ed.x = evt.clientX;\n ed.y = evt.clientY;\n const distX = this._pointA.x - this._pointB.x;\n const distY = this._pointA.y - this._pointB.y;\n const pinchSquaredDistance = distX * distX + distY * distY;\n const multiTouchPanPosition = {\n x: (this._pointA.x + this._pointB.x) / 2,\n y: (this._pointA.y + this._pointB.y) / 2,\n pointerId: evt.pointerId,\n type: p.type,\n };\n this.onMultiTouch(this._pointA, this._pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition);\n previousMultiTouchPanPosition = multiTouchPanPosition;\n previousPinchSquaredDistance = pinchSquaredDistance;\n }\n }\n };\n this._observer = this.camera\n .getScene()\n ._inputManager._addCameraPointerObserver(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE | PointerEventTypes.POINTERDOUBLETAP);\n this._onLostFocus = () => {\n this._pointA = this._pointB = null;\n previousPinchSquaredDistance = 0;\n previousMultiTouchPanPosition = null;\n this.onLostFocus();\n };\n this._contextMenuBind = (evt) => this.onContextMenu(evt);\n element && element.addEventListener(\"contextmenu\", this._contextMenuBind, false);\n const hostWindow = this.camera.getScene().getEngine().getHostWindow();\n if (hostWindow) {\n Tools.RegisterTopRootEvents(hostWindow, [{ name: \"blur\", handler: this._onLostFocus }]);\n }\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n if (this._onLostFocus) {\n const hostWindow = this.camera.getScene().getEngine().getHostWindow();\n if (hostWindow) {\n Tools.UnregisterTopRootEvents(hostWindow, [{ name: \"blur\", handler: this._onLostFocus }]);\n }\n }\n if (this._observer) {\n this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);\n this._observer = null;\n if (this._contextMenuBind) {\n const inputElement = this.camera.getScene().getEngine().getInputElement();\n inputElement && inputElement.removeEventListener(\"contextmenu\", this._contextMenuBind);\n }\n this._onLostFocus = null;\n }\n this._altKey = false;\n this._ctrlKey = false;\n this._metaKey = false;\n this._shiftKey = false;\n this._buttonsPressed = 0;\n this._currentActiveButton = -1;\n }\n /**\n * Gets the class name of the current input.\n * @returns the class name\n */\n getClassName() {\n return \"BaseCameraPointersInput\";\n }\n /**\n * Get the friendly name associated with the input class.\n * @returns the input friendly name\n */\n getSimpleName() {\n return \"pointers\";\n }\n /**\n * Called on pointer POINTERDOUBLETAP event.\n * Override this method to provide functionality on POINTERDOUBLETAP event.\n * @param type type of event\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onDoubleTap(type) { }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n /**\n * Called on pointer POINTERMOVE event if only a single touch is active.\n * Override this method to provide functionality.\n * @param point The current position of the pointer\n * @param offsetX The offsetX of the pointer when the event occurred\n * @param offsetY The offsetY of the pointer when the event occurred\n */\n onTouch(point, offsetX, offsetY) { }\n /**\n * Called on pointer POINTERMOVE event if multiple touches are active.\n * Override this method to provide functionality.\n * @param _pointA First point in the pair\n * @param _pointB Second point in the pair\n * @param previousPinchSquaredDistance Sqr Distance between the points the last time this event was fired (by this input)\n * @param pinchSquaredDistance Sqr Distance between the points this time\n * @param previousMultiTouchPanPosition Previous center point between the points\n * @param multiTouchPanPosition Current center point between the points\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onMultiTouch(_pointA, _pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition) { }\n /**\n * Called on JS contextmenu event.\n * Override this method to provide functionality.\n * @param evt the event to be handled\n */\n onContextMenu(evt) {\n evt.preventDefault();\n }\n /**\n * Called each time a new POINTERDOWN event occurs. Ie, for each button\n * press.\n * Override this method to provide functionality.\n * @param _evt Defines the event to track\n */\n onButtonDown(_evt) { }\n /**\n * Called each time a new POINTERUP event occurs. Ie, for each button\n * release.\n * Override this method to provide functionality.\n * @param _evt Defines the event to track\n */\n onButtonUp(_evt) { }\n /**\n * Called when window becomes inactive.\n * Override this method to provide functionality.\n */\n onLostFocus() { }\n}\n__decorate([\n serialize()\n], BaseCameraPointersInput.prototype, \"buttons\", void 0);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|