@galacean/engine-xr-webxr 1.4.14 → 1.4.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +2 -2
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/package.json +4 -4
package/dist/browser.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@galacean/engine")):"function"==typeof define&&define.amd?define(["exports","@galacean/engine"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).Galacean=e.Galacean||{},e.Galacean.WebXR={}),e.Galacean)}(this,function(e,t){"use strict";function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}function o(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o}function s(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(s=function(){return!!e})()}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e,t,n){return(c=s()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&u(a,n.prototype),a}).apply(null,arguments)}function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t,n){return t&&l(e.prototype,t),n&&l(e,n),e}function _(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}function f(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}"function"==typeof SuppressedError&&SuppressedError;var d,p,m,g,v,y,x,w,z,S,k,C=((d={})[d.Controller=0]="Controller",d[d.LeftController=1]="LeftController",d[d.RightController=2]="RightController",d[d.Camera=3]="Camera",d[d.LeftCamera=4]="LeftCamera",d[d.RightCamera=5]="RightCamera",d[d.LeftHand=6]="LeftHand",d[d.RightHand=7]="RightHand",d),M=((p={})[p.None=0]="None",p[p.Initializing=1]="Initializing",p[p.Initialized=2]="Initialized",p[p.Running=3]="Running",p[p.Paused=4]="Paused",p),T=/*#__PURE__*/function(){function e(e){this._xrManager=e}var n=e.prototype;return n.attachCamera=function(e,n){var r=this._xrManager.inputManager.getTrackedDevice(e),a=r._camera;if(a!==n){switch(a&&(a._cameraType=t.CameraType.Normal),e){case C.Camera:n._cameraType=t.CameraType.XRCenterCamera;break;case C.LeftCamera:n._cameraType=t.CameraType.XRLeftCamera;break;case C.RightCamera:n._cameraType=t.CameraType.XRRightCamera}r._camera=n}},n.detachCamera=function(e){var n=this._xrManager.inputManager.getTrackedDevice(e),r=n._camera;return r&&(r._cameraType=t.CameraType.Normal),n._camera=null,r},n._onSessionStart=function(){},n._onUpdate=function(){for(var e=this._xrManager.inputManager._cameras,n=0,r=e.length;n<r;n++){var a=e[n],i=a._camera;if(i){var o=i.entity.transform,s=a.pose;o.position=s.position,o.rotationQuaternion=s.rotation;var u=i.viewport,c=a.viewport,l=c.x,h=c.y,_=c.width,f=c.height;l===u.x&&h===u.y&&_===u.z&&f===u.w||(i.viewport=u.set(l,h,_,f)),t.Matrix.equals(i.projectionMatrix,a.projectionMatrix)||(i.projectionMatrix=a.projectionMatrix)}}},n._onSessionExit=function(){},n._getIgnoreClearFlags=function(e){return e!==t.CameraType.XRCenterCamera?t.CameraClearFlags.None:this._xrManager.sessionManager.state===M.Running?t.CameraClearFlags.Color:t.CameraClearFlags.None},n._onDestroy=function(){},h(e,[{key:"fixedFoveation",get:function(){var e=this._xrManager.sessionManager._platformSession;if(e)return e.getFixedFoveation();throw Error("XR session is not available.")},set:function(e){var t=this._xrManager.sessionManager._platformSession;if(t)t.setFixedFoveation(e);else throw Error("XR session is not available.")}}]),e}(),b=function(){this.position=new t.Vector3,this.rotation=new t.Quaternion,this.matrix=new t.Matrix,this.inverseMatrix=new t.Matrix},R=((m={})[m.NotTracking=0]="NotTracking",m[m.Tracking=1]="Tracking",m[m.TrackingLost=2]="TrackingLost",m),V=function(e){this.type=e,this.trackingState=R.NotTracking},q=/*#__PURE__*/function(e){function n(){var n;return n=e.apply(this,arguments)||this,n.pose=new b,n.viewport=new t.Rect,n.projectionMatrix=new t.Matrix,n}return _(n,e),n}(V),F=((g={})[g.None=0]="None",g[g.Select=1]="Select",g[g.Trigger=1]="Trigger",g[g.Squeeze=2]="Squeeze",g[g.TouchPad=4]="TouchPad",g[g.AButton=8]="AButton",g[g.BButton=16]="BButton",g),A=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.gripPose=new b,t.targetRayPose=new b,t.pressedButtons=F.None,t.down=F.None,t.up=F.None,t}_(t,e);var n=t.prototype;return n.isButtonDown=function(e){return(this.down&e)!=0},n.isButtonUp=function(e){return(this.up&e)!=0},n.isButtonHeldDown=function(e){return(this.pressedButtons&e)!=0},t}(V),E=((v={})[v.SelectStart=0]="SelectStart",v[v.Select=1]="Select",v[v.SelectEnd=2]="SelectEnd",v[v.SqueezeStart=3]="SqueezeStart",v[v.Squeeze=4]="Squeeze",v[v.SqueezeEnd=5]="SqueezeEnd",v),P=((y={})[y.Gaze=0]="Gaze",y[y.TrackedPointer=1]="TrackedPointer",y[y.Screen=2]="Screen",y),L=/*#__PURE__*/function(){function e(e,n){this._xrManager=e,this._engine=n,this._cameras=[],this._controllers=[],this._added=[],this._removed=[],this._trackedDevices=[],this._statusSnapshot=[],this._listeners=new t.SafeLoopArray;for(var r=this._trackedDevices,a=this._controllers,i=this._cameras,o=0;o<6;o++)switch(o){case C.Camera:case C.LeftCamera:case C.RightCamera:i.push(r[o]=new q(o));break;case C.Controller:case C.LeftController:case C.RightController:a.push(r[o]=new A(o))}this._statusSnapshot.fill(R.NotTracking,0,r.length)}var n=e.prototype;return n.getTrackedDevice=function(e){return this._trackedDevices[e]},n.addTrackedDeviceChangedListener=function(e){this._listeners.push({fn:e})},n.removeTrackedDeviceChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},n._onUpdate=function(){var e=this._added,t=this._removed,n=this._statusSnapshot,r=this._trackedDevices,a=this._controllers;e.length=t.length=0;for(var i=0,o=a.length;i<o;i++){var s=a[i];s.down=s.up=0}for(var u=this._xrManager.sessionManager._platformSession,c=u.events,l=0,h=c.length;l<h;l++)this._handleEvent(c[l]);u.resetEvents(),u.frame.updateInputs(r);for(var _=0,f=r.length;_<f;_++){var d=r[_];if(d){var p=d.trackingState;n[_]===R.Tracking?p!==R.Tracking&&t.push(d):p===R.Tracking&&e.push(d),n[_]=p}}if(e.length>0||t.length>0)for(var m=this._listeners.getLoopArray(),g=0,v=m.length;g<v;g++){var y=m[g];y.destroyed||y.fn(e,t)}},n._onDestroy=function(){this._listeners.findAndRemove(function(e){return e.destroyed=!0})},n._handleEvent=function(e){var t=this._trackedDevices[e.input];switch(e.targetRayMode){case P.TrackedPointer:switch(e.type){case E.SelectStart:t.down|=F.Select,t.pressedButtons|=F.Select;break;case E.SelectEnd:t.up|=F.Select,t.pressedButtons&=~F.Select;break;case E.SqueezeStart:t.down|=F.Squeeze,t.pressedButtons|=F.Squeeze;break;case E.SqueezeEnd:t.up|=F.Squeeze,t.pressedButtons&=~F.Squeeze}break;case P.Screen:var n=this._engine,r=n.inputManager._pointerManager._target,a=n.canvas._webCanvas,i=a.clientWidth,o=a.clientHeight,s=i*(e.x+1)*.5,u=o*(e.y+1)*.5;switch(e.type){case E.SelectStart:r.dispatchEvent(this._makeUpPointerEvent("pointerdown",e.id,s,u));break;case E.Select:r.dispatchEvent(this._makeUpPointerEvent("pointermove",e.id,s,u));break;case E.SelectEnd:r.dispatchEvent(this._makeUpPointerEvent("pointerup",e.id,s,u)),r.dispatchEvent(this._makeUpPointerEvent("pointerleave",e.id,s,u))}}},n._makeUpPointerEvent=function(e,t,n,r){var a={pointerId:t,clientX:n,clientY:r};switch(e){case"pointerdown":a.button=0,a.buttons=1;break;case"pointermove":a.button=-1,a.buttons=1;break;case"pointerup":case"pointerleave":a.button=0,a.buttons=0}return new PointerEvent(e,a)},e}(),D=((x={})[x.None=0]="None",x[x.AR=1]="AR",x[x.VR=2]="VR",x),I=/*#__PURE__*/function(){function e(e,n){this._xrManager=e,this._engine=n,this._mode=D.None,this._state=M.None,this._listeners=new t.SafeLoopArray,this._rhi=n._hardwareRenderer,this._raf=requestAnimationFrame.bind(window),this._caf=cancelAnimationFrame.bind(window),this._onSessionExit=this._onSessionExit.bind(this)}var n=e.prototype;return n.isSupportedMode=function(e){return this._xrManager._platformDevice.isSupportedSessionMode(e)},n.run=function(){var e=this._platformSession,t=this._engine;if(!e)throw Error("Without session to run.");e.start(),this._setState(M.Running),this._xrManager._onSessionStart(),t.isPaused||(t.pause(),t.resume())},n.stop=function(){var e=this._platformSession,t=this._engine,n=this._rhi;if(!e)throw Error("Without session to stop.");if(this._state!==M.Running)throw Error("Session is not running.");n._mainFrameBuffer=null,n._mainFrameWidth=n._mainFrameHeight=0,e.stop(),this._setState(M.Paused),this._xrManager._onSessionStop(),t.isPaused||(t.pause(),t.resume())},n.addStateChangedListener=function(e){this._listeners.push({fn:e})},n.removeStateChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},n._setState=function(e){this._state=e;for(var t=this._listeners.getLoopArray(),n=0,r=t.length;n<r;n++){var a=t[n];a.destroyed||a.fn(e)}},n._initialize=function(e,t){var n=this;return new Promise(function(r,a){for(var i=n._xrManager,o=[],s=0,u=t.length;s<u;s++){var c=t[s]._platformFeature;c&&o.push(c)}i._platformDevice.requestSession(n._rhi,e,o).then(function(t){n._mode=e,n._platformSession=t,n._setState(M.Initialized),t.setSessionExitCallBack(n._onSessionExit),t.addEventListener(),i._onSessionInit(),r()},a)})},n._onUpdate=function(){var e=this._rhi,t=this._platformSession;e._mainFrameBuffer=t.framebuffer,e._mainFrameWidth=t.framebufferWidth,e._mainFrameHeight=t.framebufferHeight},n._getRequestAnimationFrame=function(){return this._state===M.Running?this._platformSession.requestAnimationFrame:this._raf},n._getCancelAnimationFrame=function(){return this._state===M.Running?this._platformSession.cancelAnimationFrame:this._caf},n._exit=function(){var e=this._platformSession;return e?e.end():Promise.reject("Without session to stop.")},n._onSessionExit=function(){var e=this._rhi,t=this._platformSession,n=this._engine;e._mainFrameBuffer=null,e._mainFrameWidth=e._mainFrameHeight=0,t.removeEventListener(),this._platformSession=null,this._setState(M.None),this._xrManager._onSessionExit(),n.isPaused||(n.pause(),n.resume())},n._onDestroy=function(){this._listeners.findAndRemove(function(e){return e.destroyed=!0}),this._raf=this._caf=null},h(e,[{key:"mode",get:function(){return this._mode}},{key:"state",get:function(){return this._state}},{key:"supportedFrameRate",get:function(){return this._platformSession.supportedFrameRates}},{key:"frameRate",get:function(){return this._platformSession.frameRate}}]),e}(),j=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}_(t,e);var n=t.prototype;return n.isSupportedFeature=function(e){return this._platformDevice.isSupportedFeature(t._featureMap.get(e))},n.addFeature=function(e){for(var n=arguments.length,r=Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(this.sessionManager._platformSession)throw Error("Cannot add feature when the session is initialized.");if(!this._platformDevice.isSupportedFeature(t._featureMap.get(e)))throw Error("The feature is not supported");for(var i=this.features,o=0,s=i.length;o<s;o++)if(f(i[o],e))throw Error("The feature has been added");var u=c(e,[].concat([this],r));return i.push(u),u},n.getFeature=function(e){for(var t=this.features,n=0,r=t.length;n<r;n++){var a=t[n];if(f(a,e))return a}},n.enterXR=function(e,t){var n=this;void 0===t&&(t=!0);var r=this.sessionManager;if(r._platformSession)throw Error("Please exit XR immersive mode first.");if(!this._origin)throw Error("Please set origin before enter XR.");return new Promise(function(a,i){r.isSupportedMode(e).then(function(){r._setState(M.Initializing),r._initialize(e,n.features).then(function(){t&&r.run(),a()},i)},i)})},n.exitXR=function(){var e=this;return new Promise(function(t,n){e.sessionManager._exit().then(function(){t()},n)})},n._initialize=function(e,t){this._features=[],this._platformDevice=t,this.sessionManager=new I(this,e),this.inputManager=new L(this,e),this.cameraManager=new T(this)},n._update=function(){var e=this.sessionManager;if(e.state===M.Running){e._onUpdate(),this.inputManager._onUpdate(),this.cameraManager._onUpdate();for(var t=this.features,n=0,r=t.length;n<r;n++){var a=t[n];a.enabled&&a._onUpdate()}}},n._destroy=function(){var e=this;this.sessionManager._platformSession?this.exitXR().then(function(){e.sessionManager._onDestroy(),e.inputManager._onDestroy(),e.cameraManager._onDestroy()}):(this.sessionManager._onDestroy(),this.inputManager._onDestroy(),this.cameraManager._onDestroy())},n._getRequestAnimationFrame=function(){return this.sessionManager._getRequestAnimationFrame()},n._getCancelAnimationFrame=function(){return this.sessionManager._getCancelAnimationFrame()},n._getCameraIgnoreClearFlags=function(e){return this.cameraManager._getIgnoreClearFlags(e)},n._onSessionStop=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionStop()}},n._onSessionInit=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionInit()}},n._onSessionStart=function(){this.cameraManager._onSessionStart();for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionStart()}},n._onSessionExit=function(){this.cameraManager._onSessionExit();for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionExit(),r._onDestroy()}e.length=0},h(t,[{key:"features",get:function(){return this._features}},{key:"origin",get:function(){return this._origin},set:function(e){if(this.sessionManager._platformSession)throw Error("Cannot set origin when the session is initialized.");this._origin=e}}]),t}(t.XRManager);function N(e){return function(t){j._featureMap.set(t,e)}}j._featureMap=new Map,function(e,t){t.forEach(function(t){Object.getOwnPropertyNames(t.prototype).forEach(function(n){Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(t.prototype,n)||Object.create(null))})})}(t.XRManager,[j]);var O=/*#__PURE__*/function(){function e(e,t){for(var n,r=arguments.length,a=Array(r>2?r-2:0),i=2;i<r;i++)a[i-2]=arguments[i];this._xrManager=e,this._type=t,this._enabled=!0,this._platformFeature=(n=e._platformDevice).createPlatformFeature.apply(n,[].concat([t],a)),this._onEnable()}var t=e.prototype;return t._onEnable=function(){},t._onDisable=function(){},t._onUpdate=function(){},t._onSessionInit=function(){},t._onSessionStart=function(){},t._onSessionStop=function(){},t._onSessionExit=function(){},t._onDestroy=function(){},h(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){this.enabled!==e&&(this._enabled=e,e?this._onEnable():this._onDisable())}}]),e}(),X=((w={})[w.AnchorTracking=0]="AnchorTracking",w[w.ImageTracking=1]="ImageTracking",w[w.PlaneTracking=2]="PlaneTracking",w[w.HitTest=3]="HitTest",w),B=((z={})[z.None=0]="None",z[z.Submitted=1]="Submitted",z[z.Resolved=2]="Resolved",z[z.Rejected=3]="Rejected",z[z.Destroyed=4]="Destroyed",z[z.WaitingDestroy=5]="WaitingDestroy",z),W=/*#__PURE__*/function(e){function n(){var n;return n=e.apply(this,arguments)||this,n._requestTrackings=[],n._tracked=[],n._added=[],n._updated=[],n._removed=[],n._statusSnapshot={},n._listeners=new t.SafeLoopArray,n}_(n,e);var r=n.prototype;return r.addChangedListener=function(e){this._listeners.push({fn:e})},r.removeChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},r._onUpdate=function(){var e=this._xrManager.sessionManager._platformSession,t=e.frame,n=this._platformFeature,r=this._requestTrackings,a=this._statusSnapshot,i=this._tracked,o=this._added,s=this._updated,u=this._removed;if(t&&r.length&&n.checkAvailable(e,t,r)){o.length=s.length=u.length=0,n.getTrackedResult(e,t,r,this._generateTracked);for(var c=0,l=r.length;c<l;c++){var h=r[c];switch(h.state){case B.Destroyed:for(var _=h.tracked,f=0,d=_.length;f<d;f++){var p=_[f],m=p.id;a[m]===R.Tracking&&(u.push(p),i.splice(i.indexOf(p),1)),a[m]=R.NotTracking}break;case B.Resolved:for(var g=h.tracked,v=0,y=g.length;v<y;v++){var x=g[v],w=x.id;x.state===R.Tracking?a[w]===R.Tracking?s.push(x):(o.push(x),a[w]=R.Tracking,i.push(x)):(a[w]===R.Tracking&&(u.push(x),i.splice(i.indexOf(x),1)),a[w]=x.state)}}}for(var z=r.length-1;z>=0;z--)r[z].state===B.Destroyed&&r.splice(z,1);if(o.length>0||s.length>0||u.length>0)for(var S=this._listeners.getLoopArray(),k=0,C=S.length;k<C;k++){var M=S[k];M.destroyed||M.fn(o,s,u)}}},r._onSessionStop=function(){this._added.length=this._updated.length=this._removed.length=0},r._onSessionExit=function(){this._requestTrackings.length=this._tracked.length=this._added.length=this._updated.length=this._removed.length=0,this._listeners.findAndRemove(function(e){return e.destroyed=!0})},r._addRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(X[this._type]+" request tracking cannot be modified after initialization.");this._requestTrackings.push(e),t.onAddRequestTracking(e)},r._removeRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(X[this._type]+" request tracking cannot be modified after initialization.");t.onDelRequestTracking(e)},r._removeAllRequestTrackings=function(){var e=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!e.canModifyRequestTrackingAfterInit)throw Error(X[this._type]+" request tracking cannot be modified after initialization.");for(var t=this._requestTrackings,n=0,r=t.length;n<r;n++)e.onDelRequestTracking(t[n])},n}(O);W._uuid=0;var H=function(){this.pose=new b,this.state=R.NotTracking},U=((S={})[S.Plane=1]="Plane",S[S.All=1]="All",S),G=function(){this.point=new t.Vector3,this.normal=new t.Vector3};function Q(e,t,n,r){var a,i,o=arguments.length,s=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if(("undefined"==typeof Reflect?"undefined":(a=Reflect)&&"undefined"!=typeof Symbol&&a.constructor===Symbol?"symbol":typeof a)=="object"&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var u=e.length-1;u>=0;u--)(i=e[u])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}"function"==typeof SuppressedError&&SuppressedError;var Y=((k={})[k.None=0]="None",k[k.Horizontal=1]="Horizontal",k[k.Vertical=2]="Vertical",k[k.EveryThing=3]="EveryThing",k),Z=function(){this.state=B.None,this.tracked=[]},J=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this)||this).detectionMode=t,n}return _(t,e),t}(Z),K=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.polygon=[],t.attributesDirty=!1,t}return _(t,e),t}(H),$=/*#__PURE__*/function(e){function t(t,n){var r;return void 0===n&&(n=Y.EveryThing),(r=e.call(this,t,X.PlaneTracking,n)||this)._addRequestTracking(new J(n)),r}return _(t,e),t.prototype._generateTracked=function(){var e=new K;return e.id=W._uuid++,e},h(t,[{key:"detectionMode",get:function(){return this._requestTrackings[0].detectionMode}},{key:"trackedPlanes",get:function(){return this._tracked}}]),t}(W);$=Q([N(X.PlaneTracking)],$);var ee=/*#__PURE__*/function(e){function n(n){var r;return(r=e.call(this,n,X.HitTest)||this)._tempRay=new t.Ray,r._tempPlane=new t.Plane,r._tempVec2=new t.Vector2,r._tempVec30=new t.Vector3,r._tempVec31=new t.Vector3,r._tempVec32=new t.Vector3,r._tempVec33=new t.Vector3,r._tempVec34=new t.Vector3,r._tempVec35=new t.Vector3,r}_(n,e);var r=n.prototype;return r.hitTest=function(e,t){var n=[];return t&U.Plane&&this._hitTestPlane(e,n),n},r.screenHitTest=function(e,t,n){var r=this._xrManager;if(r.sessionManager.mode!==D.AR)throw Error("Only AR mode supports using screen ray hit test.");var a=r.inputManager.getTrackedDevice(C.Camera)._camera;if(!a)throw Error("No camera available.");var i=a.screenPointToRay(this._tempVec2.set(e,t),this._tempRay);return this.hitTest(i,n)},r._hitTestPlane=function(e,n){var r=this._xrManager.getFeature($);if(!r||!r.enabled)throw Error("The plane estimation function needs to be turned on for plane hit test.");for(var a=this._tempPlane,i=this._tempVec30,o=this._tempVec31,s=this._tempVec32,u=r.trackedPlanes,c=0,l=u.length;c<l;c++){var h=u[c];i.set(0,1,0).transformNormal(h.pose.matrix),a.normal.copyFrom(i),a.distance=-t.Vector3.dot(i,h.pose.position);var _=e.intersectPlane(a);if(_>=0&&(e.getPoint(_,o),t.Vector3.transformToVec3(o,h.pose.inverseMatrix,s),this._checkPointerWithinPlane(s,h))){var f=new G;f.point.copyFrom(o),f.normal.copyFrom(i),f.distance=_,f.trackedObject=h,f.trackableType=U.Plane,n.push(f)}}},r._checkPointerWithinPlane=function(e,n){for(var r=this._tempVec33,a=this._tempVec34,i=this._tempVec35,o=n.polygon,s=o.length,u=o[s-1],c=0,l=0;l<s;l++){var h=o[l];t.Vector3.subtract(h,u,r),t.Vector3.subtract(e,u,a),t.Vector3.cross(r,a,i);var _=i.y;if(0===c)_>0?c=1:_<0&&(c=-1);else if(_>0&&c<0||_<0&&c>0)return!1;u=h}return!0},n}(O);ee=Q([N(X.HitTest)],ee);var et=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return _(t,e),t}(H),en=/*#__PURE__*/function(e){function t(t,n){var r;return(r=e.call(this)||this).position=t,r.rotation=n,r}return _(t,e),t}(Z),er=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this,t,X.AnchorTracking)||this)._anchors=[],n}_(t,e);var n=t.prototype;return n.addAnchor=function(e,t){if(!this._enabled)throw Error("Cannot add an anchor from a disabled anchor manager.");var n=this._anchors,r=new en(e,t),a=this._generateTracked();return r.tracked[0]=a,this._addRequestTracking(r),n.push(a),a},n.removeAnchor=function(e){if(!this._enabled)throw Error("Cannot remove an anchor from a disabled anchor manager.");for(var t=this._requestTrackings,n=this._anchors,r=0,a=t.length;r<a;r++){var i=t[r];if(i.tracked[0]===e){this._removeRequestTracking(i);break}}n.splice(n.indexOf(e),1)},n.clearAnchors=function(){if(!this._enabled)throw Error("Cannot remove anchors from a disabled anchor manager.");this._removeAllRequestTrackings()},n._generateTracked=function(){var e=new et;return e.id=W._uuid++,e},h(t,[{key:"trackingAnchors",get:function(){return this._anchors}},{key:"trackedAnchors",get:function(){return this._tracked}}]),t}(W);er=Q([N(X.AnchorTracking)],er);var ea=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this)||this).image=t,n}return _(t,e),t}(Z),ei=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return _(t,e),t}(H),eo=/*#__PURE__*/function(e){function t(t,n){var r;if((r=e.call(this,t,X.ImageTracking,n)||this)._trackingImages=n,(n?n.length:0)>0)for(var a=0,i=n.length;a<i;a++)r._addRequestTracking(new ea(n[a]));else console.warn("No image to be tracked.");return r}return _(t,e),t.prototype._generateTracked=function(){var e=new ei;return e.id=W._uuid++,e},h(t,[{key:"trackingImages",get:function(){return this._trackingImages}},{key:"trackedImages",get:function(){return this._tracked}}]),t}(W);eo=Q([N(X.ImageTracking)],eo);var es=function(e,t,n){this.name=e,this.imageSource=t,this.physicalWidth=n},eu=/*#__PURE__*/function(){function e(){}return e.decode=function(e,t){return new Promise(function(e,n){var r=t.nextFloat32();t.nextUint8();var a=new Image;a.onload=function(){e(new es("",a,r))},a.src=URL.createObjectURL(new window.Blob([t.nextImagesData(1)[0]]))})},e}();function ec(){return(ec=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}eu=Q([t.decoder("XRReferenceImage")],eu);var el=/*#__PURE__*/function(e){function n(){return e.apply(this,arguments)||this}return _(n,e),n.prototype.load=function(e,n){return new t.AssetPromise(function(r,a){n._request(e.url,ec({},e,{type:"arraybuffer"})).then(function(e){t.decode(e,n.engine).then(function(e){r(e)})}).catch(a)})},n}(t.Loader);function eh(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(eh=function(){return!!e})()}function e_(e,t,n){return(e_=eh()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&a(i,n.prototype),i}).apply(null,arguments)}function ef(e){switch(e){case 1:return"immersive-ar";case 2:return"immersive-vr";default:return null}}function ed(e){var t;switch(e.targetRayMode){case"gaze":break;case"screen":return C.Controller;case"tracked-pointer":if(e.hand)switch(e.handedness){case"left":return C.LeftHand;case"right":return C.RightHand}else switch(e.handedness){case"left":return C.LeftController;case"right":return C.RightController}}return t}function ep(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function em(e,t,n){return t&&ep(e.prototype,t),n&&ep(e,n),e}el=Q([t.resourceLoader("XRReferenceImage",[])],el);var eg=/*#__PURE__*/function(){function e(){}return e.clamp=function(e,t,n){return Math.max(t,Math.min(n,e))},e.equals=function(t,n){return Math.abs(t-n)<=e.zeroTolerance},e.isPowerOf2=function(e){return(e&e-1)==0},e.radianToDegree=function(t){return t*e.radToDegreeFactor},e.degreeToRadian=function(t){return t*e.degreeToRadFactor},e.lerp=function(e,t,n){return e+(t-e)*n},e}();eg.zeroTolerance=1e-6,eg.radToDegreeFactor=180/Math.PI,eg.degreeToRadFactor=Math.PI/180;var ev=/*#__PURE__*/function(){function e(e,t,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),this._onValueChanged=null,this._x=e,this._y=t,this._z=n}var t=e.prototype;return t.set=function(e,t,n){return this._x=e,this._y=t,this._z=n,null==this._onValueChanged||this._onValueChanged.call(this),this},t.add=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.divide=function(e){return this._x/=e._x,this._y/=e._y,this._z/=e._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.length=function(){var e=this._x,t=this._y,n=this._z;return Math.sqrt(e*e+t*t+n*n)},t.lengthSquared=function(){var e=this._x,t=this._y,n=this._z;return e*e+t*t+n*n},t.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.normalize=function(){return e.normalize(this,this),this},t.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,null==this._onValueChanged||this._onValueChanged.call(this),this},t.transformNormal=function(t){return e.transformNormal(this,t,this),this},t.transformToVec3=function(t){return e.transformToVec3(this,t,this),this},t.transformCoordinate=function(t){return e.transformCoordinate(this,t,this),this},t.transformByQuat=function(t){return e.transformByQuat(this,t,this),this},t.clone=function(){return new e(this._x,this._y,this._z)},t.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.copyTo=function(e){return e.x=this._x,e.y=this._y,e.z=this._z,e},t.copyFromArray=function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._z=e[t+2],null==this._onValueChanged||this._onValueChanged.call(this),this},t.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z},t.toJSON=function(){return{x:this._x,y:this._y,z:this._z}},e.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._z=e._z+t._z,null==n._onValueChanged||n._onValueChanged.call(n)},e.subtract=function(e,t,n){n._x=e._x-t._x,n._y=e._y-t._y,n._z=e._z-t._z,null==n._onValueChanged||n._onValueChanged.call(n)},e.multiply=function(e,t,n){n._x=e._x*t._x,n._y=e._y*t._y,n._z=e._z*t._z,null==n._onValueChanged||n._onValueChanged.call(n)},e.divide=function(e,t,n){n._x=e._x/t._x,n._y=e._y/t._y,n._z=e._z/t._z,null==n._onValueChanged||n._onValueChanged.call(n)},e.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z},e.cross=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,u=t._z;n.set(a*u-i*s,i*o-r*u,r*s-a*o)},e.distance=function(e,t){var n=t._x-e._x,r=t._y-e._y,a=t._z-e._z;return Math.sqrt(n*n+r*r+a*a)},e.distanceSquared=function(e,t){var n=t._x-e._x,r=t._y-e._y,a=t._z-e._z;return n*n+r*r+a*a},e.equals=function(e,t){return eg.equals(e._x,t._x)&&eg.equals(e._y,t._y)&&eg.equals(e._z,t._z)},e.lerp=function(e,t,n,r){var a=e._x,i=e._y,o=e._z;r._x=a+(t._x-a)*n,r._y=i+(t._y-i)*n,r._z=o+(t._z-o)*n,null==r._onValueChanged||r._onValueChanged.call(r)},e.max=function(e,t,n){n._x=Math.max(e._x,t._x),n._y=Math.max(e._y,t._y),n._z=Math.max(e._z,t._z),null==n._onValueChanged||n._onValueChanged.call(n)},e.min=function(e,t,n){n._x=Math.min(e._x,t._x),n._y=Math.min(e._y,t._y),n._z=Math.min(e._z,t._z),null==n._onValueChanged||n._onValueChanged.call(n)},e.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,null==t._onValueChanged||t._onValueChanged.call(t)},e.normalize=function(e,t){var n=e._x,r=e._y,a=e._z,i=Math.sqrt(n*n+r*r+a*a);i>eg.zeroTolerance&&(i=1/i,t.set(n*i,r*i,a*i))},e.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._z=e._z*t,null==n._onValueChanged||n._onValueChanged.call(n)},e.transformNormal=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t.elements;n._x=r*o[0]+a*o[4]+i*o[8],n._y=r*o[1]+a*o[5]+i*o[9],n._z=r*o[2]+a*o[6]+i*o[10],null==n._onValueChanged||n._onValueChanged.call(n)},e.transformToVec3=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t.elements;n._x=r*o[0]+a*o[4]+i*o[8]+o[12],n._y=r*o[1]+a*o[5]+i*o[9]+o[13],n._z=r*o[2]+a*o[6]+i*o[10]+o[14],null==n._onValueChanged||n._onValueChanged.call(n)},e.transformToVec4=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t.elements;n._x=r*o[0]+a*o[4]+i*o[8]+o[12],n._y=r*o[1]+a*o[5]+i*o[9]+o[13],n._z=r*o[2]+a*o[6]+i*o[10]+o[14],n._w=r*o[3]+a*o[7]+i*o[11]+o[15],null==n._onValueChanged||n._onValueChanged.call(n)},e.transformCoordinate=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t.elements,s=r*o[3]+a*o[7]+i*o[11]+o[15];s=1/s,n._x=(r*o[0]+a*o[4]+i*o[8]+o[12])*s,n._y=(r*o[1]+a*o[5]+i*o[9]+o[13])*s,n._z=(r*o[2]+a*o[6]+i*o[10]+o[14])*s,null==n._onValueChanged||n._onValueChanged.call(n)},e.transformByQuat=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,u=t._z,c=t._w,l=c*r+s*i-u*a,h=c*a+u*r-o*i,_=c*i+o*a-s*r,f=-o*r-s*a-u*i;n._x=l*c-f*o-h*u+_*s,n._y=h*c-f*s-_*o+l*u,n._z=_*c-f*u-l*s+h*o,null==n._onValueChanged||n._onValueChanged.call(n)},em(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,null==this._onValueChanged||this._onValueChanged.call(this)}}]),e}();ev._zero=new ev(0,0,0),ev._one=new ev(1,1,1),new ev,new ev,new ev,new ev,new ev,new ev;var ey=/*#__PURE__*/function(){function e(e,t,n,r,a,i,o,s,u){void 0===e&&(e=1),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=1),void 0===i&&(i=0),void 0===o&&(o=0),void 0===s&&(s=0),void 0===u&&(u=1),this.elements=new Float32Array(9);var c=this.elements;c[0]=e,c[1]=t,c[2]=n,c[3]=r,c[4]=a,c[5]=i,c[6]=o,c[7]=s,c[8]=u}var t=e.prototype;return t.set=function(e,t,n,r,a,i,o,s,u){var c=this.elements;return c[0]=e,c[1]=t,c[2]=n,c[3]=r,c[4]=a,c[5]=i,c[6]=o,c[7]=s,c[8]=u,this},t.add=function(t){return e.add(this,t,this),this},t.subtract=function(t){return e.subtract(this,t,this),this},t.multiply=function(t){return e.multiply(this,t,this),this},t.determinant=function(){var e=this.elements,t=e[0],n=e[1],r=e[2],a=e[3],i=e[4],o=e[5],s=e[6],u=e[7],c=e[8];return t*(c*i-o*u)+n*(-c*a+o*s)+r*(u*a-i*s)},t.identity=function(){var e=this.elements;return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,this},t.invert=function(){return e.invert(this,this),this},t.rotate=function(t){return e.rotate(this,t,this),this},t.scale=function(t){return e.scale(this,t,this),this},t.translate=function(t){return e.translate(this,t,this),this},t.transpose=function(){return e.transpose(this,this),this},t.clone=function(){var t=this.elements;return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},t.copyFrom=function(e){var t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this},t.copyFromArray=function(e,t){void 0===t&&(t=0);for(var n=this.elements,r=0;r<12;r++)n[r]=e[r+t];return this},t.copyToArray=function(e,t){void 0===t&&(t=0);var n=this.elements;e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8]},t.copyFromMatrix=function(e){var t=e.elements,n=this.elements;return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[4],n[4]=t[5],n[5]=t[6],n[6]=t[8],n[7]=t[9],n[8]=t[10],this},e.add=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements;i[0]=r[0]+a[0],i[1]=r[1]+a[1],i[2]=r[2]+a[2],i[3]=r[3]+a[3],i[4]=r[4]+a[4],i[5]=r[5]+a[5],i[6]=r[6]+a[6],i[7]=r[7]+a[7],i[8]=r[8]+a[8]},e.subtract=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements;i[0]=r[0]-a[0],i[1]=r[1]-a[1],i[2]=r[2]-a[2],i[3]=r[3]-a[3],i[4]=r[4]-a[4],i[5]=r[5]-a[5],i[6]=r[6]-a[6],i[7]=r[7]-a[7],i[8]=r[8]-a[8]},e.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],u=r[2],c=r[3],l=r[4],h=r[5],_=r[6],f=r[7],d=r[8],p=a[0],m=a[1],g=a[2],v=a[3],y=a[4],x=a[5],w=a[6],z=a[7],S=a[8];i[0]=o*p+c*m+_*g,i[1]=s*p+l*m+f*g,i[2]=u*p+h*m+d*g,i[3]=o*v+c*y+_*x,i[4]=s*v+l*y+f*x,i[5]=u*v+h*y+d*x,i[6]=o*w+c*z+_*S,i[7]=s*w+l*z+f*S,i[8]=u*w+h*z+d*S},e.equals=function(e,t){var n=e.elements,r=t.elements;return eg.equals(n[0],r[0])&&eg.equals(n[1],r[1])&&eg.equals(n[2],r[2])&&eg.equals(n[3],r[3])&&eg.equals(n[4],r[4])&&eg.equals(n[5],r[5])&&eg.equals(n[6],r[6])&&eg.equals(n[7],r[7])&&eg.equals(n[8],r[8])},e.lerp=function(e,t,n,r){var a=e.elements,i=t.elements,o=r.elements,s=1-n;o[0]=a[0]*s+i[0]*n,o[1]=a[1]*s+i[1]*n,o[2]=a[2]*s+i[2]*n,o[3]=a[3]*s+i[3]*n,o[4]=a[4]*s+i[4]*n,o[5]=a[5]*s+i[5]*n,o[6]=a[6]*s+i[6]*n,o[7]=a[7]*s+i[7]*n,o[8]=a[8]*s+i[8]*n},e.rotationQuaternion=function(e,t){var n=t.elements,r=e._x,a=e._y,i=e._z,o=e._w,s=r+r,u=a+a,c=i+i,l=r*s,h=a*s,_=a*u,f=i*s,d=i*u,p=i*c,m=o*s,g=o*u,v=o*c;n[0]=1-_-p,n[3]=h-v,n[6]=f+g,n[1]=h+v,n[4]=1-l-p,n[7]=d-m,n[2]=f-g,n[5]=d+m,n[8]=1-l-_},e.scaling=function(e,t){var n=t.elements;n[0]=e._x,n[1]=0,n[2]=0,n[3]=0,n[4]=e._y,n[5]=0,n[6]=0,n[7]=0,n[8]=1},e.translation=function(e,t){var n=t.elements;n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=e._x,n[7]=e._y,n[8]=1},e.invert=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],u=n[4],c=n[5],l=n[6],h=n[7],_=n[8],f=_*u-c*h,d=-_*s+c*l,p=h*s-u*l,m=a*f+i*d+o*p;m&&(m=1/m,r[0]=f*m,r[1]=(-_*i+o*h)*m,r[2]=(c*i-o*u)*m,r[3]=d*m,r[4]=(_*a-o*l)*m,r[5]=(-c*a+o*s)*m,r[6]=p*m,r[7]=(-h*a+i*l)*m,r[8]=(u*a-i*s)*m)},e.normalMatrix=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],u=n[4],c=n[5],l=n[6],h=n[7],_=n[8],f=n[9],d=n[10],p=n[11],m=n[12],g=n[13],v=n[14],y=n[15],x=a*c-i*u,w=a*l-o*u,z=a*h-s*u,S=i*l-o*c,k=i*h-s*c,C=o*h-s*l,M=_*g-f*m,T=_*v-d*m,b=_*y-p*m,R=f*v-d*g,V=f*y-p*g,q=d*y-p*v,F=x*q-w*V+z*R+S*b-k*T+C*M;if(!F)return null;F=1/F,r[0]=(c*q-l*V+h*R)*F,r[1]=(l*b-u*q-h*T)*F,r[2]=(u*V-c*b+h*M)*F,r[3]=(o*V-i*q-s*R)*F,r[4]=(a*q-o*b+s*T)*F,r[5]=(i*b-a*V-s*M)*F,r[6]=(g*C-v*k+y*S)*F,r[7]=(v*z-m*C-y*w)*F,r[8]=(m*k-g*z+y*x)*F},e.rotate=function(e,t,n){var r=e.elements,a=n.elements,i=Math.sin(t),o=Math.cos(t),s=r[0],u=r[1],c=r[2],l=r[3],h=r[4],_=r[5],f=r[6],d=r[7],p=r[8];a[0]=o*s+i*l,a[1]=o*u+i*h,a[2]=o*c+i*_,a[3]=o*l-i*s,a[4]=o*h-i*u,a[5]=o*_-i*c,a[6]=f,a[7]=d,a[8]=p},e.scale=function(e,t,n){var r=t._x,a=t._y,i=e.elements,o=n.elements;o[0]=r*i[0],o[1]=r*i[1],o[2]=r*i[2],o[3]=a*i[3],o[4]=a*i[4],o[5]=a*i[5],o[6]=i[6],o[7]=i[7],o[8]=i[8]},e.translate=function(e,t,n){var r=t._x,a=t._y,i=e.elements,o=n.elements,s=i[0],u=i[1],c=i[2],l=i[3],h=i[4],_=i[5],f=i[6],d=i[7],p=i[8];o[0]=s,o[1]=u,o[2]=c,o[3]=l,o[4]=h,o[5]=_,o[6]=r*s+a*l+f,o[7]=r*u+a*h+d,o[8]=r*c+a*_+p},e.transpose=function(e,t){var n=e.elements,r=t.elements;if(t===e){var a=n[1],i=n[2],o=n[5];r[1]=n[3],r[2]=n[6],r[3]=a,r[5]=n[7],r[6]=i,r[7]=o}else r[0]=n[0],r[1]=n[3],r[2]=n[6],r[3]=n[1],r[4]=n[4],r[5]=n[7],r[6]=n[2],r[7]=n[5],r[8]=n[8]},e}(),ex=/*#__PURE__*/function(){function e(e,t,n,r){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=1),this._onValueChanged=null,this._x=e,this._y=t,this._z=n,this._w=r}var t=e.prototype;return t.set=function(e,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,null==this._onValueChanged||this._onValueChanged.call(this),this},t.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,null==this._onValueChanged||this._onValueChanged.call(this),this},t.getAxisAngle=function(e){var t=this._x,n=this._y,r=this._z,a=t*t+n*n+r*r;if(a<eg.zeroTolerance)return e._x=1,e._y=0,e._z=0,0;var i=1/a;return e._x=this._x*i,e._y=this._y*i,e._z=this._z*i,2*Math.acos(this._w)},t.identity=function(){return this._x=0,this._y=0,this._z=0,this._w=1,null==this._onValueChanged||this._onValueChanged.call(this),this},t.length=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return Math.sqrt(e*e+t*t+n*n+r*r)},t.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},t.normalize=function(){return e.normalize(this,this),this},t.toEuler=function(e){this._toYawPitchRoll(e);var t=e._x;return e._x=e._y,e._y=t,null==e._onValueChanged||e._onValueChanged.call(e),e},t.toYawPitchRoll=function(e){return this._toYawPitchRoll(e),null==e._onValueChanged||e._onValueChanged.call(e),e},t.rotateX=function(t){return e.rotateX(this,t,this),this},t.rotateY=function(t){return e.rotateY(this,t,this),this},t.rotateZ=function(t){return e.rotateZ(this,t,this),this},t.rotationAxisAngle=function(t,n){return e.rotationAxisAngle(t,n,this),this},t.multiply=function(t){return e.multiply(this,t,this),this},t.invert=function(){return e.invert(this,this),this},t.dot=function(t){return e.dot(this,t)},t.lerp=function(t,n){return e.lerp(this,t,n,this),this},t.rotateAxisAngle=function(t,n){return e._tempQuat1.rotationAxisAngle(t,n),this.multiply(e._tempQuat1),this},t.clone=function(){return new e(this._x,this._y,this._z,this._w)},t.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,null==this._onValueChanged||this._onValueChanged.call(this),this},t.copyTo=function(e){return e.x=this._x,e.y=this._y,e.z=this._z,e.w=this._w,e},t.copyFromArray=function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],null==this._onValueChanged||this._onValueChanged.call(this),this},t.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w},t.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},t._toYawPitchRoll=function(e){var t=this._x,n=this._y,r=this._z,a=this._w,i=t*t,o=n*n,s=r*r,u=a*a,c=i+o+s+u,l=2*(t*a-n*r);l>(1-eg.zeroTolerance)*c?(e._x=Math.atan2(2*(a*n-t*r),i+u-o-s),e._y=Math.PI/2,e._z=0):l<-(1-eg.zeroTolerance)*c?(e._x=Math.atan2(2*(a*n-t*r),i+u-o-s),e._y=-Math.PI/2,e._z=0):(e._x=Math.atan2(2*(r*t+n*a),s+u-o-i),e._y=Math.asin(l/c),e._z=Math.atan2(2*(t*n+r*a),o+u-s-i))},e.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._z=e._z+t._z,n._w=e._w+t._w,null==n._onValueChanged||n._onValueChanged.call(n)},e.multiply=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t._x,u=t._y,c=t._z,l=t._w;n._x=r*l+o*s+a*c-i*u,n._y=a*l+o*u+i*s-r*c,n._z=i*l+o*c+r*u-a*s,n._w=o*l-r*s-a*u-i*c,null==n._onValueChanged||n._onValueChanged.call(n)},e.conjugate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=e._w,null==t._onValueChanged||t._onValueChanged.call(t)},e.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},e.equals=function(e,t){return eg.equals(e._x,t._x)&&eg.equals(e._y,t._y)&&eg.equals(e._z,t._z)&&eg.equals(e._w,t._w)},e.rotationAxisAngle=function(t,n,r){var a=e._tempVector3;ev.normalize(t,a);var i=Math.sin(n*=.5);r._x=a._x*i,r._y=a._y*i,r._z=a._z*i,r._w=Math.cos(n),null==r._onValueChanged||r._onValueChanged.call(r)},e.rotationEuler=function(t,n,r,a){e.rotationYawPitchRoll(n,t,r,a)},e.rotationYawPitchRoll=function(e,t,n,r){var a=.5*n,i=.5*t,o=.5*e,s=Math.sin(a),u=Math.cos(a),c=Math.sin(i),l=Math.cos(i),h=Math.sin(o),_=Math.cos(o),f=_*l,d=h*c;r._x=_*c*u+h*l*s,r._y=h*l*u-_*c*s,r._z=f*s-d*u,r._w=f*u+d*s,null==r._onValueChanged||r._onValueChanged.call(r)},e.rotationMatrix3x3=function(e,t){var n,r,a=e.elements,i=a[0],o=a[1],s=a[2],u=a[3],c=a[4],l=a[5],h=a[6],_=a[7],f=a[8],d=i+c+f;d>0?(n=Math.sqrt(d+1),t._w=.5*n,n=.5/n,t._x=(l-_)*n,t._y=(h-s)*n,t._z=(o-u)*n):i>=c&&i>=f?(r=.5/(n=Math.sqrt(1+i-c-f)),t._x=.5*n,t._y=(o+u)*r,t._z=(s+h)*r,t._w=(l-_)*r):c>f?(r=.5/(n=Math.sqrt(1+c-i-f)),t._x=(u+o)*r,t._y=.5*n,t._z=(_+l)*r,t._w=(h-s)*r):(r=.5/(n=Math.sqrt(1+f-i-c)),t._x=(s+h)*r,t._y=(l+_)*r,t._z=.5*n,t._w=(o-u)*r),null==t._onValueChanged||t._onValueChanged.call(t)},e.invert=function(e,t){var n=e._x,r=e._y,a=e._z,i=e._w,o=n*n+r*r+a*a+i*i;if(o>eg.zeroTolerance){var s=1/o;t._x=-n*s,t._y=-r*s,t._z=-a*s,t._w=i*s,null==t._onValueChanged||t._onValueChanged.call(t)}},e.lerp=function(t,n,r,a){var i=1-r;e.dot(t,n)>=0?(a._x=t._x*i+n._x*r,a._y=t._y*i+n._y*r,a._z=t._z*i+n._z*r,a._w=t._w*i+n._w*r):(a._x=t._x*i-n._x*r,a._y=t._y*i-n._y*r,a._z=t._z*i-n._z*r,a._w=t._w*i-n._w*r),a.normalize()},e.slerp=function(t,n,r,a){var i,o,s=e.dot(t,n);if(Math.abs(s)>1-eg.zeroTolerance)o=1-r,i=r*Math.sign(s);else{var u=Math.acos(Math.abs(s)),c=1/Math.sin(u);o=Math.sin((1-r)*u)*c,i=Math.sin(r*u)*c*Math.sign(s)}a.x=o*t.x+i*n.x,a.y=o*t.y+i*n.y,a.z=o*t.z+i*n.z,a.w=o*t.w+i*n.w,null==a._onValueChanged||a._onValueChanged.call(a)},e.normalize=function(e,t){var n=e._x,r=e._y,a=e._z,i=e._w,o=Math.sqrt(n*n+r*r+a*a+i*i);o>eg.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,null==t._onValueChanged||t._onValueChanged.call(t))},e.rotationX=function(e,t){var n=Math.sin(e*=.5),r=Math.cos(e);t._x=n,t._y=0,t._z=0,t._w=r,null==t._onValueChanged||t._onValueChanged.call(t)},e.rotationY=function(e,t){var n=Math.sin(e*=.5),r=Math.cos(e);t._x=0,t._y=n,t._z=0,t._w=r,null==t._onValueChanged||t._onValueChanged.call(t)},e.rotationZ=function(e,t){var n=Math.sin(e*=.5),r=Math.cos(e);t._x=0,t._y=0,t._z=n,t._w=r,null==t._onValueChanged||t._onValueChanged.call(t)},e.rotateX=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),u=Math.cos(t);n._x=r*u+o*s,n._y=a*u+i*s,n._z=i*u-a*s,n._w=o*u-r*s,null==n._onValueChanged||n._onValueChanged.call(n)},e.rotateY=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),u=Math.cos(t);n._x=r*u-i*s,n._y=a*u+o*s,n._z=i*u+r*s,n._w=o*u-a*s,null==n._onValueChanged||n._onValueChanged.call(n)},e.rotateZ=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),u=Math.cos(t);n._x=r*u+a*s,n._y=a*u-r*s,n._z=i*u+o*s,n._w=o*u-i*s,null==n._onValueChanged||n._onValueChanged.call(n)},e.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._z=e._z*t,n._w=e._w*t,null==n._onValueChanged||n._onValueChanged.call(n)},em(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"normalized",get:function(){return Math.abs(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w-1)<eg.zeroTolerance}},{key:"w",get:function(){return this._w},set:function(e){this._w=e,null==this._onValueChanged||this._onValueChanged.call(this)}}]),e}();ex._tempVector3=new ev,ex._tempQuat1=new ex;var ew=/*#__PURE__*/function(){function e(e,t,n,r,a,i,o,s,u,c,l,h,_,f,d,p){void 0===e&&(e=1),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=0),void 0===i&&(i=1),void 0===o&&(o=0),void 0===s&&(s=0),void 0===u&&(u=0),void 0===c&&(c=0),void 0===l&&(l=1),void 0===h&&(h=0),void 0===_&&(_=0),void 0===f&&(f=0),void 0===d&&(d=0),void 0===p&&(p=1),this.elements=new Float32Array(16);var m=this.elements;m[0]=e,m[1]=t,m[2]=n,m[3]=r,m[4]=a,m[5]=i,m[6]=o,m[7]=s,m[8]=u,m[9]=c,m[10]=l,m[11]=h,m[12]=_,m[13]=f,m[14]=d,m[15]=p}var t=e.prototype;return t.set=function(e,t,n,r,a,i,o,s,u,c,l,h,_,f,d,p){var m=this.elements;return m[0]=e,m[1]=t,m[2]=n,m[3]=r,m[4]=a,m[5]=i,m[6]=o,m[7]=s,m[8]=u,m[9]=c,m[10]=l,m[11]=h,m[12]=_,m[13]=f,m[14]=d,m[15]=p,this},t.multiply=function(t){return e.multiply(this,t,this),this},t.determinant=function(){var e=this.elements,t=e[0],n=e[1],r=e[2],a=e[3],i=e[4],o=e[5],s=e[6],u=e[7],c=e[8],l=e[9],h=e[10],_=e[11],f=e[12],d=e[13],p=e[14],m=e[15];return(t*o-n*i)*(h*m-_*p)-(t*s-r*i)*(l*m-_*d)+(t*u-a*i)*(l*p-h*d)+(n*s-r*o)*(c*m-_*f)-(n*u-a*o)*(c*p-h*f)+(r*u-a*s)*(c*d-l*f)},t.decompose=function(t,n,r){var a=e._tempMat30,i=this.elements,o=a.elements,s=i[0],u=i[1],c=i[2],l=i[4],h=i[5],_=i[6],f=i[8],d=i[9],p=i[10];t.set(i[12],i[13],i[14]);var m=Math.sqrt(s*s+u*u+c*c),g=Math.sqrt(l*l+h*h+_*_),v=Math.sqrt(f*f+d*d+p*p);if(0>this.determinant()&&(m=-m),r.set(m,g,v),Math.abs(m)<eg.zeroTolerance||Math.abs(g)<eg.zeroTolerance||Math.abs(v)<eg.zeroTolerance)return n.identity(),!1;var y=1/m,x=1/g,w=1/v;return o[0]=s*y,o[1]=u*y,o[2]=c*y,o[3]=l*x,o[4]=h*x,o[5]=_*x,o[6]=f*w,o[7]=d*w,o[8]=p*w,ex.rotationMatrix3x3(a,n),!0},t.getRotation=function(e){var t=this.elements,n=t[0]+t[5]+t[10];if(n>eg.zeroTolerance){var r=2*Math.sqrt(n+1);e._w=.25*r,e._x=(t[6]-t[9])/r,e._y=(t[8]-t[2])/r,e._z=(t[1]-t[4])/r}else if(t[0]>t[5]&&t[0]>t[10]){var a=2*Math.sqrt(1+t[0]-t[5]-t[10]);e._w=(t[6]-t[9])/a,e._x=.25*a,e._y=(t[1]+t[4])/a,e._z=(t[8]+t[2])/a}else if(t[5]>t[10]){var i=2*Math.sqrt(1+t[5]-t[0]-t[10]);e._w=(t[8]-t[2])/i,e._x=(t[1]+t[4])/i,e._y=.25*i,e._z=(t[6]+t[9])/i}else{var o=2*Math.sqrt(1+t[10]-t[0]-t[5]);e._w=(t[1]-t[4])/o,e._x=(t[8]+t[2])/o,e._y=(t[6]+t[9])/o,e._z=.25*o}return null==e._onValueChanged||e._onValueChanged.call(e),e},t.getScaling=function(e){var t=this.elements,n=t[0],r=t[1],a=t[2],i=t[4],o=t[5],s=t[6],u=t[8],c=t[9],l=t[10];return e.set(Math.sqrt(n*n+r*r+a*a),Math.sqrt(i*i+o*o+s*s),Math.sqrt(u*u+c*c+l*l)),e},t.getTranslation=function(e){var t=this.elements;return e.set(t[12],t[13],t[14]),e},t.identity=function(){var e=this.elements;return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},t.invert=function(){return e.invert(this,this),this},t.rotateAxisAngle=function(t,n){return e.rotateAxisAngle(this,t,n,this),this},t.scale=function(t){return e.scale(this,t,this),this},t.translate=function(t){return e.translate(this,t,this),this},t.transpose=function(){return e.transpose(this,this),this},t.clone=function(){var t=this.elements;return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])},t.copyFrom=function(e){var t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this},t.copyFromArray=function(e,t){void 0===t&&(t=0);for(var n=this.elements,r=0;r<16;r++)n[r]=e[r+t];return this},t.copyToArray=function(e,t){void 0===t&&(t=0);var n=this.elements;e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15]},e.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],u=r[2],c=r[3],l=r[4],h=r[5],_=r[6],f=r[7],d=r[8],p=r[9],m=r[10],g=r[11],v=r[12],y=r[13],x=r[14],w=r[15],z=a[0],S=a[1],k=a[2],C=a[3],M=a[4],T=a[5],b=a[6],R=a[7],V=a[8],q=a[9],F=a[10],A=a[11],E=a[12],P=a[13],L=a[14],D=a[15];i[0]=o*z+l*S+d*k+v*C,i[1]=s*z+h*S+p*k+y*C,i[2]=u*z+_*S+m*k+x*C,i[3]=c*z+f*S+g*k+w*C,i[4]=o*M+l*T+d*b+v*R,i[5]=s*M+h*T+p*b+y*R,i[6]=u*M+_*T+m*b+x*R,i[7]=c*M+f*T+g*b+w*R,i[8]=o*V+l*q+d*F+v*A,i[9]=s*V+h*q+p*F+y*A,i[10]=u*V+_*q+m*F+x*A,i[11]=c*V+f*q+g*F+w*A,i[12]=o*E+l*P+d*L+v*D,i[13]=s*E+h*P+p*L+y*D,i[14]=u*E+_*P+m*L+x*D,i[15]=c*E+f*P+g*L+w*D},e.equals=function(e,t){var n=e.elements,r=t.elements;return eg.equals(n[0],r[0])&&eg.equals(n[1],r[1])&&eg.equals(n[2],r[2])&&eg.equals(n[3],r[3])&&eg.equals(n[4],r[4])&&eg.equals(n[5],r[5])&&eg.equals(n[6],r[6])&&eg.equals(n[7],r[7])&&eg.equals(n[8],r[8])&&eg.equals(n[9],r[9])&&eg.equals(n[10],r[10])&&eg.equals(n[11],r[11])&&eg.equals(n[12],r[12])&&eg.equals(n[13],r[13])&&eg.equals(n[14],r[14])&&eg.equals(n[15],r[15])},e.lerp=function(e,t,n,r){var a=e.elements,i=t.elements,o=r.elements,s=1-n;o[0]=a[0]*s+i[0]*n,o[1]=a[1]*s+i[1]*n,o[2]=a[2]*s+i[2]*n,o[3]=a[3]*s+i[3]*n,o[4]=a[4]*s+i[4]*n,o[5]=a[5]*s+i[5]*n,o[6]=a[6]*s+i[6]*n,o[7]=a[7]*s+i[7]*n,o[8]=a[8]*s+i[8]*n,o[9]=a[9]*s+i[9]*n,o[10]=a[10]*s+i[10]*n,o[11]=a[11]*s+i[11]*n,o[12]=a[12]*s+i[12]*n,o[13]=a[13]*s+i[13]*n,o[14]=a[14]*s+i[14]*n,o[15]=a[15]*s+i[15]*n},e.add=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements;i[0]=r[0]+a[0],i[1]=r[1]+a[1],i[2]=r[2]+a[2],i[3]=r[3]+a[3],i[4]=r[4]+a[4],i[5]=r[5]+a[5],i[6]=r[6]+a[6],i[7]=r[7]+a[7],i[8]=r[8]+a[8],i[9]=r[9]+a[9],i[10]=r[10]+a[10],i[11]=r[11]+a[11],i[12]=r[12]+a[12],i[13]=r[13]+a[13],i[14]=r[14]+a[14],i[15]=r[15]+a[15]},e.multiplyScalar=function(e,t,n){var r=e.elements,a=n.elements;a[0]=r[0]*t,a[1]=r[1]*t,a[2]=r[2]*t,a[3]=r[3]*t,a[4]=r[4]*t,a[5]=r[5]*t,a[6]=r[6]*t,a[7]=r[7]*t,a[8]=r[8]*t,a[9]=r[9]*t,a[10]=r[10]*t,a[11]=r[11]*t,a[12]=r[12]*t,a[13]=r[13]*t,a[14]=r[14]*t,a[15]=r[15]*t},e.rotationQuaternion=function(e,t){var n=t.elements,r=e._x,a=e._y,i=e._z,o=e._w,s=r+r,u=a+a,c=i+i,l=r*s,h=a*s,_=a*u,f=i*s,d=i*u,p=i*c,m=o*s,g=o*u,v=o*c;n[0]=1-_-p,n[1]=h+v,n[2]=f-g,n[3]=0,n[4]=h-v,n[5]=1-l-p,n[6]=d+m,n[7]=0,n[8]=f+g,n[9]=d-m,n[10]=1-l-_,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1},e.rotationAxisAngle=function(e,t,n){var r,a,i,o=n.elements,s=e._x,u=e._y,c=e._z,l=Math.sqrt(s*s+u*u+c*c);Math.abs(l)<eg.zeroTolerance||(s*=l=1/l,u*=l,c*=l,r=Math.sin(t),i=1-(a=Math.cos(t)),o[0]=s*s*i+a,o[1]=u*s*i+c*r,o[2]=c*s*i-u*r,o[3]=0,o[4]=s*u*i-c*r,o[5]=u*u*i+a,o[6]=c*u*i+s*r,o[7]=0,o[8]=s*c*i+u*r,o[9]=u*c*i-s*r,o[10]=c*c*i+a,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1)},e.rotationTranslation=function(t,n,r){e.rotationQuaternion(t,r);var a=r.elements;a[12]=n._x,a[13]=n._y,a[14]=n._z},e.affineTransformation=function(e,t,n,r){var a=r.elements,i=t._x,o=t._y,s=t._z,u=t._w,c=i+i,l=o+o,h=s+s,_=i*c,f=i*l,d=i*h,p=o*l,m=o*h,g=s*h,v=u*c,y=u*l,x=u*h,w=e._x,z=e._y,S=e._z;a[0]=(1-(p+g))*w,a[1]=(f+x)*w,a[2]=(d-y)*w,a[3]=0,a[4]=(f-x)*z,a[5]=(1-(_+g))*z,a[6]=(m+v)*z,a[7]=0,a[8]=(d+y)*S,a[9]=(m-v)*S,a[10]=(1-(_+p))*S,a[11]=0,a[12]=n._x,a[13]=n._y,a[14]=n._z,a[15]=1},e.scaling=function(e,t){var n=t.elements;n[0]=e._x,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=e._y,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=e._z,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1},e.translation=function(e,t){var n=t.elements;n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=e._x,n[13]=e._y,n[14]=e._z,n[15]=1},e.invert=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],u=n[4],c=n[5],l=n[6],h=n[7],_=n[8],f=n[9],d=n[10],p=n[11],m=n[12],g=n[13],v=n[14],y=n[15],x=a*c-i*u,w=a*l-o*u,z=a*h-s*u,S=i*l-o*c,k=i*h-s*c,C=o*h-s*l,M=_*g-f*m,T=_*v-d*m,b=_*y-p*m,R=f*v-d*g,V=f*y-p*g,q=d*y-p*v,F=x*q-w*V+z*R+S*b-k*T+C*M;if(!F)return null;F=1/F,r[0]=(c*q-l*V+h*R)*F,r[1]=(o*V-i*q-s*R)*F,r[2]=(g*C-v*k+y*S)*F,r[3]=(d*k-f*C-p*S)*F,r[4]=(l*b-u*q-h*T)*F,r[5]=(a*q-o*b+s*T)*F,r[6]=(v*z-m*C-y*w)*F,r[7]=(_*C-d*z+p*w)*F,r[8]=(u*V-c*b+h*M)*F,r[9]=(i*b-a*V-s*M)*F,r[10]=(m*k-g*z+y*x)*F,r[11]=(f*z-_*k-p*x)*F,r[12]=(c*T-u*R-l*M)*F,r[13]=(a*R-i*T+o*M)*F,r[14]=(g*w-m*S-v*x)*F,r[15]=(_*S-f*w+d*x)*F},e.lookAt=function(t,n,r,a){var i=a.elements,o=e._tempVec30,s=e._tempVec31,u=e._tempVec32;ev.subtract(t,n,u),u.normalize(),ev.cross(r,u,o),o.normalize(),ev.cross(u,o,s),i[0]=o._x,i[1]=s._x,i[2]=u._x,i[3]=0,i[4]=o._y,i[5]=s._y,i[6]=u._y,i[7]=0,i[8]=o._z,i[9]=s._z,i[10]=u._z,i[11]=0,i[12]=-ev.dot(o,t),i[13]=-ev.dot(s,t),i[14]=-ev.dot(u,t),i[15]=1},e.ortho=function(e,t,n,r,a,i,o){var s=o.elements,u=1/(e-t),c=1/(n-r),l=1/(a-i);s[0]=-2*u,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*c,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*l,s[11]=0,s[12]=(e+t)*u,s[13]=(r+n)*c,s[14]=(i+a)*l,s[15]=1},e.perspective=function(e,t,n,r,a){var i=a.elements,o=1/Math.tan(e/2),s=1/(n-r);i[0]=o/t,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=(r+n)*s,i[11]=-1,i[12]=0,i[13]=0,i[14]=2*r*n*s,i[15]=0},e.rotateAxisAngle=function(e,t,n,r){var a,i,o,s=t._x,u=t._y,c=t._z,l=Math.sqrt(s*s+u*u+c*c);if(!(Math.abs(l)<eg.zeroTolerance)){var h=e.elements,_=r.elements;s*=l=1/l,u*=l,c*=l,a=Math.sin(n),o=1-(i=Math.cos(n));var f=h[0],d=h[1],p=h[2],m=h[3],g=h[4],v=h[5],y=h[6],x=h[7],w=h[8],z=h[9],S=h[10],k=h[11],C=s*s*o+i,M=u*s*o+c*a,T=c*s*o-u*a,b=s*u*o-c*a,R=u*u*o+i,V=c*u*o+s*a,q=s*c*o+u*a,F=u*c*o-s*a,A=c*c*o+i;_[0]=f*C+g*M+w*T,_[1]=d*C+v*M+z*T,_[2]=p*C+y*M+S*T,_[3]=m*C+x*M+k*T,_[4]=f*b+g*R+w*V,_[5]=d*b+v*R+z*V,_[6]=p*b+y*R+S*V,_[7]=m*b+x*R+k*V,_[8]=f*q+g*F+w*A,_[9]=d*q+v*F+z*A,_[10]=p*q+y*F+S*A,_[11]=m*q+x*F+k*A,e!==r&&(_[12]=h[12],_[13]=h[13],_[14]=h[14],_[15]=h[15])}},e.scale=function(e,t,n){var r=e.elements,a=n.elements,i=t._x,o=t._y,s=t._z;a[0]=r[0]*i,a[1]=r[1]*i,a[2]=r[2]*i,a[3]=r[3]*i,a[4]=r[4]*o,a[5]=r[5]*o,a[6]=r[6]*o,a[7]=r[7]*o,a[8]=r[8]*s,a[9]=r[9]*s,a[10]=r[10]*s,a[11]=r[11]*s,a[12]=r[12],a[13]=r[13],a[14]=r[14],a[15]=r[15]},e.translate=function(e,t,n){var r=e.elements,a=n.elements,i=t._x,o=t._y,s=t._z;if(e===n)a[12]=r[0]*i+r[4]*o+r[8]*s+r[12],a[13]=r[1]*i+r[5]*o+r[9]*s+r[13],a[14]=r[2]*i+r[6]*o+r[10]*s+r[14],a[15]=r[3]*i+r[7]*o+r[11]*s+r[15];else{var u=r[0],c=r[1],l=r[2],h=r[3],_=r[4],f=r[5],d=r[6],p=r[7],m=r[8],g=r[9],v=r[10],y=r[11];a[0]=u,a[1]=c,a[2]=l,a[3]=h,a[4]=_,a[5]=f,a[6]=d,a[7]=p,a[8]=m,a[9]=g,a[10]=v,a[11]=y,a[12]=u*i+_*o+m*s+r[12],a[13]=c*i+f*o+g*s+r[13],a[14]=l*i+d*o+v*s+r[14],a[15]=h*i+p*o+y*s+r[15]}},e.transpose=function(e,t){var n=e.elements,r=t.elements;if(t===e){var a=n[1],i=n[2],o=n[3],s=n[6],u=n[7],c=n[11];r[1]=n[4],r[2]=n[8],r[3]=n[12],r[4]=a,r[6]=n[9],r[7]=n[13],r[8]=i,r[9]=s,r[11]=n[14],r[12]=o,r[13]=u,r[14]=c}else r[0]=n[0],r[1]=n[4],r[2]=n[8],r[3]=n[12],r[4]=n[1],r[5]=n[5],r[6]=n[9],r[7]=n[13],r[8]=n[2],r[9]=n[6],r[10]=n[10],r[11]=n[14],r[12]=n[3],r[13]=n[7],r[14]=n[11],r[15]=n[15]},e}();ew._tempVec30=new ev,ew._tempVec31=new ev,ew._tempVec32=new ev,ew._tempMat30=new ey,ew._identity=new ew(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);var ez=/*#__PURE__*/function(){function e(e){this._session=e}var t=e.prototype;return t.updateInputs=function(e){this._platformFrame&&(this._updateController(e),this._updateCamera(e))},t._updateController=function(e){for(var t=this._platformFrame,n=this._session,r=n._platformSession,a=n._platformReferenceSpace,i=r.inputSources,o=0,s=i.length;o<s;o++){var u=i[o],c=e[ed(u)];switch(u.targetRayMode){case"screen":case"tracked-pointer":var l=u.gripSpace,h=u.targetRaySpace;if(l){var _=t.getPose(l,a),f=_.transform,d=_.emulatedPosition;if(f){var p=c.gripPose;p.matrix.copyFromArray(f.matrix),p.position.copyFrom(f.position),p.rotation.copyFrom(f.orientation)}c.trackingState=d?R.TrackingLost:R.Tracking}if(h){var m=t.getPose(h,a),g=m.transform,v=m.emulatedPosition;if(g){var y=c.targetRayPose;y.matrix.copyFromArray(g.matrix),y.position.copyFrom(g.position),y.rotation.copyFrom(g.orientation),c.trackingState=v?R.TrackingLost:R.Tracking}}}}},t._updateCamera=function(e){var t=this._platformFrame,n=this._session,r=n._platformReferenceSpace,a=n._platformLayer,i=n.framebufferWidth,o=n.framebufferHeight,s=t.getViewerPose(r);if(s){for(var u=!1,c=s.views,l=s.emulatedPosition,h=0,_=c.length;h<_;h++){var f=c[h],d=function(e){switch(e){case"left":return C.LeftCamera;case"right":return C.RightCamera;default:return C.Camera}}(f.eye),p=c[h].transform;d===C.Camera&&(u||(u=!0));var m=e[d],g=m.pose;g.matrix.copyFromArray(p.matrix),g.position.copyFrom(p.position),g.rotation.copyFrom(p.orientation),m.projectionMatrix.copyFromArray(f.projectionMatrix),m.trackingState=l?R.TrackingLost:R.Tracking;var v=a.getViewport(f),y=v.width/i,x=v.height/o,w=v.x/i,z=1-v.y/o-x;m.viewport.set(w,z,y,x)}if(!u){var S=e[C.LeftCamera],k=e[C.RightCamera],M=e[C.Camera],T=S.pose,b=k.pose,V=M.pose;V.rotation.copyFrom(T.rotation);var q=V.position,F=V.matrix;ev.add(T.position,b.position,q),q.scale(.5),F.copyFrom(T.matrix);var A=F.elements;A[12]=q.x,A[13]=q.y,A[14]=q.z,M.projectionMatrix.copyFrom(S.projectionMatrix),M.trackingState=l?R.TrackingLost:R.Tracking,M.viewport=S.viewport.width&&S.viewport.height?S.viewport:k.viewport}}},e}(),eS=/*#__PURE__*/function(){function e(e,t,n){this._events=[],this._screenPointers=[],this._inputEventTypeMap={selectstart:E.SelectStart,select:E.Select,selectend:E.SelectEnd,squeezestart:E.SqueezeStart,squeeze:E.Squeeze,squeezeend:E.SqueezeEnd},this._targetRayModeMap={gaze:P.Gaze,"tracked-pointer":P.TrackedPointer,screen:P.Screen},this._frame=new ez(this),this._platformSession=e,this._platformLayer=t,this._platformReferenceSpace=n;var r=e.requestAnimationFrame.bind(e),a=(function(e,t,n){this._frame._platformFrame=t,n(e)}).bind(this);this.requestAnimationFrame=function(e){return r(function(t,n){a(t,n,e)})},this.cancelAnimationFrame=e.cancelAnimationFrame.bind(e),this._onSessionEvent=this._onSessionEvent.bind(this),this._onSessionExit=this._onSessionExit.bind(this)}var t=e.prototype;return t.getFixedFoveation=function(){return this._platformLayer.fixedFoveation},t.setFixedFoveation=function(e){this._platformLayer.fixedFoveation=e},t.start=function(){},t.stop=function(){this._frame._platformFrame=null},t.end=function(){return this._frame._platformFrame=null,this._platformSession.end()},t.setSessionExitCallBack=function(e){this._onSessionExitCallBack=e},t.addEventListener=function(){var e=this._onSessionEvent,t=this._platformSession;t.addEventListener("select",e),t.addEventListener("selectstart",e),t.addEventListener("selectend",e),t.addEventListener("squeeze",e),t.addEventListener("squeezestart",e),t.addEventListener("squeezeend",e),t.addEventListener("end",this._onSessionExit)},t.removeEventListener=function(){var e=this._onSessionEvent,t=this._platformSession;t.removeEventListener("select",e),t.removeEventListener("selectstart",e),t.removeEventListener("selectend",e),t.removeEventListener("squeeze",e),t.removeEventListener("squeezestart",e),t.removeEventListener("squeezeend",e),t.removeEventListener("end",this._onSessionExit),this._events.length=0},t.resetEvents=function(){this._events.length=0},t._onSessionExit=function(){this._onSessionExitCallBack&&(this._onSessionExitCallBack(),this._onSessionExitCallBack=null)},t._onSessionEvent=function(e){var t=e.inputSource,n={type:this._inputEventTypeMap[e.type],input:ed(t),targetRayMode:this._targetRayModeMap[t.targetRayMode]};if(n.targetRayMode===P.Screen){var r=this._screenPointers,a=t.gamepad.axes;switch(n.x=a[0],n.y=a[1],n.type){case E.SelectStart:for(var i=-1,o=-1,s=r.length-1;s>=0;s--){var u=r[s];if(u===t){i=s;break}u||(o=s)}-1===i&&(-1===o?i=r.push(t)-1:(i=o,r[o]=t)),n.id=i;break;case E.SelectEnd:for(var c=r.length-1;c>=0;c--)r[c]===t&&(r[c]=null,n.id=c)}}this._events.push(n)},r(e,[{key:"frame",get:function(){return this._frame}},{key:"framebuffer",get:function(){return this._platformLayer.framebuffer}},{key:"framebufferWidth",get:function(){return this._platformLayer.framebufferWidth}},{key:"framebufferHeight",get:function(){return this._platformLayer.framebufferHeight}},{key:"frameRate",get:function(){return this._platformSession.frameRate}},{key:"supportedFrameRates",get:function(){return this._platformSession.supportedFrameRates}},{key:"events",get:function(){for(var e=this._events,t=this._screenPointers,n=0;n<t.length;n++){var r=t[n];if(r){var a=r.gamepad.axes,i={type:E.Select,targetRayMode:P.Screen,input:C.Controller,id:n,x:a[0],y:a[1]};e.push(i)}}return e}}]),e}(),ek=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.isSupportedSessionMode=function(e){return new Promise(function(t,n){if(!window.isSecureContext){n(Error("WebXR is available only in secure contexts (HTTPS)."));return}if(!navigator.xr){n(Error("WebXR isn't available"));return}navigator.xr.isSessionSupported(ef(e)).then(function(e){e?t():n(Error("The current context doesn't support WebXR."))})})},t.isSupportedFeature=function(e){switch(e){case X.HitTest:case X.PlaneTracking:return"undefined"!=typeof XRPlane;case X.AnchorTracking:return"undefined"!=typeof XRAnchor;case X.ImageTracking:return"undefined"!=typeof XRImageTrackingResult}},t.createPlatformFeature=function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];var i=e._platformFeatureMap[t];return i?e_(i,[].concat(r)):null},t.requestSession=function(e,t,n){return new Promise(function(r,a){for(var i=ef(t),o={requiredFeatures:["local"]},s=[],u=0,c=n.length;u<c;u++){var l=n[u]._assembleOptions(o);l&&s.push(l)}Promise.all(s).then(function(){navigator.xr.requestSession(i,o).then(function(t){var n=e.gl,i=n.getContextAttributes();i||a(Error("GetContextAttributes Error!")),n.makeXRCompatible().then(function(){var o,s=XRWebGLLayer.getNativeFramebufferScaleFactor(t);if(void 0!==t.renderState.layers&&e.isWebGL2)o=new XRWebGLLayer(t,n),t.updateRenderState({layers:[o]});else{var u={antialias:void 0!==t.renderState.layers||i.antialias,alpha:!0,depth:i.depth,stencil:i.stencil,framebufferScaleFactor:s};o=new XRWebGLLayer(t,n,u),t.updateRenderState({baseLayer:o})}t.requestReferenceSpace("local").then(function(e){r(new eS(t,o,e))},a)},a)},a)},a)})},e}();function eC(e){return function(t){ek._platformFeatureMap[e]=t}}ek._platformFeatureMap=[];var eM=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}i(t,e);var n=t.prototype;return n.onAddRequestTracking=function(e){},n.onDelRequestTracking=function(e){e.state=B.Destroyed},r(t,[{key:"canModifyRequestTrackingAfterInit",get:function(){return!1}}]),t}(function(){}),eT=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}i(t,e);var n=t.prototype;return n.checkAvailable=function(e,t,n){if(!t._platformFrame)return!1;for(var r=0,a=n.length;r<a;r++){var i=n[r];i.state===B.None&&this._addAnchor(e,t,i)}return!0},n.getTrackedResult=function(e,t,n){for(var r=e._platformReferenceSpace,a=t._platformFrame,i=a.trackedAnchors,o=0,s=n.length;o<s;o++){var u=n[o];if(u.state===B.Resolved){var c=u.tracked[0];i.has(u.xrAnchor)?this._updateTrackedAnchor(a,r,u)?c.state===R.Tracking&&(c.state=R.TrackingLost):c.state=R.Tracking:c.state=R.NotTracking}}},n.onDelRequestTracking=function(e){switch(e.state){case B.Submitted:e.state=B.WaitingDestroy;break;case B.Resolved:e.xrAnchor.delete(),e.state=B.Destroyed;break;default:e.state=B.Destroyed}},n._assembleOptions=function(e){e.requiredFeatures.push("anchors")},n._addAnchor=function(e,t,n){if(e&&t){n.state=B.Submitted;var r=n.position,a=n.rotation,i=t._platformFrame,o=e._platformReferenceSpace;i.createAnchor(new XRRigidTransform({x:r.x,y:r.y,z:r.z},{x:a.x,y:a.y,z:a.z,w:a.w}),o).then(function(e){n.state===B.WaitingDestroy?(e.delete(),n.state=B.Destroyed):(n.xrAnchor=e,n.state=B.Resolved)},function(){n.state===B.WaitingDestroy?n.state=B.Destroyed:n.state=B.Rejected})}},n._updateTrackedAnchor=function(e,t,n){var r=n.xrAnchor,a=e.getPose(r.anchorSpace,t),i=a.transform,o=n.tracked[0].pose;return o.matrix.copyFromArray(i.matrix),o.rotation.copyFrom(i.orientation),o.position.copyFrom(i.position),a.emulatedPosition},r(t,[{key:"canModifyRequestTrackingAfterInit",get:function(){return!0}}]),t}(eM);eT=o([eC(X.AnchorTracking)],eT);var eb=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this)||this)._trackingScoreStatus=0,n._tempIdx=0,n._tempArr=[],n._images=t,n}i(t,e);var n=t.prototype;return n.checkAvailable=function(e,t,n){if(!t._platformFrame)return!1;switch(this._trackingScoreStatus){case 0:return this._requestTrackingScore(e,n),!1;case 1:return!1}return!0},n.getTrackedResult=function(e,t,n,r){for(var a=e._platformReferenceSpace,i=t._platformFrame,o=this._tempArr,s=++this._tempIdx,u=i.getImageTrackingResults(),c=0,l=u.length;c<l;c++){var h=u[c],_=h.index,f=n[_];if(f){var d=f.tracked[0];d||((d=f.tracked[0]=r()).referenceImage=f.image),"tracked"===h.trackingState?(this._updateTrackedImage(i,a,d,h),d.state=R.Tracking):d.state=R.TrackingLost,o[_]=s}else console.warn("Images can not find "+_)}for(var p=0,m=n.length;p<m;p++)o[p]<s&&(n[p].tracked[0].state=R.NotTracking)},n.onAddRequestTracking=function(e){e.state=B.Submitted},n._assembleOptions=function(e){e.requiredFeatures.push("image-tracking");var t=this._images,n=[];if(!t)return Promise.reject(Error("Images.length is 0"));for(var r=0,a=t.length;r<a;r++){var i=t[r],o=t[r].imageSource;if(!o)return Promise.reject(Error("referenceImage["+i.name+"].src is null"));n.push(createImageBitmap(o))}return new Promise(function(r,a){var i=e.trackedImages=[];Promise.all(n).then(function(e){for(var n=0,a=e.length;n<a;n++)i.push({image:e[n],widthInMeters:t[n].physicalWidth});r()},a)})},n._requestTrackingScore=function(e,t){var n=this;this._trackingScoreStatus=1,e._platformSession.getTrackedImageScores().then(function(e){if(e)for(var r=0,a=e.length;r<a;r++){var i=e[r],o=t[r];"trackable"===i?(n._trackingScoreStatus=2,o.state=B.Resolved):(o.state=B.Rejected,console.warn(o.image.name," unTrackable"))}})},n._updateTrackedImage=function(e,t,n,r){var a=n.pose,i=e.getPose(r.imageSpace,t).transform;a.matrix.copyFromArray(i.matrix),a.rotation.copyFrom(i.orientation),a.position.copyFrom(i.position),n.measuredPhysicalWidth=r.measuredWidthInMeters},t}(eM);eb=o([eC(X.ImageTracking)],eb);var eR=/*#__PURE__*/function(e){function t(t){var n;return n=e.call(this)||this,t!==Y.EveryThing&&console.warn("WebXR only support XRPlaneMode.EveryThing"),n}i(t,e);var n=t.prototype;return n.checkAvailable=function(e,t,n){return!!t._platformFrame},n.getTrackedResult=function(e,t,n,r){for(var a,i=this,o=e._platformReferenceSpace,s=t._platformFrame,u=s.detectedPlanes||(null==(a=s.worldInformation)?void 0:a.detectedPlanes),c=n[0].tracked,l=0,h=c.length;l<h;l++){var _=c[l];u.has(_.xrPlane)?(_.state=R.Tracking,this._updatePlane(s,o,_)):_.state=R.NotTracking}var f=this._lastDetectedPlanes;u.forEach(function(e){if(!(null==f?void 0:f.has(e))){var t=r();t.xrPlane=e,t.lastChangedTime=-1,i._updatePlane(s,o,t),c.push(t)}}),this._lastDetectedPlanes=u},n.onAddRequestTracking=function(e){e.state=B.Resolved},n._assembleOptions=function(e){e.requiredFeatures.push("plane-detection")},n._updatePlane=function(e,t,n){var r=n.pose,a=n.polygon,i=n.xrPlane,o=e.getPose(i.planeSpace,t);if(o){var s=o.transform,u=o.emulatedPosition;if(n.state=u?R.TrackingLost:R.Tracking,n.planeMode="horizontal"===i.orientation?Y.Horizontal:Y.Vertical,n.lastChangedTime<i.lastChangedTime){n.lastChangedTime=i.lastChangedTime,n.attributesDirty=!0;for(var c,l=i.polygon,h=0,_=a.length=l.length;h<_;h++)(a[c=h]||(a[c]=new ev)).copyFrom(l[h])}else n.attributesDirty=!1;r.rotation.copyFrom(s.orientation),r.position.copyFrom(s.position),r.matrix.copyFromArray(s.matrix),r.inverseMatrix.copyFromArray(s.inverse.matrix)}},t}(eM);eR=o([eC(X.PlaneTracking)],eR),e.WebXRDevice=ek,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@galacean/engine")):"function"==typeof define&&define.amd?define(["exports","@galacean/engine"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).Galacean=e.Galacean||{},e.Galacean.WebXR={}),e.Galacean)}(this,function(e,t){"use strict";function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function r(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}function o(e,t,n,r){var a,i=arguments.length,o=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(i<3?a(o):i>3?a(t,n,o):a(t,n))||o);return i>3&&o&&Object.defineProperty(t,n,o),o}function s(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(s=function(){return!!e})()}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e,t,n){return(c=s()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&u(a,n.prototype),a}).apply(null,arguments)}function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t,n){return t&&l(e.prototype,t),n&&l(e,n),e}function _(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}function f(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}"function"==typeof SuppressedError&&SuppressedError;var d,p,m,g,v,y,x,w,z,S,k,C=((d={})[d.Controller=0]="Controller",d[d.LeftController=1]="LeftController",d[d.RightController=2]="RightController",d[d.Camera=3]="Camera",d[d.LeftCamera=4]="LeftCamera",d[d.RightCamera=5]="RightCamera",d[d.LeftHand=6]="LeftHand",d[d.RightHand=7]="RightHand",d),M=((p={})[p.None=0]="None",p[p.Initializing=1]="Initializing",p[p.Initialized=2]="Initialized",p[p.Running=3]="Running",p[p.Paused=4]="Paused",p),T=/*#__PURE__*/function(){function e(e){this._xrManager=e}var n=e.prototype;return n.attachCamera=function(e,n){var r=this._xrManager.inputManager.getTrackedDevice(e),a=r._camera;if(a!==n){switch(a&&(a._cameraType=t.CameraType.Normal),e){case C.Camera:n._cameraType=t.CameraType.XRCenterCamera;break;case C.LeftCamera:n._cameraType=t.CameraType.XRLeftCamera;break;case C.RightCamera:n._cameraType=t.CameraType.XRRightCamera}r._camera=n}},n.detachCamera=function(e){var n=this._xrManager.inputManager.getTrackedDevice(e),r=n._camera;return r&&(r._cameraType=t.CameraType.Normal),n._camera=null,r},n._onSessionStart=function(){},n._onUpdate=function(){for(var e=this._xrManager.inputManager._cameras,n=0,r=e.length;n<r;n++){var a=e[n],i=a._camera;if(i){var o=i.entity.transform,s=a.pose;o.position=s.position,o.rotationQuaternion=s.rotation;var u=i.viewport,c=a.viewport,l=c.x,h=c.y,_=c.width,f=c.height;l===u.x&&h===u.y&&_===u.z&&f===u.w||(i.viewport=u.set(l,h,_,f)),t.Matrix.equals(i.projectionMatrix,a.projectionMatrix)||(i.projectionMatrix=a.projectionMatrix)}}},n._onSessionExit=function(){},n._getIgnoreClearFlags=function(e){return e!==t.CameraType.XRCenterCamera?t.CameraClearFlags.None:this._xrManager.sessionManager.state===M.Running?t.CameraClearFlags.Color:t.CameraClearFlags.None},n._onDestroy=function(){},h(e,[{key:"fixedFoveation",get:function(){var e=this._xrManager.sessionManager._platformSession;if(e)return e.getFixedFoveation();throw Error("XR session is not available.")},set:function(e){var t=this._xrManager.sessionManager._platformSession;if(t)t.setFixedFoveation(e);else throw Error("XR session is not available.")}}]),e}(),b=function(){this.position=new t.Vector3,this.rotation=new t.Quaternion,this.matrix=new t.Matrix,this.inverseMatrix=new t.Matrix},R=((m={})[m.NotTracking=0]="NotTracking",m[m.Tracking=1]="Tracking",m[m.TrackingLost=2]="TrackingLost",m),V=function(e){this.type=e,this.trackingState=R.NotTracking},q=/*#__PURE__*/function(e){function n(){var n;return n=e.apply(this,arguments)||this,n.pose=new b,n.viewport=new t.Rect,n.projectionMatrix=new t.Matrix,n}return _(n,e),n}(V),F=((g={})[g.None=0]="None",g[g.Select=1]="Select",g[g.Trigger=1]="Trigger",g[g.Squeeze=2]="Squeeze",g[g.TouchPad=4]="TouchPad",g[g.AButton=8]="AButton",g[g.BButton=16]="BButton",g),A=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.gripPose=new b,t.targetRayPose=new b,t.pressedButtons=F.None,t.down=F.None,t.up=F.None,t}_(t,e);var n=t.prototype;return n.isButtonDown=function(e){return(this.down&e)!=0},n.isButtonUp=function(e){return(this.up&e)!=0},n.isButtonHeldDown=function(e){return(this.pressedButtons&e)!=0},t}(V),E=((v={})[v.SelectStart=0]="SelectStart",v[v.Select=1]="Select",v[v.SelectEnd=2]="SelectEnd",v[v.SqueezeStart=3]="SqueezeStart",v[v.Squeeze=4]="Squeeze",v[v.SqueezeEnd=5]="SqueezeEnd",v),P=((y={})[y.Gaze=0]="Gaze",y[y.TrackedPointer=1]="TrackedPointer",y[y.Screen=2]="Screen",y),L=/*#__PURE__*/function(){function e(e,n){this._xrManager=e,this._engine=n,this._cameras=[],this._controllers=[],this._added=[],this._removed=[],this._trackedDevices=[],this._statusSnapshot=[],this._listeners=new t.SafeLoopArray;for(var r=this._trackedDevices,a=this._controllers,i=this._cameras,o=0;o<6;o++)switch(o){case C.Camera:case C.LeftCamera:case C.RightCamera:i.push(r[o]=new q(o));break;case C.Controller:case C.LeftController:case C.RightController:a.push(r[o]=new A(o))}this._statusSnapshot.fill(R.NotTracking,0,r.length)}var n=e.prototype;return n.getTrackedDevice=function(e){return this._trackedDevices[e]},n.addTrackedDeviceChangedListener=function(e){this._listeners.push({fn:e})},n.removeTrackedDeviceChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},n._onUpdate=function(){var e=this._added,t=this._removed,n=this._statusSnapshot,r=this._trackedDevices,a=this._controllers;e.length=t.length=0;for(var i=0,o=a.length;i<o;i++){var s=a[i];s.down=s.up=0}for(var u=this._xrManager.sessionManager._platformSession,c=u.events,l=0,h=c.length;l<h;l++)this._handleEvent(c[l]);u.resetEvents(),u.frame.updateInputs(r);for(var _=0,f=r.length;_<f;_++){var d=r[_];if(d){var p=d.trackingState;n[_]===R.Tracking?p!==R.Tracking&&t.push(d):p===R.Tracking&&e.push(d),n[_]=p}}if(e.length>0||t.length>0)for(var m=this._listeners.getLoopArray(),g=0,v=m.length;g<v;g++){var y=m[g];y.destroyed||y.fn(e,t)}},n._onDestroy=function(){this._listeners.findAndRemove(function(e){return e.destroyed=!0})},n._handleEvent=function(e){var t=this._trackedDevices[e.input];switch(e.targetRayMode){case P.TrackedPointer:switch(e.type){case E.SelectStart:t.down|=F.Select,t.pressedButtons|=F.Select;break;case E.SelectEnd:t.up|=F.Select,t.pressedButtons&=~F.Select;break;case E.SqueezeStart:t.down|=F.Squeeze,t.pressedButtons|=F.Squeeze;break;case E.SqueezeEnd:t.up|=F.Squeeze,t.pressedButtons&=~F.Squeeze}break;case P.Screen:var n=this._engine,r=n.inputManager._pointerManager._target,a=n.canvas._webCanvas,i=a.clientWidth,o=a.clientHeight,s=i*(e.x+1)*.5,u=o*(e.y+1)*.5;switch(e.type){case E.SelectStart:r.dispatchEvent(this._makeUpPointerEvent("pointerdown",e.id,s,u));break;case E.Select:r.dispatchEvent(this._makeUpPointerEvent("pointermove",e.id,s,u));break;case E.SelectEnd:r.dispatchEvent(this._makeUpPointerEvent("pointerup",e.id,s,u)),r.dispatchEvent(this._makeUpPointerEvent("pointerleave",e.id,s,u))}}},n._makeUpPointerEvent=function(e,t,n,r){var a={pointerId:t,clientX:n,clientY:r};switch(e){case"pointerdown":a.button=0,a.buttons=1;break;case"pointermove":a.button=-1,a.buttons=1;break;case"pointerup":case"pointerleave":a.button=0,a.buttons=0}return new PointerEvent(e,a)},e}(),D=((x={})[x.None=0]="None",x[x.AR=1]="AR",x[x.VR=2]="VR",x),I=/*#__PURE__*/function(){function e(e,n){this._xrManager=e,this._engine=n,this._mode=D.None,this._state=M.None,this._listeners=new t.SafeLoopArray,this._rhi=n._hardwareRenderer,this._raf=requestAnimationFrame.bind(window),this._caf=cancelAnimationFrame.bind(window),this._onSessionExit=this._onSessionExit.bind(this)}var n=e.prototype;return n.isSupportedMode=function(e){return this._xrManager._platformDevice.isSupportedSessionMode(e)},n.run=function(){var e=this._platformSession,t=this._engine;if(!e)throw Error("Without session to run.");e.start(),this._setState(M.Running),this._xrManager._onSessionStart(),t.isPaused||(t.pause(),t.resume())},n.stop=function(){var e=this._platformSession,t=this._engine,n=this._rhi;if(!e)throw Error("Without session to stop.");if(this._state!==M.Running)throw Error("Session is not running.");n._mainFrameBuffer=null,n._mainFrameWidth=n._mainFrameHeight=0,e.stop(),this._setState(M.Paused),this._xrManager._onSessionStop(),t.isPaused||(t.pause(),t.resume())},n.addStateChangedListener=function(e){this._listeners.push({fn:e})},n.removeStateChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},n._setState=function(e){this._state=e;for(var t=this._listeners.getLoopArray(),n=0,r=t.length;n<r;n++){var a=t[n];a.destroyed||a.fn(e)}},n._initialize=function(e,t){var n=this;return new Promise(function(r,a){for(var i=n._xrManager,o=[],s=0,u=t.length;s<u;s++){var c=t[s]._platformFeature;c&&o.push(c)}i._platformDevice.requestSession(n._rhi,e,o).then(function(t){n._mode=e,n._platformSession=t,n._setState(M.Initialized),t.setSessionExitCallBack(n._onSessionExit),t.addEventListener(),i._onSessionInit(),r()},a)})},n._onUpdate=function(){var e=this._rhi,t=this._platformSession;e._mainFrameBuffer=t.framebuffer,e._mainFrameWidth=t.framebufferWidth,e._mainFrameHeight=t.framebufferHeight},n._getRequestAnimationFrame=function(){return this._state===M.Running?this._platformSession.requestAnimationFrame:this._raf},n._getCancelAnimationFrame=function(){return this._state===M.Running?this._platformSession.cancelAnimationFrame:this._caf},n._exit=function(){var e=this._platformSession;return e?e.end():Promise.reject("Without session to stop.")},n._onSessionExit=function(){var e=this._rhi,t=this._platformSession,n=this._engine;e._mainFrameBuffer=null,e._mainFrameWidth=e._mainFrameHeight=0,t.removeEventListener(),this._platformSession=null,this._setState(M.None),this._xrManager._onSessionExit(),n.isPaused||(n.pause(),n.resume())},n._onDestroy=function(){this._listeners.findAndRemove(function(e){return e.destroyed=!0}),this._raf=this._caf=null},h(e,[{key:"mode",get:function(){return this._mode}},{key:"state",get:function(){return this._state}},{key:"supportedFrameRate",get:function(){return this._platformSession.supportedFrameRates}},{key:"frameRate",get:function(){return this._platformSession.frameRate}}]),e}(),j=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}_(t,e);var n=t.prototype;return n.isSupportedFeature=function(e){return this._platformDevice.isSupportedFeature(t._featureMap.get(e))},n.addFeature=function(e){for(var n=arguments.length,r=Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(this.sessionManager._platformSession)throw Error("Cannot add feature when the session is initialized.");if(!this._platformDevice.isSupportedFeature(t._featureMap.get(e)))throw Error("The feature is not supported");for(var i=this.features,o=0,s=i.length;o<s;o++)if(f(i[o],e))throw Error("The feature has been added");var u=c(e,[].concat([this],r));return i.push(u),u},n.getFeature=function(e){for(var t=this.features,n=0,r=t.length;n<r;n++){var a=t[n];if(f(a,e))return a}},n.enterXR=function(e,t){var n=this;void 0===t&&(t=!0);var r=this.sessionManager;if(r._platformSession)throw Error("Please exit XR immersive mode first.");if(!this._origin)throw Error("Please set origin before enter XR.");return new Promise(function(a,i){r.isSupportedMode(e).then(function(){r._setState(M.Initializing),r._initialize(e,n.features).then(function(){t&&r.run(),a()},i)},i)})},n.exitXR=function(){var e=this;return new Promise(function(t,n){e.sessionManager._exit().then(function(){t()},n)})},n._initialize=function(e,t){this._features=[],this._platformDevice=t,this.sessionManager=new I(this,e),this.inputManager=new L(this,e),this.cameraManager=new T(this)},n._update=function(){var e=this.sessionManager;if(e.state===M.Running){e._onUpdate(),this.inputManager._onUpdate(),this.cameraManager._onUpdate();for(var t=this.features,n=0,r=t.length;n<r;n++){var a=t[n];a.enabled&&a._onUpdate()}}},n._destroy=function(){var e=this;this.sessionManager._platformSession?this.exitXR().then(function(){e.sessionManager._onDestroy(),e.inputManager._onDestroy(),e.cameraManager._onDestroy()}):(this.sessionManager._onDestroy(),this.inputManager._onDestroy(),this.cameraManager._onDestroy())},n._getRequestAnimationFrame=function(){return this.sessionManager._getRequestAnimationFrame()},n._getCancelAnimationFrame=function(){return this.sessionManager._getCancelAnimationFrame()},n._getCameraIgnoreClearFlags=function(e){return this.cameraManager._getIgnoreClearFlags(e)},n._onSessionStop=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionStop()}},n._onSessionInit=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionInit()}},n._onSessionStart=function(){this.cameraManager._onSessionStart();for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionStart()}},n._onSessionExit=function(){this.cameraManager._onSessionExit();for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionExit(),r._onDestroy()}e.length=0},h(t,[{key:"features",get:function(){return this._features}},{key:"origin",get:function(){return this._origin},set:function(e){if(this.sessionManager._platformSession)throw Error("Cannot set origin when the session is initialized.");this._origin=e}}]),t}(t.XRManager);function N(e){return function(t){j._featureMap.set(t,e)}}j._featureMap=new Map,function(e,t){t.forEach(function(t){Object.getOwnPropertyNames(t.prototype).forEach(function(n){Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(t.prototype,n)||Object.create(null))})})}(t.XRManager,[j]);var O=/*#__PURE__*/function(){function e(e,t){for(var n,r=arguments.length,a=Array(r>2?r-2:0),i=2;i<r;i++)a[i-2]=arguments[i];this._xrManager=e,this._type=t,this._enabled=!0,this._platformFeature=(n=e._platformDevice).createPlatformFeature.apply(n,[].concat([t],a)),this._onEnable()}var t=e.prototype;return t._onEnable=function(){},t._onDisable=function(){},t._onUpdate=function(){},t._onSessionInit=function(){},t._onSessionStart=function(){},t._onSessionStop=function(){},t._onSessionExit=function(){},t._onDestroy=function(){},h(e,[{key:"enabled",get:function(){return this._enabled},set:function(e){this.enabled!==e&&(this._enabled=e,e?this._onEnable():this._onDisable())}}]),e}(),X=((w={})[w.AnchorTracking=0]="AnchorTracking",w[w.ImageTracking=1]="ImageTracking",w[w.PlaneTracking=2]="PlaneTracking",w[w.HitTest=3]="HitTest",w),B=((z={})[z.None=0]="None",z[z.Submitted=1]="Submitted",z[z.Resolved=2]="Resolved",z[z.Rejected=3]="Rejected",z[z.Destroyed=4]="Destroyed",z[z.WaitingDestroy=5]="WaitingDestroy",z),W=/*#__PURE__*/function(e){function n(){var n;return n=e.apply(this,arguments)||this,n._requestTrackings=[],n._tracked=[],n._added=[],n._updated=[],n._removed=[],n._statusSnapshot={},n._listeners=new t.SafeLoopArray,n}_(n,e);var r=n.prototype;return r.addChangedListener=function(e){this._listeners.push({fn:e})},r.removeChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},r._onUpdate=function(){var e=this._xrManager.sessionManager._platformSession,t=e.frame,n=this._platformFeature,r=this._requestTrackings,a=this._statusSnapshot,i=this._tracked,o=this._added,s=this._updated,u=this._removed;if(t&&r.length&&n.checkAvailable(e,t,r)){o.length=s.length=u.length=0,n.getTrackedResult(e,t,r,this._generateTracked);for(var c=0,l=r.length;c<l;c++){var h=r[c];switch(h.state){case B.Destroyed:for(var _=h.tracked,f=0,d=_.length;f<d;f++){var p=_[f],m=p.id;a[m]===R.Tracking&&(u.push(p),i.splice(i.indexOf(p),1)),a[m]=R.NotTracking}break;case B.Resolved:for(var g=h.tracked,v=0,y=g.length;v<y;v++){var x=g[v],w=x.id;x.state===R.Tracking?a[w]===R.Tracking?s.push(x):(o.push(x),a[w]=R.Tracking,i.push(x)):(a[w]===R.Tracking&&(u.push(x),i.splice(i.indexOf(x),1)),a[w]=x.state)}}}for(var z=r.length-1;z>=0;z--)r[z].state===B.Destroyed&&r.splice(z,1);if(o.length>0||s.length>0||u.length>0)for(var S=this._listeners.getLoopArray(),k=0,C=S.length;k<C;k++){var M=S[k];M.destroyed||M.fn(o,s,u)}}},r._onSessionStop=function(){this._added.length=this._updated.length=this._removed.length=0},r._onSessionExit=function(){this._requestTrackings.length=this._tracked.length=this._added.length=this._updated.length=this._removed.length=0,this._listeners.findAndRemove(function(e){return e.destroyed=!0})},r._addRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(X[this._type]+" request tracking cannot be modified after initialization.");this._requestTrackings.push(e),t.onAddRequestTracking(e)},r._removeRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(X[this._type]+" request tracking cannot be modified after initialization.");t.onDelRequestTracking(e)},r._removeAllRequestTrackings=function(){var e=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!e.canModifyRequestTrackingAfterInit)throw Error(X[this._type]+" request tracking cannot be modified after initialization.");for(var t=this._requestTrackings,n=0,r=t.length;n<r;n++)e.onDelRequestTracking(t[n])},n}(O);W._uuid=0;var H=function(){this.pose=new b,this.state=R.NotTracking},U=((S={})[S.Plane=1]="Plane",S[S.All=1]="All",S),G=function(){this.point=new t.Vector3,this.normal=new t.Vector3};function Q(e,t,n,r){var a,i,o=arguments.length,s=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if(("undefined"==typeof Reflect?"undefined":(a=Reflect)&&"undefined"!=typeof Symbol&&a.constructor===Symbol?"symbol":typeof a)=="object"&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var u=e.length-1;u>=0;u--)(i=e[u])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}"function"==typeof SuppressedError&&SuppressedError;var Y=((k={})[k.None=0]="None",k[k.Horizontal=1]="Horizontal",k[k.Vertical=2]="Vertical",k[k.EveryThing=3]="EveryThing",k),Z=function(){this.state=B.None,this.tracked=[]},J=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this)||this).detectionMode=t,n}return _(t,e),t}(Z),K=/*#__PURE__*/function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.polygon=[],t.attributesDirty=!1,t}return _(t,e),t}(H),$=/*#__PURE__*/function(e){function t(t,n){var r;return void 0===n&&(n=Y.EveryThing),(r=e.call(this,t,X.PlaneTracking,n)||this)._addRequestTracking(new J(n)),r}return _(t,e),t.prototype._generateTracked=function(){var e=new K;return e.id=W._uuid++,e},h(t,[{key:"detectionMode",get:function(){return this._requestTrackings[0].detectionMode}},{key:"trackedPlanes",get:function(){return this._tracked}}]),t}(W);$=Q([N(X.PlaneTracking)],$);var ee=/*#__PURE__*/function(e){function n(n){var r;return(r=e.call(this,n,X.HitTest)||this)._tempRay=new t.Ray,r._tempPlane=new t.Plane,r._tempVec2=new t.Vector2,r._tempVec30=new t.Vector3,r._tempVec31=new t.Vector3,r._tempVec32=new t.Vector3,r._tempVec33=new t.Vector3,r._tempVec34=new t.Vector3,r._tempVec35=new t.Vector3,r}_(n,e);var r=n.prototype;return r.hitTest=function(e,t){var n=[];return t&U.Plane&&this._hitTestPlane(e,n),n},r.screenHitTest=function(e,t,n){var r=this._xrManager;if(r.sessionManager.mode!==D.AR)throw Error("Only AR mode supports using screen ray hit test.");var a=r.inputManager.getTrackedDevice(C.Camera)._camera;if(!a)throw Error("No camera available.");var i=a.screenPointToRay(this._tempVec2.set(e,t),this._tempRay);return this.hitTest(i,n)},r._hitTestPlane=function(e,n){var r=this._xrManager.getFeature($);if(!r||!r.enabled)throw Error("The plane estimation function needs to be turned on for plane hit test.");for(var a=this._tempPlane,i=this._tempVec30,o=this._tempVec31,s=this._tempVec32,u=r.trackedPlanes,c=0,l=u.length;c<l;c++){var h=u[c];i.set(0,1,0).transformNormal(h.pose.matrix),a.normal.copyFrom(i),a.distance=-t.Vector3.dot(i,h.pose.position);var _=e.intersectPlane(a);if(_>=0&&(e.getPoint(_,o),t.Vector3.transformToVec3(o,h.pose.inverseMatrix,s),this._checkPointerWithinPlane(s,h))){var f=new G;f.point.copyFrom(o),f.normal.copyFrom(i),f.distance=_,f.trackedObject=h,f.trackableType=U.Plane,n.push(f)}}},r._checkPointerWithinPlane=function(e,n){for(var r=this._tempVec33,a=this._tempVec34,i=this._tempVec35,o=n.polygon,s=o.length,u=o[s-1],c=0,l=0;l<s;l++){var h=o[l];t.Vector3.subtract(h,u,r),t.Vector3.subtract(e,u,a),t.Vector3.cross(r,a,i);var _=i.y;if(0===c)_>0?c=1:_<0&&(c=-1);else if(_>0&&c<0||_<0&&c>0)return!1;u=h}return!0},n}(O);ee=Q([N(X.HitTest)],ee);var et=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return _(t,e),t}(H),en=/*#__PURE__*/function(e){function t(t,n){var r;return(r=e.call(this)||this).position=t,r.rotation=n,r}return _(t,e),t}(Z),er=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this,t,X.AnchorTracking)||this)._anchors=[],n}_(t,e);var n=t.prototype;return n.addAnchor=function(e,t){if(!this._enabled)throw Error("Cannot add an anchor from a disabled anchor manager.");var n=this._anchors,r=new en(e,t),a=this._generateTracked();return r.tracked[0]=a,this._addRequestTracking(r),n.push(a),a},n.removeAnchor=function(e){if(!this._enabled)throw Error("Cannot remove an anchor from a disabled anchor manager.");for(var t=this._requestTrackings,n=this._anchors,r=0,a=t.length;r<a;r++){var i=t[r];if(i.tracked[0]===e){this._removeRequestTracking(i);break}}n.splice(n.indexOf(e),1)},n.clearAnchors=function(){if(!this._enabled)throw Error("Cannot remove anchors from a disabled anchor manager.");this._removeAllRequestTrackings()},n._generateTracked=function(){var e=new et;return e.id=W._uuid++,e},h(t,[{key:"trackingAnchors",get:function(){return this._anchors}},{key:"trackedAnchors",get:function(){return this._tracked}}]),t}(W);er=Q([N(X.AnchorTracking)],er);var ea=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this)||this).image=t,n}return _(t,e),t}(Z),ei=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return _(t,e),t}(H),eo=/*#__PURE__*/function(e){function t(t,n){var r;if((r=e.call(this,t,X.ImageTracking,n)||this)._trackingImages=n,(n?n.length:0)>0)for(var a=0,i=n.length;a<i;a++)r._addRequestTracking(new ea(n[a]));else console.warn("No image to be tracked.");return r}return _(t,e),t.prototype._generateTracked=function(){var e=new ei;return e.id=W._uuid++,e},h(t,[{key:"trackingImages",get:function(){return this._trackingImages}},{key:"trackedImages",get:function(){return this._tracked}}]),t}(W);eo=Q([N(X.ImageTracking)],eo);var es=function(e,t,n){this.name=e,this.imageSource=t,this.physicalWidth=n},eu=/*#__PURE__*/function(){function e(){}return e.decode=function(e,n){return new t.AssetPromise(function(e,t){var r=n.nextFloat32();n.nextUint8();var a=new Image;a.onload=function(){e(new es("",a,r))},a.src=URL.createObjectURL(new window.Blob([n.nextImagesData(1)[0]]))})},e}();function ec(){return(ec=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}eu=Q([t.decoder("XRReferenceImage")],eu);var el=/*#__PURE__*/function(e){function n(){return e.apply(this,arguments)||this}return _(n,e),n.prototype.load=function(e,n){return new t.AssetPromise(function(r,a){n._request(e.url,ec({},e,{type:"arraybuffer"})).then(function(e){t.decode(e,n.engine).then(function(e){r(e)})}).catch(a)})},n}(t.Loader);function eh(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(eh=function(){return!!e})()}function e_(e,t,n){return(e_=eh()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&a(i,n.prototype),i}).apply(null,arguments)}function ef(e){switch(e){case 1:return"immersive-ar";case 2:return"immersive-vr";default:return null}}function ed(e){var t;switch(e.targetRayMode){case"gaze":break;case"screen":return C.Controller;case"tracked-pointer":if(e.hand)switch(e.handedness){case"left":return C.LeftHand;case"right":return C.RightHand}else switch(e.handedness){case"left":return C.LeftController;case"right":return C.RightController}}return t}function ep(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function em(e,t,n){return t&&ep(e.prototype,t),n&&ep(e,n),e}el=Q([t.resourceLoader("XRReferenceImage",[])],el);var eg=/*#__PURE__*/function(){function e(){}return e.clamp=function(e,t,n){return Math.max(t,Math.min(n,e))},e.equals=function(t,n){return Math.abs(t-n)<=e.zeroTolerance},e.isPowerOf2=function(e){return(e&e-1)==0},e.radianToDegree=function(t){return t*e.radToDegreeFactor},e.degreeToRadian=function(t){return t*e.degreeToRadFactor},e.lerp=function(e,t,n){return e+(t-e)*n},e}();eg.zeroTolerance=1e-6,eg.radToDegreeFactor=180/Math.PI,eg.degreeToRadFactor=Math.PI/180;var ev=/*#__PURE__*/function(){function e(e,t,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),this._onValueChanged=null,this._x=e,this._y=t,this._z=n}var t=e.prototype;return t.set=function(e,t,n){return this._x=e,this._y=t,this._z=n,null==this._onValueChanged||this._onValueChanged.call(this),this},t.add=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.divide=function(e){return this._x/=e._x,this._y/=e._y,this._z/=e._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.length=function(){var e=this._x,t=this._y,n=this._z;return Math.sqrt(e*e+t*t+n*n)},t.lengthSquared=function(){var e=this._x,t=this._y,n=this._z;return e*e+t*t+n*n},t.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.normalize=function(){return e.normalize(this,this),this},t.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,null==this._onValueChanged||this._onValueChanged.call(this),this},t.transformNormal=function(t){return e.transformNormal(this,t,this),this},t.transformToVec3=function(t){return e.transformToVec3(this,t,this),this},t.transformCoordinate=function(t){return e.transformCoordinate(this,t,this),this},t.transformByQuat=function(t){return e.transformByQuat(this,t,this),this},t.clone=function(){return new e(this._x,this._y,this._z)},t.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,null==this._onValueChanged||this._onValueChanged.call(this),this},t.copyTo=function(e){return e.x=this._x,e.y=this._y,e.z=this._z,e},t.copyFromArray=function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._z=e[t+2],null==this._onValueChanged||this._onValueChanged.call(this),this},t.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z},t.toJSON=function(){return{x:this._x,y:this._y,z:this._z}},e.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._z=e._z+t._z,null==n._onValueChanged||n._onValueChanged.call(n)},e.subtract=function(e,t,n){n._x=e._x-t._x,n._y=e._y-t._y,n._z=e._z-t._z,null==n._onValueChanged||n._onValueChanged.call(n)},e.multiply=function(e,t,n){n._x=e._x*t._x,n._y=e._y*t._y,n._z=e._z*t._z,null==n._onValueChanged||n._onValueChanged.call(n)},e.divide=function(e,t,n){n._x=e._x/t._x,n._y=e._y/t._y,n._z=e._z/t._z,null==n._onValueChanged||n._onValueChanged.call(n)},e.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z},e.cross=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,u=t._z;n.set(a*u-i*s,i*o-r*u,r*s-a*o)},e.distance=function(e,t){var n=t._x-e._x,r=t._y-e._y,a=t._z-e._z;return Math.sqrt(n*n+r*r+a*a)},e.distanceSquared=function(e,t){var n=t._x-e._x,r=t._y-e._y,a=t._z-e._z;return n*n+r*r+a*a},e.equals=function(e,t){return eg.equals(e._x,t._x)&&eg.equals(e._y,t._y)&&eg.equals(e._z,t._z)},e.lerp=function(e,t,n,r){var a=e._x,i=e._y,o=e._z;r._x=a+(t._x-a)*n,r._y=i+(t._y-i)*n,r._z=o+(t._z-o)*n,null==r._onValueChanged||r._onValueChanged.call(r)},e.max=function(e,t,n){n._x=Math.max(e._x,t._x),n._y=Math.max(e._y,t._y),n._z=Math.max(e._z,t._z),null==n._onValueChanged||n._onValueChanged.call(n)},e.min=function(e,t,n){n._x=Math.min(e._x,t._x),n._y=Math.min(e._y,t._y),n._z=Math.min(e._z,t._z),null==n._onValueChanged||n._onValueChanged.call(n)},e.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,null==t._onValueChanged||t._onValueChanged.call(t)},e.normalize=function(e,t){var n=e._x,r=e._y,a=e._z,i=Math.sqrt(n*n+r*r+a*a);i>eg.zeroTolerance&&(i=1/i,t.set(n*i,r*i,a*i))},e.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._z=e._z*t,null==n._onValueChanged||n._onValueChanged.call(n)},e.transformNormal=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t.elements;n._x=r*o[0]+a*o[4]+i*o[8],n._y=r*o[1]+a*o[5]+i*o[9],n._z=r*o[2]+a*o[6]+i*o[10],null==n._onValueChanged||n._onValueChanged.call(n)},e.transformToVec3=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t.elements;n._x=r*o[0]+a*o[4]+i*o[8]+o[12],n._y=r*o[1]+a*o[5]+i*o[9]+o[13],n._z=r*o[2]+a*o[6]+i*o[10]+o[14],null==n._onValueChanged||n._onValueChanged.call(n)},e.transformToVec4=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t.elements;n._x=r*o[0]+a*o[4]+i*o[8]+o[12],n._y=r*o[1]+a*o[5]+i*o[9]+o[13],n._z=r*o[2]+a*o[6]+i*o[10]+o[14],n._w=r*o[3]+a*o[7]+i*o[11]+o[15],null==n._onValueChanged||n._onValueChanged.call(n)},e.transformCoordinate=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t.elements,s=r*o[3]+a*o[7]+i*o[11]+o[15];s=1/s,n._x=(r*o[0]+a*o[4]+i*o[8]+o[12])*s,n._y=(r*o[1]+a*o[5]+i*o[9]+o[13])*s,n._z=(r*o[2]+a*o[6]+i*o[10]+o[14])*s,null==n._onValueChanged||n._onValueChanged.call(n)},e.transformByQuat=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,u=t._z,c=t._w,l=c*r+s*i-u*a,h=c*a+u*r-o*i,_=c*i+o*a-s*r,f=-o*r-s*a-u*i;n._x=l*c-f*o-h*u+_*s,n._y=h*c-f*s-_*o+l*u,n._z=_*c-f*u-l*s+h*o,null==n._onValueChanged||n._onValueChanged.call(n)},em(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,null==this._onValueChanged||this._onValueChanged.call(this)}}]),e}();ev._zero=new ev(0,0,0),ev._one=new ev(1,1,1),new ev,new ev,new ev,new ev,new ev,new ev;var ey=/*#__PURE__*/function(){function e(e,t,n,r,a,i,o,s,u){void 0===e&&(e=1),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=1),void 0===i&&(i=0),void 0===o&&(o=0),void 0===s&&(s=0),void 0===u&&(u=1),this.elements=new Float32Array(9);var c=this.elements;c[0]=e,c[1]=t,c[2]=n,c[3]=r,c[4]=a,c[5]=i,c[6]=o,c[7]=s,c[8]=u}var t=e.prototype;return t.set=function(e,t,n,r,a,i,o,s,u){var c=this.elements;return c[0]=e,c[1]=t,c[2]=n,c[3]=r,c[4]=a,c[5]=i,c[6]=o,c[7]=s,c[8]=u,this},t.add=function(t){return e.add(this,t,this),this},t.subtract=function(t){return e.subtract(this,t,this),this},t.multiply=function(t){return e.multiply(this,t,this),this},t.determinant=function(){var e=this.elements,t=e[0],n=e[1],r=e[2],a=e[3],i=e[4],o=e[5],s=e[6],u=e[7],c=e[8];return t*(c*i-o*u)+n*(-c*a+o*s)+r*(u*a-i*s)},t.identity=function(){var e=this.elements;return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,this},t.invert=function(){return e.invert(this,this),this},t.rotate=function(t){return e.rotate(this,t,this),this},t.scale=function(t){return e.scale(this,t,this),this},t.translate=function(t){return e.translate(this,t,this),this},t.transpose=function(){return e.transpose(this,this),this},t.clone=function(){var t=this.elements;return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},t.copyFrom=function(e){var t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this},t.copyFromArray=function(e,t){void 0===t&&(t=0);for(var n=this.elements,r=0;r<12;r++)n[r]=e[r+t];return this},t.copyToArray=function(e,t){void 0===t&&(t=0);var n=this.elements;e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8]},t.copyFromMatrix=function(e){var t=e.elements,n=this.elements;return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[4],n[4]=t[5],n[5]=t[6],n[6]=t[8],n[7]=t[9],n[8]=t[10],this},e.add=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements;i[0]=r[0]+a[0],i[1]=r[1]+a[1],i[2]=r[2]+a[2],i[3]=r[3]+a[3],i[4]=r[4]+a[4],i[5]=r[5]+a[5],i[6]=r[6]+a[6],i[7]=r[7]+a[7],i[8]=r[8]+a[8]},e.subtract=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements;i[0]=r[0]-a[0],i[1]=r[1]-a[1],i[2]=r[2]-a[2],i[3]=r[3]-a[3],i[4]=r[4]-a[4],i[5]=r[5]-a[5],i[6]=r[6]-a[6],i[7]=r[7]-a[7],i[8]=r[8]-a[8]},e.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],u=r[2],c=r[3],l=r[4],h=r[5],_=r[6],f=r[7],d=r[8],p=a[0],m=a[1],g=a[2],v=a[3],y=a[4],x=a[5],w=a[6],z=a[7],S=a[8];i[0]=o*p+c*m+_*g,i[1]=s*p+l*m+f*g,i[2]=u*p+h*m+d*g,i[3]=o*v+c*y+_*x,i[4]=s*v+l*y+f*x,i[5]=u*v+h*y+d*x,i[6]=o*w+c*z+_*S,i[7]=s*w+l*z+f*S,i[8]=u*w+h*z+d*S},e.equals=function(e,t){var n=e.elements,r=t.elements;return eg.equals(n[0],r[0])&&eg.equals(n[1],r[1])&&eg.equals(n[2],r[2])&&eg.equals(n[3],r[3])&&eg.equals(n[4],r[4])&&eg.equals(n[5],r[5])&&eg.equals(n[6],r[6])&&eg.equals(n[7],r[7])&&eg.equals(n[8],r[8])},e.lerp=function(e,t,n,r){var a=e.elements,i=t.elements,o=r.elements,s=1-n;o[0]=a[0]*s+i[0]*n,o[1]=a[1]*s+i[1]*n,o[2]=a[2]*s+i[2]*n,o[3]=a[3]*s+i[3]*n,o[4]=a[4]*s+i[4]*n,o[5]=a[5]*s+i[5]*n,o[6]=a[6]*s+i[6]*n,o[7]=a[7]*s+i[7]*n,o[8]=a[8]*s+i[8]*n},e.rotationQuaternion=function(e,t){var n=t.elements,r=e._x,a=e._y,i=e._z,o=e._w,s=r+r,u=a+a,c=i+i,l=r*s,h=a*s,_=a*u,f=i*s,d=i*u,p=i*c,m=o*s,g=o*u,v=o*c;n[0]=1-_-p,n[3]=h-v,n[6]=f+g,n[1]=h+v,n[4]=1-l-p,n[7]=d-m,n[2]=f-g,n[5]=d+m,n[8]=1-l-_},e.scaling=function(e,t){var n=t.elements;n[0]=e._x,n[1]=0,n[2]=0,n[3]=0,n[4]=e._y,n[5]=0,n[6]=0,n[7]=0,n[8]=1},e.translation=function(e,t){var n=t.elements;n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=e._x,n[7]=e._y,n[8]=1},e.invert=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],u=n[4],c=n[5],l=n[6],h=n[7],_=n[8],f=_*u-c*h,d=-_*s+c*l,p=h*s-u*l,m=a*f+i*d+o*p;m&&(m=1/m,r[0]=f*m,r[1]=(-_*i+o*h)*m,r[2]=(c*i-o*u)*m,r[3]=d*m,r[4]=(_*a-o*l)*m,r[5]=(-c*a+o*s)*m,r[6]=p*m,r[7]=(-h*a+i*l)*m,r[8]=(u*a-i*s)*m)},e.normalMatrix=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],u=n[4],c=n[5],l=n[6],h=n[7],_=n[8],f=n[9],d=n[10],p=n[11],m=n[12],g=n[13],v=n[14],y=n[15],x=a*c-i*u,w=a*l-o*u,z=a*h-s*u,S=i*l-o*c,k=i*h-s*c,C=o*h-s*l,M=_*g-f*m,T=_*v-d*m,b=_*y-p*m,R=f*v-d*g,V=f*y-p*g,q=d*y-p*v,F=x*q-w*V+z*R+S*b-k*T+C*M;if(!F)return null;F=1/F,r[0]=(c*q-l*V+h*R)*F,r[1]=(l*b-u*q-h*T)*F,r[2]=(u*V-c*b+h*M)*F,r[3]=(o*V-i*q-s*R)*F,r[4]=(a*q-o*b+s*T)*F,r[5]=(i*b-a*V-s*M)*F,r[6]=(g*C-v*k+y*S)*F,r[7]=(v*z-m*C-y*w)*F,r[8]=(m*k-g*z+y*x)*F},e.rotate=function(e,t,n){var r=e.elements,a=n.elements,i=Math.sin(t),o=Math.cos(t),s=r[0],u=r[1],c=r[2],l=r[3],h=r[4],_=r[5],f=r[6],d=r[7],p=r[8];a[0]=o*s+i*l,a[1]=o*u+i*h,a[2]=o*c+i*_,a[3]=o*l-i*s,a[4]=o*h-i*u,a[5]=o*_-i*c,a[6]=f,a[7]=d,a[8]=p},e.scale=function(e,t,n){var r=t._x,a=t._y,i=e.elements,o=n.elements;o[0]=r*i[0],o[1]=r*i[1],o[2]=r*i[2],o[3]=a*i[3],o[4]=a*i[4],o[5]=a*i[5],o[6]=i[6],o[7]=i[7],o[8]=i[8]},e.translate=function(e,t,n){var r=t._x,a=t._y,i=e.elements,o=n.elements,s=i[0],u=i[1],c=i[2],l=i[3],h=i[4],_=i[5],f=i[6],d=i[7],p=i[8];o[0]=s,o[1]=u,o[2]=c,o[3]=l,o[4]=h,o[5]=_,o[6]=r*s+a*l+f,o[7]=r*u+a*h+d,o[8]=r*c+a*_+p},e.transpose=function(e,t){var n=e.elements,r=t.elements;if(t===e){var a=n[1],i=n[2],o=n[5];r[1]=n[3],r[2]=n[6],r[3]=a,r[5]=n[7],r[6]=i,r[7]=o}else r[0]=n[0],r[1]=n[3],r[2]=n[6],r[3]=n[1],r[4]=n[4],r[5]=n[7],r[6]=n[2],r[7]=n[5],r[8]=n[8]},e}(),ex=/*#__PURE__*/function(){function e(e,t,n,r){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=1),this._onValueChanged=null,this._x=e,this._y=t,this._z=n,this._w=r}var t=e.prototype;return t.set=function(e,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,null==this._onValueChanged||this._onValueChanged.call(this),this},t.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,null==this._onValueChanged||this._onValueChanged.call(this),this},t.getAxisAngle=function(e){var t=this._x,n=this._y,r=this._z,a=t*t+n*n+r*r;if(a<eg.zeroTolerance)return e._x=1,e._y=0,e._z=0,0;var i=1/a;return e._x=this._x*i,e._y=this._y*i,e._z=this._z*i,2*Math.acos(this._w)},t.identity=function(){return this._x=0,this._y=0,this._z=0,this._w=1,null==this._onValueChanged||this._onValueChanged.call(this),this},t.length=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return Math.sqrt(e*e+t*t+n*n+r*r)},t.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},t.normalize=function(){return e.normalize(this,this),this},t.toEuler=function(e){this._toYawPitchRoll(e);var t=e._x;return e._x=e._y,e._y=t,null==e._onValueChanged||e._onValueChanged.call(e),e},t.toYawPitchRoll=function(e){return this._toYawPitchRoll(e),null==e._onValueChanged||e._onValueChanged.call(e),e},t.rotateX=function(t){return e.rotateX(this,t,this),this},t.rotateY=function(t){return e.rotateY(this,t,this),this},t.rotateZ=function(t){return e.rotateZ(this,t,this),this},t.rotationAxisAngle=function(t,n){return e.rotationAxisAngle(t,n,this),this},t.multiply=function(t){return e.multiply(this,t,this),this},t.invert=function(){return e.invert(this,this),this},t.dot=function(t){return e.dot(this,t)},t.lerp=function(t,n){return e.lerp(this,t,n,this),this},t.rotateAxisAngle=function(t,n){return e._tempQuat1.rotationAxisAngle(t,n),this.multiply(e._tempQuat1),this},t.clone=function(){return new e(this._x,this._y,this._z,this._w)},t.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,null==this._onValueChanged||this._onValueChanged.call(this),this},t.copyTo=function(e){return e.x=this._x,e.y=this._y,e.z=this._z,e.w=this._w,e},t.copyFromArray=function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],null==this._onValueChanged||this._onValueChanged.call(this),this},t.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w},t.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},t._toYawPitchRoll=function(e){var t=this._x,n=this._y,r=this._z,a=this._w,i=t*t,o=n*n,s=r*r,u=a*a,c=i+o+s+u,l=2*(t*a-n*r);l>(1-eg.zeroTolerance)*c?(e._x=Math.atan2(2*(a*n-t*r),i+u-o-s),e._y=Math.PI/2,e._z=0):l<-(1-eg.zeroTolerance)*c?(e._x=Math.atan2(2*(a*n-t*r),i+u-o-s),e._y=-Math.PI/2,e._z=0):(e._x=Math.atan2(2*(r*t+n*a),s+u-o-i),e._y=Math.asin(l/c),e._z=Math.atan2(2*(t*n+r*a),o+u-s-i))},e.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._z=e._z+t._z,n._w=e._w+t._w,null==n._onValueChanged||n._onValueChanged.call(n)},e.multiply=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t._x,u=t._y,c=t._z,l=t._w;n._x=r*l+o*s+a*c-i*u,n._y=a*l+o*u+i*s-r*c,n._z=i*l+o*c+r*u-a*s,n._w=o*l-r*s-a*u-i*c,null==n._onValueChanged||n._onValueChanged.call(n)},e.conjugate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=e._w,null==t._onValueChanged||t._onValueChanged.call(t)},e.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},e.equals=function(e,t){return eg.equals(e._x,t._x)&&eg.equals(e._y,t._y)&&eg.equals(e._z,t._z)&&eg.equals(e._w,t._w)},e.rotationAxisAngle=function(t,n,r){var a=e._tempVector3;ev.normalize(t,a);var i=Math.sin(n*=.5);r._x=a._x*i,r._y=a._y*i,r._z=a._z*i,r._w=Math.cos(n),null==r._onValueChanged||r._onValueChanged.call(r)},e.rotationEuler=function(t,n,r,a){e.rotationYawPitchRoll(n,t,r,a)},e.rotationYawPitchRoll=function(e,t,n,r){var a=.5*n,i=.5*t,o=.5*e,s=Math.sin(a),u=Math.cos(a),c=Math.sin(i),l=Math.cos(i),h=Math.sin(o),_=Math.cos(o),f=_*l,d=h*c;r._x=_*c*u+h*l*s,r._y=h*l*u-_*c*s,r._z=f*s-d*u,r._w=f*u+d*s,null==r._onValueChanged||r._onValueChanged.call(r)},e.rotationMatrix3x3=function(e,t){var n,r,a=e.elements,i=a[0],o=a[1],s=a[2],u=a[3],c=a[4],l=a[5],h=a[6],_=a[7],f=a[8],d=i+c+f;d>0?(n=Math.sqrt(d+1),t._w=.5*n,n=.5/n,t._x=(l-_)*n,t._y=(h-s)*n,t._z=(o-u)*n):i>=c&&i>=f?(r=.5/(n=Math.sqrt(1+i-c-f)),t._x=.5*n,t._y=(o+u)*r,t._z=(s+h)*r,t._w=(l-_)*r):c>f?(r=.5/(n=Math.sqrt(1+c-i-f)),t._x=(u+o)*r,t._y=.5*n,t._z=(_+l)*r,t._w=(h-s)*r):(r=.5/(n=Math.sqrt(1+f-i-c)),t._x=(s+h)*r,t._y=(l+_)*r,t._z=.5*n,t._w=(o-u)*r),null==t._onValueChanged||t._onValueChanged.call(t)},e.invert=function(e,t){var n=e._x,r=e._y,a=e._z,i=e._w,o=n*n+r*r+a*a+i*i;if(o>eg.zeroTolerance){var s=1/o;t._x=-n*s,t._y=-r*s,t._z=-a*s,t._w=i*s,null==t._onValueChanged||t._onValueChanged.call(t)}},e.lerp=function(t,n,r,a){var i=1-r;e.dot(t,n)>=0?(a._x=t._x*i+n._x*r,a._y=t._y*i+n._y*r,a._z=t._z*i+n._z*r,a._w=t._w*i+n._w*r):(a._x=t._x*i-n._x*r,a._y=t._y*i-n._y*r,a._z=t._z*i-n._z*r,a._w=t._w*i-n._w*r),a.normalize()},e.slerp=function(t,n,r,a){var i,o,s=e.dot(t,n);if(Math.abs(s)>1-eg.zeroTolerance)o=1-r,i=r*Math.sign(s);else{var u=Math.acos(Math.abs(s)),c=1/Math.sin(u);o=Math.sin((1-r)*u)*c,i=Math.sin(r*u)*c*Math.sign(s)}a.x=o*t.x+i*n.x,a.y=o*t.y+i*n.y,a.z=o*t.z+i*n.z,a.w=o*t.w+i*n.w,null==a._onValueChanged||a._onValueChanged.call(a)},e.normalize=function(e,t){var n=e._x,r=e._y,a=e._z,i=e._w,o=Math.sqrt(n*n+r*r+a*a+i*i);o>eg.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,null==t._onValueChanged||t._onValueChanged.call(t))},e.rotationX=function(e,t){var n=Math.sin(e*=.5),r=Math.cos(e);t._x=n,t._y=0,t._z=0,t._w=r,null==t._onValueChanged||t._onValueChanged.call(t)},e.rotationY=function(e,t){var n=Math.sin(e*=.5),r=Math.cos(e);t._x=0,t._y=n,t._z=0,t._w=r,null==t._onValueChanged||t._onValueChanged.call(t)},e.rotationZ=function(e,t){var n=Math.sin(e*=.5),r=Math.cos(e);t._x=0,t._y=0,t._z=n,t._w=r,null==t._onValueChanged||t._onValueChanged.call(t)},e.rotateX=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),u=Math.cos(t);n._x=r*u+o*s,n._y=a*u+i*s,n._z=i*u-a*s,n._w=o*u-r*s,null==n._onValueChanged||n._onValueChanged.call(n)},e.rotateY=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),u=Math.cos(t);n._x=r*u-i*s,n._y=a*u+o*s,n._z=i*u+r*s,n._w=o*u-a*s,null==n._onValueChanged||n._onValueChanged.call(n)},e.rotateZ=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),u=Math.cos(t);n._x=r*u+a*s,n._y=a*u-r*s,n._z=i*u+o*s,n._w=o*u-i*s,null==n._onValueChanged||n._onValueChanged.call(n)},e.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._z=e._z*t,n._w=e._w*t,null==n._onValueChanged||n._onValueChanged.call(n)},em(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,null==this._onValueChanged||this._onValueChanged.call(this)}},{key:"normalized",get:function(){return Math.abs(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w-1)<eg.zeroTolerance}},{key:"w",get:function(){return this._w},set:function(e){this._w=e,null==this._onValueChanged||this._onValueChanged.call(this)}}]),e}();ex._tempVector3=new ev,ex._tempQuat1=new ex;var ew=/*#__PURE__*/function(){function e(e,t,n,r,a,i,o,s,u,c,l,h,_,f,d,p){void 0===e&&(e=1),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=0),void 0===i&&(i=1),void 0===o&&(o=0),void 0===s&&(s=0),void 0===u&&(u=0),void 0===c&&(c=0),void 0===l&&(l=1),void 0===h&&(h=0),void 0===_&&(_=0),void 0===f&&(f=0),void 0===d&&(d=0),void 0===p&&(p=1),this.elements=new Float32Array(16);var m=this.elements;m[0]=e,m[1]=t,m[2]=n,m[3]=r,m[4]=a,m[5]=i,m[6]=o,m[7]=s,m[8]=u,m[9]=c,m[10]=l,m[11]=h,m[12]=_,m[13]=f,m[14]=d,m[15]=p}var t=e.prototype;return t.set=function(e,t,n,r,a,i,o,s,u,c,l,h,_,f,d,p){var m=this.elements;return m[0]=e,m[1]=t,m[2]=n,m[3]=r,m[4]=a,m[5]=i,m[6]=o,m[7]=s,m[8]=u,m[9]=c,m[10]=l,m[11]=h,m[12]=_,m[13]=f,m[14]=d,m[15]=p,this},t.multiply=function(t){return e.multiply(this,t,this),this},t.determinant=function(){var e=this.elements,t=e[0],n=e[1],r=e[2],a=e[3],i=e[4],o=e[5],s=e[6],u=e[7],c=e[8],l=e[9],h=e[10],_=e[11],f=e[12],d=e[13],p=e[14],m=e[15];return(t*o-n*i)*(h*m-_*p)-(t*s-r*i)*(l*m-_*d)+(t*u-a*i)*(l*p-h*d)+(n*s-r*o)*(c*m-_*f)-(n*u-a*o)*(c*p-h*f)+(r*u-a*s)*(c*d-l*f)},t.decompose=function(t,n,r){var a=e._tempMat30,i=this.elements,o=a.elements,s=i[0],u=i[1],c=i[2],l=i[4],h=i[5],_=i[6],f=i[8],d=i[9],p=i[10];t.set(i[12],i[13],i[14]);var m=Math.sqrt(s*s+u*u+c*c),g=Math.sqrt(l*l+h*h+_*_),v=Math.sqrt(f*f+d*d+p*p);if(0>this.determinant()&&(m=-m),r.set(m,g,v),Math.abs(m)<eg.zeroTolerance||Math.abs(g)<eg.zeroTolerance||Math.abs(v)<eg.zeroTolerance)return n.identity(),!1;var y=1/m,x=1/g,w=1/v;return o[0]=s*y,o[1]=u*y,o[2]=c*y,o[3]=l*x,o[4]=h*x,o[5]=_*x,o[6]=f*w,o[7]=d*w,o[8]=p*w,ex.rotationMatrix3x3(a,n),!0},t.getRotation=function(e){var t=this.elements,n=t[0]+t[5]+t[10];if(n>eg.zeroTolerance){var r=2*Math.sqrt(n+1);e._w=.25*r,e._x=(t[6]-t[9])/r,e._y=(t[8]-t[2])/r,e._z=(t[1]-t[4])/r}else if(t[0]>t[5]&&t[0]>t[10]){var a=2*Math.sqrt(1+t[0]-t[5]-t[10]);e._w=(t[6]-t[9])/a,e._x=.25*a,e._y=(t[1]+t[4])/a,e._z=(t[8]+t[2])/a}else if(t[5]>t[10]){var i=2*Math.sqrt(1+t[5]-t[0]-t[10]);e._w=(t[8]-t[2])/i,e._x=(t[1]+t[4])/i,e._y=.25*i,e._z=(t[6]+t[9])/i}else{var o=2*Math.sqrt(1+t[10]-t[0]-t[5]);e._w=(t[1]-t[4])/o,e._x=(t[8]+t[2])/o,e._y=(t[6]+t[9])/o,e._z=.25*o}return null==e._onValueChanged||e._onValueChanged.call(e),e},t.getScaling=function(e){var t=this.elements,n=t[0],r=t[1],a=t[2],i=t[4],o=t[5],s=t[6],u=t[8],c=t[9],l=t[10];return e.set(Math.sqrt(n*n+r*r+a*a),Math.sqrt(i*i+o*o+s*s),Math.sqrt(u*u+c*c+l*l)),e},t.getTranslation=function(e){var t=this.elements;return e.set(t[12],t[13],t[14]),e},t.identity=function(){var e=this.elements;return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},t.invert=function(){return e.invert(this,this),this},t.rotateAxisAngle=function(t,n){return e.rotateAxisAngle(this,t,n,this),this},t.scale=function(t){return e.scale(this,t,this),this},t.translate=function(t){return e.translate(this,t,this),this},t.transpose=function(){return e.transpose(this,this),this},t.clone=function(){var t=this.elements;return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])},t.copyFrom=function(e){var t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this},t.copyFromArray=function(e,t){void 0===t&&(t=0);for(var n=this.elements,r=0;r<16;r++)n[r]=e[r+t];return this},t.copyToArray=function(e,t){void 0===t&&(t=0);var n=this.elements;e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15]},e.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],u=r[2],c=r[3],l=r[4],h=r[5],_=r[6],f=r[7],d=r[8],p=r[9],m=r[10],g=r[11],v=r[12],y=r[13],x=r[14],w=r[15],z=a[0],S=a[1],k=a[2],C=a[3],M=a[4],T=a[5],b=a[6],R=a[7],V=a[8],q=a[9],F=a[10],A=a[11],E=a[12],P=a[13],L=a[14],D=a[15];i[0]=o*z+l*S+d*k+v*C,i[1]=s*z+h*S+p*k+y*C,i[2]=u*z+_*S+m*k+x*C,i[3]=c*z+f*S+g*k+w*C,i[4]=o*M+l*T+d*b+v*R,i[5]=s*M+h*T+p*b+y*R,i[6]=u*M+_*T+m*b+x*R,i[7]=c*M+f*T+g*b+w*R,i[8]=o*V+l*q+d*F+v*A,i[9]=s*V+h*q+p*F+y*A,i[10]=u*V+_*q+m*F+x*A,i[11]=c*V+f*q+g*F+w*A,i[12]=o*E+l*P+d*L+v*D,i[13]=s*E+h*P+p*L+y*D,i[14]=u*E+_*P+m*L+x*D,i[15]=c*E+f*P+g*L+w*D},e.equals=function(e,t){var n=e.elements,r=t.elements;return eg.equals(n[0],r[0])&&eg.equals(n[1],r[1])&&eg.equals(n[2],r[2])&&eg.equals(n[3],r[3])&&eg.equals(n[4],r[4])&&eg.equals(n[5],r[5])&&eg.equals(n[6],r[6])&&eg.equals(n[7],r[7])&&eg.equals(n[8],r[8])&&eg.equals(n[9],r[9])&&eg.equals(n[10],r[10])&&eg.equals(n[11],r[11])&&eg.equals(n[12],r[12])&&eg.equals(n[13],r[13])&&eg.equals(n[14],r[14])&&eg.equals(n[15],r[15])},e.lerp=function(e,t,n,r){var a=e.elements,i=t.elements,o=r.elements,s=1-n;o[0]=a[0]*s+i[0]*n,o[1]=a[1]*s+i[1]*n,o[2]=a[2]*s+i[2]*n,o[3]=a[3]*s+i[3]*n,o[4]=a[4]*s+i[4]*n,o[5]=a[5]*s+i[5]*n,o[6]=a[6]*s+i[6]*n,o[7]=a[7]*s+i[7]*n,o[8]=a[8]*s+i[8]*n,o[9]=a[9]*s+i[9]*n,o[10]=a[10]*s+i[10]*n,o[11]=a[11]*s+i[11]*n,o[12]=a[12]*s+i[12]*n,o[13]=a[13]*s+i[13]*n,o[14]=a[14]*s+i[14]*n,o[15]=a[15]*s+i[15]*n},e.add=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements;i[0]=r[0]+a[0],i[1]=r[1]+a[1],i[2]=r[2]+a[2],i[3]=r[3]+a[3],i[4]=r[4]+a[4],i[5]=r[5]+a[5],i[6]=r[6]+a[6],i[7]=r[7]+a[7],i[8]=r[8]+a[8],i[9]=r[9]+a[9],i[10]=r[10]+a[10],i[11]=r[11]+a[11],i[12]=r[12]+a[12],i[13]=r[13]+a[13],i[14]=r[14]+a[14],i[15]=r[15]+a[15]},e.multiplyScalar=function(e,t,n){var r=e.elements,a=n.elements;a[0]=r[0]*t,a[1]=r[1]*t,a[2]=r[2]*t,a[3]=r[3]*t,a[4]=r[4]*t,a[5]=r[5]*t,a[6]=r[6]*t,a[7]=r[7]*t,a[8]=r[8]*t,a[9]=r[9]*t,a[10]=r[10]*t,a[11]=r[11]*t,a[12]=r[12]*t,a[13]=r[13]*t,a[14]=r[14]*t,a[15]=r[15]*t},e.rotationQuaternion=function(e,t){var n=t.elements,r=e._x,a=e._y,i=e._z,o=e._w,s=r+r,u=a+a,c=i+i,l=r*s,h=a*s,_=a*u,f=i*s,d=i*u,p=i*c,m=o*s,g=o*u,v=o*c;n[0]=1-_-p,n[1]=h+v,n[2]=f-g,n[3]=0,n[4]=h-v,n[5]=1-l-p,n[6]=d+m,n[7]=0,n[8]=f+g,n[9]=d-m,n[10]=1-l-_,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1},e.rotationAxisAngle=function(e,t,n){var r,a,i,o=n.elements,s=e._x,u=e._y,c=e._z,l=Math.sqrt(s*s+u*u+c*c);Math.abs(l)<eg.zeroTolerance||(s*=l=1/l,u*=l,c*=l,r=Math.sin(t),i=1-(a=Math.cos(t)),o[0]=s*s*i+a,o[1]=u*s*i+c*r,o[2]=c*s*i-u*r,o[3]=0,o[4]=s*u*i-c*r,o[5]=u*u*i+a,o[6]=c*u*i+s*r,o[7]=0,o[8]=s*c*i+u*r,o[9]=u*c*i-s*r,o[10]=c*c*i+a,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1)},e.rotationTranslation=function(t,n,r){e.rotationQuaternion(t,r);var a=r.elements;a[12]=n._x,a[13]=n._y,a[14]=n._z},e.affineTransformation=function(e,t,n,r){var a=r.elements,i=t._x,o=t._y,s=t._z,u=t._w,c=i+i,l=o+o,h=s+s,_=i*c,f=i*l,d=i*h,p=o*l,m=o*h,g=s*h,v=u*c,y=u*l,x=u*h,w=e._x,z=e._y,S=e._z;a[0]=(1-(p+g))*w,a[1]=(f+x)*w,a[2]=(d-y)*w,a[3]=0,a[4]=(f-x)*z,a[5]=(1-(_+g))*z,a[6]=(m+v)*z,a[7]=0,a[8]=(d+y)*S,a[9]=(m-v)*S,a[10]=(1-(_+p))*S,a[11]=0,a[12]=n._x,a[13]=n._y,a[14]=n._z,a[15]=1},e.scaling=function(e,t){var n=t.elements;n[0]=e._x,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=e._y,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=e._z,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1},e.translation=function(e,t){var n=t.elements;n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=e._x,n[13]=e._y,n[14]=e._z,n[15]=1},e.invert=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],u=n[4],c=n[5],l=n[6],h=n[7],_=n[8],f=n[9],d=n[10],p=n[11],m=n[12],g=n[13],v=n[14],y=n[15],x=a*c-i*u,w=a*l-o*u,z=a*h-s*u,S=i*l-o*c,k=i*h-s*c,C=o*h-s*l,M=_*g-f*m,T=_*v-d*m,b=_*y-p*m,R=f*v-d*g,V=f*y-p*g,q=d*y-p*v,F=x*q-w*V+z*R+S*b-k*T+C*M;if(!F)return null;F=1/F,r[0]=(c*q-l*V+h*R)*F,r[1]=(o*V-i*q-s*R)*F,r[2]=(g*C-v*k+y*S)*F,r[3]=(d*k-f*C-p*S)*F,r[4]=(l*b-u*q-h*T)*F,r[5]=(a*q-o*b+s*T)*F,r[6]=(v*z-m*C-y*w)*F,r[7]=(_*C-d*z+p*w)*F,r[8]=(u*V-c*b+h*M)*F,r[9]=(i*b-a*V-s*M)*F,r[10]=(m*k-g*z+y*x)*F,r[11]=(f*z-_*k-p*x)*F,r[12]=(c*T-u*R-l*M)*F,r[13]=(a*R-i*T+o*M)*F,r[14]=(g*w-m*S-v*x)*F,r[15]=(_*S-f*w+d*x)*F},e.lookAt=function(t,n,r,a){var i=a.elements,o=e._tempVec30,s=e._tempVec31,u=e._tempVec32;ev.subtract(t,n,u),u.normalize(),ev.cross(r,u,o),o.normalize(),ev.cross(u,o,s),i[0]=o._x,i[1]=s._x,i[2]=u._x,i[3]=0,i[4]=o._y,i[5]=s._y,i[6]=u._y,i[7]=0,i[8]=o._z,i[9]=s._z,i[10]=u._z,i[11]=0,i[12]=-ev.dot(o,t),i[13]=-ev.dot(s,t),i[14]=-ev.dot(u,t),i[15]=1},e.ortho=function(e,t,n,r,a,i,o){var s=o.elements,u=1/(e-t),c=1/(n-r),l=1/(a-i);s[0]=-2*u,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*c,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*l,s[11]=0,s[12]=(e+t)*u,s[13]=(r+n)*c,s[14]=(i+a)*l,s[15]=1},e.perspective=function(e,t,n,r,a){var i=a.elements,o=1/Math.tan(e/2),s=1/(n-r);i[0]=o/t,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=(r+n)*s,i[11]=-1,i[12]=0,i[13]=0,i[14]=2*r*n*s,i[15]=0},e.rotateAxisAngle=function(e,t,n,r){var a,i,o,s=t._x,u=t._y,c=t._z,l=Math.sqrt(s*s+u*u+c*c);if(!(Math.abs(l)<eg.zeroTolerance)){var h=e.elements,_=r.elements;s*=l=1/l,u*=l,c*=l,a=Math.sin(n),o=1-(i=Math.cos(n));var f=h[0],d=h[1],p=h[2],m=h[3],g=h[4],v=h[5],y=h[6],x=h[7],w=h[8],z=h[9],S=h[10],k=h[11],C=s*s*o+i,M=u*s*o+c*a,T=c*s*o-u*a,b=s*u*o-c*a,R=u*u*o+i,V=c*u*o+s*a,q=s*c*o+u*a,F=u*c*o-s*a,A=c*c*o+i;_[0]=f*C+g*M+w*T,_[1]=d*C+v*M+z*T,_[2]=p*C+y*M+S*T,_[3]=m*C+x*M+k*T,_[4]=f*b+g*R+w*V,_[5]=d*b+v*R+z*V,_[6]=p*b+y*R+S*V,_[7]=m*b+x*R+k*V,_[8]=f*q+g*F+w*A,_[9]=d*q+v*F+z*A,_[10]=p*q+y*F+S*A,_[11]=m*q+x*F+k*A,e!==r&&(_[12]=h[12],_[13]=h[13],_[14]=h[14],_[15]=h[15])}},e.scale=function(e,t,n){var r=e.elements,a=n.elements,i=t._x,o=t._y,s=t._z;a[0]=r[0]*i,a[1]=r[1]*i,a[2]=r[2]*i,a[3]=r[3]*i,a[4]=r[4]*o,a[5]=r[5]*o,a[6]=r[6]*o,a[7]=r[7]*o,a[8]=r[8]*s,a[9]=r[9]*s,a[10]=r[10]*s,a[11]=r[11]*s,a[12]=r[12],a[13]=r[13],a[14]=r[14],a[15]=r[15]},e.translate=function(e,t,n){var r=e.elements,a=n.elements,i=t._x,o=t._y,s=t._z;if(e===n)a[12]=r[0]*i+r[4]*o+r[8]*s+r[12],a[13]=r[1]*i+r[5]*o+r[9]*s+r[13],a[14]=r[2]*i+r[6]*o+r[10]*s+r[14],a[15]=r[3]*i+r[7]*o+r[11]*s+r[15];else{var u=r[0],c=r[1],l=r[2],h=r[3],_=r[4],f=r[5],d=r[6],p=r[7],m=r[8],g=r[9],v=r[10],y=r[11];a[0]=u,a[1]=c,a[2]=l,a[3]=h,a[4]=_,a[5]=f,a[6]=d,a[7]=p,a[8]=m,a[9]=g,a[10]=v,a[11]=y,a[12]=u*i+_*o+m*s+r[12],a[13]=c*i+f*o+g*s+r[13],a[14]=l*i+d*o+v*s+r[14],a[15]=h*i+p*o+y*s+r[15]}},e.transpose=function(e,t){var n=e.elements,r=t.elements;if(t===e){var a=n[1],i=n[2],o=n[3],s=n[6],u=n[7],c=n[11];r[1]=n[4],r[2]=n[8],r[3]=n[12],r[4]=a,r[6]=n[9],r[7]=n[13],r[8]=i,r[9]=s,r[11]=n[14],r[12]=o,r[13]=u,r[14]=c}else r[0]=n[0],r[1]=n[4],r[2]=n[8],r[3]=n[12],r[4]=n[1],r[5]=n[5],r[6]=n[9],r[7]=n[13],r[8]=n[2],r[9]=n[6],r[10]=n[10],r[11]=n[14],r[12]=n[3],r[13]=n[7],r[14]=n[11],r[15]=n[15]},e}();ew._tempVec30=new ev,ew._tempVec31=new ev,ew._tempVec32=new ev,ew._tempMat30=new ey,ew._identity=new ew(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);var ez=/*#__PURE__*/function(){function e(e){this._session=e}var t=e.prototype;return t.updateInputs=function(e){this._platformFrame&&(this._updateController(e),this._updateCamera(e))},t._updateController=function(e){for(var t=this._platformFrame,n=this._session,r=n._platformSession,a=n._platformReferenceSpace,i=r.inputSources,o=0,s=i.length;o<s;o++){var u=i[o],c=e[ed(u)];switch(u.targetRayMode){case"screen":case"tracked-pointer":var l=u.gripSpace,h=u.targetRaySpace;if(l){var _=t.getPose(l,a),f=_.transform,d=_.emulatedPosition;if(f){var p=c.gripPose;p.matrix.copyFromArray(f.matrix),p.position.copyFrom(f.position),p.rotation.copyFrom(f.orientation)}c.trackingState=d?R.TrackingLost:R.Tracking}if(h){var m=t.getPose(h,a),g=m.transform,v=m.emulatedPosition;if(g){var y=c.targetRayPose;y.matrix.copyFromArray(g.matrix),y.position.copyFrom(g.position),y.rotation.copyFrom(g.orientation),c.trackingState=v?R.TrackingLost:R.Tracking}}}}},t._updateCamera=function(e){var t=this._platformFrame,n=this._session,r=n._platformReferenceSpace,a=n._platformLayer,i=n.framebufferWidth,o=n.framebufferHeight,s=t.getViewerPose(r);if(s){for(var u=!1,c=s.views,l=s.emulatedPosition,h=0,_=c.length;h<_;h++){var f=c[h],d=function(e){switch(e){case"left":return C.LeftCamera;case"right":return C.RightCamera;default:return C.Camera}}(f.eye),p=c[h].transform;d===C.Camera&&(u||(u=!0));var m=e[d],g=m.pose;g.matrix.copyFromArray(p.matrix),g.position.copyFrom(p.position),g.rotation.copyFrom(p.orientation),m.projectionMatrix.copyFromArray(f.projectionMatrix),m.trackingState=l?R.TrackingLost:R.Tracking;var v=a.getViewport(f),y=v.width/i,x=v.height/o,w=v.x/i,z=1-v.y/o-x;m.viewport.set(w,z,y,x)}if(!u){var S=e[C.LeftCamera],k=e[C.RightCamera],M=e[C.Camera],T=S.pose,b=k.pose,V=M.pose;V.rotation.copyFrom(T.rotation);var q=V.position,F=V.matrix;ev.add(T.position,b.position,q),q.scale(.5),F.copyFrom(T.matrix);var A=F.elements;A[12]=q.x,A[13]=q.y,A[14]=q.z,M.projectionMatrix.copyFrom(S.projectionMatrix),M.trackingState=l?R.TrackingLost:R.Tracking,M.viewport=S.viewport.width&&S.viewport.height?S.viewport:k.viewport}}},e}(),eS=/*#__PURE__*/function(){function e(e,t,n){this._events=[],this._screenPointers=[],this._inputEventTypeMap={selectstart:E.SelectStart,select:E.Select,selectend:E.SelectEnd,squeezestart:E.SqueezeStart,squeeze:E.Squeeze,squeezeend:E.SqueezeEnd},this._targetRayModeMap={gaze:P.Gaze,"tracked-pointer":P.TrackedPointer,screen:P.Screen},this._frame=new ez(this),this._platformSession=e,this._platformLayer=t,this._platformReferenceSpace=n;var r=e.requestAnimationFrame.bind(e),a=(function(e,t,n){this._frame._platformFrame=t,n(e)}).bind(this);this.requestAnimationFrame=function(e){return r(function(t,n){a(t,n,e)})},this.cancelAnimationFrame=e.cancelAnimationFrame.bind(e),this._onSessionEvent=this._onSessionEvent.bind(this),this._onSessionExit=this._onSessionExit.bind(this)}var t=e.prototype;return t.getFixedFoveation=function(){return this._platformLayer.fixedFoveation},t.setFixedFoveation=function(e){this._platformLayer.fixedFoveation=e},t.start=function(){},t.stop=function(){this._frame._platformFrame=null},t.end=function(){return this._frame._platformFrame=null,this._platformSession.end()},t.setSessionExitCallBack=function(e){this._onSessionExitCallBack=e},t.addEventListener=function(){var e=this._onSessionEvent,t=this._platformSession;t.addEventListener("select",e),t.addEventListener("selectstart",e),t.addEventListener("selectend",e),t.addEventListener("squeeze",e),t.addEventListener("squeezestart",e),t.addEventListener("squeezeend",e),t.addEventListener("end",this._onSessionExit)},t.removeEventListener=function(){var e=this._onSessionEvent,t=this._platformSession;t.removeEventListener("select",e),t.removeEventListener("selectstart",e),t.removeEventListener("selectend",e),t.removeEventListener("squeeze",e),t.removeEventListener("squeezestart",e),t.removeEventListener("squeezeend",e),t.removeEventListener("end",this._onSessionExit),this._events.length=0},t.resetEvents=function(){this._events.length=0},t._onSessionExit=function(){this._onSessionExitCallBack&&(this._onSessionExitCallBack(),this._onSessionExitCallBack=null)},t._onSessionEvent=function(e){var t=e.inputSource,n={type:this._inputEventTypeMap[e.type],input:ed(t),targetRayMode:this._targetRayModeMap[t.targetRayMode]};if(n.targetRayMode===P.Screen){var r=this._screenPointers,a=t.gamepad.axes;switch(n.x=a[0],n.y=a[1],n.type){case E.SelectStart:for(var i=-1,o=-1,s=r.length-1;s>=0;s--){var u=r[s];if(u===t){i=s;break}u||(o=s)}-1===i&&(-1===o?i=r.push(t)-1:(i=o,r[o]=t)),n.id=i;break;case E.SelectEnd:for(var c=r.length-1;c>=0;c--)r[c]===t&&(r[c]=null,n.id=c)}}this._events.push(n)},r(e,[{key:"frame",get:function(){return this._frame}},{key:"framebuffer",get:function(){return this._platformLayer.framebuffer}},{key:"framebufferWidth",get:function(){return this._platformLayer.framebufferWidth}},{key:"framebufferHeight",get:function(){return this._platformLayer.framebufferHeight}},{key:"frameRate",get:function(){return this._platformSession.frameRate}},{key:"supportedFrameRates",get:function(){return this._platformSession.supportedFrameRates}},{key:"events",get:function(){for(var e=this._events,t=this._screenPointers,n=0;n<t.length;n++){var r=t[n];if(r){var a=r.gamepad.axes,i={type:E.Select,targetRayMode:P.Screen,input:C.Controller,id:n,x:a[0],y:a[1]};e.push(i)}}return e}}]),e}(),ek=/*#__PURE__*/function(){function e(){}var t=e.prototype;return t.isSupportedSessionMode=function(e){return new Promise(function(t,n){if(!window.isSecureContext){n(Error("WebXR is available only in secure contexts (HTTPS)."));return}if(!navigator.xr){n(Error("WebXR isn't available"));return}navigator.xr.isSessionSupported(ef(e)).then(function(e){e?t():n(Error("The current context doesn't support WebXR."))})})},t.isSupportedFeature=function(e){switch(e){case X.HitTest:case X.PlaneTracking:return"undefined"!=typeof XRPlane;case X.AnchorTracking:return"undefined"!=typeof XRAnchor;case X.ImageTracking:return"undefined"!=typeof XRImageTrackingResult}},t.createPlatformFeature=function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];var i=e._platformFeatureMap[t];return i?e_(i,[].concat(r)):null},t.requestSession=function(e,t,n){return new Promise(function(r,a){for(var i=ef(t),o={requiredFeatures:["local"]},s=[],u=0,c=n.length;u<c;u++){var l=n[u]._assembleOptions(o);l&&s.push(l)}Promise.all(s).then(function(){navigator.xr.requestSession(i,o).then(function(t){var n=e.gl,i=n.getContextAttributes();i||a(Error("GetContextAttributes Error!")),n.makeXRCompatible().then(function(){var o,s=XRWebGLLayer.getNativeFramebufferScaleFactor(t);if(void 0!==t.renderState.layers&&e.isWebGL2)o=new XRWebGLLayer(t,n),t.updateRenderState({layers:[o]});else{var u={antialias:void 0!==t.renderState.layers||i.antialias,alpha:!0,depth:i.depth,stencil:i.stencil,framebufferScaleFactor:s};o=new XRWebGLLayer(t,n,u),t.updateRenderState({baseLayer:o})}t.requestReferenceSpace("local").then(function(e){r(new eS(t,o,e))},a)},a)},a)},a)})},e}();function eC(e){return function(t){ek._platformFeatureMap[e]=t}}ek._platformFeatureMap=[];var eM=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}i(t,e);var n=t.prototype;return n.onAddRequestTracking=function(e){},n.onDelRequestTracking=function(e){e.state=B.Destroyed},r(t,[{key:"canModifyRequestTrackingAfterInit",get:function(){return!1}}]),t}(function(){}),eT=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}i(t,e);var n=t.prototype;return n.checkAvailable=function(e,t,n){if(!t._platformFrame)return!1;for(var r=0,a=n.length;r<a;r++){var i=n[r];i.state===B.None&&this._addAnchor(e,t,i)}return!0},n.getTrackedResult=function(e,t,n){for(var r=e._platformReferenceSpace,a=t._platformFrame,i=a.trackedAnchors,o=0,s=n.length;o<s;o++){var u=n[o];if(u.state===B.Resolved){var c=u.tracked[0];i.has(u.xrAnchor)?this._updateTrackedAnchor(a,r,u)?c.state===R.Tracking&&(c.state=R.TrackingLost):c.state=R.Tracking:c.state=R.NotTracking}}},n.onDelRequestTracking=function(e){switch(e.state){case B.Submitted:e.state=B.WaitingDestroy;break;case B.Resolved:e.xrAnchor.delete(),e.state=B.Destroyed;break;default:e.state=B.Destroyed}},n._assembleOptions=function(e){e.requiredFeatures.push("anchors")},n._addAnchor=function(e,t,n){if(e&&t){n.state=B.Submitted;var r=n.position,a=n.rotation,i=t._platformFrame,o=e._platformReferenceSpace;i.createAnchor(new XRRigidTransform({x:r.x,y:r.y,z:r.z},{x:a.x,y:a.y,z:a.z,w:a.w}),o).then(function(e){n.state===B.WaitingDestroy?(e.delete(),n.state=B.Destroyed):(n.xrAnchor=e,n.state=B.Resolved)},function(){n.state===B.WaitingDestroy?n.state=B.Destroyed:n.state=B.Rejected})}},n._updateTrackedAnchor=function(e,t,n){var r=n.xrAnchor,a=e.getPose(r.anchorSpace,t),i=a.transform,o=n.tracked[0].pose;return o.matrix.copyFromArray(i.matrix),o.rotation.copyFrom(i.orientation),o.position.copyFrom(i.position),a.emulatedPosition},r(t,[{key:"canModifyRequestTrackingAfterInit",get:function(){return!0}}]),t}(eM);eT=o([eC(X.AnchorTracking)],eT);var eb=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this)||this)._trackingScoreStatus=0,n._tempIdx=0,n._tempArr=[],n._images=t,n}i(t,e);var n=t.prototype;return n.checkAvailable=function(e,t,n){if(!t._platformFrame)return!1;switch(this._trackingScoreStatus){case 0:return this._requestTrackingScore(e,n),!1;case 1:return!1}return!0},n.getTrackedResult=function(e,t,n,r){for(var a=e._platformReferenceSpace,i=t._platformFrame,o=this._tempArr,s=++this._tempIdx,u=i.getImageTrackingResults(),c=0,l=u.length;c<l;c++){var h=u[c],_=h.index,f=n[_];if(f){var d=f.tracked[0];d||((d=f.tracked[0]=r()).referenceImage=f.image),"tracked"===h.trackingState?(this._updateTrackedImage(i,a,d,h),d.state=R.Tracking):d.state=R.TrackingLost,o[_]=s}else console.warn("Images can not find "+_)}for(var p=0,m=n.length;p<m;p++)o[p]<s&&(n[p].tracked[0].state=R.NotTracking)},n.onAddRequestTracking=function(e){e.state=B.Submitted},n._assembleOptions=function(e){e.requiredFeatures.push("image-tracking");var t=this._images,n=[];if(!t)return Promise.reject(Error("Images.length is 0"));for(var r=0,a=t.length;r<a;r++){var i=t[r],o=t[r].imageSource;if(!o)return Promise.reject(Error("referenceImage["+i.name+"].src is null"));n.push(createImageBitmap(o))}return new Promise(function(r,a){var i=e.trackedImages=[];Promise.all(n).then(function(e){for(var n=0,a=e.length;n<a;n++)i.push({image:e[n],widthInMeters:t[n].physicalWidth});r()},a)})},n._requestTrackingScore=function(e,t){var n=this;this._trackingScoreStatus=1,e._platformSession.getTrackedImageScores().then(function(e){if(e)for(var r=0,a=e.length;r<a;r++){var i=e[r],o=t[r];"trackable"===i?(n._trackingScoreStatus=2,o.state=B.Resolved):(o.state=B.Rejected,console.warn(o.image.name," unTrackable"))}})},n._updateTrackedImage=function(e,t,n,r){var a=n.pose,i=e.getPose(r.imageSpace,t).transform;a.matrix.copyFromArray(i.matrix),a.rotation.copyFrom(i.orientation),a.position.copyFrom(i.position),n.measuredPhysicalWidth=r.measuredWidthInMeters},t}(eM);eb=o([eC(X.ImageTracking)],eb);var eR=/*#__PURE__*/function(e){function t(t){var n;return n=e.call(this)||this,t!==Y.EveryThing&&console.warn("WebXR only support XRPlaneMode.EveryThing"),n}i(t,e);var n=t.prototype;return n.checkAvailable=function(e,t,n){return!!t._platformFrame},n.getTrackedResult=function(e,t,n,r){for(var a,i=this,o=e._platformReferenceSpace,s=t._platformFrame,u=s.detectedPlanes||(null==(a=s.worldInformation)?void 0:a.detectedPlanes),c=n[0].tracked,l=0,h=c.length;l<h;l++){var _=c[l];u.has(_.xrPlane)?(_.state=R.Tracking,this._updatePlane(s,o,_)):_.state=R.NotTracking}var f=this._lastDetectedPlanes;u.forEach(function(e){if(!(null==f?void 0:f.has(e))){var t=r();t.xrPlane=e,t.lastChangedTime=-1,i._updatePlane(s,o,t),c.push(t)}}),this._lastDetectedPlanes=u},n.onAddRequestTracking=function(e){e.state=B.Resolved},n._assembleOptions=function(e){e.requiredFeatures.push("plane-detection")},n._updatePlane=function(e,t,n){var r=n.pose,a=n.polygon,i=n.xrPlane,o=e.getPose(i.planeSpace,t);if(o){var s=o.transform,u=o.emulatedPosition;if(n.state=u?R.TrackingLost:R.Tracking,n.planeMode="horizontal"===i.orientation?Y.Horizontal:Y.Vertical,n.lastChangedTime<i.lastChangedTime){n.lastChangedTime=i.lastChangedTime,n.attributesDirty=!0;for(var c,l=i.polygon,h=0,_=a.length=l.length;h<_;h++)(a[c=h]||(a[c]=new ev)).copyFrom(l[h])}else n.attributesDirty=!1;r.rotation.copyFrom(s.orientation),r.position.copyFrom(s.position),r.matrix.copyFromArray(s.matrix),r.inverseMatrix.copyFromArray(s.inverse.matrix)}},t}(eM);eR=o([eC(X.PlaneTracking)],eR),e.WebXRDevice=ek,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=browser.min.js.map
|