@galacean/engine-xr-webxr 1.5.14 → 1.5.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +19 -6
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/main.js +5 -4
- package/dist/main.js.map +1 -1
- package/dist/module.js +5 -4
- package/dist/module.js.map +1 -1
- package/package.json +4 -4
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js","../src/Util.ts","../src/WebXRFrame.ts","../src/WebXRSession.ts","../src/WebXRDevice.ts","../src/feature/WebXRFeature.ts","../src/feature/WebXRTrackableFeature.ts","../src/feature/WebXRAnchorTracking.ts","../src/feature/WebXRImageTracking.ts","../src/feature/WebXRPlaneTracking.ts"],"sourcesContent":["function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n","function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","import { XRTrackedInputDevice } from \"@galacean/engine-xr\";\n\nexport function parseXRMode(mode: number): XRSessionMode | null {\n switch (mode) {\n case 1:\n return \"immersive-ar\";\n case 2:\n return \"immersive-vr\";\n default:\n return null;\n }\n}\n\nexport function getInputSource(inputSource: XRInputSource): XRTrackedInputDevice {\n let type: number;\n switch (inputSource.targetRayMode) {\n case \"gaze\":\n break;\n case \"screen\":\n return XRTrackedInputDevice.Controller;\n case \"tracked-pointer\":\n if (inputSource.hand) {\n switch (inputSource.handedness) {\n case \"left\":\n return XRTrackedInputDevice.LeftHand;\n case \"right\":\n return XRTrackedInputDevice.RightHand;\n }\n } else {\n switch (inputSource.handedness) {\n case \"left\":\n return XRTrackedInputDevice.LeftController;\n case \"right\":\n return XRTrackedInputDevice.RightController;\n }\n }\n break;\n default:\n break;\n }\n return type;\n}\n\nexport function viewToCamera(type: XREye): XRTrackedInputDevice {\n switch (type) {\n case \"left\":\n return XRTrackedInputDevice.LeftCamera;\n case \"right\":\n return XRTrackedInputDevice.RightCamera;\n default:\n return XRTrackedInputDevice.Camera;\n }\n}\n","import { IXRCamera, IXRController, IXRFrame, IXRInput } from \"@galacean/engine-design\";\nimport { Vector3 } from \"@galacean/engine-math\";\nimport { XRTrackedInputDevice, XRTrackingState } from \"@galacean/engine-xr\";\nimport { getInputSource, viewToCamera } from \"./Util\";\nimport { WebXRSession } from \"./WebXRSession\";\n\nexport class WebXRFrame implements IXRFrame {\n /** @internal */\n _platformFrame: XRFrame;\n private _session: WebXRSession;\n\n updateInputs(inputs: IXRInput[]): void {\n if (!this._platformFrame) return;\n this._updateController(inputs);\n this._updateCamera(inputs);\n }\n\n private _updateController(inputs: IXRInput[]) {\n const { _platformFrame: frame } = this;\n const { _platformSession: session, _platformReferenceSpace: referenceSpace } = this._session;\n const { inputSources } = session;\n for (let i = 0, n = inputSources.length; i < n; i++) {\n const inputSource = inputSources[i];\n const type = getInputSource(inputSource);\n const input = <IXRController>inputs[type];\n switch (inputSource.targetRayMode) {\n case \"screen\":\n case \"tracked-pointer\":\n const { gripSpace, targetRaySpace } = inputSource;\n if (gripSpace) {\n const { transform, emulatedPosition } = frame.getPose(gripSpace, referenceSpace);\n if (transform) {\n const { gripPose } = input;\n gripPose.matrix.copyFromArray(transform.matrix);\n gripPose.position.copyFrom(transform.position);\n gripPose.rotation.copyFrom(transform.orientation);\n }\n input.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n }\n if (targetRaySpace) {\n const { transform, emulatedPosition } = frame.getPose(targetRaySpace, referenceSpace);\n if (transform) {\n const { targetRayPose } = input;\n targetRayPose.matrix.copyFromArray(transform.matrix);\n targetRayPose.position.copyFrom(transform.position);\n targetRayPose.rotation.copyFrom(transform.orientation);\n input.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n }\n }\n break;\n case \"gaze\":\n break;\n default:\n break;\n }\n }\n }\n\n private _updateCamera(inputs: IXRInput[]) {\n const { _platformFrame: frame } = this;\n const {\n _platformReferenceSpace: referenceSpace,\n _platformLayer: layer,\n framebufferWidth,\n framebufferHeight\n } = this._session;\n const viewerPose = frame.getViewerPose(referenceSpace);\n if (viewerPose) {\n let hadUpdateCenterViewer = false;\n const { views, emulatedPosition } = viewerPose;\n for (let i = 0, n = views.length; i < n; i++) {\n const view = views[i];\n const type = viewToCamera(view.eye);\n const { transform } = views[i];\n if (type === XRTrackedInputDevice.Camera) {\n hadUpdateCenterViewer ||= true;\n }\n const xrCamera = <IXRCamera>inputs[type];\n const { pose } = xrCamera;\n pose.matrix.copyFromArray(transform.matrix);\n pose.position.copyFrom(transform.position);\n pose.rotation.copyFrom(transform.orientation);\n xrCamera.projectionMatrix.copyFromArray(view.projectionMatrix);\n xrCamera.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n const xrViewport = layer.getViewport(view);\n const width = xrViewport.width / framebufferWidth;\n const height = xrViewport.height / framebufferHeight;\n const x = xrViewport.x / framebufferWidth;\n const y = 1 - xrViewport.y / framebufferHeight - height;\n xrCamera.viewport.set(x, y, width, height);\n }\n\n if (!hadUpdateCenterViewer) {\n const leftCameraDevice = <IXRCamera>inputs[XRTrackedInputDevice.LeftCamera];\n const rightCameraDevice = <IXRCamera>inputs[XRTrackedInputDevice.RightCamera];\n const cameraDevice = <IXRCamera>inputs[XRTrackedInputDevice.Camera];\n const { pose: leftCameraPose } = leftCameraDevice;\n const { pose: rightCameraPose } = rightCameraDevice;\n const { pose: cameraPose } = cameraDevice;\n cameraPose.rotation.copyFrom(leftCameraPose.rotation);\n const { position, matrix } = cameraPose;\n Vector3.add(leftCameraPose.position, rightCameraPose.position, position);\n position.scale(0.5);\n matrix.copyFrom(leftCameraPose.matrix);\n const { elements } = matrix;\n elements[12] = position.x;\n elements[13] = position.y;\n elements[14] = position.z;\n cameraDevice.projectionMatrix.copyFrom(leftCameraDevice.projectionMatrix);\n cameraDevice.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n cameraDevice.viewport =\n leftCameraDevice.viewport.width && leftCameraDevice.viewport.height\n ? leftCameraDevice.viewport\n : rightCameraDevice.viewport;\n }\n }\n }\n\n constructor(session: WebXRSession) {\n this._session = session;\n }\n}\n","import { IXRInputEvent, IXRSession } from \"@galacean/engine-design\";\nimport { XRInputEventType, XRTargetRayMode, XRTrackedInputDevice } from \"@galacean/engine-xr\";\nimport { getInputSource } from \"./Util\";\nimport { WebXRFrame } from \"./WebXRFrame\";\n\nexport class WebXRSession implements IXRSession {\n requestAnimationFrame: (callback: FrameRequestCallback) => number;\n cancelAnimationFrame: (id: number) => void;\n /** @internal */\n _onSessionExitCallBack: () => void;\n\n /** @internal */\n _platformSession: XRSession;\n /** @internal */\n _platformLayer: XRWebGLLayer;\n /** @internal */\n _platformReferenceSpace: XRReferenceSpace;\n\n private _frame: WebXRFrame;\n private _events: IXRInputEvent[] = [];\n private _screenPointers: XRInputSource[] = [];\n private _inputEventTypeMap: Record<string, number> = {\n selectstart: XRInputEventType.SelectStart,\n select: XRInputEventType.Select,\n selectend: XRInputEventType.SelectEnd,\n squeezestart: XRInputEventType.SqueezeStart,\n squeeze: XRInputEventType.Squeeze,\n squeezeend: XRInputEventType.SqueezeEnd\n };\n private _targetRayModeMap: Record<string, number> = {\n gaze: XRTargetRayMode.Gaze,\n \"tracked-pointer\": XRTargetRayMode.TrackedPointer,\n screen: XRTargetRayMode.Screen\n };\n\n get frame(): WebXRFrame {\n return this._frame;\n }\n\n get framebuffer(): WebGLFramebuffer {\n return this._platformLayer.framebuffer;\n }\n\n get framebufferWidth(): number {\n return this._platformLayer.framebufferWidth;\n }\n\n get framebufferHeight(): number {\n return this._platformLayer.framebufferHeight;\n }\n\n get frameRate(): number {\n return this._platformSession.frameRate;\n }\n\n get supportedFrameRates(): Float32Array {\n return this._platformSession.supportedFrameRates;\n }\n\n get events(): IXRInputEvent[] {\n const { _events: events } = this;\n // Select event does not dispatch the move event, so we need to simulate dispatching the move here.\n const { _screenPointers: screenPointers } = this;\n for (let i = 0; i < screenPointers.length; i++) {\n const inputSource = screenPointers[i];\n if (!inputSource) continue;\n const { axes } = inputSource.gamepad;\n const event = {\n type: XRInputEventType.Select,\n targetRayMode: XRTargetRayMode.Screen,\n input: XRTrackedInputDevice.Controller,\n id: i,\n x: axes[0],\n y: axes[1]\n };\n events.push(event);\n }\n return events;\n }\n\n constructor(session: XRSession, layer: XRWebGLLayer, referenceSpace: XRReferenceSpace) {\n this._frame = new WebXRFrame(this);\n this._platformSession = session;\n this._platformLayer = layer;\n this._platformReferenceSpace = referenceSpace;\n const xrRequestAnimationFrame = session.requestAnimationFrame.bind(session);\n const onFrame = function (time: number, frame: XRFrame, callback: FrameRequestCallback) {\n this._frame._platformFrame = frame;\n callback(time);\n }.bind(this);\n this.requestAnimationFrame = (callback: FrameRequestCallback) => {\n return xrRequestAnimationFrame((time: number, frame: XRFrame) => {\n onFrame(time, frame, callback);\n });\n };\n this.cancelAnimationFrame = session.cancelAnimationFrame.bind(session);\n this._onSessionEvent = this._onSessionEvent.bind(this);\n this._onSessionExit = this._onSessionExit.bind(this);\n }\n\n getFixedFoveation(): number {\n return this._platformLayer.fixedFoveation;\n }\n\n setFixedFoveation(value: number) {\n this._platformLayer.fixedFoveation = value;\n }\n\n start(): void {}\n\n stop(): void {\n this._frame._platformFrame = null;\n }\n\n end(): Promise<void> {\n this._frame._platformFrame = null;\n return this._platformSession.end();\n }\n\n setSessionExitCallBack(onSessionExitCallBack: () => void): void {\n this._onSessionExitCallBack = onSessionExitCallBack;\n }\n\n addEventListener(): void {\n const { _onSessionEvent: onSessionEvent, _platformSession: session } = this;\n session.addEventListener(\"select\", onSessionEvent);\n session.addEventListener(\"selectstart\", onSessionEvent);\n session.addEventListener(\"selectend\", onSessionEvent);\n session.addEventListener(\"squeeze\", onSessionEvent);\n session.addEventListener(\"squeezestart\", onSessionEvent);\n session.addEventListener(\"squeezeend\", onSessionEvent);\n session.addEventListener(\"end\", this._onSessionExit);\n }\n\n removeEventListener(): void {\n const { _onSessionEvent: onSessionEvent, _platformSession: session } = this;\n session.removeEventListener(\"select\", onSessionEvent);\n session.removeEventListener(\"selectstart\", onSessionEvent);\n session.removeEventListener(\"selectend\", onSessionEvent);\n session.removeEventListener(\"squeeze\", onSessionEvent);\n session.removeEventListener(\"squeezestart\", onSessionEvent);\n session.removeEventListener(\"squeezeend\", onSessionEvent);\n session.removeEventListener(\"end\", this._onSessionExit);\n this._events.length = 0;\n }\n\n resetEvents(): void {\n this._events.length = 0;\n }\n\n private _onSessionExit(): void {\n if (this._onSessionExitCallBack) {\n this._onSessionExitCallBack();\n this._onSessionExitCallBack = null;\n }\n }\n\n private _onSessionEvent(inputSourceEvent: XRInputSourceEvent): void {\n const { inputSource } = inputSourceEvent;\n const event: IXRInputEvent = {\n type: this._inputEventTypeMap[inputSourceEvent.type],\n input: getInputSource(inputSource),\n targetRayMode: this._targetRayModeMap[inputSource.targetRayMode]\n };\n if (event.targetRayMode === XRTargetRayMode.Screen) {\n const { _screenPointers: screenPointers } = this;\n const { axes } = inputSource.gamepad;\n event.x = axes[0];\n event.y = axes[1];\n switch (event.type) {\n case XRInputEventType.SelectStart:\n let idx = -1;\n let emptyIdx = -1;\n for (let i = screenPointers.length - 1; i >= 0; i--) {\n const pointer = screenPointers[i];\n if (pointer === inputSource) {\n idx = i;\n break;\n }\n if (!pointer) {\n emptyIdx = i;\n }\n }\n if (idx === -1) {\n if (emptyIdx === -1) {\n idx = screenPointers.push(inputSource) - 1;\n } else {\n idx = emptyIdx;\n screenPointers[emptyIdx] = inputSource;\n }\n }\n event.id = idx;\n break;\n case XRInputEventType.SelectEnd:\n for (let i = screenPointers.length - 1; i >= 0; i--) {\n if (screenPointers[i] === inputSource) {\n screenPointers[i] = null;\n event.id = i;\n }\n }\n break;\n default:\n break;\n }\n }\n this._events.push(event);\n }\n}\n","import { IHardwareRenderer, IXRDevice } from \"@galacean/engine-design\";\nimport { XRFeatureType, XRSessionMode } from \"@galacean/engine-xr\";\nimport { parseXRMode } from \"./Util\";\nimport { WebXRSession } from \"./WebXRSession\";\nimport { WebXRFeature } from \"./feature/WebXRFeature\";\n\nexport class WebXRDevice implements IXRDevice {\n /** @internal */\n static _platformFeatureMap: PlatformFeatureConstructor[] = [];\n\n isSupportedSessionMode(mode: XRSessionMode): Promise<void> {\n return new Promise((resolve, reject: (reason: Error) => void) => {\n if (!window.isSecureContext) {\n reject(new Error(\"WebXR is available only in secure contexts (HTTPS).\"));\n return;\n }\n if (!navigator.xr) {\n reject(new Error(\"WebXR isn't available\"));\n return;\n }\n navigator.xr.isSessionSupported(parseXRMode(mode)).then((isSupported: boolean) => {\n isSupported ? resolve() : reject(new Error(\"The current context doesn't support WebXR.\"));\n });\n });\n }\n\n isSupportedFeature(type: XRFeatureType): boolean {\n switch (type) {\n case XRFeatureType.HitTest:\n case XRFeatureType.PlaneTracking:\n return typeof XRPlane !== \"undefined\";\n case XRFeatureType.AnchorTracking:\n return typeof XRAnchor !== \"undefined\";\n case XRFeatureType.ImageTracking:\n // @ts-ignore\n return typeof XRImageTrackingResult !== \"undefined\";\n }\n }\n\n createPlatformFeature(type: XRFeatureType, ...args: any[]): WebXRFeature {\n const platformFeatureConstructor = WebXRDevice._platformFeatureMap[type];\n return platformFeatureConstructor ? new platformFeatureConstructor(...args) : null;\n }\n\n requestSession(rhi: IHardwareRenderer, mode: XRSessionMode, platformFeatures: WebXRFeature[]): Promise<WebXRSession> {\n return new Promise((resolve, reject) => {\n const sessionMode = parseXRMode(mode);\n const options: XRSessionInit = { requiredFeatures: [\"local\"] };\n const promiseArr = [];\n for (let i = 0, n = platformFeatures.length; i < n; i++) {\n const promise = platformFeatures[i]._assembleOptions(options);\n promise && promiseArr.push(promise);\n }\n Promise.all(promiseArr).then(() => {\n navigator.xr.requestSession(sessionMode, options).then((session) => {\n const { gl } = rhi;\n const attributes = gl.getContextAttributes();\n if (!attributes) {\n reject(Error(\"GetContextAttributes Error!\"));\n }\n gl.makeXRCompatible().then(() => {\n const scaleFactor = XRWebGLLayer.getNativeFramebufferScaleFactor(session);\n let layer: XRWebGLLayer;\n if (session.renderState.layers === undefined || !!!rhi.isWebGL2) {\n const layerInit = {\n antialias: session.renderState.layers === undefined ? attributes.antialias : true,\n alpha: true,\n depth: attributes.depth,\n stencil: attributes.stencil,\n framebufferScaleFactor: scaleFactor\n };\n layer = new XRWebGLLayer(session, gl, layerInit);\n session.updateRenderState({\n baseLayer: layer\n });\n } else {\n layer = new XRWebGLLayer(session, gl);\n session.updateRenderState({\n layers: [layer]\n });\n }\n session.requestReferenceSpace(\"local\").then((referenceSpace: XRReferenceSpace) => {\n resolve(new WebXRSession(session, layer, referenceSpace));\n }, reject);\n }, reject);\n }, reject);\n }, reject);\n });\n }\n}\n\ntype PlatformFeatureConstructor = new (...args: any[]) => WebXRFeature;\nexport function registerXRPlatformFeature(type: XRFeatureType) {\n return (platformFeatureConstructor: PlatformFeatureConstructor) => {\n WebXRDevice._platformFeatureMap[type] = platformFeatureConstructor;\n };\n}\n","import { IXRPlatformFeature } from \"@galacean/engine-design\";\n\n/**\n * @internal\n */\nexport abstract class WebXRFeature implements IXRPlatformFeature {\n /** @internal */\n abstract _assembleOptions(options: XRSessionInit): Promise<void> | void;\n}\n","import { IXRRequestTracking, IXRTrackablePlatformFeature, IXRTracked } from \"@galacean/engine-design\";\nimport { XRRequestTrackingState } from \"@galacean/engine-xr\";\nimport { WebXRFrame } from \"../WebXRFrame\";\nimport { WebXRSession } from \"../WebXRSession\";\nimport { WebXRFeature } from \"./WebXRFeature\";\n\n/**\n * @internal\n */\nexport abstract class WebXRTrackableFeature<T extends IXRTracked, K extends IXRRequestTracking<T>>\n extends WebXRFeature\n implements IXRTrackablePlatformFeature<T, K>\n{\n get canModifyRequestTrackingAfterInit(): boolean {\n return false;\n }\n\n abstract getTrackedResult(\n session: WebXRSession,\n frame: WebXRFrame,\n requestTrackings: K[],\n generateTracked: () => T\n ): void;\n\n abstract checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: K[]): boolean;\n\n onAddRequestTracking(requestTracking: K): void {}\n\n onDelRequestTracking(requestTracking: K): void {\n requestTracking.state = XRRequestTrackingState.Destroyed;\n }\n}\n","import { IXRRequestAnchor, IXRTracked } from \"@galacean/engine-design\";\nimport { XRFeatureType, XRRequestTrackingState, XRTrackingState } from \"@galacean/engine-xr\";\nimport { registerXRPlatformFeature } from \"../WebXRDevice\";\nimport { WebXRFrame } from \"../WebXRFrame\";\nimport { WebXRSession } from \"../WebXRSession\";\nimport { WebXRTrackableFeature } from \"./WebXRTrackableFeature\";\n/**\n * WebXR implementation of XRPlatformAnchorTracking.\n */\n@registerXRPlatformFeature(XRFeatureType.AnchorTracking)\nexport class WebXRAnchorTracking extends WebXRTrackableFeature<IXRTracked, IWebXRRequestTrackingAnchor> {\n checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IWebXRRequestTrackingAnchor[]): boolean {\n if (!frame._platformFrame) return false;\n for (let i = 0, n = requestTrackings.length; i < n; i++) {\n const requestTracking = requestTrackings[i];\n if (requestTracking.state === XRRequestTrackingState.None) {\n this._addAnchor(session, frame, requestTracking);\n }\n }\n return true;\n }\n\n getTrackedResult(session: WebXRSession, frame: WebXRFrame, requestTrackings: IWebXRRequestTrackingAnchor[]): void {\n const { _platformReferenceSpace: platformReferenceSpace } = session;\n const { _platformFrame: platformFrame } = frame;\n const { trackedAnchors } = platformFrame;\n for (let i = 0, n = requestTrackings.length; i < n; i++) {\n const requestTracking = requestTrackings[i];\n if (requestTracking.state !== XRRequestTrackingState.Resolved) continue;\n const tracked = requestTracking.tracked[0];\n if (trackedAnchors.has(requestTracking.xrAnchor)) {\n const emulated = this._updateTrackedAnchor(platformFrame, platformReferenceSpace, requestTracking);\n if (emulated) {\n if (tracked.state === XRTrackingState.Tracking) {\n tracked.state = XRTrackingState.TrackingLost;\n }\n } else {\n tracked.state = XRTrackingState.Tracking;\n }\n } else {\n tracked.state = XRTrackingState.NotTracking;\n }\n }\n }\n\n override get canModifyRequestTrackingAfterInit(): boolean {\n return true;\n }\n\n override onDelRequestTracking(requestTracking: IWebXRRequestTrackingAnchor): void {\n switch (requestTracking.state) {\n case XRRequestTrackingState.Submitted:\n requestTracking.state = XRRequestTrackingState.WaitingDestroy;\n break;\n case XRRequestTrackingState.Resolved:\n requestTracking.xrAnchor.delete();\n requestTracking.state = XRRequestTrackingState.Destroyed;\n break;\n default:\n requestTracking.state = XRRequestTrackingState.Destroyed;\n break;\n }\n }\n\n /**\n * @internal\n */\n _assembleOptions(options: XRSessionInit): void {\n options.requiredFeatures.push(\"anchors\");\n }\n\n private _addAnchor(session: WebXRSession, frame: WebXRFrame, requestTracking: IWebXRRequestTrackingAnchor): void {\n if (!session || !frame) {\n return;\n }\n requestTracking.state = XRRequestTrackingState.Submitted;\n const { position, rotation } = requestTracking;\n const { _platformFrame: platformFrame } = frame;\n const { _platformReferenceSpace: platformReferenceSpace } = session;\n platformFrame\n .createAnchor(\n new XRRigidTransform(\n { x: position.x, y: position.y, z: position.z },\n { x: rotation.x, y: rotation.y, z: rotation.z, w: rotation.w }\n ),\n platformReferenceSpace\n )\n .then(\n (xrAnchor) => {\n if (requestTracking.state === XRRequestTrackingState.WaitingDestroy) {\n xrAnchor.delete();\n requestTracking.state = XRRequestTrackingState.Destroyed;\n } else {\n requestTracking.xrAnchor = xrAnchor;\n requestTracking.state = XRRequestTrackingState.Resolved;\n }\n },\n () => {\n if (requestTracking.state === XRRequestTrackingState.WaitingDestroy) {\n requestTracking.state = XRRequestTrackingState.Destroyed;\n } else {\n requestTracking.state = XRRequestTrackingState.Rejected;\n }\n }\n );\n }\n\n private _updateTrackedAnchor(frame: XRFrame, space: XRSpace, requestTracking: IWebXRRequestTrackingAnchor): boolean {\n const { xrAnchor } = requestTracking;\n const xrPose = frame.getPose(xrAnchor.anchorSpace, space);\n const { transform } = xrPose;\n const { pose } = requestTracking.tracked[0];\n pose.matrix.copyFromArray(transform.matrix);\n pose.rotation.copyFrom(transform.orientation);\n pose.position.copyFrom(transform.position);\n return xrPose.emulatedPosition;\n }\n}\n\ninterface IWebXRRequestTrackingAnchor extends IXRRequestAnchor {\n xrAnchor: XRAnchor;\n}\n","import { IXRReferenceImage, IXRRequestImage, IXRTrackedImage } from \"@galacean/engine-design\";\nimport { XRFeatureType, XRRequestTrackingState, XRTrackingState } from \"@galacean/engine-xr\";\nimport { registerXRPlatformFeature } from \"../WebXRDevice\";\nimport { WebXRFrame } from \"../WebXRFrame\";\nimport { WebXRSession } from \"../WebXRSession\";\nimport { WebXRTrackableFeature } from \"./WebXRTrackableFeature\";\n\n/**\n * WebXR implementation of XRPlatformImageTracking.\n * Note: each tracked image can appear at most once in the tracking results.\n * If multiple copies of the same image exist in the user’s environment,\n * the device can choose an arbitrary instance to report a pose,\n * and this choice can change for future XRFrames.\n */\n@registerXRPlatformFeature(XRFeatureType.ImageTracking)\nexport class WebXRImageTracking extends WebXRTrackableFeature<IXRTrackedImage, IXRRequestImage> {\n private _images: IXRReferenceImage[];\n private _trackingScoreStatus: ImageTrackingScoreStatus = ImageTrackingScoreStatus.NotReceived;\n private _tempIdx: number = 0;\n private _tempArr: number[] = [];\n\n constructor(images: IXRReferenceImage[]) {\n super();\n this._images = images;\n }\n\n checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IXRRequestImage[]): boolean {\n if (!frame._platformFrame) return false;\n switch (this._trackingScoreStatus) {\n case ImageTrackingScoreStatus.NotReceived:\n this._requestTrackingScore(session, requestTrackings);\n return false;\n case ImageTrackingScoreStatus.Waiting:\n return false;\n }\n return true;\n }\n\n getTrackedResult(\n session: WebXRSession,\n frame: WebXRFrame,\n requestTrackings: IXRRequestImage[],\n generateTracked: () => IXRTrackedImage\n ): void {\n const { _platformReferenceSpace: platformReferenceSpace } = session;\n const { _platformFrame: platformFrame } = frame;\n const { _tempArr: tempArr } = this;\n const idx = ++this._tempIdx;\n // @ts-ignore\n const trackingResults = platformFrame.getImageTrackingResults();\n for (let i = 0, n = trackingResults.length; i < n; i++) {\n const trackingResult = trackingResults[i];\n const { index } = trackingResult;\n const requestTrackingImage = requestTrackings[index];\n if (requestTrackingImage) {\n let tracked = requestTrackingImage.tracked[0];\n if (!tracked) {\n tracked = requestTrackingImage.tracked[0] = generateTracked();\n tracked.referenceImage = requestTrackingImage.image;\n }\n if (trackingResult.trackingState === \"tracked\") {\n this._updateTrackedImage(platformFrame, platformReferenceSpace, tracked, trackingResult);\n tracked.state = XRTrackingState.Tracking;\n } else {\n tracked.state = XRTrackingState.TrackingLost;\n }\n tempArr[index] = idx;\n } else {\n console.warn(\"Images can not find \" + index);\n }\n }\n\n for (let i = 0, n = requestTrackings.length; i < n; i++) {\n if (tempArr[i] < idx) requestTrackings[i].tracked[0].state = XRTrackingState.NotTracking;\n }\n }\n\n override onAddRequestTracking(requestTracking: IXRRequestImage): void {\n requestTracking.state = XRRequestTrackingState.Submitted;\n }\n\n /**\n * @internal\n */\n _assembleOptions(options: XRSessionInit): Promise<void> | void {\n options.requiredFeatures.push(\"image-tracking\");\n const { _images: images } = this;\n const promiseArr: Promise<ImageBitmap>[] = [];\n if (images) {\n for (let i = 0, n = images.length; i < n; i++) {\n const referenceImage = images[i];\n const { imageSource } = images[i];\n if (!imageSource) {\n return Promise.reject(new Error(\"referenceImage[\" + referenceImage.name + \"].src is null\"));\n } else {\n promiseArr.push(createImageBitmap(imageSource));\n }\n }\n return new Promise((resolve, reject) => {\n // @ts-ignore\n const trackedImages = (options.trackedImages = []);\n Promise.all(promiseArr).then((bitmaps: ImageBitmap[]) => {\n for (let i = 0, n = bitmaps.length; i < n; i++) {\n trackedImages.push({\n image: bitmaps[i],\n widthInMeters: images[i].physicalWidth\n });\n }\n resolve();\n }, reject);\n });\n } else {\n return Promise.reject(new Error(\"Images.length is 0\"));\n }\n }\n\n private _requestTrackingScore(session: WebXRSession, requestTrackings: IXRRequestImage[]): void {\n this._trackingScoreStatus = ImageTrackingScoreStatus.Waiting;\n session._platformSession\n // @ts-ignore\n .getTrackedImageScores()\n .then((trackingScores: (\"untrackable\" | \"trackable\")[]) => {\n if (trackingScores) {\n for (let i = 0, n = trackingScores.length; i < n; i++) {\n const trackingScore = trackingScores[i];\n const requestTracking = requestTrackings[i];\n if (trackingScore === \"trackable\") {\n this._trackingScoreStatus = ImageTrackingScoreStatus.Received;\n requestTracking.state = XRRequestTrackingState.Resolved;\n } else {\n requestTracking.state = XRRequestTrackingState.Rejected;\n console.warn(requestTracking.image.name, \" unTrackable\");\n }\n }\n }\n });\n }\n\n private _updateTrackedImage(frame: XRFrame, space: XRSpace, trackedImage: IXRTrackedImage, trackingResult: any) {\n const { pose } = trackedImage;\n const { transform } = frame.getPose(trackingResult.imageSpace, space);\n pose.matrix.copyFromArray(transform.matrix);\n pose.rotation.copyFrom(transform.orientation);\n pose.position.copyFrom(transform.position);\n trackedImage.measuredPhysicalWidth = trackingResult.measuredWidthInMeters;\n }\n}\n\nenum ImageTrackingScoreStatus {\n NotReceived,\n Waiting,\n Received\n}\n","import { IXRRequestPlane, IXRTrackedPlane } from \"@galacean/engine-design\";\nimport { Vector3 } from \"@galacean/engine-math\";\nimport { XRFeatureType, XRPlaneMode, XRRequestTrackingState, XRTrackingState } from \"@galacean/engine-xr\";\nimport { registerXRPlatformFeature } from \"../WebXRDevice\";\nimport { WebXRFrame } from \"../WebXRFrame\";\nimport { WebXRSession } from \"../WebXRSession\";\nimport { WebXRTrackableFeature } from \"./WebXRTrackableFeature\";\n\n/**\n * WebXR implementation of XRPlatformPlaneTracking.\n */\n@registerXRPlatformFeature(XRFeatureType.PlaneTracking)\nexport class WebXRPlaneTracking extends WebXRTrackableFeature<IWebXRTrackedPlane, IXRRequestPlane> {\n private _lastDetectedPlanes: XRPlaneSet;\n\n constructor(detectedMode: number) {\n super();\n if (detectedMode !== XRPlaneMode.EveryThing) {\n console.warn(\"WebXR only support XRPlaneMode.EveryThing\");\n }\n }\n\n checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IXRRequestPlane[]): boolean {\n return !!frame._platformFrame;\n }\n\n getTrackedResult(\n session: WebXRSession,\n frame: WebXRFrame,\n requestTrackings: IXRRequestPlane[],\n generateTracked: () => IWebXRTrackedPlane\n ): void {\n const { _platformReferenceSpace: platformReferenceSpace } = session;\n const { _platformFrame: platformFrame } = frame;\n // @ts-ignore\n const detectedPlanes: XRPlaneSet = platformFrame.detectedPlanes || platformFrame.worldInformation?.detectedPlanes;\n const tracked = <IWebXRTrackedPlane[]>requestTrackings[0].tracked;\n for (let i = 0, n = tracked.length; i < n; i++) {\n const trackedPlane = tracked[i];\n if (detectedPlanes.has(trackedPlane.xrPlane)) {\n trackedPlane.state = XRTrackingState.Tracking;\n this._updatePlane(platformFrame, platformReferenceSpace, trackedPlane);\n } else {\n trackedPlane.state = XRTrackingState.NotTracking;\n }\n }\n\n const { _lastDetectedPlanes: lastDetectedPlanes } = this;\n detectedPlanes.forEach((xrPlane) => {\n if (!lastDetectedPlanes?.has(xrPlane)) {\n const plane = generateTracked();\n plane.xrPlane = xrPlane;\n plane.lastChangedTime = -1;\n this._updatePlane(platformFrame, platformReferenceSpace, plane);\n tracked.push(plane);\n }\n });\n this._lastDetectedPlanes = detectedPlanes;\n }\n\n override onAddRequestTracking(requestTracking: IXRRequestPlane): void {\n requestTracking.state = XRRequestTrackingState.Resolved;\n }\n\n /**\n * @internal\n */\n _assembleOptions(options: XRSessionInit): void {\n options.requiredFeatures.push(\"plane-detection\");\n }\n\n private _updatePlane(frame: XRFrame, space: XRSpace, trackedPlane: IWebXRTrackedPlane): void {\n const { pose, polygon, xrPlane } = trackedPlane;\n const planePose = frame.getPose(xrPlane.planeSpace, space);\n if (!planePose) return;\n const { transform, emulatedPosition } = planePose;\n trackedPlane.state = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n trackedPlane.planeMode = xrPlane.orientation === \"horizontal\" ? XRPlaneMode.Horizontal : XRPlaneMode.Vertical;\n if (trackedPlane.lastChangedTime < xrPlane.lastChangedTime) {\n trackedPlane.lastChangedTime = xrPlane.lastChangedTime;\n trackedPlane.attributesDirty = true;\n const { polygon: oriPolygon } = xrPlane;\n for (let i = 0, n = (polygon.length = oriPolygon.length); i < n; i++) {\n (polygon[i] ||= new Vector3()).copyFrom(oriPolygon[i]);\n }\n } else {\n trackedPlane.attributesDirty = false;\n }\n pose.rotation.copyFrom(transform.orientation);\n pose.position.copyFrom(transform.position);\n pose.matrix.copyFromArray(transform.matrix);\n pose.inverseMatrix.copyFromArray(transform.inverse.matrix);\n }\n}\n\ninterface IWebXRTrackedPlane extends IXRTrackedPlane {\n xrPlane?: XRPlane;\n lastChangedTime?: number;\n}\n"],"names":["_defineProperties","_create_class","parseXRMode","mode","getInputSource","inputSource","type","targetRayMode","XRTrackedInputDevice","Controller","hand","handedness","LeftHand","RightHand","LeftController","RightController","viewToCamera","LeftCamera","RightCamera","Camera","WebXRFrame","session","_session","updateInputs","inputs","_platformFrame","_updateController","_updateCamera","frame","_platformSession","_platformReferenceSpace","referenceSpace","inputSources","i","n","length","input","gripSpace","targetRaySpace","getPose","transform","emulatedPosition","gripPose","matrix","copyFromArray","position","copyFrom","rotation","orientation","trackingState","XRTrackingState","TrackingLost","Tracking","targetRayPose","_platformLayer","layer","framebufferWidth","framebufferHeight","viewerPose","getViewerPose","hadUpdateCenterViewer","views","view","eye","xrCamera","pose","projectionMatrix","xrViewport","getViewport","width","height","x","y","viewport","set","leftCameraDevice","rightCameraDevice","cameraDevice","leftCameraPose","rightCameraPose","cameraPose","Vector3","add","scale","elements","z","WebXRSession","_events","_screenPointers","_inputEventTypeMap","selectstart","XRInputEventType","SelectStart","select","Select","selectend","SelectEnd","squeezestart","SqueezeStart","squeeze","Squeeze","squeezeend","SqueezeEnd","_targetRayModeMap","gaze","XRTargetRayMode","Gaze","TrackedPointer","screen","Screen","_frame","xrRequestAnimationFrame","requestAnimationFrame","bind","onFrame","time","callback","cancelAnimationFrame","_onSessionEvent","_onSessionExit","getFixedFoveation","fixedFoveation","setFixedFoveation","value","start","stop","end","setSessionExitCallBack","onSessionExitCallBack","_onSessionExitCallBack","addEventListener","onSessionEvent","removeEventListener","resetEvents","inputSourceEvent","event","screenPointers","axes","gamepad","idx","emptyIdx","pointer","push","id","framebuffer","frameRate","supportedFrameRates","events","WebXRDevice","isSupportedSessionMode","Promise","resolve","reject","window","isSecureContext","Error","navigator","xr","isSessionSupported","then","isSupported","isSupportedFeature","XRFeatureType","HitTest","PlaneTracking","XRPlane","AnchorTracking","XRAnchor","ImageTracking","XRImageTrackingResult","createPlatformFeature","args","platformFeatureConstructor","_platformFeatureMap","requestSession","rhi","platformFeatures","sessionMode","options","requiredFeatures","promiseArr","promise","_assembleOptions","all","gl","attributes","getContextAttributes","makeXRCompatible","scaleFactor","XRWebGLLayer","getNativeFramebufferScaleFactor","renderState","layers","undefined","isWebGL2","layerInit","antialias","alpha","depth","stencil","framebufferScaleFactor","updateRenderState","baseLayer","requestReferenceSpace","registerXRPlatformFeature","WebXRFeature","WebXRTrackableFeature","onAddRequestTracking","requestTracking","onDelRequestTracking","state","XRRequestTrackingState","Destroyed","canModifyRequestTrackingAfterInit","WebXRAnchorTracking","checkAvailable","requestTrackings","None","_addAnchor","getTrackedResult","platformReferenceSpace","platformFrame","trackedAnchors","Resolved","tracked","has","xrAnchor","emulated","_updateTrackedAnchor","NotTracking","Submitted","WaitingDestroy","delete","createAnchor","XRRigidTransform","w","Rejected","space","xrPose","anchorSpace","WebXRImageTracking","images","_trackingScoreStatus","_tempIdx","_tempArr","_images","_requestTrackingScore","generateTracked","tempArr","trackingResults","getImageTrackingResults","trackingResult","index","requestTrackingImage","referenceImage","image","_updateTrackedImage","console","warn","imageSource","name","createImageBitmap","trackedImages","bitmaps","widthInMeters","physicalWidth","getTrackedImageScores","trackingScores","trackingScore","trackedImage","imageSpace","measuredPhysicalWidth","measuredWidthInMeters","WebXRPlaneTracking","detectedMode","XRPlaneMode","EveryThing","detectedPlanes","worldInformation","trackedPlane","xrPlane","_updatePlane","lastDetectedPlanes","_lastDetectedPlanes","forEach","plane","lastChangedTime","polygon","planePose","planeSpace","planeMode","Horizontal","Vertical","attributesDirty","oriPolygon","inverseMatrix","inverse"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CO,IAA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"}
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js","../src/Util.ts","../src/WebXRFrame.ts","../src/WebXRSession.ts","../src/WebXRDevice.ts","../src/feature/WebXRFeature.ts","../src/feature/WebXRTrackableFeature.ts","../src/feature/WebXRAnchorTracking.ts","../src/feature/WebXRImageTracking.ts","../src/feature/WebXRPlaneTracking.ts"],"sourcesContent":["function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n","function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","import { XRTrackedInputDevice } from \"@galacean/engine-xr\";\n\nexport function parseXRMode(mode: number): XRSessionMode | null {\n switch (mode) {\n case 1:\n return \"immersive-ar\";\n case 2:\n return \"immersive-vr\";\n default:\n return null;\n }\n}\n\nexport function getInputSource(inputSource: XRInputSource): XRTrackedInputDevice {\n let type: number;\n switch (inputSource.targetRayMode) {\n case \"gaze\":\n break;\n case \"screen\":\n return XRTrackedInputDevice.Controller;\n case \"tracked-pointer\":\n if (inputSource.hand) {\n switch (inputSource.handedness) {\n case \"left\":\n return XRTrackedInputDevice.LeftHand;\n case \"right\":\n return XRTrackedInputDevice.RightHand;\n }\n } else {\n switch (inputSource.handedness) {\n case \"left\":\n return XRTrackedInputDevice.LeftController;\n case \"right\":\n return XRTrackedInputDevice.RightController;\n }\n }\n break;\n default:\n break;\n }\n return type;\n}\n\nexport function viewToCamera(type: XREye): XRTrackedInputDevice {\n switch (type) {\n case \"left\":\n return XRTrackedInputDevice.LeftCamera;\n case \"right\":\n return XRTrackedInputDevice.RightCamera;\n default:\n return XRTrackedInputDevice.Camera;\n }\n}\n","import { IXRCamera, IXRController, IXRFrame, IXRInput } from \"@galacean/engine-design\";\nimport { Vector3 } from \"@galacean/engine-math\";\nimport { XRTrackedInputDevice, XRTrackingState } from \"@galacean/engine-xr\";\nimport { getInputSource, viewToCamera } from \"./Util\";\nimport { WebXRSession } from \"./WebXRSession\";\n\nexport class WebXRFrame implements IXRFrame {\n /** @internal */\n _platformFrame: XRFrame;\n private _session: WebXRSession;\n\n updateInputs(inputs: IXRInput[]): void {\n if (!this._platformFrame) return;\n this._updateController(inputs);\n this._updateCamera(inputs);\n }\n\n private _updateController(inputs: IXRInput[]) {\n const { _platformFrame: frame } = this;\n const { _platformSession: session, _platformReferenceSpace: referenceSpace } = this._session;\n const { inputSources } = session;\n for (let i = 0, n = inputSources.length; i < n; i++) {\n const inputSource = inputSources[i];\n const type = getInputSource(inputSource);\n const input = <IXRController>inputs[type];\n switch (inputSource.targetRayMode) {\n case \"screen\":\n case \"tracked-pointer\":\n const { gripSpace, targetRaySpace } = inputSource;\n if (gripSpace) {\n const { transform, emulatedPosition } = frame.getPose(gripSpace, referenceSpace);\n if (transform) {\n const { gripPose } = input;\n gripPose.matrix.copyFromArray(transform.matrix);\n gripPose.position.copyFrom(transform.position);\n gripPose.rotation.copyFrom(transform.orientation);\n }\n input.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n }\n if (targetRaySpace) {\n const { transform, emulatedPosition } = frame.getPose(targetRaySpace, referenceSpace);\n if (transform) {\n const { targetRayPose } = input;\n targetRayPose.matrix.copyFromArray(transform.matrix);\n targetRayPose.position.copyFrom(transform.position);\n targetRayPose.rotation.copyFrom(transform.orientation);\n input.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n }\n }\n break;\n case \"gaze\":\n break;\n default:\n break;\n }\n }\n }\n\n private _updateCamera(inputs: IXRInput[]) {\n const { _platformFrame: frame } = this;\n const {\n _platformReferenceSpace: referenceSpace,\n _platformLayer: layer,\n framebufferWidth,\n framebufferHeight\n } = this._session;\n const viewerPose = frame.getViewerPose(referenceSpace);\n if (viewerPose) {\n let hadUpdateCenterViewer = false;\n const { views, emulatedPosition } = viewerPose;\n for (let i = 0, n = views.length; i < n; i++) {\n const view = views[i];\n const type = viewToCamera(view.eye);\n const { transform } = views[i];\n if (type === XRTrackedInputDevice.Camera) {\n hadUpdateCenterViewer ||= true;\n }\n const xrCamera = <IXRCamera>inputs[type];\n const { pose } = xrCamera;\n pose.matrix.copyFromArray(transform.matrix);\n pose.position.copyFrom(transform.position);\n pose.rotation.copyFrom(transform.orientation);\n xrCamera.projectionMatrix.copyFromArray(view.projectionMatrix);\n xrCamera.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n const xrViewport = layer.getViewport(view);\n const width = xrViewport.width / framebufferWidth;\n const height = xrViewport.height / framebufferHeight;\n const x = xrViewport.x / framebufferWidth;\n const y = 1 - xrViewport.y / framebufferHeight - height;\n xrCamera.viewport.set(x, y, width, height);\n }\n\n if (!hadUpdateCenterViewer) {\n const leftCameraDevice = <IXRCamera>inputs[XRTrackedInputDevice.LeftCamera];\n const rightCameraDevice = <IXRCamera>inputs[XRTrackedInputDevice.RightCamera];\n const cameraDevice = <IXRCamera>inputs[XRTrackedInputDevice.Camera];\n const { pose: leftCameraPose } = leftCameraDevice;\n const { pose: rightCameraPose } = rightCameraDevice;\n const { pose: cameraPose } = cameraDevice;\n cameraPose.rotation.copyFrom(leftCameraPose.rotation);\n const { position, matrix } = cameraPose;\n Vector3.add(leftCameraPose.position, rightCameraPose.position, position);\n position.scale(0.5);\n matrix.copyFrom(leftCameraPose.matrix);\n const { elements } = matrix;\n elements[12] = position.x;\n elements[13] = position.y;\n elements[14] = position.z;\n cameraDevice.projectionMatrix.copyFrom(leftCameraDevice.projectionMatrix);\n cameraDevice.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n cameraDevice.viewport =\n leftCameraDevice.viewport.width && leftCameraDevice.viewport.height\n ? leftCameraDevice.viewport\n : rightCameraDevice.viewport;\n }\n }\n }\n\n constructor(session: WebXRSession) {\n this._session = session;\n }\n}\n","import { IXRInputEvent, IXRSession } from \"@galacean/engine-design\";\nimport { XRInputEventType, XRTargetRayMode, XRTrackedInputDevice } from \"@galacean/engine-xr\";\nimport { getInputSource } from \"./Util\";\nimport { WebXRFrame } from \"./WebXRFrame\";\n\nexport class WebXRSession implements IXRSession {\n requestAnimationFrame: (callback: FrameRequestCallback) => number;\n cancelAnimationFrame: (id: number) => void;\n /** @internal */\n _onSessionExitCallBack: () => void;\n\n /** @internal */\n _platformSession: XRSession;\n /** @internal */\n _platformLayer: XRWebGLLayer;\n /** @internal */\n _platformReferenceSpace: XRReferenceSpace;\n\n private _frame: WebXRFrame;\n private _events: IXRInputEvent[] = [];\n private _screenPointers: XRInputSource[] = [];\n private _inputEventTypeMap: Record<string, number> = {\n selectstart: XRInputEventType.SelectStart,\n select: XRInputEventType.Select,\n selectend: XRInputEventType.SelectEnd,\n squeezestart: XRInputEventType.SqueezeStart,\n squeeze: XRInputEventType.Squeeze,\n squeezeend: XRInputEventType.SqueezeEnd\n };\n private _targetRayModeMap: Record<string, number> = {\n gaze: XRTargetRayMode.Gaze,\n \"tracked-pointer\": XRTargetRayMode.TrackedPointer,\n screen: XRTargetRayMode.Screen\n };\n\n get frame(): WebXRFrame {\n return this._frame;\n }\n\n get framebuffer(): WebGLFramebuffer {\n return this._platformLayer.framebuffer;\n }\n\n get framebufferWidth(): number {\n return this._platformLayer.framebufferWidth;\n }\n\n get framebufferHeight(): number {\n return this._platformLayer.framebufferHeight;\n }\n\n get frameRate(): number {\n return this._platformSession.frameRate;\n }\n\n get supportedFrameRates(): Float32Array {\n return this._platformSession.supportedFrameRates;\n }\n\n get events(): IXRInputEvent[] {\n const { _events: events } = this;\n // Select event does not dispatch the move event, so we need to simulate dispatching the move here.\n const { _screenPointers: screenPointers } = this;\n for (let i = 0; i < screenPointers.length; i++) {\n const inputSource = screenPointers[i];\n if (!inputSource) continue;\n const { axes } = inputSource.gamepad;\n const event = {\n type: XRInputEventType.Select,\n targetRayMode: XRTargetRayMode.Screen,\n input: XRTrackedInputDevice.Controller,\n id: i,\n x: axes[0],\n y: axes[1]\n };\n events.push(event);\n }\n return events;\n }\n\n constructor(session: XRSession, layer: XRWebGLLayer, referenceSpace: XRReferenceSpace) {\n this._frame = new WebXRFrame(this);\n this._platformSession = session;\n this._platformLayer = layer;\n this._platformReferenceSpace = referenceSpace;\n const xrRequestAnimationFrame = session.requestAnimationFrame.bind(session);\n const onFrame = function (time: number, frame: XRFrame, callback: FrameRequestCallback) {\n this._frame._platformFrame = frame;\n callback(time);\n }.bind(this);\n this.requestAnimationFrame = (callback: FrameRequestCallback) => {\n return xrRequestAnimationFrame((time: number, frame: XRFrame) => {\n onFrame(time, frame, callback);\n });\n };\n this.cancelAnimationFrame = session.cancelAnimationFrame.bind(session);\n this._onSessionEvent = this._onSessionEvent.bind(this);\n this._onSessionExit = this._onSessionExit.bind(this);\n }\n\n getFixedFoveation(): number {\n return this._platformLayer.fixedFoveation;\n }\n\n setFixedFoveation(value: number) {\n this._platformLayer.fixedFoveation = value;\n }\n\n start(): void {}\n\n stop(): void {\n this._frame._platformFrame = null;\n }\n\n end(): Promise<void> {\n this._frame._platformFrame = null;\n return this._platformSession.end();\n }\n\n setSessionExitCallBack(onSessionExitCallBack: () => void): void {\n this._onSessionExitCallBack = onSessionExitCallBack;\n }\n\n addEventListener(): void {\n const { _onSessionEvent: onSessionEvent, _platformSession: session } = this;\n session.addEventListener(\"select\", onSessionEvent);\n session.addEventListener(\"selectstart\", onSessionEvent);\n session.addEventListener(\"selectend\", onSessionEvent);\n session.addEventListener(\"squeeze\", onSessionEvent);\n session.addEventListener(\"squeezestart\", onSessionEvent);\n session.addEventListener(\"squeezeend\", onSessionEvent);\n session.addEventListener(\"end\", this._onSessionExit);\n }\n\n removeEventListener(): void {\n const { _onSessionEvent: onSessionEvent, _platformSession: session } = this;\n session.removeEventListener(\"select\", onSessionEvent);\n session.removeEventListener(\"selectstart\", onSessionEvent);\n session.removeEventListener(\"selectend\", onSessionEvent);\n session.removeEventListener(\"squeeze\", onSessionEvent);\n session.removeEventListener(\"squeezestart\", onSessionEvent);\n session.removeEventListener(\"squeezeend\", onSessionEvent);\n session.removeEventListener(\"end\", this._onSessionExit);\n this._events.length = 0;\n }\n\n resetEvents(): void {\n this._events.length = 0;\n }\n\n private _onSessionExit(): void {\n if (this._onSessionExitCallBack) {\n this._onSessionExitCallBack();\n this._onSessionExitCallBack = null;\n }\n }\n\n private _onSessionEvent(inputSourceEvent: XRInputSourceEvent): void {\n const { inputSource } = inputSourceEvent;\n const event: IXRInputEvent = {\n type: this._inputEventTypeMap[inputSourceEvent.type],\n input: getInputSource(inputSource),\n targetRayMode: this._targetRayModeMap[inputSource.targetRayMode]\n };\n if (event.targetRayMode === XRTargetRayMode.Screen) {\n const { _screenPointers: screenPointers } = this;\n const { axes } = inputSource.gamepad;\n event.x = axes[0];\n event.y = axes[1];\n switch (event.type) {\n case XRInputEventType.SelectStart:\n let idx = -1;\n let emptyIdx = -1;\n for (let i = screenPointers.length - 1; i >= 0; i--) {\n const pointer = screenPointers[i];\n if (pointer === inputSource) {\n idx = i;\n break;\n }\n if (!pointer) {\n emptyIdx = i;\n }\n }\n if (idx === -1) {\n if (emptyIdx === -1) {\n idx = screenPointers.push(inputSource) - 1;\n } else {\n idx = emptyIdx;\n screenPointers[emptyIdx] = inputSource;\n }\n }\n event.id = idx;\n break;\n case XRInputEventType.SelectEnd:\n for (let i = screenPointers.length - 1; i >= 0; i--) {\n if (screenPointers[i] === inputSource) {\n screenPointers[i] = null;\n event.id = i;\n }\n }\n break;\n default:\n break;\n }\n }\n this._events.push(event);\n }\n}\n","import { IHardwareRenderer, IXRDevice } from \"@galacean/engine-design\";\nimport { XRFeatureType, XRSessionMode } from \"@galacean/engine-xr\";\nimport { parseXRMode } from \"./Util\";\nimport { WebXRSession } from \"./WebXRSession\";\nimport { WebXRFeature } from \"./feature/WebXRFeature\";\n\nexport class WebXRDevice implements IXRDevice {\n /** @internal */\n static _platformFeatureMap: PlatformFeatureConstructor[] = [];\n\n isSupportedSessionMode(mode: XRSessionMode): Promise<void> {\n return new Promise((resolve, reject: (reason: Error) => void) => {\n if (!window.isSecureContext) {\n reject(new Error(\"WebXR is available only in secure contexts (HTTPS).\"));\n return;\n }\n if (!navigator.xr) {\n reject(new Error(\"WebXR isn't available\"));\n return;\n }\n navigator.xr.isSessionSupported(parseXRMode(mode)).then((isSupported: boolean) => {\n isSupported ? resolve() : reject(new Error(\"The current context doesn't support WebXR.\"));\n });\n });\n }\n\n isSupportedFeature(type: XRFeatureType): boolean {\n switch (type) {\n case XRFeatureType.HitTest:\n case XRFeatureType.PlaneTracking:\n return typeof XRPlane !== \"undefined\";\n case XRFeatureType.AnchorTracking:\n return typeof XRAnchor !== \"undefined\";\n case XRFeatureType.ImageTracking:\n // @ts-ignore\n return typeof XRImageTrackingResult !== \"undefined\";\n }\n }\n\n createPlatformFeature(type: XRFeatureType, ...args: any[]): WebXRFeature {\n const platformFeatureConstructor = WebXRDevice._platformFeatureMap[type];\n return platformFeatureConstructor ? new platformFeatureConstructor(...args) : null;\n }\n\n requestSession(rhi: IHardwareRenderer, mode: XRSessionMode, platformFeatures: WebXRFeature[]): Promise<WebXRSession> {\n return new Promise((resolve, reject) => {\n const sessionMode = parseXRMode(mode);\n const options: XRSessionInit = { requiredFeatures: [\"local\"], optionalFeatures: [] };\n const promiseArr = [];\n for (let i = 0, n = platformFeatures.length; i < n; i++) {\n const promise = platformFeatures[i]._assembleOptions(options);\n promise && promiseArr.push(promise);\n }\n Promise.all(promiseArr).then(() => {\n navigator.xr.requestSession(sessionMode, options).then((session) => {\n const { gl } = rhi;\n const attributes = gl.getContextAttributes();\n if (!attributes) {\n reject(Error(\"GetContextAttributes Error!\"));\n }\n gl.makeXRCompatible().then(() => {\n const scaleFactor = XRWebGLLayer.getNativeFramebufferScaleFactor(session);\n let layer: XRWebGLLayer;\n if (session.renderState.layers === undefined || !!!rhi.isWebGL2) {\n const layerInit = {\n antialias: session.renderState.layers === undefined ? attributes.antialias : true,\n alpha: true,\n depth: attributes.depth,\n stencil: attributes.stencil,\n framebufferScaleFactor: scaleFactor\n };\n layer = new XRWebGLLayer(session, gl, layerInit);\n session.updateRenderState({\n baseLayer: layer\n });\n } else {\n layer = new XRWebGLLayer(session, gl);\n session.updateRenderState({\n layers: [layer]\n });\n }\n session.requestReferenceSpace(\"local\").then((referenceSpace: XRReferenceSpace) => {\n resolve(new WebXRSession(session, layer, referenceSpace));\n }, reject);\n }, reject);\n }, reject);\n }, reject);\n });\n }\n}\n\ntype PlatformFeatureConstructor = new (...args: any[]) => WebXRFeature;\nexport function registerXRPlatformFeature(type: XRFeatureType) {\n return (platformFeatureConstructor: PlatformFeatureConstructor) => {\n WebXRDevice._platformFeatureMap[type] = platformFeatureConstructor;\n };\n}\n","import { IXRPlatformFeature } from \"@galacean/engine-design\";\n\n/**\n * @internal\n */\nexport abstract class WebXRFeature implements IXRPlatformFeature {\n /** @internal */\n abstract _assembleOptions(options: XRSessionInit): Promise<void> | void;\n}\n","import { IXRRequestTracking, IXRTrackablePlatformFeature, IXRTracked } from \"@galacean/engine-design\";\nimport { XRRequestTrackingState } from \"@galacean/engine-xr\";\nimport { WebXRFrame } from \"../WebXRFrame\";\nimport { WebXRSession } from \"../WebXRSession\";\nimport { WebXRFeature } from \"./WebXRFeature\";\n\n/**\n * @internal\n */\nexport abstract class WebXRTrackableFeature<T extends IXRTracked, K extends IXRRequestTracking<T>>\n extends WebXRFeature\n implements IXRTrackablePlatformFeature<T, K>\n{\n get canModifyRequestTrackingAfterInit(): boolean {\n return false;\n }\n\n abstract getTrackedResult(\n session: WebXRSession,\n frame: WebXRFrame,\n requestTrackings: K[],\n generateTracked: () => T\n ): void;\n\n abstract checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: K[]): boolean;\n\n onAddRequestTracking(requestTracking: K): void {}\n\n onDelRequestTracking(requestTracking: K): void {\n requestTracking.state = XRRequestTrackingState.Destroyed;\n }\n}\n","import { IXRRequestAnchor, IXRTracked } from \"@galacean/engine-design\";\nimport { XRFeatureType, XRRequestTrackingState, XRTrackingState } from \"@galacean/engine-xr\";\nimport { registerXRPlatformFeature } from \"../WebXRDevice\";\nimport { WebXRFrame } from \"../WebXRFrame\";\nimport { WebXRSession } from \"../WebXRSession\";\nimport { WebXRTrackableFeature } from \"./WebXRTrackableFeature\";\n/**\n * WebXR implementation of XRPlatformAnchorTracking.\n */\n@registerXRPlatformFeature(XRFeatureType.AnchorTracking)\nexport class WebXRAnchorTracking extends WebXRTrackableFeature<IXRTracked, IWebXRRequestTrackingAnchor> {\n checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IWebXRRequestTrackingAnchor[]): boolean {\n if (!frame._platformFrame) return false;\n for (let i = 0, n = requestTrackings.length; i < n; i++) {\n const requestTracking = requestTrackings[i];\n if (requestTracking.state === XRRequestTrackingState.None) {\n this._addAnchor(session, frame, requestTracking);\n }\n }\n return true;\n }\n\n getTrackedResult(session: WebXRSession, frame: WebXRFrame, requestTrackings: IWebXRRequestTrackingAnchor[]): void {\n const { _platformReferenceSpace: platformReferenceSpace } = session;\n const { _platformFrame: platformFrame } = frame;\n const { trackedAnchors } = platformFrame;\n for (let i = 0, n = requestTrackings.length; i < n; i++) {\n const requestTracking = requestTrackings[i];\n if (requestTracking.state !== XRRequestTrackingState.Resolved) continue;\n const tracked = requestTracking.tracked[0];\n if (trackedAnchors.has(requestTracking.xrAnchor)) {\n const emulated = this._updateTrackedAnchor(platformFrame, platformReferenceSpace, requestTracking);\n if (emulated) {\n if (tracked.state === XRTrackingState.Tracking) {\n tracked.state = XRTrackingState.TrackingLost;\n }\n } else {\n tracked.state = XRTrackingState.Tracking;\n }\n } else {\n tracked.state = XRTrackingState.NotTracking;\n }\n }\n }\n\n override get canModifyRequestTrackingAfterInit(): boolean {\n return true;\n }\n\n override onDelRequestTracking(requestTracking: IWebXRRequestTrackingAnchor): void {\n switch (requestTracking.state) {\n case XRRequestTrackingState.Submitted:\n requestTracking.state = XRRequestTrackingState.WaitingDestroy;\n break;\n case XRRequestTrackingState.Resolved:\n requestTracking.xrAnchor.delete();\n requestTracking.state = XRRequestTrackingState.Destroyed;\n break;\n default:\n requestTracking.state = XRRequestTrackingState.Destroyed;\n break;\n }\n }\n\n /**\n * @internal\n */\n _assembleOptions(options: XRSessionInit): void {\n options.optionalFeatures.push(\"anchors\");\n }\n\n private _addAnchor(session: WebXRSession, frame: WebXRFrame, requestTracking: IWebXRRequestTrackingAnchor): void {\n if (!session || !frame) {\n return;\n }\n requestTracking.state = XRRequestTrackingState.Submitted;\n const { position, rotation } = requestTracking;\n const { _platformFrame: platformFrame } = frame;\n const { _platformReferenceSpace: platformReferenceSpace } = session;\n platformFrame\n .createAnchor(\n new XRRigidTransform(\n { x: position.x, y: position.y, z: position.z },\n { x: rotation.x, y: rotation.y, z: rotation.z, w: rotation.w }\n ),\n platformReferenceSpace\n )\n .then(\n (xrAnchor) => {\n if (requestTracking.state === XRRequestTrackingState.WaitingDestroy) {\n xrAnchor.delete();\n requestTracking.state = XRRequestTrackingState.Destroyed;\n } else {\n requestTracking.xrAnchor = xrAnchor;\n requestTracking.state = XRRequestTrackingState.Resolved;\n }\n },\n () => {\n if (requestTracking.state === XRRequestTrackingState.WaitingDestroy) {\n requestTracking.state = XRRequestTrackingState.Destroyed;\n } else {\n requestTracking.state = XRRequestTrackingState.Rejected;\n }\n }\n );\n }\n\n private _updateTrackedAnchor(frame: XRFrame, space: XRSpace, requestTracking: IWebXRRequestTrackingAnchor): boolean {\n const { xrAnchor } = requestTracking;\n const xrPose = frame.getPose(xrAnchor.anchorSpace, space);\n const { transform } = xrPose;\n const { pose } = requestTracking.tracked[0];\n pose.matrix.copyFromArray(transform.matrix);\n pose.rotation.copyFrom(transform.orientation);\n pose.position.copyFrom(transform.position);\n return xrPose.emulatedPosition;\n }\n}\n\ninterface IWebXRRequestTrackingAnchor extends IXRRequestAnchor {\n xrAnchor: XRAnchor;\n}\n","import { IXRReferenceImage, IXRRequestImage, IXRTrackedImage } from \"@galacean/engine-design\";\nimport { XRFeatureType, XRRequestTrackingState, XRTrackingState } from \"@galacean/engine-xr\";\nimport { registerXRPlatformFeature } from \"../WebXRDevice\";\nimport { WebXRFrame } from \"../WebXRFrame\";\nimport { WebXRSession } from \"../WebXRSession\";\nimport { WebXRTrackableFeature } from \"./WebXRTrackableFeature\";\n\n/**\n * WebXR implementation of XRPlatformImageTracking.\n * Note: each tracked image can appear at most once in the tracking results.\n * If multiple copies of the same image exist in the user’s environment,\n * the device can choose an arbitrary instance to report a pose,\n * and this choice can change for future XRFrames.\n */\n@registerXRPlatformFeature(XRFeatureType.ImageTracking)\nexport class WebXRImageTracking extends WebXRTrackableFeature<IXRTrackedImage, IXRRequestImage> {\n private _images: IXRReferenceImage[];\n private _trackingScoreStatus: ImageTrackingScoreStatus = ImageTrackingScoreStatus.NotReceived;\n private _tempIdx: number = 0;\n private _tempArr: number[] = [];\n\n constructor(images: IXRReferenceImage[]) {\n super();\n this._images = images;\n }\n\n checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IXRRequestImage[]): boolean {\n if (!frame._platformFrame) return false;\n switch (this._trackingScoreStatus) {\n case ImageTrackingScoreStatus.NotReceived:\n this._requestTrackingScore(session, requestTrackings);\n return false;\n case ImageTrackingScoreStatus.Waiting:\n return false;\n }\n return true;\n }\n\n getTrackedResult(\n session: WebXRSession,\n frame: WebXRFrame,\n requestTrackings: IXRRequestImage[],\n generateTracked: () => IXRTrackedImage\n ): void {\n const { _platformReferenceSpace: platformReferenceSpace } = session;\n const { _platformFrame: platformFrame } = frame;\n const { _tempArr: tempArr } = this;\n const idx = ++this._tempIdx;\n // @ts-ignore\n const trackingResults = platformFrame.getImageTrackingResults();\n for (let i = 0, n = trackingResults.length; i < n; i++) {\n const trackingResult = trackingResults[i];\n const { index } = trackingResult;\n const requestTrackingImage = requestTrackings[index];\n if (requestTrackingImage) {\n let tracked = requestTrackingImage.tracked[0];\n if (!tracked) {\n tracked = requestTrackingImage.tracked[0] = generateTracked();\n tracked.referenceImage = requestTrackingImage.image;\n }\n if (trackingResult.trackingState === \"tracked\") {\n this._updateTrackedImage(platformFrame, platformReferenceSpace, tracked, trackingResult);\n tracked.state = XRTrackingState.Tracking;\n } else {\n tracked.state = XRTrackingState.TrackingLost;\n }\n tempArr[index] = idx;\n } else {\n console.warn(\"Images can not find \" + index);\n }\n }\n\n for (let i = 0, n = requestTrackings.length; i < n; i++) {\n if (tempArr[i] < idx) requestTrackings[i].tracked[0].state = XRTrackingState.NotTracking;\n }\n }\n\n override onAddRequestTracking(requestTracking: IXRRequestImage): void {\n requestTracking.state = XRRequestTrackingState.Submitted;\n }\n\n /**\n * @internal\n */\n _assembleOptions(options: XRSessionInit): Promise<void> | void {\n options.optionalFeatures.push(\"image-tracking\");\n const { _images: images } = this;\n const promiseArr: Promise<ImageBitmap>[] = [];\n if (images) {\n for (let i = 0, n = images.length; i < n; i++) {\n const referenceImage = images[i];\n const { imageSource } = images[i];\n if (!imageSource) {\n return Promise.reject(new Error(\"referenceImage[\" + referenceImage.name + \"].src is null\"));\n } else {\n promiseArr.push(createImageBitmap(imageSource));\n }\n }\n return new Promise((resolve, reject) => {\n // @ts-ignore\n const trackedImages = (options.trackedImages = []);\n Promise.all(promiseArr).then((bitmaps: ImageBitmap[]) => {\n for (let i = 0, n = bitmaps.length; i < n; i++) {\n trackedImages.push({\n image: bitmaps[i],\n widthInMeters: images[i].physicalWidth\n });\n }\n resolve();\n }, reject);\n });\n } else {\n return Promise.reject(new Error(\"Images.length is 0\"));\n }\n }\n\n private _requestTrackingScore(session: WebXRSession, requestTrackings: IXRRequestImage[]): void {\n this._trackingScoreStatus = ImageTrackingScoreStatus.Waiting;\n session._platformSession\n // @ts-ignore\n .getTrackedImageScores()\n .then((trackingScores: (\"untrackable\" | \"trackable\")[]) => {\n if (trackingScores) {\n for (let i = 0, n = trackingScores.length; i < n; i++) {\n const trackingScore = trackingScores[i];\n const requestTracking = requestTrackings[i];\n if (trackingScore === \"trackable\") {\n this._trackingScoreStatus = ImageTrackingScoreStatus.Received;\n requestTracking.state = XRRequestTrackingState.Resolved;\n } else {\n requestTracking.state = XRRequestTrackingState.Rejected;\n console.warn(requestTracking.image.name, \" unTrackable\");\n }\n }\n }\n });\n }\n\n private _updateTrackedImage(frame: XRFrame, space: XRSpace, trackedImage: IXRTrackedImage, trackingResult: any) {\n const { pose } = trackedImage;\n const { transform } = frame.getPose(trackingResult.imageSpace, space);\n pose.matrix.copyFromArray(transform.matrix);\n pose.rotation.copyFrom(transform.orientation);\n pose.position.copyFrom(transform.position);\n trackedImage.measuredPhysicalWidth = trackingResult.measuredWidthInMeters;\n }\n}\n\nenum ImageTrackingScoreStatus {\n NotReceived,\n Waiting,\n Received\n}\n","import { IXRRequestPlane, IXRTrackedPlane } from \"@galacean/engine-design\";\nimport { Vector3 } from \"@galacean/engine-math\";\nimport { XRFeatureType, XRPlaneMode, XRRequestTrackingState, XRTrackingState } from \"@galacean/engine-xr\";\nimport { registerXRPlatformFeature } from \"../WebXRDevice\";\nimport { WebXRFrame } from \"../WebXRFrame\";\nimport { WebXRSession } from \"../WebXRSession\";\nimport { WebXRTrackableFeature } from \"./WebXRTrackableFeature\";\n\n/**\n * WebXR implementation of XRPlatformPlaneTracking.\n */\n@registerXRPlatformFeature(XRFeatureType.PlaneTracking)\nexport class WebXRPlaneTracking extends WebXRTrackableFeature<IWebXRTrackedPlane, IXRRequestPlane> {\n private _lastDetectedPlanes: XRPlaneSet;\n\n constructor(detectedMode: number) {\n super();\n if (detectedMode !== XRPlaneMode.EveryThing) {\n console.warn(\"WebXR only support XRPlaneMode.EveryThing\");\n }\n }\n\n checkAvailable(session: WebXRSession, frame: WebXRFrame, requestTrackings: IXRRequestPlane[]): boolean {\n return !!frame._platformFrame;\n }\n\n getTrackedResult(\n session: WebXRSession,\n frame: WebXRFrame,\n requestTrackings: IXRRequestPlane[],\n generateTracked: () => IWebXRTrackedPlane\n ): void {\n const { _platformReferenceSpace: platformReferenceSpace } = session;\n const { _platformFrame: platformFrame } = frame;\n // @ts-ignore\n const detectedPlanes: XRPlaneSet = platformFrame.detectedPlanes || platformFrame.worldInformation?.detectedPlanes;\n const tracked = <IWebXRTrackedPlane[]>requestTrackings[0].tracked;\n for (let i = 0, n = tracked.length; i < n; i++) {\n const trackedPlane = tracked[i];\n if (detectedPlanes.has(trackedPlane.xrPlane)) {\n trackedPlane.state = XRTrackingState.Tracking;\n this._updatePlane(platformFrame, platformReferenceSpace, trackedPlane);\n } else {\n trackedPlane.state = XRTrackingState.NotTracking;\n }\n }\n\n const { _lastDetectedPlanes: lastDetectedPlanes } = this;\n detectedPlanes.forEach((xrPlane) => {\n if (!lastDetectedPlanes?.has(xrPlane)) {\n const plane = generateTracked();\n plane.xrPlane = xrPlane;\n plane.lastChangedTime = -1;\n this._updatePlane(platformFrame, platformReferenceSpace, plane);\n tracked.push(plane);\n }\n });\n this._lastDetectedPlanes = detectedPlanes;\n }\n\n override onAddRequestTracking(requestTracking: IXRRequestPlane): void {\n requestTracking.state = XRRequestTrackingState.Resolved;\n }\n\n /**\n * @internal\n */\n _assembleOptions(options: XRSessionInit): void {\n options.optionalFeatures.push(\"plane-detection\");\n }\n\n private _updatePlane(frame: XRFrame, space: XRSpace, trackedPlane: IWebXRTrackedPlane): void {\n const { pose, polygon, xrPlane } = trackedPlane;\n const planePose = frame.getPose(xrPlane.planeSpace, space);\n if (!planePose) return;\n const { transform, emulatedPosition } = planePose;\n trackedPlane.state = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;\n trackedPlane.planeMode = xrPlane.orientation === \"horizontal\" ? XRPlaneMode.Horizontal : XRPlaneMode.Vertical;\n if (trackedPlane.lastChangedTime < xrPlane.lastChangedTime) {\n trackedPlane.lastChangedTime = xrPlane.lastChangedTime;\n trackedPlane.attributesDirty = true;\n const { polygon: oriPolygon } = xrPlane;\n for (let i = 0, n = (polygon.length = oriPolygon.length); i < n; i++) {\n (polygon[i] ||= new Vector3()).copyFrom(oriPolygon[i]);\n }\n } else {\n trackedPlane.attributesDirty = false;\n }\n pose.rotation.copyFrom(transform.orientation);\n pose.position.copyFrom(transform.position);\n pose.matrix.copyFromArray(transform.matrix);\n pose.inverseMatrix.copyFromArray(transform.inverse.matrix);\n }\n}\n\ninterface IWebXRTrackedPlane extends IXRTrackedPlane {\n xrPlane?: XRPlane;\n lastChangedTime?: number;\n}\n"],"names":["_defineProperties","_create_class","parseXRMode","mode","getInputSource","inputSource","type","targetRayMode","XRTrackedInputDevice","Controller","hand","handedness","LeftHand","RightHand","LeftController","RightController","viewToCamera","LeftCamera","RightCamera","Camera","WebXRFrame","session","_session","updateInputs","inputs","_platformFrame","_updateController","_updateCamera","frame","_platformSession","_platformReferenceSpace","referenceSpace","inputSources","i","n","length","input","gripSpace","targetRaySpace","getPose","transform","emulatedPosition","gripPose","matrix","copyFromArray","position","copyFrom","rotation","orientation","trackingState","XRTrackingState","TrackingLost","Tracking","targetRayPose","_platformLayer","layer","framebufferWidth","framebufferHeight","viewerPose","getViewerPose","hadUpdateCenterViewer","views","view","eye","xrCamera","pose","projectionMatrix","xrViewport","getViewport","width","height","x","y","viewport","set","leftCameraDevice","rightCameraDevice","cameraDevice","leftCameraPose","rightCameraPose","cameraPose","Vector3","add","scale","elements","z","WebXRSession","_events","_screenPointers","_inputEventTypeMap","selectstart","XRInputEventType","SelectStart","select","Select","selectend","SelectEnd","squeezestart","SqueezeStart","squeeze","Squeeze","squeezeend","SqueezeEnd","_targetRayModeMap","gaze","XRTargetRayMode","Gaze","TrackedPointer","screen","Screen","_frame","xrRequestAnimationFrame","requestAnimationFrame","bind","onFrame","time","callback","cancelAnimationFrame","_onSessionEvent","_onSessionExit","getFixedFoveation","fixedFoveation","setFixedFoveation","value","start","stop","end","setSessionExitCallBack","onSessionExitCallBack","_onSessionExitCallBack","addEventListener","onSessionEvent","removeEventListener","resetEvents","inputSourceEvent","event","screenPointers","axes","gamepad","idx","emptyIdx","pointer","push","id","framebuffer","frameRate","supportedFrameRates","events","WebXRDevice","isSupportedSessionMode","Promise","resolve","reject","window","isSecureContext","Error","navigator","xr","isSessionSupported","then","isSupported","isSupportedFeature","XRFeatureType","HitTest","PlaneTracking","XRPlane","AnchorTracking","XRAnchor","ImageTracking","XRImageTrackingResult","createPlatformFeature","args","platformFeatureConstructor","_platformFeatureMap","requestSession","rhi","platformFeatures","sessionMode","options","requiredFeatures","optionalFeatures","promiseArr","promise","_assembleOptions","all","gl","attributes","getContextAttributes","makeXRCompatible","scaleFactor","XRWebGLLayer","getNativeFramebufferScaleFactor","renderState","layers","undefined","isWebGL2","layerInit","antialias","alpha","depth","stencil","framebufferScaleFactor","updateRenderState","baseLayer","requestReferenceSpace","registerXRPlatformFeature","WebXRFeature","WebXRTrackableFeature","onAddRequestTracking","requestTracking","onDelRequestTracking","state","XRRequestTrackingState","Destroyed","canModifyRequestTrackingAfterInit","WebXRAnchorTracking","checkAvailable","requestTrackings","None","_addAnchor","getTrackedResult","platformReferenceSpace","platformFrame","trackedAnchors","Resolved","tracked","has","xrAnchor","emulated","_updateTrackedAnchor","NotTracking","Submitted","WaitingDestroy","delete","createAnchor","XRRigidTransform","w","Rejected","space","xrPose","anchorSpace","WebXRImageTracking","images","_trackingScoreStatus","_tempIdx","_tempArr","_images","_requestTrackingScore","generateTracked","tempArr","trackingResults","getImageTrackingResults","trackingResult","index","requestTrackingImage","referenceImage","image","_updateTrackedImage","console","warn","imageSource","name","createImageBitmap","trackedImages","bitmaps","widthInMeters","physicalWidth","getTrackedImageScores","trackingScores","trackingScore","trackedImage","imageSpace","measuredPhysicalWidth","measuredWidthInMeters","WebXRPlaneTracking","detectedMode","XRPlaneMode","EveryThing","detectedPlanes","worldInformation","trackedPlane","xrPlane","_updatePlane","lastDetectedPlanes","_lastDetectedPlanes","forEach","plane","lastChangedTime","polygon","planePose","planeSpace","planeMode","Horizontal","Vertical","attributesDirty","oriPolygon","inverseMatrix","inverse"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CO,IAA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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galacean/engine-xr-webxr",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.16",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"types/**/*"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@galacean/engine-xr": "1.5.
|
|
29
|
+
"@galacean/engine-xr": "1.5.16"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@galacean/engine-design": "1.5.
|
|
33
|
-
"@galacean/engine-math": "1.5.
|
|
32
|
+
"@galacean/engine-design": "1.5.16",
|
|
33
|
+
"@galacean/engine-math": "1.5.16"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {},
|
|
36
36
|
"scripts": {
|