@galacean/effects-plugin-orientation-transformer 1.2.6 → 1.3.0-alpha.1

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.
@@ -1,11 +1,4 @@
1
- import type { Composition } from '@galacean/effects';
2
- export interface CompositionTransformerTarget {
3
- name: string;
4
- xMin: number;
5
- xMax: number;
6
- yMin: number;
7
- yMax: number;
8
- }
1
+ import type { Composition, spec } from '@galacean/effects';
9
2
  type EventType = {
10
3
  x: number;
11
4
  y: number;
@@ -14,7 +7,8 @@ export declare class CompositionTransformerAcceler {
14
7
  private readonly composition;
15
8
  private readonly targets;
16
9
  private readonly records;
17
- private readonly current;
10
+ private readonly currentPos;
11
+ private readonly currentRot;
18
12
  private gammaRange;
19
13
  private betaRange;
20
14
  private currentEvent?;
@@ -22,7 +16,7 @@ export declare class CompositionTransformerAcceler {
22
16
  update({ x, y }: EventType): void;
23
17
  updateOrientation(): void;
24
18
  initComposition(): void;
25
- addTarget(target: CompositionTransformerTarget): void;
19
+ addTarget(target: spec.PluginGyroscopeTarget): void;
26
20
  removeTarget(name: string): void;
27
21
  private moveLayer;
28
22
  }
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects player orientation transformer plugin
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,意绮
6
- * Version: v1.2.6
6
+ * Version: v1.3.0-alpha.1
7
7
  */
8
8
 
9
9
  'use strict';
@@ -86,14 +86,64 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
86
86
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
87
87
  };
88
88
 
89
+ /**
90
+ * 水平旋转变化起始角(手机处于改角度时无变化)
91
+ * 待调试
92
+ */
93
+ var VERTICAL_INIT_DEGREE = 45;
94
+ var TransformVFXItem = /** @class */ (function (_super) {
95
+ __extends(TransformVFXItem, _super);
96
+ function TransformVFXItem() {
97
+ return _super !== null && _super.apply(this, arguments) || this;
98
+ }
99
+ Object.defineProperty(TransformVFXItem.prototype, "type", {
100
+ get: function () {
101
+ return 'orientation-transformer';
102
+ },
103
+ enumerable: false,
104
+ configurable: true
105
+ });
106
+ TransformVFXItem.prototype.onConstructed = function (options) {
107
+ var targets = options.content.options.targets;
108
+ if (targets) {
109
+ this.targets = targets.map(function (t) { return ({
110
+ name: t.name,
111
+ xMin: +t.xMin || 0,
112
+ yMin: +t.yMin || 0,
113
+ xMax: +t.xMax || 0,
114
+ yMax: +t.yMax || 0,
115
+ vMin: +t.vMin || 0,
116
+ hMin: +t.hMin || 0,
117
+ vMax: +t.vMax || 0,
118
+ hMax: +t.hMax || 0,
119
+ }); });
120
+ }
121
+ };
122
+ TransformVFXItem.prototype.onItemRemoved = function (composition) {
123
+ var _a;
124
+ (_a = this.targets) === null || _a === void 0 ? void 0 : _a.forEach(function (target) { var _a; return (_a = composition.loaderData.deviceTransformer) === null || _a === void 0 ? void 0 : _a.removeTarget(target.name); });
125
+ };
126
+ TransformVFXItem.prototype.doCreateContent = function (composition) {
127
+ var _a;
128
+ var transformer = composition.loaderData.deviceTransformer;
129
+ if (transformer) {
130
+ (_a = this.targets) === null || _a === void 0 ? void 0 : _a.forEach(function (target) { return transformer.addTarget(target); });
131
+ transformer.initComposition();
132
+ }
133
+ return {};
134
+ };
135
+ return TransformVFXItem;
136
+ }(effects.VFXItem));
137
+
89
138
  var CompositionTransformerAcceler = /** @class */ (function () {
90
139
  function CompositionTransformerAcceler(composition) {
91
140
  this.composition = composition;
92
141
  this.targets = {};
93
142
  this.records = {};
94
- this.current = {};
143
+ this.currentPos = {};
144
+ this.currentRot = {};
95
145
  this.gammaRange = [-89, 89];
96
- this.betaRange = [-80, 80];
146
+ this.betaRange = [-89, 89];
97
147
  }
98
148
  CompositionTransformerAcceler.prototype.update = function (_a) {
99
149
  var x = _a.x, y = _a.y;
@@ -115,14 +165,19 @@ var CompositionTransformerAcceler = /** @class */ (function () {
115
165
  var target = this.targets[item.name];
116
166
  if (target) {
117
167
  var position = item.transform.position.toArray();
118
- var currentPosition = this.current[item.name];
168
+ var rotation = item.transform.rotation.toArray();
169
+ var currentPosition = this.currentPos[item.name];
170
+ var currentRot = this.currentRot[item.name];
119
171
  this.records[item.name] = {
120
172
  item: item,
121
173
  position: position,
174
+ rotation: rotation,
122
175
  };
123
176
  if (currentPosition) {
124
- var _a = __read(currentPosition, 3), x = _a[0], y = _a[1], z = _a[2];
125
- item.transform.setPosition(x, y, z);
177
+ item.transform.setPosition(currentPosition[0], currentPosition[1], currentPosition[2]);
178
+ }
179
+ if (currentRot) {
180
+ item.transform.setRotation(currentRot[0], currentRot[1], currentRot[2]);
126
181
  }
127
182
  }
128
183
  }
@@ -135,12 +190,13 @@ var CompositionTransformerAcceler = /** @class */ (function () {
135
190
  delete this.records[name];
136
191
  };
137
192
  CompositionTransformerAcceler.prototype.moveLayer = function (name, _a) {
138
- var _b;
139
- var _c;
193
+ var _b, _c;
194
+ var _d;
140
195
  var x = _a.x, y = _a.y;
141
- var layer = (_c = this.records[name]) === null || _c === void 0 ? void 0 : _c.item;
196
+ var layer = (_d = this.records[name]) === null || _d === void 0 ? void 0 : _d.item;
142
197
  if (layer) {
143
198
  var initPosition = this.records[name].position;
199
+ var initRotation = this.records[name].rotation;
144
200
  var target = this.targets[name];
145
201
  var beta = clamp(x, this.betaRange), gamma = clamp(y, this.gammaRange);
146
202
  if (target) {
@@ -149,8 +205,17 @@ var CompositionTransformerAcceler = /** @class */ (function () {
149
205
  initPosition[1] + 1.2 * mapRange((gamma - this.betaRange[0]) / (this.betaRange[1] - this.betaRange[0]), target.yMin, target.yMax),
150
206
  initPosition[2],
151
207
  ];
208
+ var br = (clamp(x * 2, this.betaRange) - this.betaRange[0]) / (this.betaRange[1] - this.betaRange[0]);
209
+ var gr = (clamp(y * 2 - VERTICAL_INIT_DEGREE, this.gammaRange) - this.gammaRange[0]) / (this.gammaRange[1] - this.gammaRange[0]);
210
+ var rotation = [
211
+ initRotation[0] + mapRange(gr, target.hMin, target.hMax),
212
+ initRotation[1] + mapRange(br, target.vMin, target.vMax),
213
+ initRotation[2],
214
+ ];
152
215
  (_b = layer.transform).setPosition.apply(_b, __spreadArray([], __read(position), false));
153
- this.current[name] = position.slice();
216
+ (_c = layer.transform).setRotation.apply(_c, __spreadArray([], __read(rotation), false));
217
+ this.currentPos[name] = position.slice();
218
+ this.currentRot[name] = rotation.slice();
154
219
  }
155
220
  }
156
221
  };
@@ -750,48 +815,8 @@ function openDeviceMotion() {
750
815
  getAdapter().connect();
751
816
  }
752
817
 
753
- var TransformVFXItem = /** @class */ (function (_super) {
754
- __extends(TransformVFXItem, _super);
755
- function TransformVFXItem() {
756
- return _super !== null && _super.apply(this, arguments) || this;
757
- }
758
- Object.defineProperty(TransformVFXItem.prototype, "type", {
759
- get: function () {
760
- return 'orientation-transformer';
761
- },
762
- enumerable: false,
763
- configurable: true
764
- });
765
- TransformVFXItem.prototype.onConstructed = function (options) {
766
- var targets = options.content.options.targets;
767
- if (targets) {
768
- this.targets = targets.map(function (t) { return ({
769
- name: t.name,
770
- xMin: +t.xMin || 0,
771
- yMin: +t.yMin || 0,
772
- xMax: +t.xMax || 0,
773
- yMax: +t.yMax || 0,
774
- }); });
775
- }
776
- };
777
- TransformVFXItem.prototype.onItemRemoved = function (composition) {
778
- var _a;
779
- (_a = this.targets) === null || _a === void 0 ? void 0 : _a.forEach(function (target) { var _a; return (_a = composition.loaderData.deviceTransformer) === null || _a === void 0 ? void 0 : _a.removeTarget(target.name); });
780
- };
781
- TransformVFXItem.prototype.doCreateContent = function (composition) {
782
- var _a;
783
- var transformer = composition.loaderData.deviceTransformer;
784
- if (transformer) {
785
- (_a = this.targets) === null || _a === void 0 ? void 0 : _a.forEach(function (target) { return transformer.addTarget(target); });
786
- transformer.initComposition();
787
- }
788
- return {};
789
- };
790
- return TransformVFXItem;
791
- }(effects.VFXItem));
792
-
793
818
  effects.registerPlugin('orientation-transformer', OrientationPluginLoader, TransformVFXItem);
794
- var version = "1.2.6";
819
+ var version = "1.3.0-alpha.1";
795
820
  effects.logger.info('plugin orientation transformer version: ' + version);
796
821
 
797
822
  exports.OrientationAdapterAcceler = OrientationAdapterAcceler;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.min.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects player orientation transformer plugin
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,意绮
6
- * Version: v1.2.6
6
+ * Version: v1.3.0-alpha.1
7
7
  */
8
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@galacean/effects")):"function"==typeof define&&define.amd?define(["exports","@galacean/effects"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).ge=t.ge||{},t.ge.orientationTransformerPlugin={}),t.ge)}(this,(function(t,e){"use strict";var n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},n(t,e)};function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}var r=function(){return r=Object.assign||function(t){for(var e,n=1,o=arguments.length;n<o;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t},r.apply(this,arguments)};function i(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,i=n.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a}function a(t,e,n){if(n||2===arguments.length)for(var o,r=0,i=e.length;r<i;r++)!o&&r in e||(o||(o=Array.prototype.slice.call(e,0,r)),o[r]=e[r]);return t.concat(o||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError;var s=function(){function t(t){this.composition=t,this.targets={},this.records={},this.current={},this.gammaRange=[-89,89],this.betaRange=[-80,80]}return t.prototype.update=function(t){var e=t.x,n=t.y;this.currentEvent={x:e,y:n}},t.prototype.updateOrientation=function(){var t=this,e=this.currentEvent;e&&Object.getOwnPropertyNames(this.targets).forEach((function(n){t.moveLayer(n,e)}))},t.prototype.initComposition=function(){for(var t=this.composition.items,e=0;e<t.length;e++){var n=t[e];if(this.targets[n.name]){var o=n.transform.position.toArray(),r=this.current[n.name];if(this.records[n.name]={item:n,position:o},r){var a=i(r,3),s=a[0],c=a[1],l=a[2];n.transform.setPosition(s,c,l)}}}},t.prototype.addTarget=function(t){this.targets[t.name]=t},t.prototype.removeTarget=function(t){delete this.targets[t],delete this.records[t]},t.prototype.moveLayer=function(t,e){var n,o,r=e.x,s=e.y,u=null===(o=this.records[t])||void 0===o?void 0:o.item;if(u){var p=this.records[t].position,h=this.targets[t],f=c(r,this.betaRange),d=c(s,this.gammaRange);if(h){var v=[p[0]+1.2*l((f-this.gammaRange[0])/(this.gammaRange[1]-this.gammaRange[0]),h.xMin,h.xMax),p[1]+1.2*l((d-this.betaRange[0])/(this.betaRange[1]-this.betaRange[0]),h.yMin,h.yMax),p[2]];(n=u.transform).setPosition.apply(n,a([],i(v),!1)),this.current[t]=v.slice()}}},t}();function c(t,e){return t<e[0]?e[0]:t>e[1]?e[1]:t}function l(t,e,n){return e+(n-e)*t}function u(t){return Object.prototype.toString.call(t)}function p(t,e){var n=!0,o=!0,r=!0;if("[object Array]"===u(e.alpha)&&e.alpha.length>=2){var i=t.alpha+e.alpha[0],a=t.alpha+e.alpha[1];n=(i=i<0?i+360:i)<(a=a>360?a-360:a)?t.alpha>i&&t.alpha<a:t.alpha>i||t.alpha<a}return"[object Array]"===u(e.beta)&&e.beta.length>=2&&(o=t.beta>=e.beta[0]&&t.beta<=e.beta[1]),"[object Array]"===u(e.gamma)&&e.gamma.length>=2&&(r=t.gamma>=e.gamma[0]&&t.gamma<=e.gamma[1]),n&&o&&r}function h(t,n){if(!e.isObject(t)&&!e.isArray(t))return t;for(var o=e.isArray(t)?a([],i(t),!1):r({},t),s=arguments.length,c=1;c<s;c++){var l=arguments[c]||{};if(e.isObject(l)){var u=void 0;for(u in l)l.hasOwnProperty(u)&&(e.isObject(o[u])&&e.isObject(l[u])?o[u]=h(o[u],l[u]):e.isObject(l[u])||e.isArray(l[u])?o[u]=h(l[u]):o[u]=l[u]);for(u in o)e.isObject(o[u])&&o.hasOwnProperty(u)&&!l.hasOwnProperty(u)&&(o[u]=h(o[u]))}}if(1===s)for(var u in o)e.isObject(o[u])&&o.hasOwnProperty(u)&&(o[u]=h(o[u]));return o}var f=function(){function t(t){void 0===t&&(t={}),this.options=t,this.lastValue=0,this.valuePool=[]}return t.prototype.stableFix=function(t){var e=this.options.stableRange||3;return Math.abs(t)<e?0:t>e?t-e:t+e},t.prototype.changeLimit=function(t){var e=this.lastValue,n=t;return Math.abs(t-e)>5&&(n=e<t?e+5:e-5),Math.abs(t-e)<1&&(n=e),this.lastValue=n,n},t.prototype.linearRegressionMedian=function(t){var e,n,o;return this.valuePool.push(t),this.valuePool.length>=5?(n=this.valuePool,o=function(t){var e=[],n=[];t.forEach((function(t,o){e.push(o),n.push(t)}));var o=function(t,e){for(var n={},o=e.length,r=0,i=0,a=0,s=0,c=0,l=0;l<e.length;l++)r+=t[l],i+=e[l],a+=t[l]*e[l],s+=t[l]*t[l],c+=e[l]*e[l];var u=r/o,p=i/o;return n.a=(a-o*u*p)/(s-o*u*u),n.b=p-n.a*u,n.miss=Math.pow((o*a-r*i)/Math.sqrt((o*s-r*r)*(o*c-i*i)),2),n}(e,n);return function(t){return o.a*t+o.b}}(n),n=n.map((function(t,e){return o(e)})),e=o(n.length/2),this.valuePool.shift()):e=this.lastValue,e},t}();var d,v=((d=navigator.userAgent.toLowerCase().match(/cpu (iphone )?os (.*?) like mac os/))?parseInt(d[2],10):0)&&void 0!==window.AlipayJSBridge,m=void 0!==window.WindVane,g={X:!0,Y:!0,interval:Math.floor(1e3/30),useRequestAnimationFrame:!0,relativeBeta:!1,relativeGamma:!1,validRange:{alpha:[-60,60],beta:[-60,180],gamma:[-89,89]},stableRange:3},y=function(){function t(t){void 0===t&&(t={}),this.lastX=0,this.lastY=0,this.prevAcceler={x:0,y:0,z:0},this.stoped=!1,this.options=h(g,t);var e=this.options.stableRange;this.filterX=new f({stableRange:e}),this.filterY=new f({stableRange:e})}return t.prototype.watch=function(t){var e=this;if("function"==typeof t&&!this.watchListener){var n,o,r,i,a,s,c,l=0,u=0,h=0,f=0,d=function(l){e.stoped||(n=l.alpha,o=l.beta,r=l.gamma,f||(f=o||0),h||(h=r||0),p.call(e,{alpha:n,beta:o,gamma:r},e.options.validRange)&&(e.options.X?(i=r-h,s=e.options.relativeGamma?i:r,s=e.filterX.stableFix(s),s=e.filterX.changeLimit(s),s=e.filterX.linearRegressionMedian(+s)):s=0,e.options.Y?(a=o-f,c=e.options.relativeBeta?a:o,c=e.filterY.stableFix(c),c=e.filterY.changeLimit(c),c=e.filterY.linearRegressionMedian(+c)):c=0,e.isValid(s,c)&&(e.options.useRequestAnimationFrame?window.requestAnimationFrame((function(){t(s,c,{alpha:n,beta:o,gamma:r})})):t(s,c,{alpha:n,beta:o,gamma:r}),e.lastX=s,e.lastY=c)))};this.stoped=!1,m?(w(!0,this.options.interval),this.watchListener=function(t){if("param"in t){var n=t.param,o=n.x,r=n.y,i=n.z;if(o===e.prevAcceler.x&&r===e.prevAcceler.y&&i===e.prevAcceler.z)return;e.prevAcceler={x:o,y:r,z:i},d({alpha:180*+i,beta:-90*+r,gamma:90*+o})}},document.addEventListener("motion.gyro",this.watchListener,!1)):v?(b(!0,this.options.interval/1e3),this.watchListener=function(t){if(t&&"data"in t){var e=t.data,n=e.x,o=e.y,r=e.z;d({alpha:180*r,beta:-90*o,gamma:90*n})}},document.addEventListener("accelerometerChange",this.watchListener,!1)):(this.watchListener=function(t){(u=(new Date).getTime())-l>=e.options.interval&&(l=u,d(t))},window.addEventListener("deviceorientation",this.watchListener,!1))}},t.prototype.unWatch=function(){e.assertExist(this.watchListener),m?(w(!1),document.removeEventListener("motion.gyro",this.watchListener)):v?(b(!1),document.removeEventListener("accelerometerChange",this.watchListener)):window.removeEventListener("deviceorientation",this.watchListener),this.stoped=!0,this.watchListener=void 0},t.prototype.pause=function(){this.stoped=!0,v&&b(!1)},t.prototype.continue=function(){this.stoped=!1,v&&b(!0,this.options.interval/1e3)},t.prototype.isValid=function(t,e){return this.lastX!==t||this.lastY!==e},t}();function b(t,e){window.AlipayJSBridge.call("watchShake",{monitorGyroscope:!1,monitorAccelerometer:!!t,interval:t?parseFloat(e.toFixed(3)):10},(function(){}))}function w(t,e){var n={on:t,frequency:e};window.WindVane.call("WVMotion","listenGyro",n,(function(t){console.info("call WVMotion success")}),(function(t){console.error("call WVMotion failed:"+JSON.stringify(t))}))}var M,x=function(){function t(){this.transformers=[],this.connected=!1,this.accelerMotion=null,this.validRange={alpha:[-60,60],beta:[-80,80],gamma:[-89,89]}}return t.prototype.connect=function(){var t=this;this.connected||(this.accelerMotion=new y({X:!0,Y:!0,interval:Math.floor(1e3/60),useRequestAnimationFrame:!0,relativeBeta:!1,relativeGamma:!1,validRange:this.validRange,stableRange:3}),this.accelerMotion.watch((function(e,n){var o={x:e,y:n};t.dispatchMotion(o)}))),this.connected=!0},t.prototype.disconnect=function(){this.accelerMotion&&this.accelerMotion.unWatch(),this.connected=!1},t.prototype.dispatchMotion=function(t){this.transformers.forEach((function(e){return e.update(t)}))},t.prototype.addTransformer=function(t){this.transformers.includes(t)||this.transformers.push(t)},t.prototype.removeTransformer=function(t){var e=this.transformers.indexOf(t);return e>-1&&this.transformers.splice(e,1),0===this.transformers.length},t}();var A=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.order=90,e.adapter=null,e.handleConnect=function(){var t;L||null===(t=e.adapter)||void 0===t||t.connect()},e.handleDisconnect=function(){var t;null===(t=e.adapter)||void 0===t||t.disconnect()},e}return o(e,t),e.prototype.onCompositionConstructed=function(){var t;this.adapter=O(),null===(t=this.adapter)||void 0===t||t.connect(),this.bindAccelerDocumentEvent()},e.prototype.onCompositionReset=function(t){var e,n=t.loaderData.deviceTransformer=new s(t);null===(e=this.adapter)||void 0===e||e.addTransformer(n)},e.prototype.onCompositionUpdate=function(t){var e=t.loaderData.deviceTransformer;e&&e.updateOrientation()},e.prototype.onCompositionDestroyed=function(t){var e,n;(null===(e=this.adapter)||void 0===e?void 0:e.removeTransformer(t.loaderData.deviceTransformer))&&(null===(n=this.adapter)||void 0===n||n.disconnect())},e.prototype.bindAccelerDocumentEvent=function(){this.unbindAccelerDocumentEvent(),document.addEventListener("resume",this.handleConnect,!1),document.addEventListener("pause",this.handleDisconnect,!1),document.addEventListener("back",this.handleDisconnect,!1)},e.prototype.unbindAccelerDocumentEvent=function(){document.removeEventListener("resume",this.handleConnect),document.removeEventListener("pause",this.handleDisconnect),document.removeEventListener("back",this.handleDisconnect)},e.prototype.dispose=function(){O().disconnect(),this.unbindAccelerDocumentEvent()},e}(e.AbstractPlugin),L=!1;function O(){return M||(M=new x),M}var R=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),Object.defineProperty(e.prototype,"type",{get:function(){return"orientation-transformer"},enumerable:!1,configurable:!0}),e.prototype.onConstructed=function(t){var e=t.content.options.targets;e&&(this.targets=e.map((function(t){return{name:t.name,xMin:+t.xMin||0,yMin:+t.yMin||0,xMax:+t.xMax||0,yMax:+t.yMax||0}})))},e.prototype.onItemRemoved=function(t){var e;null===(e=this.targets)||void 0===e||e.forEach((function(e){var n;return null===(n=t.loaderData.deviceTransformer)||void 0===n?void 0:n.removeTarget(e.name)}))},e.prototype.doCreateContent=function(t){var e,n=t.loaderData.deviceTransformer;return n&&(null===(e=this.targets)||void 0===e||e.forEach((function(t){return n.addTarget(t)})),n.initComposition()),{}},e}(e.VFXItem);e.registerPlugin("orientation-transformer",A,R);var E="1.2.6";e.logger.info("plugin orientation transformer version: "+E),t.OrientationAdapterAcceler=x,t.closeDeviceMotion=function(){L=!0,O().disconnect()},t.getAdapter=O,t.openDeviceMotion=function(){L=!1,O().connect()},t.version=E,Object.defineProperty(t,"__esModule",{value:!0})}));
8
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@galacean/effects")):"function"==typeof define&&define.amd?define(["exports","@galacean/effects"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).ge=t.ge||{},t.ge.orientationTransformerPlugin={}),t.ge)}(this,(function(t,e){"use strict";var n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},n(t,e)};function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}var r=function(){return r=Object.assign||function(t){for(var e,n=1,o=arguments.length;n<o;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t},r.apply(this,arguments)};function a(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,a=n.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return i}function i(t,e,n){if(n||2===arguments.length)for(var o,r=0,a=e.length;r<a;r++)!o&&r in e||(o||(o=Array.prototype.slice.call(e,0,r)),o[r]=e[r]);return t.concat(o||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError;var s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),Object.defineProperty(e.prototype,"type",{get:function(){return"orientation-transformer"},enumerable:!1,configurable:!0}),e.prototype.onConstructed=function(t){var e=t.content.options.targets;e&&(this.targets=e.map((function(t){return{name:t.name,xMin:+t.xMin||0,yMin:+t.yMin||0,xMax:+t.xMax||0,yMax:+t.yMax||0,vMin:+t.vMin||0,hMin:+t.hMin||0,vMax:+t.vMax||0,hMax:+t.hMax||0}})))},e.prototype.onItemRemoved=function(t){var e;null===(e=this.targets)||void 0===e||e.forEach((function(e){var n;return null===(n=t.loaderData.deviceTransformer)||void 0===n?void 0:n.removeTarget(e.name)}))},e.prototype.doCreateContent=function(t){var e,n=t.loaderData.deviceTransformer;return n&&(null===(e=this.targets)||void 0===e||e.forEach((function(t){return n.addTarget(t)})),n.initComposition()),{}},e}(e.VFXItem),c=function(){function t(t){this.composition=t,this.targets={},this.records={},this.currentPos={},this.currentRot={},this.gammaRange=[-89,89],this.betaRange=[-89,89]}return t.prototype.update=function(t){var e=t.x,n=t.y;this.currentEvent={x:e,y:n}},t.prototype.updateOrientation=function(){var t=this,e=this.currentEvent;e&&Object.getOwnPropertyNames(this.targets).forEach((function(n){t.moveLayer(n,e)}))},t.prototype.initComposition=function(){for(var t=this.composition.items,e=0;e<t.length;e++){var n=t[e];if(this.targets[n.name]){var o=n.transform.position.toArray(),r=n.transform.rotation.toArray(),a=this.currentPos[n.name],i=this.currentRot[n.name];this.records[n.name]={item:n,position:o,rotation:r},a&&n.transform.setPosition(a[0],a[1],a[2]),i&&n.transform.setRotation(i[0],i[1],i[2])}}},t.prototype.addTarget=function(t){this.targets[t.name]=t},t.prototype.removeTarget=function(t){delete this.targets[t],delete this.records[t]},t.prototype.moveLayer=function(t,e){var n,o,r,s=e.x,c=e.y,h=null===(r=this.records[t])||void 0===r?void 0:r.item;if(h){var p=this.records[t].position,f=this.records[t].rotation,d=this.targets[t],m=l(s,this.betaRange),v=l(c,this.gammaRange);if(d){var g=[p[0]+1.2*u((m-this.gammaRange[0])/(this.gammaRange[1]-this.gammaRange[0]),d.xMin,d.xMax),p[1]+1.2*u((v-this.betaRange[0])/(this.betaRange[1]-this.betaRange[0]),d.yMin,d.yMax),p[2]],y=(l(2*s,this.betaRange)-this.betaRange[0])/(this.betaRange[1]-this.betaRange[0]),b=(l(2*c-45,this.gammaRange)-this.gammaRange[0])/(this.gammaRange[1]-this.gammaRange[0]),w=[f[0]+u(b,d.hMin,d.hMax),f[1]+u(y,d.vMin,d.vMax),f[2]];(n=h.transform).setPosition.apply(n,i([],a(g),!1)),(o=h.transform).setRotation.apply(o,i([],a(w),!1)),this.currentPos[t]=g.slice(),this.currentRot[t]=w.slice()}}},t}();function l(t,e){return t<e[0]?e[0]:t>e[1]?e[1]:t}function u(t,e,n){return e+(n-e)*t}function h(t){return Object.prototype.toString.call(t)}function p(t,e){var n=!0,o=!0,r=!0;if("[object Array]"===h(e.alpha)&&e.alpha.length>=2){var a=t.alpha+e.alpha[0],i=t.alpha+e.alpha[1];n=(a=a<0?a+360:a)<(i=i>360?i-360:i)?t.alpha>a&&t.alpha<i:t.alpha>a||t.alpha<i}return"[object Array]"===h(e.beta)&&e.beta.length>=2&&(o=t.beta>=e.beta[0]&&t.beta<=e.beta[1]),"[object Array]"===h(e.gamma)&&e.gamma.length>=2&&(r=t.gamma>=e.gamma[0]&&t.gamma<=e.gamma[1]),n&&o&&r}function f(t,n){if(!e.isObject(t)&&!e.isArray(t))return t;for(var o=e.isArray(t)?i([],a(t),!1):r({},t),s=arguments.length,c=1;c<s;c++){var l=arguments[c]||{};if(e.isObject(l)){var u=void 0;for(u in l)l.hasOwnProperty(u)&&(e.isObject(o[u])&&e.isObject(l[u])?o[u]=f(o[u],l[u]):e.isObject(l[u])||e.isArray(l[u])?o[u]=f(l[u]):o[u]=l[u]);for(u in o)e.isObject(o[u])&&o.hasOwnProperty(u)&&!l.hasOwnProperty(u)&&(o[u]=f(o[u]))}}if(1===s)for(var u in o)e.isObject(o[u])&&o.hasOwnProperty(u)&&(o[u]=f(o[u]));return o}var d=function(){function t(t){void 0===t&&(t={}),this.options=t,this.lastValue=0,this.valuePool=[]}return t.prototype.stableFix=function(t){var e=this.options.stableRange||3;return Math.abs(t)<e?0:t>e?t-e:t+e},t.prototype.changeLimit=function(t){var e=this.lastValue,n=t;return Math.abs(t-e)>5&&(n=e<t?e+5:e-5),Math.abs(t-e)<1&&(n=e),this.lastValue=n,n},t.prototype.linearRegressionMedian=function(t){var e,n,o;return this.valuePool.push(t),this.valuePool.length>=5?(n=this.valuePool,o=function(t){var e=[],n=[];t.forEach((function(t,o){e.push(o),n.push(t)}));var o=function(t,e){for(var n={},o=e.length,r=0,a=0,i=0,s=0,c=0,l=0;l<e.length;l++)r+=t[l],a+=e[l],i+=t[l]*e[l],s+=t[l]*t[l],c+=e[l]*e[l];var u=r/o,h=a/o;return n.a=(i-o*u*h)/(s-o*u*u),n.b=h-n.a*u,n.miss=Math.pow((o*i-r*a)/Math.sqrt((o*s-r*r)*(o*c-a*a)),2),n}(e,n);return function(t){return o.a*t+o.b}}(n),n=n.map((function(t,e){return o(e)})),e=o(n.length/2),this.valuePool.shift()):e=this.lastValue,e},t}();var m,v=((m=navigator.userAgent.toLowerCase().match(/cpu (iphone )?os (.*?) like mac os/))?parseInt(m[2],10):0)&&void 0!==window.AlipayJSBridge,g=void 0!==window.WindVane,y={X:!0,Y:!0,interval:Math.floor(1e3/30),useRequestAnimationFrame:!0,relativeBeta:!1,relativeGamma:!1,validRange:{alpha:[-60,60],beta:[-60,180],gamma:[-89,89]},stableRange:3},b=function(){function t(t){void 0===t&&(t={}),this.lastX=0,this.lastY=0,this.prevAcceler={x:0,y:0,z:0},this.stoped=!1,this.options=f(y,t);var e=this.options.stableRange;this.filterX=new d({stableRange:e}),this.filterY=new d({stableRange:e})}return t.prototype.watch=function(t){var e=this;if("function"==typeof t&&!this.watchListener){var n,o,r,a,i,s,c,l=0,u=0,h=0,f=0,d=function(l){e.stoped||(n=l.alpha,o=l.beta,r=l.gamma,f||(f=o||0),h||(h=r||0),p.call(e,{alpha:n,beta:o,gamma:r},e.options.validRange)&&(e.options.X?(a=r-h,s=e.options.relativeGamma?a:r,s=e.filterX.stableFix(s),s=e.filterX.changeLimit(s),s=e.filterX.linearRegressionMedian(+s)):s=0,e.options.Y?(i=o-f,c=e.options.relativeBeta?i:o,c=e.filterY.stableFix(c),c=e.filterY.changeLimit(c),c=e.filterY.linearRegressionMedian(+c)):c=0,e.isValid(s,c)&&(e.options.useRequestAnimationFrame?window.requestAnimationFrame((function(){t(s,c,{alpha:n,beta:o,gamma:r})})):t(s,c,{alpha:n,beta:o,gamma:r}),e.lastX=s,e.lastY=c)))};this.stoped=!1,g?(M(!0,this.options.interval),this.watchListener=function(t){if("param"in t){var n=t.param,o=n.x,r=n.y,a=n.z;if(o===e.prevAcceler.x&&r===e.prevAcceler.y&&a===e.prevAcceler.z)return;e.prevAcceler={x:o,y:r,z:a},d({alpha:180*+a,beta:-90*+r,gamma:90*+o})}},document.addEventListener("motion.gyro",this.watchListener,!1)):v?(w(!0,this.options.interval/1e3),this.watchListener=function(t){if(t&&"data"in t){var e=t.data,n=e.x,o=e.y,r=e.z;d({alpha:180*r,beta:-90*o,gamma:90*n})}},document.addEventListener("accelerometerChange",this.watchListener,!1)):(this.watchListener=function(t){(u=(new Date).getTime())-l>=e.options.interval&&(l=u,d(t))},window.addEventListener("deviceorientation",this.watchListener,!1))}},t.prototype.unWatch=function(){e.assertExist(this.watchListener),g?(M(!1),document.removeEventListener("motion.gyro",this.watchListener)):v?(w(!1),document.removeEventListener("accelerometerChange",this.watchListener)):window.removeEventListener("deviceorientation",this.watchListener),this.stoped=!0,this.watchListener=void 0},t.prototype.pause=function(){this.stoped=!0,v&&w(!1)},t.prototype.continue=function(){this.stoped=!1,v&&w(!0,this.options.interval/1e3)},t.prototype.isValid=function(t,e){return this.lastX!==t||this.lastY!==e},t}();function w(t,e){window.AlipayJSBridge.call("watchShake",{monitorGyroscope:!1,monitorAccelerometer:!!t,interval:t?parseFloat(e.toFixed(3)):10},(function(){}))}function M(t,e){var n={on:t,frequency:e};window.WindVane.call("WVMotion","listenGyro",n,(function(t){console.info("call WVMotion success")}),(function(t){console.error("call WVMotion failed:"+JSON.stringify(t))}))}var R,x=function(){function t(){this.transformers=[],this.connected=!1,this.accelerMotion=null,this.validRange={alpha:[-60,60],beta:[-80,80],gamma:[-89,89]}}return t.prototype.connect=function(){var t=this;this.connected||(this.accelerMotion=new b({X:!0,Y:!0,interval:Math.floor(1e3/60),useRequestAnimationFrame:!0,relativeBeta:!1,relativeGamma:!1,validRange:this.validRange,stableRange:3}),this.accelerMotion.watch((function(e,n){var o={x:e,y:n};t.dispatchMotion(o)}))),this.connected=!0},t.prototype.disconnect=function(){this.accelerMotion&&this.accelerMotion.unWatch(),this.connected=!1},t.prototype.dispatchMotion=function(t){this.transformers.forEach((function(e){return e.update(t)}))},t.prototype.addTransformer=function(t){this.transformers.includes(t)||this.transformers.push(t)},t.prototype.removeTransformer=function(t){var e=this.transformers.indexOf(t);return e>-1&&this.transformers.splice(e,1),0===this.transformers.length},t}();var A=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.order=90,e.adapter=null,e.handleConnect=function(){var t;L||null===(t=e.adapter)||void 0===t||t.connect()},e.handleDisconnect=function(){var t;null===(t=e.adapter)||void 0===t||t.disconnect()},e}return o(e,t),e.prototype.onCompositionConstructed=function(){var t;this.adapter=O(),null===(t=this.adapter)||void 0===t||t.connect(),this.bindAccelerDocumentEvent()},e.prototype.onCompositionReset=function(t){var e,n=t.loaderData.deviceTransformer=new c(t);null===(e=this.adapter)||void 0===e||e.addTransformer(n)},e.prototype.onCompositionUpdate=function(t){var e=t.loaderData.deviceTransformer;e&&e.updateOrientation()},e.prototype.onCompositionDestroyed=function(t){var e,n;(null===(e=this.adapter)||void 0===e?void 0:e.removeTransformer(t.loaderData.deviceTransformer))&&(null===(n=this.adapter)||void 0===n||n.disconnect())},e.prototype.bindAccelerDocumentEvent=function(){this.unbindAccelerDocumentEvent(),document.addEventListener("resume",this.handleConnect,!1),document.addEventListener("pause",this.handleDisconnect,!1),document.addEventListener("back",this.handleDisconnect,!1)},e.prototype.unbindAccelerDocumentEvent=function(){document.removeEventListener("resume",this.handleConnect),document.removeEventListener("pause",this.handleDisconnect),document.removeEventListener("back",this.handleDisconnect)},e.prototype.dispose=function(){O().disconnect(),this.unbindAccelerDocumentEvent()},e}(e.AbstractPlugin),L=!1;function O(){return R||(R=new x),R}e.registerPlugin("orientation-transformer",A,s);var E="1.3.0-alpha.1";e.logger.info("plugin orientation transformer version: "+E),t.OrientationAdapterAcceler=x,t.closeDeviceMotion=function(){L=!0,O().disconnect()},t.getAdapter=O,t.openDeviceMotion=function(){L=!1,O().connect()},t.version=E,Object.defineProperty(t,"__esModule",{value:!0})}));
9
9
  //# sourceMappingURL=index.min.js.map
package/dist/index.mjs CHANGED
@@ -3,10 +3,10 @@
3
3
  * Description: Galacean Effects player orientation transformer plugin
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,意绮
6
- * Version: v1.2.6
6
+ * Version: v1.3.0-alpha.1
7
7
  */
8
8
 
9
- import { isObject, isArray, assertExist, AbstractPlugin, VFXItem, registerPlugin, logger } from '@galacean/effects';
9
+ import { VFXItem, isObject, isArray, assertExist, AbstractPlugin, registerPlugin, logger } from '@galacean/effects';
10
10
 
11
11
  /******************************************************************************
12
12
  Copyright (c) Microsoft Corporation.
@@ -82,14 +82,64 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
82
82
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
83
83
  };
84
84
 
85
+ /**
86
+ * 水平旋转变化起始角(手机处于改角度时无变化)
87
+ * 待调试
88
+ */
89
+ var VERTICAL_INIT_DEGREE = 45;
90
+ var TransformVFXItem = /** @class */ (function (_super) {
91
+ __extends(TransformVFXItem, _super);
92
+ function TransformVFXItem() {
93
+ return _super !== null && _super.apply(this, arguments) || this;
94
+ }
95
+ Object.defineProperty(TransformVFXItem.prototype, "type", {
96
+ get: function () {
97
+ return 'orientation-transformer';
98
+ },
99
+ enumerable: false,
100
+ configurable: true
101
+ });
102
+ TransformVFXItem.prototype.onConstructed = function (options) {
103
+ var targets = options.content.options.targets;
104
+ if (targets) {
105
+ this.targets = targets.map(function (t) { return ({
106
+ name: t.name,
107
+ xMin: +t.xMin || 0,
108
+ yMin: +t.yMin || 0,
109
+ xMax: +t.xMax || 0,
110
+ yMax: +t.yMax || 0,
111
+ vMin: +t.vMin || 0,
112
+ hMin: +t.hMin || 0,
113
+ vMax: +t.vMax || 0,
114
+ hMax: +t.hMax || 0,
115
+ }); });
116
+ }
117
+ };
118
+ TransformVFXItem.prototype.onItemRemoved = function (composition) {
119
+ var _a;
120
+ (_a = this.targets) === null || _a === void 0 ? void 0 : _a.forEach(function (target) { var _a; return (_a = composition.loaderData.deviceTransformer) === null || _a === void 0 ? void 0 : _a.removeTarget(target.name); });
121
+ };
122
+ TransformVFXItem.prototype.doCreateContent = function (composition) {
123
+ var _a;
124
+ var transformer = composition.loaderData.deviceTransformer;
125
+ if (transformer) {
126
+ (_a = this.targets) === null || _a === void 0 ? void 0 : _a.forEach(function (target) { return transformer.addTarget(target); });
127
+ transformer.initComposition();
128
+ }
129
+ return {};
130
+ };
131
+ return TransformVFXItem;
132
+ }(VFXItem));
133
+
85
134
  var CompositionTransformerAcceler = /** @class */ (function () {
86
135
  function CompositionTransformerAcceler(composition) {
87
136
  this.composition = composition;
88
137
  this.targets = {};
89
138
  this.records = {};
90
- this.current = {};
139
+ this.currentPos = {};
140
+ this.currentRot = {};
91
141
  this.gammaRange = [-89, 89];
92
- this.betaRange = [-80, 80];
142
+ this.betaRange = [-89, 89];
93
143
  }
94
144
  CompositionTransformerAcceler.prototype.update = function (_a) {
95
145
  var x = _a.x, y = _a.y;
@@ -111,14 +161,19 @@ var CompositionTransformerAcceler = /** @class */ (function () {
111
161
  var target = this.targets[item.name];
112
162
  if (target) {
113
163
  var position = item.transform.position.toArray();
114
- var currentPosition = this.current[item.name];
164
+ var rotation = item.transform.rotation.toArray();
165
+ var currentPosition = this.currentPos[item.name];
166
+ var currentRot = this.currentRot[item.name];
115
167
  this.records[item.name] = {
116
168
  item: item,
117
169
  position: position,
170
+ rotation: rotation,
118
171
  };
119
172
  if (currentPosition) {
120
- var _a = __read(currentPosition, 3), x = _a[0], y = _a[1], z = _a[2];
121
- item.transform.setPosition(x, y, z);
173
+ item.transform.setPosition(currentPosition[0], currentPosition[1], currentPosition[2]);
174
+ }
175
+ if (currentRot) {
176
+ item.transform.setRotation(currentRot[0], currentRot[1], currentRot[2]);
122
177
  }
123
178
  }
124
179
  }
@@ -131,12 +186,13 @@ var CompositionTransformerAcceler = /** @class */ (function () {
131
186
  delete this.records[name];
132
187
  };
133
188
  CompositionTransformerAcceler.prototype.moveLayer = function (name, _a) {
134
- var _b;
135
- var _c;
189
+ var _b, _c;
190
+ var _d;
136
191
  var x = _a.x, y = _a.y;
137
- var layer = (_c = this.records[name]) === null || _c === void 0 ? void 0 : _c.item;
192
+ var layer = (_d = this.records[name]) === null || _d === void 0 ? void 0 : _d.item;
138
193
  if (layer) {
139
194
  var initPosition = this.records[name].position;
195
+ var initRotation = this.records[name].rotation;
140
196
  var target = this.targets[name];
141
197
  var beta = clamp(x, this.betaRange), gamma = clamp(y, this.gammaRange);
142
198
  if (target) {
@@ -145,8 +201,17 @@ var CompositionTransformerAcceler = /** @class */ (function () {
145
201
  initPosition[1] + 1.2 * mapRange((gamma - this.betaRange[0]) / (this.betaRange[1] - this.betaRange[0]), target.yMin, target.yMax),
146
202
  initPosition[2],
147
203
  ];
204
+ var br = (clamp(x * 2, this.betaRange) - this.betaRange[0]) / (this.betaRange[1] - this.betaRange[0]);
205
+ var gr = (clamp(y * 2 - VERTICAL_INIT_DEGREE, this.gammaRange) - this.gammaRange[0]) / (this.gammaRange[1] - this.gammaRange[0]);
206
+ var rotation = [
207
+ initRotation[0] + mapRange(gr, target.hMin, target.hMax),
208
+ initRotation[1] + mapRange(br, target.vMin, target.vMax),
209
+ initRotation[2],
210
+ ];
148
211
  (_b = layer.transform).setPosition.apply(_b, __spreadArray([], __read(position), false));
149
- this.current[name] = position.slice();
212
+ (_c = layer.transform).setRotation.apply(_c, __spreadArray([], __read(rotation), false));
213
+ this.currentPos[name] = position.slice();
214
+ this.currentRot[name] = rotation.slice();
150
215
  }
151
216
  }
152
217
  };
@@ -746,48 +811,8 @@ function openDeviceMotion() {
746
811
  getAdapter().connect();
747
812
  }
748
813
 
749
- var TransformVFXItem = /** @class */ (function (_super) {
750
- __extends(TransformVFXItem, _super);
751
- function TransformVFXItem() {
752
- return _super !== null && _super.apply(this, arguments) || this;
753
- }
754
- Object.defineProperty(TransformVFXItem.prototype, "type", {
755
- get: function () {
756
- return 'orientation-transformer';
757
- },
758
- enumerable: false,
759
- configurable: true
760
- });
761
- TransformVFXItem.prototype.onConstructed = function (options) {
762
- var targets = options.content.options.targets;
763
- if (targets) {
764
- this.targets = targets.map(function (t) { return ({
765
- name: t.name,
766
- xMin: +t.xMin || 0,
767
- yMin: +t.yMin || 0,
768
- xMax: +t.xMax || 0,
769
- yMax: +t.yMax || 0,
770
- }); });
771
- }
772
- };
773
- TransformVFXItem.prototype.onItemRemoved = function (composition) {
774
- var _a;
775
- (_a = this.targets) === null || _a === void 0 ? void 0 : _a.forEach(function (target) { var _a; return (_a = composition.loaderData.deviceTransformer) === null || _a === void 0 ? void 0 : _a.removeTarget(target.name); });
776
- };
777
- TransformVFXItem.prototype.doCreateContent = function (composition) {
778
- var _a;
779
- var transformer = composition.loaderData.deviceTransformer;
780
- if (transformer) {
781
- (_a = this.targets) === null || _a === void 0 ? void 0 : _a.forEach(function (target) { return transformer.addTarget(target); });
782
- transformer.initComposition();
783
- }
784
- return {};
785
- };
786
- return TransformVFXItem;
787
- }(VFXItem));
788
-
789
814
  registerPlugin('orientation-transformer', OrientationPluginLoader, TransformVFXItem);
790
- var version = "1.2.6";
815
+ var version = "1.3.0-alpha.1";
791
816
  logger.info('plugin orientation transformer version: ' + version);
792
817
 
793
818
  export { OrientationAdapterAcceler, closeDeviceMotion, getAdapter, openDeviceMotion, version };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,11 @@
1
1
  import type { spec, Composition } from '@galacean/effects';
2
2
  import { VFXItem } from '@galacean/effects';
3
3
  import type { TransformItem } from './transform-item';
4
+ /**
5
+ * 水平旋转变化起始角(手机处于改角度时无变化)
6
+ * 待调试
7
+ */
8
+ export declare const VERTICAL_INIT_DEGREE = 45;
4
9
  export declare class TransformVFXItem extends VFXItem<TransformItem> {
5
10
  private targets?;
6
11
  get type(): spec.ItemType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/effects-plugin-orientation-transformer",
3
- "version": "1.2.6",
3
+ "version": "1.3.0-alpha.1",
4
4
  "description": "Galacean Effects player orientation transformer plugin",
5
5
  "module": "./dist/index.mjs",
6
6
  "main": "./dist/index.js",
@@ -31,7 +31,7 @@
31
31
  "registry": "https://registry.npmjs.org"
32
32
  },
33
33
  "devDependencies": {
34
- "@galacean/effects": "1.2.6"
34
+ "@galacean/effects": "1.3.0-alpha.1"
35
35
  },
36
36
  "scripts": {
37
37
  "dev": "vite",