1 |
- {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { Tools } from \"../../Misc/tools.js\";\nimport { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\n/**\n * DOM Overlay Feature\n *\n * @since 5.0.0\n */\nexport class WebXRDomOverlay extends WebXRAbstractFeature {\n /**\n * Creates a new instance of the dom-overlay feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(_xrSessionManager,\n /**\n * options to use when constructing this feature\n */\n options) {\n super(_xrSessionManager);\n this.options = options;\n /**\n * Type of overlay - non-null when available\n */\n this._domOverlayType = null;\n /**\n * Event Listener to supress \"beforexrselect\" events.\n */\n this._beforeXRSelectListener = null;\n /**\n * Element used for overlay\n */\n this._element = null;\n this.xrNativeFeatureName = \"dom-overlay\";\n // https://immersive-web.github.io/dom-overlays/\n Tools.Warn(\"dom-overlay is an experimental and unstable feature.\");\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n // Feature not available\n if (!this._xrSessionManager.session.domOverlayState || this._xrSessionManager.session.domOverlayState.type === null) {\n return false;\n }\n this._domOverlayType = this._xrSessionManager.session.domOverlayState.type;\n if (this._element !== null && this.options.supressXRSelectEvents === true) {\n this._beforeXRSelectListener = ev => {\n ev.preventDefault();\n };\n this._element.addEventListener(\"beforexrselect\", this._beforeXRSelectListener);\n }\n return true;\n }\n /**\n * The type of DOM overlay (null when not supported). Provided by UA and remains unchanged for duration of session.\n */\n get domOverlayType() {\n return this._domOverlayType;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n if (this._element !== null && this._beforeXRSelectListener) {\n this._element.removeEventListener(\"beforexrselect\", this._beforeXRSelectListener);\n }\n }\n _onXRFrame(_xrFrame) {\n /* empty */\n }\n /**\n * Extends the session init object if needed\n * @returns augmentation object for the xr session init object.\n */\n getXRSessionInitExtension() {\n var _this = this;\n return _asyncToGenerator(function* () {\n if (_this.options.element === undefined) {\n Tools.Warn('\"element\" option must be provided to attach xr-dom-overlay feature.');\n return {};\n } else if (typeof _this.options.element === \"string\") {\n const selectedElement = document.querySelector(_this.options.element);\n if (selectedElement === null) {\n Tools.Warn(`element not found '${_this.options.element}' (not requesting xr-dom-overlay)`);\n return {};\n }\n _this._element = selectedElement;\n } else {\n _this._element = _this.options.element;\n }\n return {\n domOverlay: {\n root: _this._element\n }\n };\n })();\n }\n}\n/**\n * The module's name\n */\nWebXRDomOverlay.Name = WebXRFeatureName.DOM_OVERLAY;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRDomOverlay.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRDomOverlay.Name, (xrSessionManager, options) => {\n return () => new WebXRDomOverlay(xrSessionManager, options);\n}, WebXRDomOverlay.Version, false);","map":{"version":3,"names":["Tools","WebXRFeatureName","WebXRFeaturesManager","WebXRAbstractFeature","WebXRDomOverlay","constructor","_xrSessionManager","options","_domOverlayType","_beforeXRSelectListener","_element","xrNativeFeatureName","Warn","attach","session","domOverlayState","type","supressXRSelectEvents","ev","preventDefault","addEventListener","domOverlayType","dispose","removeEventListener","_onXRFrame","_xrFrame","getXRSessionInitExtension","_this","_asyncToGenerator","element","undefined","selectedElement","document","querySelector","domOverlay","root","Name","DOM_OVERLAY","Version","AddWebXRFeature","xrSessionManager"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/XR/features/WebXRDOMOverlay.js"],"sourcesContent":["import { Tools } from \"../../Misc/tools.js\";\nimport { WebXRFeatureName, WebXRFeaturesManager } from \"../webXRFeaturesManager.js\";\nimport { WebXRAbstractFeature } from \"./WebXRAbstractFeature.js\";\n/**\n * DOM Overlay Feature\n *\n * @since 5.0.0\n */\nexport class WebXRDomOverlay extends WebXRAbstractFeature {\n /**\n * Creates a new instance of the dom-overlay feature\n * @param _xrSessionManager an instance of WebXRSessionManager\n * @param options options to use when constructing this feature\n */\n constructor(_xrSessionManager, \n /**\n * options to use when constructing this feature\n */\n options) {\n super(_xrSessionManager);\n this.options = options;\n /**\n * Type of overlay - non-null when available\n */\n this._domOverlayType = null;\n /**\n * Event Listener to supress \"beforexrselect\" events.\n */\n this._beforeXRSelectListener = null;\n /**\n * Element used for overlay\n */\n this._element = null;\n this.xrNativeFeatureName = \"dom-overlay\";\n // https://immersive-web.github.io/dom-overlays/\n Tools.Warn(\"dom-overlay is an experimental and unstable feature.\");\n }\n /**\n * attach this feature\n * Will usually be called by the features manager\n *\n * @returns true if successful.\n */\n attach() {\n if (!super.attach()) {\n return false;\n }\n // Feature not available\n if (!this._xrSessionManager.session.domOverlayState || this._xrSessionManager.session.domOverlayState.type === null) {\n return false;\n }\n this._domOverlayType = this._xrSessionManager.session.domOverlayState.type;\n if (this._element !== null && this.options.supressXRSelectEvents === true) {\n this._beforeXRSelectListener = (ev) => {\n ev.preventDefault();\n };\n this._element.addEventListener(\"beforexrselect\", this._beforeXRSelectListener);\n }\n return true;\n }\n /**\n * The type of DOM overlay (null when not supported). Provided by UA and remains unchanged for duration of session.\n */\n get domOverlayType() {\n return this._domOverlayType;\n }\n /**\n * Dispose this feature and all of the resources attached\n */\n dispose() {\n super.dispose();\n if (this._element !== null && this._beforeXRSelectListener) {\n this._element.removeEventListener(\"beforexrselect\", this._beforeXRSelectListener);\n }\n }\n _onXRFrame(_xrFrame) {\n /* empty */\n }\n /**\n * Extends the session init object if needed\n * @returns augmentation object for the xr session init object.\n */\n async getXRSessionInitExtension() {\n if (this.options.element === undefined) {\n Tools.Warn('\"element\" option must be provided to attach xr-dom-overlay feature.');\n return {};\n }\n else if (typeof this.options.element === \"string\") {\n const selectedElement = document.querySelector(this.options.element);\n if (selectedElement === null) {\n Tools.Warn(`element not found '${this.options.element}' (not requesting xr-dom-overlay)`);\n return {};\n }\n this._element = selectedElement;\n }\n else {\n this._element = this.options.element;\n }\n return {\n domOverlay: {\n root: this._element,\n },\n };\n }\n}\n/**\n * The module's name\n */\nWebXRDomOverlay.Name = WebXRFeatureName.DOM_OVERLAY;\n/**\n * The (Babylon) version of this module.\n * This is an integer representing the implementation version.\n * This number does not correspond to the WebXR specs version\n */\nWebXRDomOverlay.Version = 1;\n//register the plugin\nWebXRFeaturesManager.AddWebXRFeature(WebXRDomOverlay.Name, (xrSessionManager, options) => {\n return () => new WebXRDomOverlay(xrSessionManager, options);\n}, WebXRDomOverlay.Version, false);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|