@galacean/effects-plugin-orientation-transformer 2.0.0-alpha.27 → 2.0.0-alpha.29

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/alipay.js CHANGED
@@ -171,10 +171,6 @@ function _extends() {
171
171
  return _extends.apply(this, arguments);
172
172
  }
173
173
 
174
- function getObjectType(obj) {
175
- return Object.prototype.toString.call(obj);
176
- }
177
-
178
174
  /**
179
175
  * 角度限制
180
176
  * @internal
@@ -184,7 +180,7 @@ function getObjectType(obj) {
184
180
  var flagAlpha = true;
185
181
  var flagBeta = true;
186
182
  var flagGamma = true;
187
- if (getObjectType(validRange.alpha) === "[object Array]" && validRange.alpha.length >= 2) {
183
+ if (EFFECTS.isArray(validRange.alpha) && validRange.alpha.length >= 2) {
188
184
  var referAlphaA = angleObj.alpha + validRange.alpha[0];
189
185
  var referAlphaB = angleObj.alpha + validRange.alpha[1];
190
186
  referAlphaA = referAlphaA < 0 ? referAlphaA + 360 : referAlphaA;
@@ -195,31 +191,15 @@ function getObjectType(obj) {
195
191
  flagAlpha = angleObj.alpha > referAlphaA || angleObj.alpha < referAlphaB;
196
192
  }
197
193
  }
198
- if (getObjectType(validRange.beta) === "[object Array]" && validRange.beta.length >= 2) {
194
+ if (EFFECTS.isArray(validRange.beta) && validRange.beta.length >= 2) {
199
195
  flagBeta = angleObj.beta >= validRange.beta[0] && angleObj.beta <= validRange.beta[1];
200
196
  }
201
- if (getObjectType(validRange.gamma) === "[object Array]" && validRange.gamma.length >= 2) {
197
+ if (EFFECTS.isArray(validRange.gamma) && validRange.gamma.length >= 2) {
202
198
  flagGamma = angleObj.gamma >= validRange.gamma[0] && angleObj.gamma <= validRange.gamma[1];
203
199
  }
204
200
  return flagAlpha && flagBeta && flagGamma;
205
201
  }
206
202
 
207
- function isIOS() {
208
- var str = alipay.navigator.userAgent.toLowerCase();
209
- var ver = str.match(/cpu (iphone )?os (.*?) like mac os/);
210
- return ver ? parseInt(ver[2], 10) : 0;
211
- }
212
- function isMiniProgram() {
213
- return isAlipayMiniApp() || isWechatMiniApp();
214
- }
215
- function isAlipayMiniApp() {
216
- var _my;
217
- return typeof my !== "undefined" && ((_my = my) == null ? void 0 : _my.renderTarget) === "web";
218
- }
219
- function isWechatMiniApp() {
220
- return alipay.window.__wxjs_environment === "miniprogram";
221
- }
222
-
223
203
  /**
224
204
  * 稳定区间
225
205
  */ var STABLE_RANGE = 3;
@@ -333,7 +313,7 @@ function getLinearRegressionFixedVal(valuePool) {
333
313
  return fx(valuePool.length / 2);
334
314
  }
335
315
 
336
- var useJSBridge = isIOS() && typeof alipay.window.AlipayJSBridge !== "undefined";
316
+ var useJSBridge = EFFECTS.isIOSByUA() && typeof alipay.window.AlipayJSBridge !== "undefined";
337
317
  var useWindVane = typeof alipay.window.WindVane !== "undefined";
338
318
  // 默认参数
339
319
  var defaultOptions = {
@@ -487,7 +467,7 @@ var DeviceOrientation = /*#__PURE__*/ function() {
487
467
  }
488
468
  };
489
469
  alipay.document.addEventListener("motion.gyro", this.watchListener, false);
490
- } else if (useJSBridge && !isMiniProgram()) {
470
+ } else if (useJSBridge && !EFFECTS.isMiniProgram()) {
491
471
  switchIOSEvent(true, this.options.interval / 1000);
492
472
  this.watchListener = function(e) {
493
473
  if (e && "data" in e) {
@@ -810,7 +790,7 @@ exports.OrientationComponent = __decorate([
810
790
  ], exports.OrientationComponent);
811
791
 
812
792
  EFFECTS.registerPlugin("orientation-transformer", OrientationPluginLoader, EFFECTS.VFXItem);
813
- var version = "2.0.0-alpha.27";
793
+ var version = "2.0.0-alpha.29";
814
794
  EFFECTS.logger.info("Plugin orientation transformer version: " + version + ".");
815
795
  if (version !== EFFECTS__namespace.version) {
816
796
  console.error("注意:请统一 Orientation Transformer 插件与 Player 版本,不统一的版本混用会有不可预知的后果!", "\nAttention: Please ensure the Orientation Transformer plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!");
@@ -1 +1 @@
1
- {"version":3,"file":"alipay.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/composition-transformer-acceler.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_extends.js","../src/utils/object-type.ts","../src/utils/angle-limit.ts","../src/utils/device.ts","../src/utils/filtering.ts","../src/device-orientation.ts","../src/orientation-adapter-acceler.ts","../src/orientation-plugin-loader.ts","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../src/orientation-component.ts","../src/index.ts"],"sourcesContent":["export 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 { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _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","import type { Composition, spec } from '@galacean/effects';\nimport type { AccelerMotionData } from './orientation-adapter-acceler';\n\nexport class CompositionTransformerAcceler {\n private readonly targets: Record<string, spec.PluginGyroscopeTarget> = {};\n private readonly records: Record<string, { item: any, position: number[], current?: number[], rotation: number[] }> = {};\n private readonly currentPos: Record<string, number[]> = {};\n private readonly currentRot: Record<string, number[]> = {};\n private gammaRange: [x: number, y: number] = [-89, 89];\n private betaRange: [x: number, y: number] = [-89, 89];\n private currentEvent?: AccelerMotionData;\n\n constructor (\n private readonly composition: Composition,\n ) {\n }\n\n update ({ x, y, beta, gamma }: AccelerMotionData) {\n this.currentEvent = { x, y, beta, gamma };\n }\n\n updateOrientation () {\n const event = this.currentEvent;\n\n if (event) {\n Object.getOwnPropertyNames(this.targets).forEach(name => {\n this.moveLayer(name, event);\n });\n }\n }\n\n initComposition () {\n const items = this.composition.items;\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const target = this.targets[item.name];\n\n if (target) {\n const position = item.transform.position.toArray();\n const rotation = item.transform.rotation.toArray();\n\n const currentPosition = this.currentPos[item.name];\n const currentRot = this.currentRot[item.name];\n\n this.records[item.name] = {\n item,\n position,\n rotation,\n };\n if (currentPosition) {\n item.transform.setPosition(currentPosition[0], currentPosition[1], currentPosition[2]);\n }\n if (currentRot) {\n item.transform.setRotation(currentRot[0], currentRot[1], currentRot[2]);\n }\n\n }\n }\n }\n\n addTarget (target: spec.PluginGyroscopeTarget) {\n this.targets[target.name] = target;\n }\n\n removeTarget (name: string) {\n delete this.targets[name];\n delete this.records[name];\n }\n\n private moveLayer (name: string, { x, y, beta: b, gamma: g }: AccelerMotionData) {\n const layer = this.records[name]?.item;\n\n if (layer) {\n const initPosition = this.records[name].position;\n const initRotation = this.records[name].rotation;\n const target = this.targets[name];\n const beta = clamp(x, this.betaRange), gamma = clamp(y, this.gammaRange);\n\n if (target) {\n const position = [\n initPosition[0] + 1.2 * mapRange(normalize(beta, this.gammaRange[0], this.gammaRange[1]), target.xMin, target.xMax),\n initPosition[1] + 1.2 * mapRange(normalize(gamma, this.betaRange[0], this.betaRange[1]), target.yMin, target.yMax),\n initPosition[2],\n ];\n\n const br = normalize(clamp(g * 0.8, this.gammaRange), this.gammaRange[0], this.gammaRange[1]);\n const gr = normalize(clamp(b * 0.8, this.betaRange), this.betaRange[0], this.betaRange[1]);\n\n const rotation = [\n initRotation[0] + mapRange(gr, target.hMin, target.hMax),\n initRotation[1] + mapRange(br, target.vMin, target.vMax),\n initRotation[2],\n ];\n\n layer.transform.setPosition(...position);\n layer.transform.setRotation(...rotation);\n this.currentPos[name] = position.slice();\n this.currentRot[name] = rotation.slice();\n }\n }\n }\n}\n\nfunction clamp (x: number, range: [x: number, y: number]) {\n if (x < range[0]) {\n return range[0];\n } else if (x > range[1]) {\n return range[1];\n }\n\n return x;\n}\n\nfunction mapRange (t: number, min: number, max: number): number {\n return min + (max - min) * t;\n}\n\nfunction normalize (a: number, min: number, max: number) {\n return (a - min) / (max - min);\n}\n","export function _extends() {\n _extends = Object.assign || function assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\nexport { _extends as _ };\n","export function getObjectType (obj: any) {\n return Object.prototype.toString.call(obj);\n}\n","import { getObjectType } from './object-type';\n\nexport type AngleType = {\n alpha: number,\n beta: number,\n gamma: number,\n};\n\ntype RangeType = {\n alpha: number[],\n beta: number[],\n gamma: number[],\n};\n\n/**\n * 角度限制\n * @internal\n * @param angleObj 角度数值对象\n * @param validRange 角度限制值\n */\nexport function angleLimit (angleObj: AngleType, validRange: RangeType) {\n let flagAlpha = true;\n let flagBeta = true;\n let flagGamma = true;\n\n if (getObjectType(validRange.alpha) === '[object Array]' && validRange.alpha.length >= 2) {\n let referAlphaA = angleObj.alpha + validRange.alpha[0];\n let referAlphaB = angleObj.alpha + validRange.alpha[1];\n\n referAlphaA = referAlphaA < 0 ? referAlphaA + 360 : referAlphaA;\n referAlphaB = referAlphaB > 360 ? referAlphaB - 360 : referAlphaB;\n if (referAlphaA < referAlphaB) {\n flagAlpha = angleObj.alpha > referAlphaA && angleObj.alpha < referAlphaB;\n } else {\n flagAlpha = angleObj.alpha > referAlphaA || angleObj.alpha < referAlphaB;\n }\n }\n if (getObjectType(validRange.beta) === '[object Array]' && validRange.beta.length >= 2) {\n flagBeta = angleObj.beta >= validRange.beta[0] && angleObj.beta <= validRange.beta[1];\n }\n if (getObjectType(validRange.gamma) === '[object Array]' && validRange.gamma.length >= 2) {\n flagGamma = angleObj.gamma >= validRange.gamma[0] && angleObj.gamma <= validRange.gamma[1];\n }\n\n return flagAlpha && flagBeta && flagGamma;\n}\n","export function isIOS () {\n const str = navigator.userAgent.toLowerCase();\n const ver = str.match(/cpu (iphone )?os (.*?) like mac os/);\n\n return ver ? parseInt(ver[2], 10) : 0;\n}\n\nexport function isMiniProgram () {\n return isAlipayMiniApp() || isWechatMiniApp();\n}\n\nexport function isAlipayMiniApp () {\n return typeof my !== 'undefined' && my?.renderTarget === 'web';\n}\n\nexport function isWechatMiniApp () {\n return window.__wxjs_environment === 'miniprogram';\n}\n","/**\n * 稳定区间\n */\nconst STABLE_RANGE = 3;\n/**\n * 每次增幅的最大值\n */\nconst MAX_CHANGE = 5;\n/**\n * 每次增幅的最小值\n */\nconst MIN_CHANGE = 1;\n/**\n * 数据缓存队列的长度\n */\nconst VALUE_POOL_LENGTH = 5;\n\n/**\n *\n */\ntype FilteringOptions = {\n /**\n * 稳定区间\n */\n stableRange?: number,\n /**\n * 最大变幅\n */\n maxChange?: number,\n};\n\n/**\n * 滤波方法\n */\nexport class Filtering {\n public lastValue = 0;\n private valuePool: number[] = [];\n\n constructor (\n private readonly options: FilteringOptions = {} as FilteringOptions,\n ) { }\n\n /**\n * 0deg 左右保持一定的稳定区间 STABLE_RANGE\n * - 小于 STABLE_RANGE 的算 0\n * - 大于 STABLE_RANGE 的减去 STABLE_RANGE\n * @param value - 输入值\n * @returns\n */\n stableFix (value: number) {\n const stableRange = this.options.stableRange || STABLE_RANGE;\n\n if (Math.abs(value) < stableRange) {\n return 0;\n }\n\n return value > stableRange ? value - stableRange : value + stableRange;\n }\n\n /**\n * 变幅限制\n * - 最大变化 MAX_CHANGE\n * - 最小变化 MIN_CHANGE\n * @param value\n * @returns\n */\n changeLimit (value: number) {\n const lastValue = this.lastValue;\n let result = value;\n\n if (Math.abs(value - lastValue) > MAX_CHANGE) {\n result = lastValue < value ? lastValue + MAX_CHANGE : lastValue - MAX_CHANGE;\n }\n if (Math.abs(value - lastValue) < MIN_CHANGE) {\n result = lastValue;\n }\n this.lastValue = result;\n\n return result;\n }\n\n linearRegressionMedian (value: number) {\n // 在队列中装载数据,达到队列阀值长度时开始计算\n this.valuePool.push(value);\n let result;\n\n if (this.valuePool.length >= VALUE_POOL_LENGTH) {\n result = getLinearRegressionFixedVal(this.valuePool);\n this.valuePool.shift();\n } else {\n result = this.lastValue;\n }\n\n return result;\n }\n}\n\n// 计算出线性回归参数\nfunction linearRegression (x: number[], y: number[]) {\n const result: Record<string, number> = {};\n const n = y.length;\n let sumX = 0;\n let sumY = 0;\n let sumXY = 0;\n let sumXX = 0;\n let sumYY = 0;\n\n for (let i = 0; i < y.length; i++) {\n sumX += x[i];\n sumY += y[i];\n sumXY += (x[i] * y[i]);\n sumXX += (x[i] * x[i]);\n sumYY += (y[i] * y[i]);\n }\n\n const avgX = sumX / n;\n const avgY = sumY / n;\n\n result['a'] = (sumXY - n * avgX * avgY) / (sumXX - n * avgX * avgX);\n result['b'] = avgY - result.a * avgX;\n result['miss'] = Math.pow((n * sumXY - sumX * sumY) / Math.sqrt((n * sumXX - sumX * sumX) * (n * sumYY - sumY * sumY)), 2);\n\n return result;\n}\n\n// 生成线性回归函数 F(x) = ax + b\nfunction createLinearRegressionFx (values: number[]) {\n const x: number[] = [];\n const y: number[] = [];\n\n values.forEach((item, index) => {\n x.push(index); // 数据是连续的,所以直接取数组下标为 x\n y.push(item);\n });\n const key = linearRegression(x, y);\n\n return (x: number) => {\n return key.a * x + key.b;\n };\n}\n\n// 获取线性回归后的中位数\nfunction getLinearRegressionFixedVal (valuePool: number[]) {\n const fx = createLinearRegressionFx(valuePool);\n\n // 这个迭代修正很重要\n valuePool = valuePool.map((item, index) => {\n return fx(index);\n });\n\n return fx(valuePool.length / 2);\n}\n","import { assertExist } from '@galacean/effects';\nimport { angleLimit, type AngleType } from './utils/angle-limit';\nimport { isIOS, isMiniProgram } from './utils/device';\nimport { Filtering } from './utils/filtering';\n\ntype JSBridgeParam = {\n x: number,\n y: number,\n z: number,\n};\n\ntype WindVaneParams = {\n x: number,\n y: number,\n z: number,\n};\n\nconst useJSBridge = isIOS() && typeof window.AlipayJSBridge !== 'undefined';\nconst useWindVane = typeof window.WindVane !== 'undefined';\n\nexport type DeviceOrientationOptions = {\n X?: boolean,\n Y?: boolean,\n /**\n * 监听时间片段(一秒30帧)\n */\n interval?: number,\n /**\n * 使用 requestAnimationFrame 对齐\n */\n useRequestAnimationFrame?: boolean,\n /**\n * bate 角度使用相对初始化的\n */\n relativeBeta?: boolean,\n /**\n * gamma 角度使用相对初始化的\n */\n relativeGamma?: boolean,\n /**\n * 限制 3d 角度范围\n */\n validRange: {\n /**\n * 相对范围\n */\n alpha: number[],\n /**\n * 上下翻转\n */\n beta: number[],\n /**\n * 左右翻转\n */\n gamma: number[],\n },\n /**\n * 稳定区间\n */\n stableRange: number,\n};\n\n// 默认参数\nconst defaultOptions = {\n X: true,\n Y: true,\n interval: Math.floor(1000 / 30),\n useRequestAnimationFrame: true,\n relativeBeta: false,\n relativeGamma: false,\n validRange: {\n alpha: [-60, 60],\n beta: [-60, 180],\n gamma: [-89, 89],\n },\n stableRange: 3,\n};\n\nexport class DeviceOrientation {\n private options: Required<DeviceOrientationOptions>;\n private lastX = 0;\n private lastY = 0;\n private prevAcceler = {\n x: 0,\n y: 0,\n z: 0,\n };\n private stoped = false;\n private readonly filterX: Filtering;\n private readonly filterY: Filtering;\n private watchListener?: (e: DeviceOrientationEvent | Event) => void;\n\n constructor (options: Record<string, any> = {}) {\n // 模拟简单的 deep merge\n const validRange = { ...defaultOptions.validRange, ...options.validRange };\n const mergeOptions = { ...defaultOptions, ...options };\n\n mergeOptions.validRange = validRange;\n this.options = mergeOptions;\n\n const { stableRange } = this.options;\n\n this.filterX = new Filtering({ stableRange });\n this.filterY = new Filtering({ stableRange });\n }\n\n watch (callback: (x: number, y: number, data: AngleType) => void) {\n if (typeof callback !== 'function') {\n return;\n }\n // 目前只能绑定一个方法,此处可以扩展成一个方法队列\n if (this.watchListener) {\n return;\n }\n\n let timefragment = 0; // 时间片计时\n let nowts = 0; // 当前时间\n // 初始化角度,作为单独一个用户的空间旋转的参照\n let referGamma = NaN, referBeta = NaN, referAlpha = NaN;\n let alpha: number;\n let beta: number;\n let gamma: number;\n let isInValidDegRange;\n let x: number; // 最终输出的 x\n let y: number; // 最终输出的 y\n const handleWatch = (e: Pick<DeviceOrientationEvent, 'alpha' | 'beta' | 'gamma'>) => {\n if (this.stoped) {\n return;\n }\n alpha = e.alpha!; // 垂直于屏幕的轴 0 ~ 360\n beta = e.beta!; // 横向 X 轴 -180 ~ 180\n gamma = e.gamma!; // 纵向 Y 轴 -90 ~ 90\n\n isInValidDegRange = angleLimit.call(this, {\n alpha,\n beta,\n gamma,\n }, this.options.validRange);\n\n // 对 alpha beta gamma 初始化位置\n if (isNaN(referAlpha)) {\n referAlpha = alpha || 0;\n }\n if (isNaN(referGamma)) {\n referGamma = gamma;\n this.filterX.lastValue = gamma;\n }\n if (isNaN(referBeta)) {\n referBeta = beta;\n this.filterY.lastValue = beta;\n }\n if (isInValidDegRange) {\n // 最终结果值\n if (this.options.X) {\n x = this.options.relativeGamma ? gamma - referGamma : gamma;\n x = this.filterX.stableFix(x);\n x = this.filterX.changeLimit(x);\n x = this.filterX.linearRegressionMedian(+x);\n } else {\n x = 0;\n }\n if (this.options.Y) {\n y = this.options.relativeBeta ? beta - referBeta : beta;\n y = this.filterY.stableFix(y);\n y = this.filterY.changeLimit(y);\n y = this.filterY.linearRegressionMedian(+y);\n } else {\n y = 0;\n }\n\n if (this.isValid(x, y)) {\n if (this.options.useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n callback(x, y, { alpha, beta: y - referBeta, gamma: x - referGamma });\n });\n } else {\n callback(x, y, { alpha, beta: y - referBeta, gamma: x - referGamma });\n }\n this.lastX = x;\n this.lastY = y;\n }\n }\n };\n\n // 针对不同平台绑定不同事件\n this.stoped = false;\n if (useWindVane) {\n switchWindVane(true, this.options.interval);\n this.watchListener = (e: Event) => {\n if ('param' in e) {\n const { x, y, z } = e.param as WindVaneParams;\n\n // 即使手机没动,也会不停触发,所以这里加个判断,值相等则不调用回调\n if (x === this.prevAcceler.x && y === this.prevAcceler.y && z === this.prevAcceler.z) {\n return;\n }\n this.prevAcceler = { x, y, z };\n const evt = {\n alpha: +z * 180,\n beta: +y * -90,\n gamma: +x * 90,\n };\n\n handleWatch(evt);\n }\n };\n document.addEventListener('motion.gyro', this.watchListener, false);\n } else if (useJSBridge && !isMiniProgram()) {\n switchIOSEvent(true, this.options.interval / 1000);\n this.watchListener = (e: Event) => {\n if (e && 'data' in e) {\n /*\n data:\n {\n data: {\n x: 0.0, // gamma -1 ~ 1\n y: 0.0, // beta -1 ~ 1\n z: 0.0, // alpha\n }\n }\n */\n const { x, y, z } = e.data as JSBridgeParam;\n const evt = {\n alpha: z * 180,\n beta: y * -90,\n gamma: x * 90,\n };\n\n handleWatch(evt);\n }\n };\n document.addEventListener('accelerometerChange', this.watchListener, false);\n } else {\n this.watchListener = (e: DeviceOrientationEvent | Event) => {\n nowts = new Date().getTime();\n // 控制时间片\n if (nowts - timefragment >= this.options.interval) {\n timefragment = nowts;\n handleWatch(e as DeviceOrientationEvent);\n }\n };\n window.addEventListener('deviceorientation', this.watchListener, false);\n }\n }\n\n unWatch () {\n assertExist(this.watchListener);\n if (useWindVane) {\n switchWindVane(false);\n document.removeEventListener('motion.gyro', this.watchListener);\n } else if (useJSBridge) {\n switchIOSEvent(false);\n document.removeEventListener('accelerometerChange', this.watchListener);\n } else {\n window.removeEventListener('deviceorientation', this.watchListener);\n }\n this.stoped = true;\n this.watchListener = undefined;\n }\n\n pause () {\n this.stoped = true;\n if (useJSBridge) {\n switchIOSEvent(false);\n }\n }\n\n continue () {\n this.stoped = false;\n if (useJSBridge) {\n switchIOSEvent(true, this.options.interval / 1000);\n }\n }\n\n private isValid (x: number, y: number) {\n // 判断是否和上次的值一样,检测有没有变\n return this.lastX !== x || this.lastY !== y;\n }\n}\n\n// 开启/关闭 iOS 的陀螺仪监听\nfunction switchIOSEvent (open: boolean, interval?: number) {\n window.AlipayJSBridge.call(\n 'watchShake',\n {\n monitorGyroscope: false,\n monitorAccelerometer: !!open,\n interval: !open ? 10 : parseFloat(interval!.toFixed(3)),\n },\n () => { }\n );\n}\n\nfunction switchWindVane (open: boolean, interval?: number) {\n const params = {\n // 是开启还是关闭陀螺仪的监听\n on: open,\n // 陀螺仪事件的时间间隔\n frequency: interval,\n };\n\n window.WindVane.call('WVMotion', 'listenGyro', params, (e: Event) => {\n console.info('Call WVMotion success.');\n }, (e: Event) => {\n console.error(`Call WVMotion failed: ${JSON.stringify(e)}.`);\n });\n}\n","import type { CompositionTransformerAcceler } from './composition-transformer-acceler';\nimport { DeviceOrientation } from './device-orientation';\n\nexport type AccelerMotionData = {\n x: number,\n y: number,\n beta: number,\n gamma: number,\n};\n\n/**\n *\n */\nexport class OrientationAdapterAcceler {\n private transformers: CompositionTransformerAcceler[] = [];\n private connected = false;\n private accelerMotion: DeviceOrientation | null = null;\n private validRange = { // 限制 3d 角度范围\n alpha: [-60, 60], // 相对范围\n beta: [-80, 80], // 上下翻转\n gamma: [-89, 89], // 左右翻转\n };\n\n connect () {\n if (!this.connected) {\n this.accelerMotion = new DeviceOrientation({\n X: true, // 监听X(beta)轴\n Y: true, // 监听Y(gamma)轴\n interval: Math.floor(1000 / 60), // 监听时间片段(一秒30帧)\n useRequestAnimationFrame: true, // 使用 requestAnimationFrame 对齐\n relativeBeta: false, // bate 角度使用相对初始化的\n relativeGamma: false, // gamma 角度使用相对初始化的\n validRange: this.validRange,\n stableRange: 3, // 稳定区间\n });\n this.accelerMotion.watch((x, y, { beta, gamma }) => {\n const motion: AccelerMotionData = {\n x, y, beta, gamma,\n };\n\n this.dispatchMotion(motion);\n });\n }\n this.connected = true;\n }\n\n disconnect () {\n if (this.accelerMotion) {\n this.accelerMotion.unWatch();\n }\n this.connected = false;\n }\n\n /**\n *\n * @param motion\n */\n dispatchMotion (motion: AccelerMotionData) {\n this.transformers.forEach(t => t.update(motion));\n }\n\n addTransformer (transformer: CompositionTransformerAcceler) {\n if (!this.transformers.includes(transformer)) {\n this.transformers.push(transformer);\n }\n }\n\n removeTransformer (transformer: CompositionTransformerAcceler) {\n const index = this.transformers.indexOf(transformer);\n\n if (index > -1) {\n this.transformers.splice(index, 1);\n }\n\n return this.transformers.length === 0;\n }\n}\n\nlet adapter: OrientationAdapterAcceler;\n\nexport function getAccelerAdapter () {\n if (!adapter) {\n adapter = new OrientationAdapterAcceler();\n }\n\n return adapter;\n}\n","import type { Composition, Disposable } from '@galacean/effects';\nimport { AbstractPlugin } from '@galacean/effects';\nimport { CompositionTransformerAcceler } from './composition-transformer-acceler';\nimport type { OrientationAdapterAcceler } from './orientation-adapter-acceler';\nimport { getAccelerAdapter } from './orientation-adapter-acceler';\n\nexport class OrientationPluginLoader extends AbstractPlugin implements Disposable {\n override order = 90;\n\n private adapter: OrientationAdapterAcceler | null = null;\n\n override onCompositionConstructed () {\n this.adapter = getAdapter();\n this.adapter?.connect();\n this.bindAccelerDocumentEvent();\n }\n\n override onCompositionReset (composition: Composition): void {\n const transformer = composition.loaderData.deviceTransformer = new CompositionTransformerAcceler(composition);\n\n this.adapter?.addTransformer(transformer);\n }\n\n override onCompositionUpdate (composition: Composition) {\n const transformer = composition.loaderData.deviceTransformer as CompositionTransformerAcceler;\n\n if (transformer) {\n transformer.updateOrientation();\n }\n }\n\n override onCompositionDestroyed (composition: Composition): void {\n const empty = this.adapter?.removeTransformer(composition.loaderData.deviceTransformer);\n\n if (empty) {\n this.adapter?.disconnect();\n }\n }\n\n private handleConnect = () => {\n if (!closeManually) {\n this.adapter?.connect();\n }\n };\n\n private handleDisconnect = () => {\n this.adapter?.disconnect();\n };\n\n private bindAccelerDocumentEvent () {\n this.unbindAccelerDocumentEvent(); // 保证全局只监听一份\n document.addEventListener('resume', this.handleConnect, false);\n document.addEventListener('pause', this.handleDisconnect, false);\n document.addEventListener('back', this.handleDisconnect, false);\n }\n\n private unbindAccelerDocumentEvent () {\n document.removeEventListener('resume', this.handleConnect);\n document.removeEventListener('pause', this.handleDisconnect);\n document.removeEventListener('back', this.handleDisconnect);\n }\n\n dispose (): void {\n getAdapter().disconnect();\n this.unbindAccelerDocumentEvent();\n }\n}\n\n// 是否是手动关闭,如果是,那么 resume 时不要恢复\nlet closeManually = false;\n\n/**\n *\n * @returns\n */\nexport function getAdapter () {\n // 运动感应类型(默认使用加速度,Native 环境使用陀螺仪)\n return getAccelerAdapter();\n}\n\nexport function closeDeviceMotion () {\n closeManually = true;\n getAdapter().disconnect();\n}\n\nexport function openDeviceMotion () {\n closeManually = false;\n getAdapter().connect();\n}\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 */\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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\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};\n","import type { spec } from '@galacean/effects';\nimport { ItemBehaviour, effectsClass } from '@galacean/effects';\nimport type { CompositionTransformerAcceler } from './composition-transformer-acceler';\n\n@effectsClass('OrientationComponent')\nexport class OrientationComponent extends ItemBehaviour {\n private targets: spec.PluginGyroscopeTarget[];\n\n override fromData (data: any) {\n super.fromData(data);\n\n const { targets } = data.options;\n\n if (targets) {\n this.targets = targets.map((t: any) => ({\n name: t.name,\n xMin: +t.xMin || 0,\n yMin: +t.yMin || 0,\n xMax: +t.xMax || 0,\n yMax: +t.yMax || 0,\n vMin: +t.vMin || 0,\n hMin: +t.hMin || 0,\n vMax: +t.vMax || 0,\n hMax: +t.hMax || 0,\n }));\n }\n\n }\n\n override start () {\n const transformer = this.item.composition?.loaderData.deviceTransformer as CompositionTransformerAcceler;\n\n if (transformer) {\n this.targets?.forEach(target => transformer.addTarget(target));\n transformer.initComposition();\n }\n }\n\n override update (dt: number) {\n const transformer = this.item.composition?.loaderData.deviceTransformer as CompositionTransformerAcceler;\n\n if (transformer) {\n transformer.updateOrientation();\n }\n }\n\n override onDestroy () {\n this.targets?.forEach(target => this.item.composition?.loaderData.deviceTransformer?.removeTarget(target.name));\n }\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { VFXItem, logger, registerPlugin } from '@galacean/effects';\nimport { OrientationPluginLoader } from './orientation-plugin-loader';\n\ndeclare global {\n interface Window {\n ge: any,\n }\n}\n\nregisterPlugin('orientation-transformer', OrientationPluginLoader, VFXItem);\n\nexport { getAdapter, closeDeviceMotion, openDeviceMotion, OrientationPluginLoader } from './orientation-plugin-loader';\nexport { OrientationAdapterAcceler } from './orientation-adapter-acceler';\nexport * from './orientation-component';\n\nexport const version = __VERSION__;\n\nlogger.info(`Plugin orientation transformer version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 Orientation Transformer 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the Orientation Transformer plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\n );\n}\n"],"names":["_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","value","writable","configurable","CompositionTransformerAcceler","composition","targets","records","currentPos","currentRot","gammaRange","betaRange","update","x","y","beta","gamma","currentEvent","updateOrientation","event","getOwnPropertyNames","forEach","name","moveLayer","initComposition","items","i","length","item","target","position","transform","toArray","rotation","currentPosition","setPosition","setRotation","addTarget","removeTarget","b","g","layer","initPosition","initRotation","clamp","mapRange","normalize","xMin","xMax","yMin","yMax","br","gr","hMin","hMax","vMin","vMax","slice","range","t","min","max","a","_extends","assign","arguments","source","key","hasOwnProperty","call","apply","getObjectType","obj","toString","angleLimit","angleObj","validRange","flagAlpha","flagBeta","flagGamma","alpha","referAlphaA","referAlphaB","isIOS","str","navigator","userAgent","toLowerCase","ver","match","parseInt","isMiniProgram","isAlipayMiniApp","isWechatMiniApp","my","renderTarget","window","__wxjs_environment","STABLE_RANGE","MAX_CHANGE","MIN_CHANGE","VALUE_POOL_LENGTH","Filtering","options","lastValue","valuePool","stableFix","stableRange","Math","abs","changeLimit","result","linearRegressionMedian","push","getLinearRegressionFixedVal","shift","linearRegression","n","sumX","sumY","sumXY","sumXX","sumYY","avgX","avgY","pow","sqrt","createLinearRegressionFx","values","index","fx","map","useJSBridge","AlipayJSBridge","useWindVane","WindVane","defaultOptions","X","Y","interval","floor","useRequestAnimationFrame","relativeBeta","relativeGamma","DeviceOrientation","lastX","lastY","prevAcceler","z","stoped","mergeOptions","filterX","filterY","watch","callback","watchListener","timefragment","nowts","referGamma","NaN","referBeta","isInValidDegRange","handleWatch","e","isNaN","isValid","requestAnimationFrame","switchWindVane","param","evt","document","addEventListener","switchIOSEvent","data","Date","getTime","unWatch","assertExist","removeEventListener","undefined","pause","continue","open","monitorGyroscope","monitorAccelerometer","parseFloat","toFixed","params","on","frequency","console","info","error","JSON","stringify","OrientationAdapterAcceler","transformers","connected","accelerMotion","connect","motion","dispatchMotion","disconnect","addTransformer","transformer","includes","removeTransformer","indexOf","splice","adapter","getAccelerAdapter","OrientationPluginLoader","order","handleConnect","closeManually","handleDisconnect","onCompositionConstructed","getAdapter","bindAccelerDocumentEvent","onCompositionReset","loaderData","deviceTransformer","onCompositionUpdate","onCompositionDestroyed","empty","unbindAccelerDocumentEvent","dispose","AbstractPlugin","closeDeviceMotion","openDeviceMotion","__decorate","decorators","desc","c","r","getOwnPropertyDescriptor","d","Reflect","decorate","defineProperty","SuppressedError","suppressed","message","Error","OrientationComponent","fromData","start","dt","onDestroy","ItemBehaviour","effectsClass","registerPlugin","VFXItem","version","logger","EFFECTS"],"mappings":"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"}
1
+ {"version":3,"file":"alipay.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_inherits.js","../src/composition-transformer-acceler.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.8/node_modules/@swc/helpers/esm/_extends.js","../src/utils/angle-limit.ts","../src/utils/filtering.ts","../src/device-orientation.ts","../src/orientation-adapter-acceler.ts","../src/orientation-plugin-loader.ts","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../src/orientation-component.ts","../src/index.ts"],"sourcesContent":["export 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 { _set_prototype_of } from \"./_set_prototype_of.js\";\n\nexport function _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","import type { Composition, spec } from '@galacean/effects';\nimport type { AccelerMotionData } from './orientation-adapter-acceler';\n\nexport class CompositionTransformerAcceler {\n private readonly targets: Record<string, spec.PluginGyroscopeTarget> = {};\n private readonly records: Record<string, { item: any, position: number[], current?: number[], rotation: number[] }> = {};\n private readonly currentPos: Record<string, number[]> = {};\n private readonly currentRot: Record<string, number[]> = {};\n private gammaRange: [x: number, y: number] = [-89, 89];\n private betaRange: [x: number, y: number] = [-89, 89];\n private currentEvent?: AccelerMotionData;\n\n constructor (\n private readonly composition: Composition,\n ) {\n }\n\n update ({ x, y, beta, gamma }: AccelerMotionData) {\n this.currentEvent = { x, y, beta, gamma };\n }\n\n updateOrientation () {\n const event = this.currentEvent;\n\n if (event) {\n Object.getOwnPropertyNames(this.targets).forEach(name => {\n this.moveLayer(name, event);\n });\n }\n }\n\n initComposition () {\n const items = this.composition.items;\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const target = this.targets[item.name];\n\n if (target) {\n const position = item.transform.position.toArray();\n const rotation = item.transform.rotation.toArray();\n\n const currentPosition = this.currentPos[item.name];\n const currentRot = this.currentRot[item.name];\n\n this.records[item.name] = {\n item,\n position,\n rotation,\n };\n if (currentPosition) {\n item.transform.setPosition(currentPosition[0], currentPosition[1], currentPosition[2]);\n }\n if (currentRot) {\n item.transform.setRotation(currentRot[0], currentRot[1], currentRot[2]);\n }\n\n }\n }\n }\n\n addTarget (target: spec.PluginGyroscopeTarget) {\n this.targets[target.name] = target;\n }\n\n removeTarget (name: string) {\n delete this.targets[name];\n delete this.records[name];\n }\n\n private moveLayer (name: string, { x, y, beta: b, gamma: g }: AccelerMotionData) {\n const layer = this.records[name]?.item;\n\n if (layer) {\n const initPosition = this.records[name].position;\n const initRotation = this.records[name].rotation;\n const target = this.targets[name];\n const beta = clamp(x, this.betaRange), gamma = clamp(y, this.gammaRange);\n\n if (target) {\n const position = [\n initPosition[0] + 1.2 * mapRange(normalize(beta, this.gammaRange[0], this.gammaRange[1]), target.xMin, target.xMax),\n initPosition[1] + 1.2 * mapRange(normalize(gamma, this.betaRange[0], this.betaRange[1]), target.yMin, target.yMax),\n initPosition[2],\n ];\n\n const br = normalize(clamp(g * 0.8, this.gammaRange), this.gammaRange[0], this.gammaRange[1]);\n const gr = normalize(clamp(b * 0.8, this.betaRange), this.betaRange[0], this.betaRange[1]);\n\n const rotation = [\n initRotation[0] + mapRange(gr, target.hMin, target.hMax),\n initRotation[1] + mapRange(br, target.vMin, target.vMax),\n initRotation[2],\n ];\n\n layer.transform.setPosition(...position);\n layer.transform.setRotation(...rotation);\n this.currentPos[name] = position.slice();\n this.currentRot[name] = rotation.slice();\n }\n }\n }\n}\n\nfunction clamp (x: number, range: [x: number, y: number]) {\n if (x < range[0]) {\n return range[0];\n } else if (x > range[1]) {\n return range[1];\n }\n\n return x;\n}\n\nfunction mapRange (t: number, min: number, max: number): number {\n return min + (max - min) * t;\n}\n\nfunction normalize (a: number, min: number, max: number) {\n return (a - min) / (max - min);\n}\n","export function _extends() {\n _extends = Object.assign || function assign(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\nexport { _extends as _ };\n","import { isArray } from '@galacean/effects';\n\nexport type AngleType = {\n alpha: number,\n beta: number,\n gamma: number,\n};\n\ntype RangeType = {\n alpha: number[],\n beta: number[],\n gamma: number[],\n};\n\n/**\n * 角度限制\n * @internal\n * @param angleObj 角度数值对象\n * @param validRange 角度限制值\n */\nexport function angleLimit (angleObj: AngleType, validRange: RangeType) {\n let flagAlpha = true;\n let flagBeta = true;\n let flagGamma = true;\n\n if (isArray(validRange.alpha) && validRange.alpha.length >= 2) {\n let referAlphaA = angleObj.alpha + validRange.alpha[0];\n let referAlphaB = angleObj.alpha + validRange.alpha[1];\n\n referAlphaA = referAlphaA < 0 ? referAlphaA + 360 : referAlphaA;\n referAlphaB = referAlphaB > 360 ? referAlphaB - 360 : referAlphaB;\n if (referAlphaA < referAlphaB) {\n flagAlpha = angleObj.alpha > referAlphaA && angleObj.alpha < referAlphaB;\n } else {\n flagAlpha = angleObj.alpha > referAlphaA || angleObj.alpha < referAlphaB;\n }\n }\n if (isArray(validRange.beta) && validRange.beta.length >= 2) {\n flagBeta = angleObj.beta >= validRange.beta[0] && angleObj.beta <= validRange.beta[1];\n }\n if (isArray(validRange.gamma) && validRange.gamma.length >= 2) {\n flagGamma = angleObj.gamma >= validRange.gamma[0] && angleObj.gamma <= validRange.gamma[1];\n }\n\n return flagAlpha && flagBeta && flagGamma;\n}\n","/**\n * 稳定区间\n */\nconst STABLE_RANGE = 3;\n/**\n * 每次增幅的最大值\n */\nconst MAX_CHANGE = 5;\n/**\n * 每次增幅的最小值\n */\nconst MIN_CHANGE = 1;\n/**\n * 数据缓存队列的长度\n */\nconst VALUE_POOL_LENGTH = 5;\n\n/**\n *\n */\ntype FilteringOptions = {\n /**\n * 稳定区间\n */\n stableRange?: number,\n /**\n * 最大变幅\n */\n maxChange?: number,\n};\n\n/**\n * 滤波方法\n */\nexport class Filtering {\n public lastValue = 0;\n private valuePool: number[] = [];\n\n constructor (\n private readonly options: FilteringOptions = {} as FilteringOptions,\n ) { }\n\n /**\n * 0deg 左右保持一定的稳定区间 STABLE_RANGE\n * - 小于 STABLE_RANGE 的算 0\n * - 大于 STABLE_RANGE 的减去 STABLE_RANGE\n * @param value - 输入值\n * @returns\n */\n stableFix (value: number) {\n const stableRange = this.options.stableRange || STABLE_RANGE;\n\n if (Math.abs(value) < stableRange) {\n return 0;\n }\n\n return value > stableRange ? value - stableRange : value + stableRange;\n }\n\n /**\n * 变幅限制\n * - 最大变化 MAX_CHANGE\n * - 最小变化 MIN_CHANGE\n * @param value\n * @returns\n */\n changeLimit (value: number) {\n const lastValue = this.lastValue;\n let result = value;\n\n if (Math.abs(value - lastValue) > MAX_CHANGE) {\n result = lastValue < value ? lastValue + MAX_CHANGE : lastValue - MAX_CHANGE;\n }\n if (Math.abs(value - lastValue) < MIN_CHANGE) {\n result = lastValue;\n }\n this.lastValue = result;\n\n return result;\n }\n\n linearRegressionMedian (value: number) {\n // 在队列中装载数据,达到队列阀值长度时开始计算\n this.valuePool.push(value);\n let result;\n\n if (this.valuePool.length >= VALUE_POOL_LENGTH) {\n result = getLinearRegressionFixedVal(this.valuePool);\n this.valuePool.shift();\n } else {\n result = this.lastValue;\n }\n\n return result;\n }\n}\n\n// 计算出线性回归参数\nfunction linearRegression (x: number[], y: number[]) {\n const result: Record<string, number> = {};\n const n = y.length;\n let sumX = 0;\n let sumY = 0;\n let sumXY = 0;\n let sumXX = 0;\n let sumYY = 0;\n\n for (let i = 0; i < y.length; i++) {\n sumX += x[i];\n sumY += y[i];\n sumXY += (x[i] * y[i]);\n sumXX += (x[i] * x[i]);\n sumYY += (y[i] * y[i]);\n }\n\n const avgX = sumX / n;\n const avgY = sumY / n;\n\n result['a'] = (sumXY - n * avgX * avgY) / (sumXX - n * avgX * avgX);\n result['b'] = avgY - result.a * avgX;\n result['miss'] = Math.pow((n * sumXY - sumX * sumY) / Math.sqrt((n * sumXX - sumX * sumX) * (n * sumYY - sumY * sumY)), 2);\n\n return result;\n}\n\n// 生成线性回归函数 F(x) = ax + b\nfunction createLinearRegressionFx (values: number[]) {\n const x: number[] = [];\n const y: number[] = [];\n\n values.forEach((item, index) => {\n x.push(index); // 数据是连续的,所以直接取数组下标为 x\n y.push(item);\n });\n const key = linearRegression(x, y);\n\n return (x: number) => {\n return key.a * x + key.b;\n };\n}\n\n// 获取线性回归后的中位数\nfunction getLinearRegressionFixedVal (valuePool: number[]) {\n const fx = createLinearRegressionFx(valuePool);\n\n // 这个迭代修正很重要\n valuePool = valuePool.map((item, index) => {\n return fx(index);\n });\n\n return fx(valuePool.length / 2);\n}\n","import { assertExist, isIOSByUA, isMiniProgram } from '@galacean/effects';\nimport type { AngleType } from './utils/angle-limit';\nimport { angleLimit } from './utils/angle-limit';\nimport { Filtering } from './utils/filtering';\n\ntype JSBridgeParam = {\n x: number,\n y: number,\n z: number,\n};\n\ntype WindVaneParams = {\n x: number,\n y: number,\n z: number,\n};\n\nconst useJSBridge = isIOSByUA() && typeof window.AlipayJSBridge !== 'undefined';\nconst useWindVane = typeof window.WindVane !== 'undefined';\n\nexport type DeviceOrientationOptions = {\n X?: boolean,\n Y?: boolean,\n /**\n * 监听时间片段(一秒30帧)\n */\n interval?: number,\n /**\n * 使用 requestAnimationFrame 对齐\n */\n useRequestAnimationFrame?: boolean,\n /**\n * bate 角度使用相对初始化的\n */\n relativeBeta?: boolean,\n /**\n * gamma 角度使用相对初始化的\n */\n relativeGamma?: boolean,\n /**\n * 限制 3d 角度范围\n */\n validRange: {\n /**\n * 相对范围\n */\n alpha: number[],\n /**\n * 上下翻转\n */\n beta: number[],\n /**\n * 左右翻转\n */\n gamma: number[],\n },\n /**\n * 稳定区间\n */\n stableRange: number,\n};\n\n// 默认参数\nconst defaultOptions = {\n X: true,\n Y: true,\n interval: Math.floor(1000 / 30),\n useRequestAnimationFrame: true,\n relativeBeta: false,\n relativeGamma: false,\n validRange: {\n alpha: [-60, 60],\n beta: [-60, 180],\n gamma: [-89, 89],\n },\n stableRange: 3,\n};\n\nexport class DeviceOrientation {\n private options: Required<DeviceOrientationOptions>;\n private lastX = 0;\n private lastY = 0;\n private prevAcceler = {\n x: 0,\n y: 0,\n z: 0,\n };\n private stoped = false;\n private readonly filterX: Filtering;\n private readonly filterY: Filtering;\n private watchListener?: (e: DeviceOrientationEvent | Event) => void;\n\n constructor (options: Record<string, any> = {}) {\n // 模拟简单的 deep merge\n const validRange = { ...defaultOptions.validRange, ...options.validRange };\n const mergeOptions = { ...defaultOptions, ...options };\n\n mergeOptions.validRange = validRange;\n this.options = mergeOptions;\n\n const { stableRange } = this.options;\n\n this.filterX = new Filtering({ stableRange });\n this.filterY = new Filtering({ stableRange });\n }\n\n watch (callback: (x: number, y: number, data: AngleType) => void) {\n if (typeof callback !== 'function') {\n return;\n }\n // 目前只能绑定一个方法,此处可以扩展成一个方法队列\n if (this.watchListener) {\n return;\n }\n\n let timefragment = 0; // 时间片计时\n let nowts = 0; // 当前时间\n // 初始化角度,作为单独一个用户的空间旋转的参照\n let referGamma = NaN, referBeta = NaN, referAlpha = NaN;\n let alpha: number;\n let beta: number;\n let gamma: number;\n let isInValidDegRange;\n let x: number; // 最终输出的 x\n let y: number; // 最终输出的 y\n const handleWatch = (e: Pick<DeviceOrientationEvent, 'alpha' | 'beta' | 'gamma'>) => {\n if (this.stoped) {\n return;\n }\n alpha = e.alpha!; // 垂直于屏幕的轴 0 ~ 360\n beta = e.beta!; // 横向 X 轴 -180 ~ 180\n gamma = e.gamma!; // 纵向 Y 轴 -90 ~ 90\n\n isInValidDegRange = angleLimit.call(this, {\n alpha,\n beta,\n gamma,\n }, this.options.validRange);\n\n // 对 alpha beta gamma 初始化位置\n if (isNaN(referAlpha)) {\n referAlpha = alpha || 0;\n }\n if (isNaN(referGamma)) {\n referGamma = gamma;\n this.filterX.lastValue = gamma;\n }\n if (isNaN(referBeta)) {\n referBeta = beta;\n this.filterY.lastValue = beta;\n }\n if (isInValidDegRange) {\n // 最终结果值\n if (this.options.X) {\n x = this.options.relativeGamma ? gamma - referGamma : gamma;\n x = this.filterX.stableFix(x);\n x = this.filterX.changeLimit(x);\n x = this.filterX.linearRegressionMedian(+x);\n } else {\n x = 0;\n }\n if (this.options.Y) {\n y = this.options.relativeBeta ? beta - referBeta : beta;\n y = this.filterY.stableFix(y);\n y = this.filterY.changeLimit(y);\n y = this.filterY.linearRegressionMedian(+y);\n } else {\n y = 0;\n }\n\n if (this.isValid(x, y)) {\n if (this.options.useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n callback(x, y, { alpha, beta: y - referBeta, gamma: x - referGamma });\n });\n } else {\n callback(x, y, { alpha, beta: y - referBeta, gamma: x - referGamma });\n }\n this.lastX = x;\n this.lastY = y;\n }\n }\n };\n\n // 针对不同平台绑定不同事件\n this.stoped = false;\n if (useWindVane) {\n switchWindVane(true, this.options.interval);\n this.watchListener = (e: Event) => {\n if ('param' in e) {\n const { x, y, z } = e.param as WindVaneParams;\n\n // 即使手机没动,也会不停触发,所以这里加个判断,值相等则不调用回调\n if (x === this.prevAcceler.x && y === this.prevAcceler.y && z === this.prevAcceler.z) {\n return;\n }\n this.prevAcceler = { x, y, z };\n const evt = {\n alpha: +z * 180,\n beta: +y * -90,\n gamma: +x * 90,\n };\n\n handleWatch(evt);\n }\n };\n document.addEventListener('motion.gyro', this.watchListener, false);\n } else if (useJSBridge && !isMiniProgram()) {\n switchIOSEvent(true, this.options.interval / 1000);\n this.watchListener = (e: Event) => {\n if (e && 'data' in e) {\n /*\n data:\n {\n data: {\n x: 0.0, // gamma -1 ~ 1\n y: 0.0, // beta -1 ~ 1\n z: 0.0, // alpha\n }\n }\n */\n const { x, y, z } = e.data as JSBridgeParam;\n const evt = {\n alpha: z * 180,\n beta: y * -90,\n gamma: x * 90,\n };\n\n handleWatch(evt);\n }\n };\n document.addEventListener('accelerometerChange', this.watchListener, false);\n } else {\n this.watchListener = (e: DeviceOrientationEvent | Event) => {\n nowts = new Date().getTime();\n // 控制时间片\n if (nowts - timefragment >= this.options.interval) {\n timefragment = nowts;\n handleWatch(e as DeviceOrientationEvent);\n }\n };\n window.addEventListener('deviceorientation', this.watchListener, false);\n }\n }\n\n unWatch () {\n assertExist(this.watchListener);\n if (useWindVane) {\n switchWindVane(false);\n document.removeEventListener('motion.gyro', this.watchListener);\n } else if (useJSBridge) {\n switchIOSEvent(false);\n document.removeEventListener('accelerometerChange', this.watchListener);\n } else {\n window.removeEventListener('deviceorientation', this.watchListener);\n }\n this.stoped = true;\n this.watchListener = undefined;\n }\n\n pause () {\n this.stoped = true;\n if (useJSBridge) {\n switchIOSEvent(false);\n }\n }\n\n continue () {\n this.stoped = false;\n if (useJSBridge) {\n switchIOSEvent(true, this.options.interval / 1000);\n }\n }\n\n private isValid (x: number, y: number) {\n // 判断是否和上次的值一样,检测有没有变\n return this.lastX !== x || this.lastY !== y;\n }\n}\n\n// 开启/关闭 iOS 的陀螺仪监听\nfunction switchIOSEvent (open: boolean, interval?: number) {\n window.AlipayJSBridge.call(\n 'watchShake',\n {\n monitorGyroscope: false,\n monitorAccelerometer: !!open,\n interval: !open ? 10 : parseFloat(interval!.toFixed(3)),\n },\n () => { }\n );\n}\n\nfunction switchWindVane (open: boolean, interval?: number) {\n const params = {\n // 是开启还是关闭陀螺仪的监听\n on: open,\n // 陀螺仪事件的时间间隔\n frequency: interval,\n };\n\n window.WindVane.call('WVMotion', 'listenGyro', params, (e: Event) => {\n console.info('Call WVMotion success.');\n }, (e: Event) => {\n console.error(`Call WVMotion failed: ${JSON.stringify(e)}.`);\n });\n}\n","import type { CompositionTransformerAcceler } from './composition-transformer-acceler';\nimport { DeviceOrientation } from './device-orientation';\n\nexport type AccelerMotionData = {\n x: number,\n y: number,\n beta: number,\n gamma: number,\n};\n\n/**\n *\n */\nexport class OrientationAdapterAcceler {\n private transformers: CompositionTransformerAcceler[] = [];\n private connected = false;\n private accelerMotion: DeviceOrientation | null = null;\n private validRange = { // 限制 3d 角度范围\n alpha: [-60, 60], // 相对范围\n beta: [-80, 80], // 上下翻转\n gamma: [-89, 89], // 左右翻转\n };\n\n connect () {\n if (!this.connected) {\n this.accelerMotion = new DeviceOrientation({\n X: true, // 监听X(beta)轴\n Y: true, // 监听Y(gamma)轴\n interval: Math.floor(1000 / 60), // 监听时间片段(一秒30帧)\n useRequestAnimationFrame: true, // 使用 requestAnimationFrame 对齐\n relativeBeta: false, // bate 角度使用相对初始化的\n relativeGamma: false, // gamma 角度使用相对初始化的\n validRange: this.validRange,\n stableRange: 3, // 稳定区间\n });\n this.accelerMotion.watch((x, y, { beta, gamma }) => {\n const motion: AccelerMotionData = {\n x, y, beta, gamma,\n };\n\n this.dispatchMotion(motion);\n });\n }\n this.connected = true;\n }\n\n disconnect () {\n if (this.accelerMotion) {\n this.accelerMotion.unWatch();\n }\n this.connected = false;\n }\n\n /**\n *\n * @param motion\n */\n dispatchMotion (motion: AccelerMotionData) {\n this.transformers.forEach(t => t.update(motion));\n }\n\n addTransformer (transformer: CompositionTransformerAcceler) {\n if (!this.transformers.includes(transformer)) {\n this.transformers.push(transformer);\n }\n }\n\n removeTransformer (transformer: CompositionTransformerAcceler) {\n const index = this.transformers.indexOf(transformer);\n\n if (index > -1) {\n this.transformers.splice(index, 1);\n }\n\n return this.transformers.length === 0;\n }\n}\n\nlet adapter: OrientationAdapterAcceler;\n\nexport function getAccelerAdapter () {\n if (!adapter) {\n adapter = new OrientationAdapterAcceler();\n }\n\n return adapter;\n}\n","import type { Composition, Disposable } from '@galacean/effects';\nimport { AbstractPlugin } from '@galacean/effects';\nimport { CompositionTransformerAcceler } from './composition-transformer-acceler';\nimport type { OrientationAdapterAcceler } from './orientation-adapter-acceler';\nimport { getAccelerAdapter } from './orientation-adapter-acceler';\n\nexport class OrientationPluginLoader extends AbstractPlugin implements Disposable {\n override order = 90;\n\n private adapter: OrientationAdapterAcceler | null = null;\n\n override onCompositionConstructed () {\n this.adapter = getAdapter();\n this.adapter?.connect();\n this.bindAccelerDocumentEvent();\n }\n\n override onCompositionReset (composition: Composition): void {\n const transformer = composition.loaderData.deviceTransformer = new CompositionTransformerAcceler(composition);\n\n this.adapter?.addTransformer(transformer);\n }\n\n override onCompositionUpdate (composition: Composition) {\n const transformer = composition.loaderData.deviceTransformer as CompositionTransformerAcceler;\n\n if (transformer) {\n transformer.updateOrientation();\n }\n }\n\n override onCompositionDestroyed (composition: Composition): void {\n const empty = this.adapter?.removeTransformer(composition.loaderData.deviceTransformer);\n\n if (empty) {\n this.adapter?.disconnect();\n }\n }\n\n private handleConnect = () => {\n if (!closeManually) {\n this.adapter?.connect();\n }\n };\n\n private handleDisconnect = () => {\n this.adapter?.disconnect();\n };\n\n private bindAccelerDocumentEvent () {\n this.unbindAccelerDocumentEvent(); // 保证全局只监听一份\n document.addEventListener('resume', this.handleConnect, false);\n document.addEventListener('pause', this.handleDisconnect, false);\n document.addEventListener('back', this.handleDisconnect, false);\n }\n\n private unbindAccelerDocumentEvent () {\n document.removeEventListener('resume', this.handleConnect);\n document.removeEventListener('pause', this.handleDisconnect);\n document.removeEventListener('back', this.handleDisconnect);\n }\n\n dispose (): void {\n getAdapter().disconnect();\n this.unbindAccelerDocumentEvent();\n }\n}\n\n// 是否是手动关闭,如果是,那么 resume 时不要恢复\nlet closeManually = false;\n\n/**\n *\n * @returns\n */\nexport function getAdapter () {\n // 运动感应类型(默认使用加速度,Native 环境使用陀螺仪)\n return getAccelerAdapter();\n}\n\nexport function closeDeviceMotion () {\n closeManually = true;\n getAdapter().disconnect();\n}\n\nexport function openDeviceMotion () {\n closeManually = false;\n getAdapter().connect();\n}\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 */\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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\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};\n","import type { spec } from '@galacean/effects';\nimport { ItemBehaviour, effectsClass } from '@galacean/effects';\nimport type { CompositionTransformerAcceler } from './composition-transformer-acceler';\n\n@effectsClass('OrientationComponent')\nexport class OrientationComponent extends ItemBehaviour {\n private targets: spec.PluginGyroscopeTarget[];\n\n override fromData (data: any) {\n super.fromData(data);\n\n const { targets } = data.options;\n\n if (targets) {\n this.targets = targets.map((t: any) => ({\n name: t.name,\n xMin: +t.xMin || 0,\n yMin: +t.yMin || 0,\n xMax: +t.xMax || 0,\n yMax: +t.yMax || 0,\n vMin: +t.vMin || 0,\n hMin: +t.hMin || 0,\n vMax: +t.vMax || 0,\n hMax: +t.hMax || 0,\n }));\n }\n\n }\n\n override start () {\n const transformer = this.item.composition?.loaderData.deviceTransformer as CompositionTransformerAcceler;\n\n if (transformer) {\n this.targets?.forEach(target => transformer.addTarget(target));\n transformer.initComposition();\n }\n }\n\n override update (dt: number) {\n const transformer = this.item.composition?.loaderData.deviceTransformer as CompositionTransformerAcceler;\n\n if (transformer) {\n transformer.updateOrientation();\n }\n }\n\n override onDestroy () {\n this.targets?.forEach(target => this.item.composition?.loaderData.deviceTransformer?.removeTarget(target.name));\n }\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { VFXItem, logger, registerPlugin } from '@galacean/effects';\nimport { OrientationPluginLoader } from './orientation-plugin-loader';\n\ndeclare global {\n interface Window {\n ge: any,\n }\n}\n\nregisterPlugin('orientation-transformer', OrientationPluginLoader, VFXItem);\n\nexport { getAdapter, closeDeviceMotion, openDeviceMotion, OrientationPluginLoader } from './orientation-plugin-loader';\nexport { OrientationAdapterAcceler } from './orientation-adapter-acceler';\nexport * from './orientation-component';\n\nexport const version = __VERSION__;\n\nlogger.info(`Plugin orientation transformer version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 Orientation Transformer 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the Orientation Transformer plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\n );\n}\n"],"names":["_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","value","writable","configurable","CompositionTransformerAcceler","composition","targets","records","currentPos","currentRot","gammaRange","betaRange","update","x","y","beta","gamma","currentEvent","updateOrientation","event","getOwnPropertyNames","forEach","name","moveLayer","initComposition","items","i","length","item","target","position","transform","toArray","rotation","currentPosition","setPosition","setRotation","addTarget","removeTarget","b","g","layer","initPosition","initRotation","clamp","mapRange","normalize","xMin","xMax","yMin","yMax","br","gr","hMin","hMax","vMin","vMax","slice","range","t","min","max","a","_extends","assign","arguments","source","key","hasOwnProperty","call","apply","angleLimit","angleObj","validRange","flagAlpha","flagBeta","flagGamma","isArray","alpha","referAlphaA","referAlphaB","STABLE_RANGE","MAX_CHANGE","MIN_CHANGE","VALUE_POOL_LENGTH","Filtering","options","lastValue","valuePool","stableFix","stableRange","Math","abs","changeLimit","result","linearRegressionMedian","push","getLinearRegressionFixedVal","shift","linearRegression","n","sumX","sumY","sumXY","sumXX","sumYY","avgX","avgY","pow","sqrt","createLinearRegressionFx","values","index","fx","map","useJSBridge","isIOSByUA","window","AlipayJSBridge","useWindVane","WindVane","defaultOptions","X","Y","interval","floor","useRequestAnimationFrame","relativeBeta","relativeGamma","DeviceOrientation","lastX","lastY","prevAcceler","z","stoped","mergeOptions","filterX","filterY","watch","callback","watchListener","timefragment","nowts","referGamma","NaN","referBeta","isInValidDegRange","handleWatch","e","isNaN","isValid","requestAnimationFrame","switchWindVane","param","evt","document","addEventListener","isMiniProgram","switchIOSEvent","data","Date","getTime","unWatch","assertExist","removeEventListener","undefined","pause","continue","open","monitorGyroscope","monitorAccelerometer","parseFloat","toFixed","params","on","frequency","console","info","error","JSON","stringify","OrientationAdapterAcceler","transformers","connected","accelerMotion","connect","motion","dispatchMotion","disconnect","addTransformer","transformer","includes","removeTransformer","indexOf","splice","adapter","getAccelerAdapter","OrientationPluginLoader","order","handleConnect","closeManually","handleDisconnect","onCompositionConstructed","getAdapter","bindAccelerDocumentEvent","onCompositionReset","loaderData","deviceTransformer","onCompositionUpdate","onCompositionDestroyed","empty","unbindAccelerDocumentEvent","dispose","AbstractPlugin","closeDeviceMotion","openDeviceMotion","__decorate","decorators","desc","c","r","getOwnPropertyDescriptor","d","Reflect","decorate","defineProperty","SuppressedError","suppressed","message","Error","OrientationComponent","fromData","start","dt","onDestroy","ItemBehaviour","effectsClass","registerPlugin","VFXItem","version","logger","EFFECTS"],"mappings":"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"}
package/dist/alipay.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as EFFECTS from '@galacean/effects/alipay';
2
- import { assertExist, AbstractPlugin, effectsClass, ItemBehaviour, registerPlugin, VFXItem, logger } from '@galacean/effects/alipay';
3
- import { navigator, window, document } from '@galacean/appx-adapter/alipay';
2
+ import { isArray, isIOSByUA, isMiniProgram, assertExist, AbstractPlugin, effectsClass, ItemBehaviour, registerPlugin, VFXItem, logger } from '@galacean/effects/alipay';
3
+ import { window, document } from '@galacean/appx-adapter/alipay';
4
4
 
5
5
  function _set_prototype_of(o, p) {
6
6
  _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
@@ -148,10 +148,6 @@ function _extends() {
148
148
  return _extends.apply(this, arguments);
149
149
  }
150
150
 
151
- function getObjectType(obj) {
152
- return Object.prototype.toString.call(obj);
153
- }
154
-
155
151
  /**
156
152
  * 角度限制
157
153
  * @internal
@@ -161,7 +157,7 @@ function getObjectType(obj) {
161
157
  var flagAlpha = true;
162
158
  var flagBeta = true;
163
159
  var flagGamma = true;
164
- if (getObjectType(validRange.alpha) === "[object Array]" && validRange.alpha.length >= 2) {
160
+ if (isArray(validRange.alpha) && validRange.alpha.length >= 2) {
165
161
  var referAlphaA = angleObj.alpha + validRange.alpha[0];
166
162
  var referAlphaB = angleObj.alpha + validRange.alpha[1];
167
163
  referAlphaA = referAlphaA < 0 ? referAlphaA + 360 : referAlphaA;
@@ -172,31 +168,15 @@ function getObjectType(obj) {
172
168
  flagAlpha = angleObj.alpha > referAlphaA || angleObj.alpha < referAlphaB;
173
169
  }
174
170
  }
175
- if (getObjectType(validRange.beta) === "[object Array]" && validRange.beta.length >= 2) {
171
+ if (isArray(validRange.beta) && validRange.beta.length >= 2) {
176
172
  flagBeta = angleObj.beta >= validRange.beta[0] && angleObj.beta <= validRange.beta[1];
177
173
  }
178
- if (getObjectType(validRange.gamma) === "[object Array]" && validRange.gamma.length >= 2) {
174
+ if (isArray(validRange.gamma) && validRange.gamma.length >= 2) {
179
175
  flagGamma = angleObj.gamma >= validRange.gamma[0] && angleObj.gamma <= validRange.gamma[1];
180
176
  }
181
177
  return flagAlpha && flagBeta && flagGamma;
182
178
  }
183
179
 
184
- function isIOS() {
185
- var str = navigator.userAgent.toLowerCase();
186
- var ver = str.match(/cpu (iphone )?os (.*?) like mac os/);
187
- return ver ? parseInt(ver[2], 10) : 0;
188
- }
189
- function isMiniProgram() {
190
- return isAlipayMiniApp() || isWechatMiniApp();
191
- }
192
- function isAlipayMiniApp() {
193
- var _my;
194
- return typeof my !== "undefined" && ((_my = my) == null ? void 0 : _my.renderTarget) === "web";
195
- }
196
- function isWechatMiniApp() {
197
- return window.__wxjs_environment === "miniprogram";
198
- }
199
-
200
180
  /**
201
181
  * 稳定区间
202
182
  */ var STABLE_RANGE = 3;
@@ -310,7 +290,7 @@ function getLinearRegressionFixedVal(valuePool) {
310
290
  return fx(valuePool.length / 2);
311
291
  }
312
292
 
313
- var useJSBridge = isIOS() && typeof window.AlipayJSBridge !== "undefined";
293
+ var useJSBridge = isIOSByUA() && typeof window.AlipayJSBridge !== "undefined";
314
294
  var useWindVane = typeof window.WindVane !== "undefined";
315
295
  // 默认参数
316
296
  var defaultOptions = {
@@ -787,7 +767,7 @@ OrientationComponent = __decorate([
787
767
  ], OrientationComponent);
788
768
 
789
769
  registerPlugin("orientation-transformer", OrientationPluginLoader, VFXItem);
790
- var version = "2.0.0-alpha.27";
770
+ var version = "2.0.0-alpha.29";
791
771
  logger.info("Plugin orientation transformer version: " + version + ".");
792
772
  if (version !== EFFECTS.version) {
793
773
  console.error("注意:请统一 Orientation Transformer 插件与 Player 版本,不统一的版本混用会有不可预知的后果!", "\nAttention: Please ensure the Orientation Transformer plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!");