@galacean/engine-xr-webxr 1.3.24 → 1.4.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(e,t,n){return(u=!function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}()?function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&s(a,n.prototype),a}:Reflect.construct).apply(null,arguments)}function _(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&&_(e.prototype,t),n&&_(e,n),e}function c(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&&s(e,t)}function l(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,(ev=eC||(eC={}))[ev.Controller=0]="Controller",ev[ev.LeftController=1]="LeftController",ev[ev.RightController=2]="RightController",ev[ev.Camera=3]="Camera",ev[ev.LeftCamera=4]="LeftCamera",ev[ev.RightCamera=5]="RightCamera",ev[ev.LeftHand=6]="LeftHand",ev[ev.RightHand=7]="RightHand",(ex=eV||(eV={}))[ex.None=0]="None",ex[ex.Initializing=1]="Initializing",ex[ex.Initialized=2]="Initialized",ex[ex.Running=3]="Running",ex[ex.Paused=4]="Paused";var f,d,m,g,y,p,v,x,z,w,C,V,M,S,k,b,T,R,q,P,A,F,E,L,I,D,N,B,j,O,X,W,H,U,G,Q,Y,J,Z,K,$,ee,et,en,er,ea,ei,eo,es,eu,e_,eh,ec,el,ef,ed,em,eg,ey,ep,ev,ex,ez,ew,eC,eV,eM,eS,ek,eb,eT,eR,eq,eP,eA,eF,eE,eL,eI,eD=((ew=(ez=function(e){this._xrManager=e}).prototype).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 eC.Camera:n._cameraType=t.CameraType.XRCenterCamera;break;case eC.LeftCamera:n._cameraType=t.CameraType.XRLeftCamera;break;case eC.RightCamera:n._cameraType=t.CameraType.XRRightCamera}r._camera=n}},ew.detachCamera=function(e){var n=this._xrManager.inputManager.getTrackedDevice(e),r=n._camera;return r&&(r._cameraType=t.CameraType.Normal),n._camera=null,r},ew._onSessionStart=function(){},ew._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,_=a.viewport,h=_.x,c=_.y,l=_.width,f=_.height;h===u.x&&c===u.y&&l===u.z&&f===u.w||(i.viewport=u.set(h,c,l,f)),t.Matrix.equals(i.projectionMatrix,a.projectionMatrix)||(i.projectionMatrix=a.projectionMatrix)}}},ew._onSessionExit=function(){},ew._getIgnoreClearFlags=function(e){return e!==t.CameraType.XRCenterCamera?t.CameraClearFlags.None:this._xrManager.sessionManager.state===eV.Running?t.CameraClearFlags.Color:t.CameraClearFlags.None},ew._onDestroy=function(){},h(ez,[{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.")}}]),ez),eN=function(){this.position=new t.Vector3,this.rotation=new t.Quaternion,this.matrix=new t.Matrix,this.inverseMatrix=new t.Matrix};(f=eM||(eM={}))[f.NotTracking=0]="NotTracking",f[f.Tracking=1]="Tracking",f[f.TrackingLost=2]="TrackingLost";var eB=function(e){this.type=e,this.trackingState=eM.NotTracking},ej=(c(d=function(){var e;return e=eB.apply(this,arguments)||this,e.pose=new eN,e.viewport=new t.Rect,e.projectionMatrix=new t.Matrix,e},eB),d);(m=eS||(eS={}))[m.None=0]="None",m[m.Select=1]="Select",m[m.Trigger=1]="Trigger",m[m.Squeeze=2]="Squeeze",m[m.TouchPad=4]="TouchPad",m[m.AButton=8]="AButton",m[m.BButton=16]="BButton";var eO=(c(g=function(){var e;return e=eB.apply(this,arguments)||this,e.gripPose=new eN,e.targetRayPose=new eN,e.pressedButtons=eS.None,e.down=eS.None,e.up=eS.None,e},eB),(y=g.prototype).isButtonDown=function(e){return(this.down&e)!=0},y.isButtonUp=function(e){return(this.up&e)!=0},y.isButtonHeldDown=function(e){return(this.pressedButtons&e)!=0},g);(p=ek||(ek={}))[p.SelectStart=0]="SelectStart",p[p.Select=1]="Select",p[p.SelectEnd=2]="SelectEnd",p[p.SqueezeStart=3]="SqueezeStart",p[p.Squeeze=4]="Squeeze",p[p.SqueezeEnd=5]="SqueezeEnd",(v=eb||(eb={}))[v.Gaze=0]="Gaze",v[v.TrackedPointer=1]="TrackedPointer",v[v.Screen=2]="Screen";var eX=((z=(x=function(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 eC.Camera:case eC.LeftCamera:case eC.RightCamera:i.push(r[o]=new ej(o));break;case eC.Controller:case eC.LeftController:case eC.RightController:a.push(r[o]=new eO(o))}this._statusSnapshot.fill(eM.NotTracking,0,r.length)}).prototype).getTrackedDevice=function(e){return this._trackedDevices[e]},z.addTrackedDeviceChangedListener=function(e){this._listeners.push({fn:e})},z.removeTrackedDeviceChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},z._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,_=u.events,h=0,c=_.length;h<c;h++)this._handleEvent(_[h]);u.resetEvents(),u.frame.updateInputs(r);for(var l=0,f=r.length;l<f;l++){var d=r[l];if(d){var m=d.trackingState;n[l]===eM.Tracking?m!==eM.Tracking&&t.push(d):m===eM.Tracking&&e.push(d),n[l]=m}}if(e.length>0||t.length>0)for(var g=this._listeners.getLoopArray(),y=0,p=g.length;y<p;y++){var v=g[y];v.destroyed||v.fn(e,t)}},z._onDestroy=function(){this._listeners.findAndRemove(function(e){return e.destroyed=!0})},z._handleEvent=function(e){var t=this._trackedDevices[e.input];switch(e.targetRayMode){case eb.TrackedPointer:switch(e.type){case ek.SelectStart:t.down|=eS.Select,t.pressedButtons|=eS.Select;break;case ek.SelectEnd:t.up|=eS.Select,t.pressedButtons&=~eS.Select;break;case ek.SqueezeStart:t.down|=eS.Squeeze,t.pressedButtons|=eS.Squeeze;break;case ek.SqueezeEnd:t.up|=eS.Squeeze,t.pressedButtons&=~eS.Squeeze}break;case eb.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 ek.SelectStart:r.dispatchEvent(this._makeUpPointerEvent("pointerdown",e.id,s,u));break;case ek.Select:r.dispatchEvent(this._makeUpPointerEvent("pointermove",e.id,s,u));break;case ek.SelectEnd:r.dispatchEvent(this._makeUpPointerEvent("pointerup",e.id,s,u)),r.dispatchEvent(this._makeUpPointerEvent("pointerleave",e.id,s,u))}}},z._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)},x);(w=eT||(eT={}))[w.None=0]="None",w[w.AR=1]="AR",w[w.VR=2]="VR";var eW=((V=(C=function(e,n){this._xrManager=e,this._engine=n,this._mode=eT.None,this._state=eV.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)}).prototype).isSupportedMode=function(e){return this._xrManager._platformDevice.isSupportedSessionMode(e)},V.run=function(){var e=this._platformSession,t=this._engine;if(!e)throw Error("Without session to run.");e.start(),this._setState(eV.Running),this._xrManager._onSessionStart(),t.isPaused||(t.pause(),t.resume())},V.stop=function(){var e=this._platformSession,t=this._engine,n=this._rhi;if(!e)throw Error("Without session to stop.");if(this._state!==eV.Running)throw Error("Session is not running.");n._mainFrameBuffer=null,n._mainFrameWidth=n._mainFrameHeight=0,e.stop(),this._setState(eV.Paused),this._xrManager._onSessionStop(),t.isPaused||(t.pause(),t.resume())},V.addStateChangedListener=function(e){this._listeners.push({fn:e})},V.removeStateChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},V._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)}},V._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 _=t[s]._platformFeature;_&&o.push(_)}i._platformDevice.requestSession(n._rhi,e,o).then(function(t){n._mode=e,n._platformSession=t,n._setState(eV.Initialized),t.setSessionExitCallBack(n._onSessionExit),t.addEventListener(),i._onSessionInit(),r()},a)})},V._onUpdate=function(){var e=this._rhi,t=this._platformSession;e._mainFrameBuffer=t.framebuffer,e._mainFrameWidth=t.framebufferWidth,e._mainFrameHeight=t.framebufferHeight},V._getRequestAnimationFrame=function(){return this._state===eV.Running?this._platformSession.requestAnimationFrame:this._raf},V._getCancelAnimationFrame=function(){return this._state===eV.Running?this._platformSession.cancelAnimationFrame:this._caf},V._exit=function(){var e=this._platformSession;return e?e.end():Promise.reject("Without session to stop.")},V._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(eV.None),this._xrManager._onSessionExit(),n.isPaused||(n.pause(),n.resume())},V._onDestroy=function(){this._listeners.findAndRemove(function(e){return e.destroyed=!0}),this._raf=this._caf=null},h(C,[{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}}]),C),eH=(M=t.XRManager,c(S=function(){return M.apply(this,arguments)},M),(k=S.prototype).isSupportedFeature=function(e){return this._platformDevice.isSupportedFeature(S._featureMap.get(e))},k.addFeature=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];if(this.sessionManager._platformSession)throw Error("Cannot add feature when the session is initialized.");if(!this._platformDevice.isSupportedFeature(S._featureMap.get(e)))throw Error("The feature is not supported");for(var a=this.features,i=0,o=a.length;i<o;i++)if(l(a[i],e))throw Error("The feature has been added");var s=u(e,[].concat(this,n));return a.push(s),s},k.getFeature=function(e){for(var t=this.features,n=0,r=t.length;n<r;n++){var a=t[n];if(l(a,e))return a}},k.enterXR=function(e,t){void 0===t&&(t=!0);var n=this,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(eV.Initializing),r._initialize(e,n.features).then(function(){t&&r.run(),a()},i)},i)})},k.exitXR=function(){var e=this;return new Promise(function(t,n){e.sessionManager._exit().then(function(){t()},n)})},k._initialize=function(e,t){this._features=[],this._platformDevice=t,this.sessionManager=new eW(this,e),this.inputManager=new eX(this,e),this.cameraManager=new eD(this)},k._update=function(){var e=this.sessionManager;if(e.state===eV.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()}}},k._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())},k._getRequestAnimationFrame=function(){return this.sessionManager._getRequestAnimationFrame()},k._getCancelAnimationFrame=function(){return this.sessionManager._getCancelAnimationFrame()},k._getCameraIgnoreClearFlags=function(e){return this.cameraManager._getIgnoreClearFlags(e)},k._onSessionStop=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionStop()}},k._onSessionInit=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionInit()}},k._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()}},k._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(S,[{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}}]),S);function eU(e){return function(t){eH._featureMap.set(t,e)}}eH._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,[eH]);var eG=((T=(b=function(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()}).prototype)._onEnable=function(){},T._onDisable=function(){},T._onUpdate=function(){},T._onSessionInit=function(){},T._onSessionStart=function(){},T._onSessionStop=function(){},T._onSessionExit=function(){},T._onDestroy=function(){},h(b,[{key:"enabled",get:function(){return this._enabled},set:function(e){this.enabled!==e&&(this._enabled=e,e?this._onEnable():this._onDisable())}}]),b);(R=eR||(eR={}))[R.AnchorTracking=0]="AnchorTracking",R[R.ImageTracking=1]="ImageTracking",R[R.PlaneTracking=2]="PlaneTracking",R[R.HitTest=3]="HitTest",(q=eq||(eq={}))[q.None=0]="None",q[q.Submitted=1]="Submitted",q[q.Resolved=2]="Resolved",q[q.Rejected=3]="Rejected",q[q.Destroyed=4]="Destroyed",q[q.WaitingDestroy=5]="WaitingDestroy";var eQ=(c(P=function(){var e;return e=eG.apply(this,arguments)||this,e._requestTrackings=[],e._tracked=[],e._added=[],e._updated=[],e._removed=[],e._statusSnapshot={},e._listeners=new t.SafeLoopArray,e},eG),(A=P.prototype).addChangedListener=function(e){this._listeners.push({fn:e})},A.removeChangedListener=function(e){this._listeners.findAndRemove(function(t){return t.fn===e&&(t.destroyed=!0)})},A._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 _=0,h=r.length;_<h;_++){var c=r[_];switch(c.state){case eq.Destroyed:for(var l=c.tracked,f=0,d=l.length;f<d;f++){var m=l[f],g=m.id;a[g]===eM.Tracking&&(u.push(m),i.splice(i.indexOf(m),1)),a[g]=eM.NotTracking}break;case eq.Resolved:for(var y=c.tracked,p=0,v=y.length;p<v;p++){var x=y[p],z=x.id;x.state===eM.Tracking?a[z]===eM.Tracking?s.push(x):(o.push(x),a[z]=eM.Tracking,i.push(x)):(a[z]===eM.Tracking&&(u.push(x),i.splice(i.indexOf(x),1)),a[z]=x.state)}}}for(var w=r.length-1;w>=0;w--)r[w].state===eq.Destroyed&&r.splice(w,1);if(o.length>0||s.length>0||u.length>0)for(var C=this._listeners.getLoopArray(),V=0,M=C.length;V<M;V++){var S=C[V];S.destroyed||S.fn(o,s,u)}}},A._onSessionStop=function(){this._added.length=this._updated.length=this._removed.length=0},A._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})},A._addRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(eR[this._type]+" request tracking cannot be modified after initialization.");this._requestTrackings.push(e),t.onAddRequestTracking(e)},A._removeRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(eR[this._type]+" request tracking cannot be modified after initialization.");t.onDelRequestTracking(e)},A._removeAllRequestTrackings=function(){var e=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!e.canModifyRequestTrackingAfterInit)throw Error(eR[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])},P);eQ._uuid=0;var eY=function(){this.pose=new eN,this.state=eM.NotTracking};(F=eP||(eP={}))[F.Plane=1]="Plane",F[F.All=1]="All";var eJ=function(){this.point=new t.Vector3,this.normal=new t.Vector3};function eZ(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"==typeof SuppressedError&&SuppressedError,(E=eA||(eA={}))[E.None=0]="None",E[E.Horizontal=1]="Horizontal",E[E.Vertical=2]="Vertical",E[E.EveryThing=3]="EveryThing";var eK=function(){this.state=eq.None,this.tracked=[]},e$=(c(L=function(e){var t;return(t=eK.call(this)||this).detectionMode=e,t},eK),L),e1=(c(I=function(){var e;return e=eY.apply(this,arguments)||this,e.polygon=[],e.attributesDirty=!1,e},eY),I),e0=(c(D=function(e,t){var n;return void 0===t&&(t=eA.EveryThing),(n=eQ.call(this,e,eR.PlaneTracking,t)||this)._addRequestTracking(new e$(t)),n},eQ),D.prototype._generateTracked=function(){var e=new e1;return e.id=eQ._uuid++,e},h(D,[{key:"detectionMode",get:function(){return this._requestTrackings[0].detectionMode}},{key:"trackedPlanes",get:function(){return this._tracked}}]),D);e0=eZ([eU(eR.PlaneTracking)],e0);var e3=(c(N=function(e){var n;return(n=eG.call(this,e,eR.HitTest)||this)._tempRay=new t.Ray,n._tempPlane=new t.Plane,n._tempVec2=new t.Vector2,n._tempVec30=new t.Vector3,n._tempVec31=new t.Vector3,n._tempVec32=new t.Vector3,n._tempVec33=new t.Vector3,n._tempVec34=new t.Vector3,n._tempVec35=new t.Vector3,n},eG),(B=N.prototype).hitTest=function(e,t){var n=[];return t&eP.Plane&&this._hitTestPlane(e,n),n},B.screenHitTest=function(e,t,n){var r=this._xrManager;if(r.sessionManager.mode!==eT.AR)throw Error("Only AR mode supports using screen ray hit test.");var a=r.inputManager.getTrackedDevice(eC.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)},B._hitTestPlane=function(e,n){var r=this._xrManager.getFeature(e0);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,_=0,h=u.length;_<h;_++){var c=u[_];i.set(0,1,0).transformNormal(c.pose.matrix),a.normal.copyFrom(i),a.distance=-t.Vector3.dot(i,c.pose.position);var l=e.intersectPlane(a);if(l>=0&&(e.getPoint(l,o),t.Vector3.transformToVec3(o,c.pose.inverseMatrix,s),this._checkPointerWithinPlane(s,c))){var f=new eJ;f.point.copyFrom(o),f.normal.copyFrom(i),f.distance=l,f.trackedObject=c,f.trackableType=eP.Plane,n.push(f)}}},B._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],_=0,h=0;h<s;h++){var c=o[h];t.Vector3.subtract(c,u,r),t.Vector3.subtract(e,u,a),t.Vector3.cross(r,a,i);var l=i.y;if(0===_)l>0?_=1:l<0&&(_=-1);else if(l>0&&_<0||l<0&&_>0)return!1;u=c}return!0},N);e3=eZ([eU(eR.HitTest)],e3);var e2=(c(j=function(){return eY.apply(this,arguments)},eY),j),e5=(c(O=function(e,t){var n;return(n=eK.call(this)||this).position=e,n.rotation=t,n},eK),O),e4=(c(X=function(e){var t;return(t=eQ.call(this,e,eR.AnchorTracking)||this)._anchors=[],t},eQ),(W=X.prototype).addAnchor=function(e,t){if(!this._enabled)throw Error("Cannot add an anchor from a disabled anchor manager.");var n=this._anchors,r=new e5(e,t),a=this._generateTracked();return r.tracked[0]=a,this._addRequestTracking(r),n.push(a),a},W.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)},W.clearAnchors=function(){if(!this._enabled)throw Error("Cannot remove anchors from a disabled anchor manager.");this._removeAllRequestTrackings()},W._generateTracked=function(){var e=new e2;return e.id=eQ._uuid++,e},h(X,[{key:"trackingAnchors",get:function(){return this._anchors}},{key:"trackedAnchors",get:function(){return this._tracked}}]),X);e4=eZ([eU(eR.AnchorTracking)],e4);var e6=(c(H=function(e){var t;return(t=eK.call(this)||this).image=e,t},eK),H),e8=(c(U=function(){return eY.apply(this,arguments)},eY),U),e7=(c(G=function(e,t){var n;if((n=eQ.call(this,e,eR.ImageTracking,t)||this)._trackingImages=t,(t?t.length:0)>0)for(var r=0,a=t.length;r<a;r++)n._addRequestTracking(new e6(t[r]));else console.warn("No image to be tracked.");return n},eQ),G.prototype._generateTracked=function(){var e=new e8;return e.id=eQ._uuid++,e},h(G,[{key:"trackingImages",get:function(){return this._trackingImages}},{key:"trackedImages",get:function(){return this._tracked}}]),G);e7=eZ([eU(eR.ImageTracking)],e7);var e9=function(e,t,n){this.name=e,this.imageSource=t,this.physicalWidth=n},te=((Q=function(){}).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 e9("",a,r))},a.src=URL.createObjectURL(new window.Blob([t.nextImagesData(1)[0]]))})},Q);function tt(){return(tt=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)}te=eZ([t.decoder("XRReferenceImage")],te);var tn=(Y=t.Loader,c(J=function(){return Y.apply(this,arguments)},Y),J.prototype.load=function(e,n){return new t.AssetPromise(function(r,a){n._request(e.url,tt({},e,{type:"arraybuffer"})).then(function(e){t.decode(e,n.engine).then(function(e){r(e)})}).catch(a)})},J);function tr(e,t,n){return(tr=!function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}()?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}:Reflect.construct).apply(null,arguments)}function ta(e){switch(e){case 1:return"immersive-ar";case 2:return"immersive-vr";default:return null}}function ti(e){var t;switch(e.targetRayMode){case"gaze":break;case"screen":return eC.Controller;case"tracked-pointer":if(e.hand)switch(e.handedness){case"left":return eC.LeftHand;case"right":return eC.RightHand}else switch(e.handedness){case"left":return eC.LeftController;case"right":return eC.RightController}}return t}function to(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 ts(e,t,n){return t&&to(e.prototype,t),n&&to(e,n),e}tn=eZ([t.resourceLoader("XRReferenceImage",[])],tn),(Z=eF||(eF={}))[Z.Disjoint=0]="Disjoint",Z[Z.Contains=1]="Contains",Z[Z.Intersects=2]="Intersects",(K=eE||(eE={}))[K.Back=0]="Back",K[K.Front=1]="Front",K[K.Intersecting=2]="Intersecting",($=eL||(eL={}))[$.Near=0]="Near",$[$.Far=1]="Far",$[$.Left=2]="Left",$[$.Right=3]="Right",$[$.Bottom=4]="Bottom",$[$.Top=5]="Top";var tu=((ee=function(){}).clamp=function(e,t,n){return Math.max(t,Math.min(n,e))},ee.equals=function(e,t){return Math.abs(e-t)<=ee.zeroTolerance},ee.isPowerOf2=function(e){return(e&e-1)==0},ee.radianToDegree=function(e){return e*ee.radToDegreeFactor},ee.degreeToRadian=function(e){return e*ee.degreeToRadFactor},ee.lerp=function(e,t,n){return e+(t-e)*n},ee);tu.zeroTolerance=1e-6,tu.radToDegreeFactor=180/Math.PI,tu.degreeToRadFactor=Math.PI/180;var t_=((en=(et=function(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}).prototype).set=function(e,t,n){return this._x=e,this._y=t,this._z=n,this._onValueChanged&&this._onValueChanged(),this},en.add=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._onValueChanged&&this._onValueChanged(),this},en.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._onValueChanged&&this._onValueChanged(),this},en.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,this._onValueChanged&&this._onValueChanged(),this},en.divide=function(e){return this._x/=e._x,this._y/=e._y,this._z/=e._z,this._onValueChanged&&this._onValueChanged(),this},en.length=function(){var e=this._x,t=this._y,n=this._z;return Math.sqrt(e*e+t*t+n*n)},en.lengthSquared=function(){var e=this._x,t=this._y,n=this._z;return e*e+t*t+n*n},en.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,this._onValueChanged&&this._onValueChanged(),this},en.normalize=function(){return et.normalize(this,this),this},en.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,this._onValueChanged&&this._onValueChanged(),this},en.transformNormal=function(e){return et.transformNormal(this,e,this),this},en.transformToVec3=function(e){return et.transformToVec3(this,e,this),this},en.transformCoordinate=function(e){return et.transformCoordinate(this,e,this),this},en.transformByQuat=function(e){return et.transformByQuat(this,e,this),this},en.clone=function(){return new et(this._x,this._y,this._z)},en.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._onValueChanged&&this._onValueChanged(),this},en.copyTo=function(e){return e.x=this._x,e.y=this._y,e.z=this._z,e},en.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._onValueChanged&&this._onValueChanged(),this},en.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z},en.toJSON=function(){return{x:this._x,y:this._y,z:this._z}},et.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._z=e._z+t._z,n._onValueChanged&&n._onValueChanged()},et.subtract=function(e,t,n){n._x=e._x-t._x,n._y=e._y-t._y,n._z=e._z-t._z,n._onValueChanged&&n._onValueChanged()},et.multiply=function(e,t,n){n._x=e._x*t._x,n._y=e._y*t._y,n._z=e._z*t._z,n._onValueChanged&&n._onValueChanged()},et.divide=function(e,t,n){n._x=e._x/t._x,n._y=e._y/t._y,n._z=e._z/t._z,n._onValueChanged&&n._onValueChanged()},et.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z},et.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)},et.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)},et.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},et.equals=function(e,t){return tu.equals(e._x,t._x)&&tu.equals(e._y,t._y)&&tu.equals(e._z,t._z)},et.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,r._onValueChanged&&r._onValueChanged()},et.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),n._onValueChanged&&n._onValueChanged()},et.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),n._onValueChanged&&n._onValueChanged()},et.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._onValueChanged&&t._onValueChanged()},et.normalize=function(e,t){var n=e._x,r=e._y,a=e._z,i=Math.sqrt(n*n+r*r+a*a);i>tu.zeroTolerance&&(i=1/i,t.set(n*i,r*i,a*i))},et.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._z=e._z*t,n._onValueChanged&&n._onValueChanged()},et.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],n._onValueChanged&&n._onValueChanged()},et.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],n._onValueChanged&&n._onValueChanged()},et.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],n._onValueChanged&&n._onValueChanged()},et.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,n._onValueChanged&&n._onValueChanged()},et.transformByQuat=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,u=t._z,_=t._w,h=_*r+s*i-u*a,c=_*a+u*r-o*i,l=_*i+o*a-s*r,f=-o*r-s*a-u*i;n._x=h*_-f*o-c*u+l*s,n._y=c*_-f*s-l*o+h*u,n._z=l*_-f*u-h*s+c*o,n._onValueChanged&&n._onValueChanged()},ts(et,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,this._onValueChanged&&this._onValueChanged()}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,this._onValueChanged&&this._onValueChanged()}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,this._onValueChanged&&this._onValueChanged()}}]),et);t_._zero=new t_(0,0,0),t_._one=new t_(1,1,1),((ea=(er=function(e,t){void 0===e&&(e=null),void 0===t&&(t=0),this.center=new t_,this.radius=0,e&&this.center.copyFrom(e),this.radius=t}).prototype).clone=function(){return new er(this.center,this.radius)},ea.copyFrom=function(e){return this.center.copyFrom(e.center),this.radius=e.radius,this},er.fromPoints=function(e,t){if(!e||0===e.length)throw Error("points must be array and length must > 0");var n=e.length,r=er._tempVec30;r.x=r.y=r.z=0;for(var a=0;a<n;++a)t_.add(e[a],r,r);t_.scale(r,1/n,t.center);for(var i=0,o=0;o<n;++o){var s=t_.distanceSquared(r,e[o]);s>i&&(i=s)}t.radius=Math.sqrt(i)},er.fromBox=function(e,t){var n=t.center,r=e.min,a=e.max;n.x=(r.x+a.x)*.5,n.y=(r.y+a.y)*.5,n.z=(r.z+a.z)*.5,t.radius=t_.distance(n,a)},er)._tempVec30=new t_;var th=((eo=(ei=function(e,t){void 0===e&&(e=null),void 0===t&&(t=null),this.min=new t_,this.max=new t_,e&&this.min.copyFrom(e),t&&this.max.copyFrom(t)}).prototype).getCenter=function(e){var t=this.min,n=this.max,r=n._x+t._x,a=n._y+t._y,i=n._z+t._z;return e.set(isNaN(r)?0:.5*r,isNaN(a)?0:.5*a,isNaN(i)?0:.5*i),e},eo.getExtent=function(e){var t=this.min,n=this.max,r=n._x-t._x,a=n._y-t._y,i=n._z-t._z;return e.set(isNaN(r)?0:.5*r,isNaN(a)?0:.5*a,isNaN(i)?0:.5*i),e},eo.getCorners=function(e){void 0===e&&(e=[]);var t=this.min,n=this.max,r=t.x,a=t.y,i=t.z,o=n.x,s=n.y,u=n.z,_=e.length;if(_<8)for(var h=0,c=8-_;h<c;++h)e[_+h]=new t_;return e[0].set(r,s,u),e[1].set(o,s,u),e[2].set(o,a,u),e[3].set(r,a,u),e[4].set(r,s,i),e[5].set(o,s,i),e[6].set(o,a,i),e[7].set(r,a,i),e},eo.transform=function(e){return ei.transform(this,e,this),this},eo.clone=function(){return new ei(this.min,this.max)},eo.copyFrom=function(e){return this.min.copyFrom(e.min),this.max.copyFrom(e.max),this},ei.fromCenterAndExtent=function(e,t,n){t_.subtract(e,t,n.min),t_.add(e,t,n.max)},ei.fromPoints=function(e,t){if(!e||0===e.length)throw Error("points must be array and length must > 0");var n=t.min,r=t.max;n.x=n.y=n.z=Number.MAX_VALUE,r.x=r.y=r.z=-Number.MAX_VALUE;for(var a=0,i=e.length;a<i;++a){var o=e[a];t_.min(n,o,n),t_.max(r,o,r)}},ei.fromSphere=function(e,t){var n=e.center,r=e.radius,a=t.min,i=t.max;a.x=n.x-r,a.y=n.y-r,a.z=n.z-r,i.x=n.x+r,i.y=n.y+r,i.z=n.z+r},ei.transform=function(e,t,n){var r=ei._tempVec30,a=ei._tempVec31;e.getCenter(r),e.getExtent(a),t_.transformCoordinate(r,t,r);var i=a.x,o=a.y,s=a.z,u=t.elements,_=u[0],h=u[1],c=u[2],l=u[4],f=u[5],d=u[6],m=u[8],g=u[9],y=u[10];a.set((0===_?0:Math.abs(i*_))+(0===l?0:Math.abs(o*l))+(0===m?0:Math.abs(s*m)),(0===h?0:Math.abs(i*h))+(0===f?0:Math.abs(o*f))+(0===g?0:Math.abs(s*g)),(0===c?0:Math.abs(i*c))+(0===d?0:Math.abs(o*d))+(0===y?0:Math.abs(s*y))),t_.subtract(r,a,n.min),t_.add(r,a,n.max)},ei.merge=function(e,t,n){return t_.min(e.min,t.min,n.min),t_.max(e.max,t.max,n.max),n},ei);th._tempVec30=new t_,th._tempVec31=new t_;var tc=((es=function(){}).intersectionPointThreePlanes=function(e,t,n,r){var a=e.normal,i=t.normal,o=n.normal;t_.cross(i,o,es._tempVec30),t_.cross(o,a,es._tempVec31),t_.cross(a,i,es._tempVec32);var s=-t_.dot(a,es._tempVec30),u=-t_.dot(i,es._tempVec31),_=-t_.dot(o,es._tempVec32);t_.scale(es._tempVec30,e.distance/s,es._tempVec30),t_.scale(es._tempVec31,t.distance/u,es._tempVec31),t_.scale(es._tempVec32,n.distance/_,es._tempVec32),t_.add(es._tempVec30,es._tempVec31,r),t_.add(r,es._tempVec32,r)},es.distancePlaneAndPoint=function(e,t){return t_.dot(e.normal,t)+e.distance},es.intersectsPlaneAndPoint=function(e,t){var n=es.distancePlaneAndPoint(e,t);return n>0?eE.Front:n<0?eE.Back:eE.Intersecting},es.intersectsPlaneAndBox=function(e,t){var n=t.min,r=t.max,a=e.normal,i=es._tempVec30,o=es._tempVec31;return(a.x>=0?(i.x=r.x,o.x=n.x):(i.x=n.x,o.x=r.x),a.y>=0?(i.y=r.y,o.y=n.y):(i.y=n.y,o.y=r.y),a.z>=0?(i.z=r.z,o.z=n.z):(i.z=n.z,o.z=r.z),0>es.distancePlaneAndPoint(e,i))?eE.Back:es.distancePlaneAndPoint(e,o)>0?eE.Front:eE.Intersecting},es.intersectsPlaneAndSphere=function(e,t){var n=t.center,r=t.radius,a=es.distancePlaneAndPoint(e,n);return a>r?eE.Front:a<-r?eE.Back:eE.Intersecting},es.intersectsRayAndPlane=function(e,t){var n=t.normal,r=tu.zeroTolerance,a=t_.dot(n,e.direction);if(Math.abs(a)<r)return -1;var i=t_.dot(n,e.origin),o=(-t.distance-i)/a;if(o<0){if(o<-r)return -1;o=0}return o},es.intersectsRayAndBox=function(e,t){var n=tu.zeroTolerance,r=e.origin,a=e.direction,i=t.min,o=t.max,s=a.x,u=a.y,_=a.z,h=r.x,c=r.y,l=r.z,f=0,d=Number.MAX_VALUE;if(Math.abs(s)<n){if(h<i.x||h>o.x)return -1}else{var m=1/s,g=(i.x-h)*m,y=(o.x-h)*m;if(g>y){var p=g;g=y,y=p}if((f=Math.max(g,f))>(d=Math.min(y,d)))return -1}if(Math.abs(u)<n){if(c<i.y||c>o.y)return -1}else{var v=1/u,x=(i.y-c)*v,z=(o.y-c)*v;if(x>z){var w=x;x=z,z=w}if((f=Math.max(x,f))>(d=Math.min(z,d)))return -1}if(Math.abs(_)<n){if(l<i.z||l>o.z)return -1}else{var C=1/_,V=(i.z-l)*C,M=(o.z-l)*C;if(V>M){var S=V;V=M,M=S}if((f=Math.max(V,f))>(d=Math.min(M,d)))return -1}return f},es.intersectsRayAndSphere=function(e,t){var n=e.origin,r=e.direction,a=t.center,i=t.radius,o=es._tempVec30;t_.subtract(n,a,o);var s=t_.dot(o,r),u=t_.dot(o,o)-i*i;if(s>0&&u>0)return -1;var _=s*s-u;if(_<0)return -1;var h=-s-Math.sqrt(_);return h<0&&(h=0),h},es.intersectsBoxAndBox=function(e,t){return!(e.min.x>t.max.x)&&!(t.min.x>e.max.x)&&!(e.min.y>t.max.y)&&!(t.min.y>e.max.y)&&!(e.min.z>t.max.z||t.min.z>e.max.z)},es.intersectsSphereAndSphere=function(e,t){var n=e.radius+t.radius;return t_.distanceSquared(e.center,t.center)<n*n},es.intersectsSphereAndBox=function(e,t){var n=e.center,r=t.max,a=t.min,i=es._tempVec30;return i.set(Math.max(a.x,Math.min(n.x,r.x)),Math.max(a.y,Math.min(n.y,r.y)),Math.max(a.z,Math.min(n.z,r.z))),t_.distanceSquared(n,i)<=e.radius*e.radius},es.intersectsFrustumAndBox=function(e,t){for(var n=t.min,r=t.max,a=es._tempVec30,i=0;i<6;++i){var o=e.getPlane(i),s=o.normal;if(a.set(s.x>=0?r.x:n.x,s.y>=0?r.y:n.y,s.z>=0?r.z:n.z),t_.dot(s,a)<-o.distance)return!1}return!0},es.frustumContainsPoint=function(e,t){var n=es.distancePlaneAndPoint(e.near,t);return Math.abs(n)<tu.zeroTolerance?eF.Intersects:n<0?eF.Disjoint:Math.abs(n=es.distancePlaneAndPoint(e.far,t))<tu.zeroTolerance?eF.Intersects:n<0?eF.Disjoint:Math.abs(n=es.distancePlaneAndPoint(e.left,t))<tu.zeroTolerance?eF.Intersects:n<0?eF.Disjoint:Math.abs(n=es.distancePlaneAndPoint(e.right,t))<tu.zeroTolerance?eF.Intersects:n<0?eF.Disjoint:Math.abs(n=es.distancePlaneAndPoint(e.top,t))<tu.zeroTolerance?eF.Intersects:n<0?eF.Disjoint:Math.abs(n=es.distancePlaneAndPoint(e.bottom,t))<tu.zeroTolerance?eF.Intersects:n<0?eF.Disjoint:eF.Contains},es.frustumContainsBox=function(e,t){for(var n=t.min,r=t.max,a=es._tempVec30,i=es._tempVec31,o=eF.Contains,s=0;s<6;++s){var u=e.getPlane(s),_=u.normal;if(_.x>=0?(a.x=r.x,i.x=n.x):(a.x=n.x,i.x=r.x),_.y>=0?(a.y=r.y,i.y=n.y):(a.y=n.y,i.y=r.y),_.z>=0?(a.z=r.z,i.z=n.z):(a.z=n.z,i.z=r.z),es.intersectsPlaneAndPoint(u,a)===eE.Back)return eF.Disjoint;es.intersectsPlaneAndPoint(u,i)===eE.Back&&(o=eF.Intersects)}return o},es.frustumContainsSphere=function(e,t){for(var n=eF.Contains,r=0;r<6;++r){var a=e.getPlane(r),i=es.intersectsPlaneAndSphere(a,t);if(i===eE.Back)return eF.Disjoint;if(i===eE.Intersecting){n=eF.Intersects;break}}return n},es);tc._tempVec30=new t_,tc._tempVec31=new t_,tc._tempVec32=new t_;var tl=((e_=(eu=function(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 _=this.elements;_[0]=e,_[1]=t,_[2]=n,_[3]=r,_[4]=a,_[5]=i,_[6]=o,_[7]=s,_[8]=u}).prototype).set=function(e,t,n,r,a,i,o,s,u){var _=this.elements;return _[0]=e,_[1]=t,_[2]=n,_[3]=r,_[4]=a,_[5]=i,_[6]=o,_[7]=s,_[8]=u,this},e_.add=function(e){return eu.add(this,e,this),this},e_.subtract=function(e){return eu.subtract(this,e,this),this},e_.multiply=function(e){return eu.multiply(this,e,this),this},e_.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],_=e[8];return t*(_*i-o*u)+n*(-_*a+o*s)+r*(u*a-i*s)},e_.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},e_.invert=function(){return eu.invert(this,this),this},e_.rotate=function(e){return eu.rotate(this,e,this),this},e_.scale=function(e){return eu.scale(this,e,this),this},e_.translate=function(e){return eu.translate(this,e,this),this},e_.transpose=function(){return eu.transpose(this,this),this},e_.clone=function(){var e=this.elements;return new eu(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},e_.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},e_.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},e_.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_.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},eu.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]},eu.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]},eu.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],u=r[2],_=r[3],h=r[4],c=r[5],l=r[6],f=r[7],d=r[8],m=a[0],g=a[1],y=a[2],p=a[3],v=a[4],x=a[5],z=a[6],w=a[7],C=a[8];i[0]=o*m+_*g+l*y,i[1]=s*m+h*g+f*y,i[2]=u*m+c*g+d*y,i[3]=o*p+_*v+l*x,i[4]=s*p+h*v+f*x,i[5]=u*p+c*v+d*x,i[6]=o*z+_*w+l*C,i[7]=s*z+h*w+f*C,i[8]=u*z+c*w+d*C},eu.equals=function(e,t){var n=e.elements,r=t.elements;return tu.equals(n[0],r[0])&&tu.equals(n[1],r[1])&&tu.equals(n[2],r[2])&&tu.equals(n[3],r[3])&&tu.equals(n[4],r[4])&&tu.equals(n[5],r[5])&&tu.equals(n[6],r[6])&&tu.equals(n[7],r[7])&&tu.equals(n[8],r[8])},eu.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},eu.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,_=i+i,h=r*s,c=a*s,l=a*u,f=i*s,d=i*u,m=i*_,g=o*s,y=o*u,p=o*_;n[0]=1-l-m,n[3]=c-p,n[6]=f+y,n[1]=c+p,n[4]=1-h-m,n[7]=d-g,n[2]=f-y,n[5]=d+g,n[8]=1-h-l},eu.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},eu.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},eu.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],_=n[5],h=n[6],c=n[7],l=n[8],f=l*u-_*c,d=-l*s+_*h,m=c*s-u*h,g=a*f+i*d+o*m;g&&(g=1/g,r[0]=f*g,r[1]=(-l*i+o*c)*g,r[2]=(_*i-o*u)*g,r[3]=d*g,r[4]=(l*a-o*h)*g,r[5]=(-_*a+o*s)*g,r[6]=m*g,r[7]=(-c*a+i*h)*g,r[8]=(u*a-i*s)*g)},eu.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],_=n[5],h=n[6],c=n[7],l=n[8],f=n[9],d=n[10],m=n[11],g=n[12],y=n[13],p=n[14],v=n[15],x=a*_-i*u,z=a*h-o*u,w=a*c-s*u,C=i*h-o*_,V=i*c-s*_,M=o*c-s*h,S=l*y-f*g,k=l*p-d*g,b=l*v-m*g,T=f*p-d*y,R=f*v-m*y,q=d*v-m*p,P=x*q-z*R+w*T+C*b-V*k+M*S;if(!P)return null;P=1/P,r[0]=(_*q-h*R+c*T)*P,r[1]=(h*b-u*q-c*k)*P,r[2]=(u*R-_*b+c*S)*P,r[3]=(o*R-i*q-s*T)*P,r[4]=(a*q-o*b+s*k)*P,r[5]=(i*b-a*R-s*S)*P,r[6]=(y*M-p*V+v*C)*P,r[7]=(p*w-g*M-v*z)*P,r[8]=(g*V-y*w+v*x)*P},eu.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],_=r[2],h=r[3],c=r[4],l=r[5],f=r[6],d=r[7],m=r[8];a[0]=o*s+i*h,a[1]=o*u+i*c,a[2]=o*_+i*l,a[3]=o*h-i*s,a[4]=o*c-i*u,a[5]=o*l-i*_,a[6]=f,a[7]=d,a[8]=m},eu.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]},eu.translate=function(e,t,n){var r=t._x,a=t._y,i=e.elements,o=n.elements,s=i[0],u=i[1],_=i[2],h=i[3],c=i[4],l=i[5],f=i[6],d=i[7],m=i[8];o[0]=s,o[1]=u,o[2]=_,o[3]=h,o[4]=c,o[5]=l,o[6]=r*s+a*h+f,o[7]=r*u+a*c+d,o[8]=r*_+a*l+m},eu.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]},eu),tf=((ec=(eh=function(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}).prototype).set=function(e,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,this._onValueChanged&&this._onValueChanged(),this},ec.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onValueChanged&&this._onValueChanged(),this},ec.getAxisAngle=function(e){var t=this._x,n=this._y,r=this._z,a=t*t+n*n+r*r;if(a<tu.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)},ec.identity=function(){return this._x=0,this._y=0,this._z=0,this._w=1,this._onValueChanged&&this._onValueChanged(),this},ec.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)},ec.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},ec.normalize=function(){return eh.normalize(this,this),this},ec.toEuler=function(e){this._toYawPitchRoll(e);var t=e._x;return e._x=e._y,e._y=t,e._onValueChanged&&e._onValueChanged(),e},ec.toYawPitchRoll=function(e){return this._toYawPitchRoll(e),e._onValueChanged&&e._onValueChanged(),e},ec.rotateX=function(e){return eh.rotateX(this,e,this),this},ec.rotateY=function(e){return eh.rotateY(this,e,this),this},ec.rotateZ=function(e){return eh.rotateZ(this,e,this),this},ec.rotationAxisAngle=function(e,t){return eh.rotationAxisAngle(e,t,this),this},ec.multiply=function(e){return eh.multiply(this,e,this),this},ec.invert=function(){return eh.invert(this,this),this},ec.dot=function(e){return eh.dot(this,e)},ec.lerp=function(e,t){return eh.lerp(this,e,t,this),this},ec.rotateAxisAngle=function(e,t){return eh._tempQuat1.rotationAxisAngle(e,t),this.multiply(eh._tempQuat1),this},ec.clone=function(){return new eh(this._x,this._y,this._z,this._w)},ec.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onValueChanged&&this._onValueChanged(),this},ec.copyTo=function(e){return e.x=this._x,e.y=this._y,e.z=this._z,e.w=this._w,e},ec.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],this._onValueChanged&&this._onValueChanged(),this},ec.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},ec.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},ec._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,_=i+o+s+u,h=2*(t*a-n*r);h>(1-tu.zeroTolerance)*_?(e._x=Math.atan2(2*(a*n-t*r),i+u-o-s),e._y=Math.PI/2,e._z=0):h<-(1-tu.zeroTolerance)*_?(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(h/_),e._z=Math.atan2(2*(t*n+r*a),o+u-s-i))},eh.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,n._onValueChanged&&n._onValueChanged()},eh.multiply=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t._x,u=t._y,_=t._z,h=t._w;n._x=r*h+o*s+a*_-i*u,n._y=a*h+o*u+i*s-r*_,n._z=i*h+o*_+r*u-a*s,n._w=o*h-r*s-a*u-i*_,n._onValueChanged&&n._onValueChanged()},eh.conjugate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=e._w,t._onValueChanged&&t._onValueChanged()},eh.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},eh.equals=function(e,t){return tu.equals(e._x,t._x)&&tu.equals(e._y,t._y)&&tu.equals(e._z,t._z)&&tu.equals(e._w,t._w)},eh.rotationAxisAngle=function(e,t,n){var r=eh._tempVector3;t_.normalize(e,r);var a=Math.sin(t*=.5);n._x=r._x*a,n._y=r._y*a,n._z=r._z*a,n._w=Math.cos(t),n._onValueChanged&&n._onValueChanged()},eh.rotationEuler=function(e,t,n,r){eh.rotationYawPitchRoll(t,e,n,r)},eh.rotationYawPitchRoll=function(e,t,n,r){var a=.5*n,i=.5*t,o=.5*e,s=Math.sin(a),u=Math.cos(a),_=Math.sin(i),h=Math.cos(i),c=Math.sin(o),l=Math.cos(o),f=l*h,d=c*_;r._x=l*_*u+c*h*s,r._y=c*h*u-l*_*s,r._z=f*s-d*u,r._w=f*u+d*s,r._onValueChanged&&r._onValueChanged()},eh.rotationMatrix3x3=function(e,t){var n,r,a=e.elements,i=a[0],o=a[1],s=a[2],u=a[3],_=a[4],h=a[5],c=a[6],l=a[7],f=a[8],d=i+_+f;d>0?(n=Math.sqrt(d+1),t._w=.5*n,n=.5/n,t._x=(h-l)*n,t._y=(c-s)*n,t._z=(o-u)*n):i>=_&&i>=f?(r=.5/(n=Math.sqrt(1+i-_-f)),t._x=.5*n,t._y=(o+u)*r,t._z=(s+c)*r,t._w=(h-l)*r):_>f?(r=.5/(n=Math.sqrt(1+_-i-f)),t._x=(u+o)*r,t._y=.5*n,t._z=(l+h)*r,t._w=(c-s)*r):(r=.5/(n=Math.sqrt(1+f-i-_)),t._x=(s+c)*r,t._y=(h+l)*r,t._z=.5*n,t._w=(o-u)*r),t._onValueChanged&&t._onValueChanged()},eh.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>tu.zeroTolerance){var s=1/o;t._x=-n*s,t._y=-r*s,t._z=-a*s,t._w=i*s,t._onValueChanged&&t._onValueChanged()}},eh.lerp=function(e,t,n,r){var a=1-n;eh.dot(e,t)>=0?(r._x=e._x*a+t._x*n,r._y=e._y*a+t._y*n,r._z=e._z*a+t._z*n,r._w=e._w*a+t._w*n):(r._x=e._x*a-t._x*n,r._y=e._y*a-t._y*n,r._z=e._z*a-t._z*n,r._w=e._w*a-t._w*n),r.normalize()},eh.slerp=function(e,t,n,r){var a,i,o=eh.dot(e,t);if(Math.abs(o)>1-tu.zeroTolerance)i=1-n,a=n*Math.sign(o);else{var s=Math.acos(Math.abs(o)),u=1/Math.sin(s);i=Math.sin((1-n)*s)*u,a=Math.sin(n*s)*u*Math.sign(o)}r.x=i*e.x+a*t.x,r.y=i*e.y+a*t.y,r.z=i*e.z+a*t.z,r.w=i*e.w+a*t.w,r._onValueChanged&&r._onValueChanged()},eh.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>tu.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,t._onValueChanged&&t._onValueChanged())},eh.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,t._onValueChanged&&t._onValueChanged()},eh.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,t._onValueChanged&&t._onValueChanged()},eh.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,t._onValueChanged&&t._onValueChanged()},eh.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,n._onValueChanged&&n._onValueChanged()},eh.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,n._onValueChanged&&n._onValueChanged()},eh.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,n._onValueChanged&&n._onValueChanged()},eh.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,n._onValueChanged&&n._onValueChanged()},ts(eh,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,this._onValueChanged&&this._onValueChanged()}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,this._onValueChanged&&this._onValueChanged()}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,this._onValueChanged&&this._onValueChanged()}},{key:"normalized",get:function(){return Math.abs(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w-1)<tu.zeroTolerance}},{key:"w",get:function(){return this._w},set:function(e){this._w=e,this._onValueChanged&&this._onValueChanged()}}]),eh);tf._tempVector3=new t_,tf._tempQuat1=new tf;var td=((ef=(el=function(e,t,n,r,a,i,o,s,u,_,h,c,l,f,d,m){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===_&&(_=0),void 0===h&&(h=1),void 0===c&&(c=0),void 0===l&&(l=0),void 0===f&&(f=0),void 0===d&&(d=0),void 0===m&&(m=1),this.elements=new Float32Array(16);var g=this.elements;g[0]=e,g[1]=t,g[2]=n,g[3]=r,g[4]=a,g[5]=i,g[6]=o,g[7]=s,g[8]=u,g[9]=_,g[10]=h,g[11]=c,g[12]=l,g[13]=f,g[14]=d,g[15]=m}).prototype).set=function(e,t,n,r,a,i,o,s,u,_,h,c,l,f,d,m){var g=this.elements;return g[0]=e,g[1]=t,g[2]=n,g[3]=r,g[4]=a,g[5]=i,g[6]=o,g[7]=s,g[8]=u,g[9]=_,g[10]=h,g[11]=c,g[12]=l,g[13]=f,g[14]=d,g[15]=m,this},ef.multiply=function(e){return el.multiply(this,e,this),this},ef.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],_=e[8],h=e[9],c=e[10],l=e[11],f=e[12],d=e[13],m=e[14],g=e[15];return(t*o-n*i)*(c*g-l*m)-(t*s-r*i)*(h*g-l*d)+(t*u-a*i)*(h*m-c*d)+(n*s-r*o)*(_*g-l*f)-(n*u-a*o)*(_*m-c*f)+(r*u-a*s)*(_*d-h*f)},ef.decompose=function(e,t,n){var r=el._tempMat30,a=this.elements,i=r.elements,o=a[0],s=a[1],u=a[2],_=a[4],h=a[5],c=a[6],l=a[8],f=a[9],d=a[10];e.set(a[12],a[13],a[14]);var m=Math.sqrt(o*o+s*s+u*u),g=Math.sqrt(_*_+h*h+c*c),y=Math.sqrt(l*l+f*f+d*d);if(0>this.determinant()&&(m=-m),n.set(m,g,y),Math.abs(m)<tu.zeroTolerance||Math.abs(g)<tu.zeroTolerance||Math.abs(y)<tu.zeroTolerance)return t.identity(),!1;var p=1/m,v=1/g,x=1/y;return i[0]=o*p,i[1]=s*p,i[2]=u*p,i[3]=_*v,i[4]=h*v,i[5]=c*v,i[6]=l*x,i[7]=f*x,i[8]=d*x,tf.rotationMatrix3x3(r,t),!0},ef.getRotation=function(e){var t=this.elements,n=t[0]+t[5]+t[10];if(n>tu.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 e._onValueChanged&&e._onValueChanged(),e},ef.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],_=t[9],h=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+_*_+h*h)),e},ef.getTranslation=function(e){var t=this.elements;return e.set(t[12],t[13],t[14]),e},ef.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},ef.invert=function(){return el.invert(this,this),this},ef.rotateAxisAngle=function(e,t){return el.rotateAxisAngle(this,e,t,this),this},ef.scale=function(e){return el.scale(this,e,this),this},ef.translate=function(e){return el.translate(this,e,this),this},ef.transpose=function(){return el.transpose(this,this),this},ef.clone=function(){var e=this.elements;return new el(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},ef.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},ef.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},ef.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]},el.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],u=r[2],_=r[3],h=r[4],c=r[5],l=r[6],f=r[7],d=r[8],m=r[9],g=r[10],y=r[11],p=r[12],v=r[13],x=r[14],z=r[15],w=a[0],C=a[1],V=a[2],M=a[3],S=a[4],k=a[5],b=a[6],T=a[7],R=a[8],q=a[9],P=a[10],A=a[11],F=a[12],E=a[13],L=a[14],I=a[15];i[0]=o*w+h*C+d*V+p*M,i[1]=s*w+c*C+m*V+v*M,i[2]=u*w+l*C+g*V+x*M,i[3]=_*w+f*C+y*V+z*M,i[4]=o*S+h*k+d*b+p*T,i[5]=s*S+c*k+m*b+v*T,i[6]=u*S+l*k+g*b+x*T,i[7]=_*S+f*k+y*b+z*T,i[8]=o*R+h*q+d*P+p*A,i[9]=s*R+c*q+m*P+v*A,i[10]=u*R+l*q+g*P+x*A,i[11]=_*R+f*q+y*P+z*A,i[12]=o*F+h*E+d*L+p*I,i[13]=s*F+c*E+m*L+v*I,i[14]=u*F+l*E+g*L+x*I,i[15]=_*F+f*E+y*L+z*I},el.equals=function(e,t){var n=e.elements,r=t.elements;return tu.equals(n[0],r[0])&&tu.equals(n[1],r[1])&&tu.equals(n[2],r[2])&&tu.equals(n[3],r[3])&&tu.equals(n[4],r[4])&&tu.equals(n[5],r[5])&&tu.equals(n[6],r[6])&&tu.equals(n[7],r[7])&&tu.equals(n[8],r[8])&&tu.equals(n[9],r[9])&&tu.equals(n[10],r[10])&&tu.equals(n[11],r[11])&&tu.equals(n[12],r[12])&&tu.equals(n[13],r[13])&&tu.equals(n[14],r[14])&&tu.equals(n[15],r[15])},el.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},el.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]},el.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},el.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,_=i+i,h=r*s,c=a*s,l=a*u,f=i*s,d=i*u,m=i*_,g=o*s,y=o*u,p=o*_;n[0]=1-l-m,n[1]=c+p,n[2]=f-y,n[3]=0,n[4]=c-p,n[5]=1-h-m,n[6]=d+g,n[7]=0,n[8]=f+y,n[9]=d-g,n[10]=1-h-l,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1},el.rotationAxisAngle=function(e,t,n){var r,a,i,o=n.elements,s=e._x,u=e._y,_=e._z,h=Math.sqrt(s*s+u*u+_*_);Math.abs(h)<tu.zeroTolerance||(s*=h=1/h,u*=h,_*=h,r=Math.sin(t),i=1-(a=Math.cos(t)),o[0]=s*s*i+a,o[1]=u*s*i+_*r,o[2]=_*s*i-u*r,o[3]=0,o[4]=s*u*i-_*r,o[5]=u*u*i+a,o[6]=_*u*i+s*r,o[7]=0,o[8]=s*_*i+u*r,o[9]=u*_*i-s*r,o[10]=_*_*i+a,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1)},el.rotationTranslation=function(e,t,n){el.rotationQuaternion(e,n);var r=n.elements;r[12]=t._x,r[13]=t._y,r[14]=t._z},el.affineTransformation=function(e,t,n,r){var a=r.elements,i=t._x,o=t._y,s=t._z,u=t._w,_=i+i,h=o+o,c=s+s,l=i*_,f=i*h,d=i*c,m=o*h,g=o*c,y=s*c,p=u*_,v=u*h,x=u*c,z=e._x,w=e._y,C=e._z;a[0]=(1-(m+y))*z,a[1]=(f+x)*z,a[2]=(d-v)*z,a[3]=0,a[4]=(f-x)*w,a[5]=(1-(l+y))*w,a[6]=(g+p)*w,a[7]=0,a[8]=(d+v)*C,a[9]=(g-p)*C,a[10]=(1-(l+m))*C,a[11]=0,a[12]=n._x,a[13]=n._y,a[14]=n._z,a[15]=1},el.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},el.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},el.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],_=n[5],h=n[6],c=n[7],l=n[8],f=n[9],d=n[10],m=n[11],g=n[12],y=n[13],p=n[14],v=n[15],x=a*_-i*u,z=a*h-o*u,w=a*c-s*u,C=i*h-o*_,V=i*c-s*_,M=o*c-s*h,S=l*y-f*g,k=l*p-d*g,b=l*v-m*g,T=f*p-d*y,R=f*v-m*y,q=d*v-m*p,P=x*q-z*R+w*T+C*b-V*k+M*S;if(!P)return null;P=1/P,r[0]=(_*q-h*R+c*T)*P,r[1]=(o*R-i*q-s*T)*P,r[2]=(y*M-p*V+v*C)*P,r[3]=(d*V-f*M-m*C)*P,r[4]=(h*b-u*q-c*k)*P,r[5]=(a*q-o*b+s*k)*P,r[6]=(p*w-g*M-v*z)*P,r[7]=(l*M-d*w+m*z)*P,r[8]=(u*R-_*b+c*S)*P,r[9]=(i*b-a*R-s*S)*P,r[10]=(g*V-y*w+v*x)*P,r[11]=(f*w-l*V-m*x)*P,r[12]=(_*k-u*T-h*S)*P,r[13]=(a*T-i*k+o*S)*P,r[14]=(y*z-g*C-p*x)*P,r[15]=(l*C-f*z+d*x)*P},el.lookAt=function(e,t,n,r){var a=r.elements,i=el._tempVec30,o=el._tempVec31,s=el._tempVec32;t_.subtract(e,t,s),s.normalize(),t_.cross(n,s,i),i.normalize(),t_.cross(s,i,o),a[0]=i._x,a[1]=o._x,a[2]=s._x,a[3]=0,a[4]=i._y,a[5]=o._y,a[6]=s._y,a[7]=0,a[8]=i._z,a[9]=o._z,a[10]=s._z,a[11]=0,a[12]=-t_.dot(i,e),a[13]=-t_.dot(o,e),a[14]=-t_.dot(s,e),a[15]=1},el.ortho=function(e,t,n,r,a,i,o){var s=o.elements,u=1/(e-t),_=1/(n-r),h=1/(a-i);s[0]=-2*u,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*_,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*h,s[11]=0,s[12]=(e+t)*u,s[13]=(r+n)*_,s[14]=(i+a)*h,s[15]=1},el.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},el.rotateAxisAngle=function(e,t,n,r){var a,i,o,s=t._x,u=t._y,_=t._z,h=Math.sqrt(s*s+u*u+_*_);if(!(Math.abs(h)<tu.zeroTolerance)){var c=e.elements,l=r.elements;s*=h=1/h,u*=h,_*=h,a=Math.sin(n),o=1-(i=Math.cos(n));var f=c[0],d=c[1],m=c[2],g=c[3],y=c[4],p=c[5],v=c[6],x=c[7],z=c[8],w=c[9],C=c[10],V=c[11],M=s*s*o+i,S=u*s*o+_*a,k=_*s*o-u*a,b=s*u*o-_*a,T=u*u*o+i,R=_*u*o+s*a,q=s*_*o+u*a,P=u*_*o-s*a,A=_*_*o+i;l[0]=f*M+y*S+z*k,l[1]=d*M+p*S+w*k,l[2]=m*M+v*S+C*k,l[3]=g*M+x*S+V*k,l[4]=f*b+y*T+z*R,l[5]=d*b+p*T+w*R,l[6]=m*b+v*T+C*R,l[7]=g*b+x*T+V*R,l[8]=f*q+y*P+z*A,l[9]=d*q+p*P+w*A,l[10]=m*q+v*P+C*A,l[11]=g*q+x*P+V*A,e!==r&&(l[12]=c[12],l[13]=c[13],l[14]=c[14],l[15]=c[15])}},el.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]},el.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],_=r[1],h=r[2],c=r[3],l=r[4],f=r[5],d=r[6],m=r[7],g=r[8],y=r[9],p=r[10],v=r[11];a[0]=u,a[1]=_,a[2]=h,a[3]=c,a[4]=l,a[5]=f,a[6]=d,a[7]=m,a[8]=g,a[9]=y,a[10]=p,a[11]=v,a[12]=u*i+l*o+g*s+r[12],a[13]=_*i+f*o+y*s+r[13],a[14]=h*i+d*o+p*s+r[14],a[15]=c*i+m*o+v*s+r[15]}},el.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],_=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]=_}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]},el);td._tempVec30=new t_,td._tempVec31=new t_,td._tempVec32=new t_,td._tempMat30=new tl,td._identity=new td(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);var tm=((em=(ed=function(e,t){void 0===e&&(e=0),void 0===t&&(t=0),this._onValueChanged=null,this._x=e,this._y=t}).prototype).set=function(e,t){return this._x=e,this._y=t,this._onValueChanged&&this._onValueChanged(),this},em.add=function(e){return this._x+=e._x,this._y+=e._y,this._onValueChanged&&this._onValueChanged(),this},em.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._onValueChanged&&this._onValueChanged(),this},em.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._onValueChanged&&this._onValueChanged(),this},em.divide=function(e){return this._x/=e._x,this._y/=e._y,this._onValueChanged&&this._onValueChanged(),this},em.length=function(){var e=this._x,t=this._y;return Math.sqrt(e*e+t*t)},em.lengthSquared=function(){var e=this._x,t=this._y;return e*e+t*t},em.negate=function(){return this._x=-this._x,this._y=-this._y,this._onValueChanged&&this._onValueChanged(),this},em.normalize=function(){return ed.normalize(this,this),this},em.scale=function(e){return this._x*=e,this._y*=e,this._onValueChanged&&this._onValueChanged(),this},em.clone=function(){return new ed(this._x,this._y)},em.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._onValueChanged&&this._onValueChanged(),this},em.copyTo=function(e){return e.x=this._x,e.y=this._y,e},em.copyFromArray=function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._onValueChanged&&this._onValueChanged(),this},em.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y},em.toJSON=function(){return{x:this._x,y:this._y}},ed.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._onValueChanged&&n._onValueChanged()},ed.subtract=function(e,t,n){n._x=e._x-t._x,n._y=e._y-t._y,n._onValueChanged&&n._onValueChanged()},ed.multiply=function(e,t,n){n._x=e._x*t._x,n._y=e._y*t._y,n._onValueChanged&&n._onValueChanged()},ed.divide=function(e,t,n){n._x=e._x/t._x,n._y=e._y/t._y,n._onValueChanged&&n._onValueChanged()},ed.dot=function(e,t){return e._x*t._x+e._y*t._y},ed.distance=function(e,t){var n=t._x-e._x,r=t._y-e._y;return Math.sqrt(n*n+r*r)},ed.distanceSquared=function(e,t){var n=t._x-e._x,r=t._y-e._y;return n*n+r*r},ed.equals=function(e,t){return tu.equals(e._x,t._x)&&tu.equals(e._y,t._y)},ed.lerp=function(e,t,n,r){var a=e._x,i=e._y;r._x=a+(t._x-a)*n,r._y=i+(t._y-i)*n,r._onValueChanged&&r._onValueChanged()},ed.max=function(e,t,n){n._x=Math.max(e._x,t._x),n._y=Math.max(e._y,t._y),n._onValueChanged&&n._onValueChanged()},ed.min=function(e,t,n){n._x=Math.min(e._x,t._x),n._y=Math.min(e._y,t._y),n._onValueChanged&&n._onValueChanged()},ed.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._onValueChanged&&t._onValueChanged()},ed.normalize=function(e,t){var n=e._x,r=e._y,a=Math.sqrt(n*n+r*r);a>tu.zeroTolerance&&(a=1/a,t._x=n*a,t._y=r*a,t._onValueChanged&&t._onValueChanged())},ed.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._onValueChanged&&n._onValueChanged()},ts(ed,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,this._onValueChanged&&this._onValueChanged()}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,this._onValueChanged&&this._onValueChanged()}}]),ed);tm._zero=new tm(0,0),tm._one=new tm(1,1);var tg=((ey=(eg=function(e,t,n,r){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),void 0===r&&(r=0),this._onValueChanged=null,this._x=e,this._y=t,this._z=n,this._w=r}).prototype).set=function(e,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,this._onValueChanged&&this._onValueChanged(),this},ey.add=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._w+=e._w,this._onValueChanged&&this._onValueChanged(),this},ey.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._w-=e._w,this._onValueChanged&&this._onValueChanged(),this},ey.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,this._w*=e._w,this._onValueChanged&&this._onValueChanged(),this},ey.divide=function(e){return this._x/=e._x,this._y/=e._y,this._z/=e._z,this._w/=e._w,this._onValueChanged&&this._onValueChanged(),this},ey.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)},ey.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},ey.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,this._w=-this._w,this._onValueChanged&&this._onValueChanged(),this},ey.normalize=function(){return eg.normalize(this,this),this},ey.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,this._w*=e,this._onValueChanged&&this._onValueChanged(),this},ey.clone=function(){return new eg(this._x,this._y,this._z,this._w)},ey.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onValueChanged&&this._onValueChanged(),this},ey.copyTo=function(e){return e.x=this._x,e.y=this._y,e.z=this._z,e.w=this._w,e},ey.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],this._onValueChanged&&this._onValueChanged(),this},ey.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},ey.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},eg.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,n._onValueChanged&&n._onValueChanged()},eg.subtract=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,n._onValueChanged&&n._onValueChanged()},eg.multiply=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,n._onValueChanged&&n._onValueChanged()},eg.divide=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,n._onValueChanged&&n._onValueChanged()},eg.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},eg.distance=function(e,t){var n=t._x-e._x,r=t._y-e._y,a=t._z-e._z,i=t._w-e._w;return Math.sqrt(n*n+r*r+a*a+i*i)},eg.distanceSquared=function(e,t){var n=t._x-e._x,r=t._y-e._y,a=t._z-e._z,i=t._w-e._w;return n*n+r*r+a*a+i*i},eg.equals=function(e,t){return tu.equals(e._x,t._x)&&tu.equals(e._y,t._y)&&tu.equals(e._z,t._z)&&tu.equals(e._w,t._w)},eg.lerp=function(e,t,n,r){var a=e._x,i=e._y,o=e._z,s=e._w;r._x=a+(t._x-a)*n,r._y=i+(t._y-i)*n,r._z=o+(t._z-o)*n,r._w=s+(t._w-s)*n,r._onValueChanged&&r._onValueChanged()},eg.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),n._w=Math.max(e._w,t._w),n._onValueChanged&&n._onValueChanged()},eg.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),n._w=Math.min(e._w,t._w),n._onValueChanged&&n._onValueChanged()},eg.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=-e._w,t._onValueChanged&&t._onValueChanged()},eg.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>tu.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,t._onValueChanged&&t._onValueChanged())},eg.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,n._onValueChanged&&n._onValueChanged()},eg.transform=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t.elements;n._x=r*s[0]+a*s[4]+i*s[8]+o*s[12],n._y=r*s[1]+a*s[5]+i*s[9]+o*s[13],n._z=r*s[2]+a*s[6]+i*s[10]+o*s[14],n._w=r*s[3]+a*s[7]+i*s[11]+o*s[15],n._onValueChanged&&n._onValueChanged()},eg.transformByQuat=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t._x,u=t._y,_=t._z,h=t._w,c=h*r+u*i-_*a,l=h*a+_*r-s*i,f=h*i+s*a-u*r,d=-s*r-u*a-_*i;n._x=c*h-d*s-l*_+f*u,n._y=l*h-d*u-f*s+c*_,n._z=f*h-d*_-c*u+l*s,n._w=o,n._onValueChanged&&n._onValueChanged()},ts(eg,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,this._onValueChanged&&this._onValueChanged()}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,this._onValueChanged&&this._onValueChanged()}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,this._onValueChanged&&this._onValueChanged()}},{key:"w",get:function(){return this._w},set:function(e){this._w=e,this._onValueChanged&&this._onValueChanged()}}]),eg);tg._zero=new tg(0,0,0,0),tg._one=new tg(1,1,1,1);var ty=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],_=e[ti(u)];switch(u.targetRayMode){case"screen":case"tracked-pointer":var h=u.gripSpace,c=u.targetRaySpace;if(h){var l=t.getPose(h,a),f=l.transform,d=l.emulatedPosition;if(f){var m=_.gripPose;m.matrix.copyFromArray(f.matrix),m.position.copyFrom(f.position),m.rotation.copyFrom(f.orientation)}_.trackingState=d?eM.TrackingLost:eM.Tracking}if(c){var g=t.getPose(c,a),y=g.transform,p=g.emulatedPosition;if(y){var v=_.targetRayPose;v.matrix.copyFromArray(y.matrix),v.position.copyFrom(y.position),v.rotation.copyFrom(y.orientation),_.trackingState=p?eM.TrackingLost:eM.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,_=s.views,h=s.emulatedPosition,c=0,l=_.length;c<l;c++){var f=_[c],d=function(e){switch(e){case"left":return eC.LeftCamera;case"right":return eC.RightCamera;default:return eC.Camera}}(f.eye),m=_[c].transform;d===eC.Camera&&(u||(u=!0));var g=e[d],y=g.pose;y.matrix.copyFromArray(m.matrix),y.position.copyFrom(m.position),y.rotation.copyFrom(m.orientation),g.projectionMatrix.copyFromArray(f.projectionMatrix),g.trackingState=h?eM.TrackingLost:eM.Tracking;var p=a.getViewport(f),v=p.width/i,x=p.height/o,z=p.x/i,w=1-p.y/o-x;g.viewport.set(z,w,v,x)}if(!u){var C=e[eC.LeftCamera],V=e[eC.RightCamera],M=e[eC.Camera],S=C.pose,k=V.pose,b=M.pose;b.rotation.copyFrom(S.rotation);var T=b.position,R=b.matrix;t_.add(S.position,k.position,T),T.scale(.5),R.copyFrom(S.matrix);var q=R.elements;q[12]=T.x,q[13]=T.y,q[14]=T.z,M.projectionMatrix.copyFrom(C.projectionMatrix),M.trackingState=h?eM.TrackingLost:eM.Tracking,M.viewport=C.viewport.width&&C.viewport.height?C.viewport:V.viewport}}},e}(),tp=function(){function e(e,t,n){this._events=[],this._screenPointers=[],this._inputEventTypeMap={selectstart:ek.SelectStart,select:ek.Select,selectend:ek.SelectEnd,squeezestart:ek.SqueezeStart,squeeze:ek.Squeeze,squeezeend:ek.SqueezeEnd},this._targetRayModeMap={gaze:eb.Gaze,"tracked-pointer":eb.TrackedPointer,screen:eb.Screen},this._frame=new ty(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:ti(t),targetRayMode:this._targetRayModeMap[t.targetRayMode]};if(n.targetRayMode===eb.Screen){var r=this._screenPointers,a=t.gamepad.axes;switch(n.x=a[0],n.y=a[1],n.type){case ek.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 ek.SelectEnd:for(var _=r.length-1;_>=0;_--)r[_]===t&&(r[_]=null,n.id=_)}}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:ek.Select,targetRayMode:eb.Screen,input:eC.Controller,id:n,x:a[0],y:a[1]};e.push(i)}}return e}}]),e}(),tv=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(ta(e)).then(function(e){e?t():n(Error("The current context doesn't support WebXR."))})})},t.isSupportedFeature=function(e){switch(e){case eR.HitTest:case eR.PlaneTracking:return"undefined"!=typeof XRPlane;case eR.AnchorTracking:return"undefined"!=typeof XRAnchor;case eR.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?tr(i,[].concat(r)):null},t.requestSession=function(e,t,n){return new Promise(function(r,a){for(var i=ta(t),o={requiredFeatures:["local"]},s=[],u=0,_=n.length;u<_;u++){var h=n[u]._assembleOptions(o);h&&s.push(h)}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 tp(t,o,e))},a)},a)},a)},a)})},e}();function tx(e){return function(t){tv._platformFeatureMap[e]=t}}tv._platformFeatureMap=[];var tz=function(e){function t(){return e.apply(this,arguments)}i(t,e);var n=t.prototype;return n.onAddRequestTracking=function(e){},n.onDelRequestTracking=function(e){e.state=eq.Destroyed},r(t,[{key:"canModifyRequestTrackingAfterInit",get:function(){return!1}}]),t}(function(){}),tw=function(e){function t(){return e.apply(this,arguments)}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===eq.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===eq.Resolved){var _=u.tracked[0];i.has(u.xrAnchor)?this._updateTrackedAnchor(a,r,u)?_.state===eM.Tracking&&(_.state=eM.TrackingLost):_.state=eM.Tracking:_.state=eM.NotTracking}}},n.onDelRequestTracking=function(e){switch(e.state){case eq.Submitted:e.state=eq.WaitingDestroy;break;case eq.Resolved:e.xrAnchor.delete(),e.state=eq.Destroyed;break;default:e.state=eq.Destroyed}},n._assembleOptions=function(e){e.requiredFeatures.push("anchors")},n._addAnchor=function(e,t,n){if(e&&t){n.state=eq.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===eq.WaitingDestroy?(e.delete(),n.state=eq.Destroyed):(n.xrAnchor=e,n.state=eq.Resolved)},function(){n.state===eq.WaitingDestroy?n.state=eq.Destroyed:n.state=eq.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}(tz);tw=o([tx(eR.AnchorTracking)],tw);var tC=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(),_=0,h=u.length;_<h;_++){var c=u[_],l=c.index,f=n[l];if(f){var d=f.tracked[0];d||((d=f.tracked[0]=r()).referenceImage=f.image),"tracked"===c.trackingState?(this._updateTrackedImage(i,a,d,c),d.state=eM.Tracking):d.state=eM.TrackingLost,o[l]=s}else console.warn("Images can not find "+l)}for(var m=0,g=n.length;m<g;m++)o[m]<s&&(n[m].tracked[0].state=eM.NotTracking)},n.onAddRequestTracking=function(e){e.state=eq.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=eq.Resolved):(o.state=eq.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}(tz);tC=o([tx(eR.ImageTracking)],tC),(ep=eI||(eI={}))[ep.NotReceived=0]="NotReceived",ep[ep.Waiting=1]="Waiting",ep[ep.Received=2]="Received";var tV=function(e){function t(t){var n=e.call(this);return t!==eA.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),_=n[0].tracked,h=0,c=_.length;h<c;h++){var l=_[h];u.has(l.xrPlane)?(l.state=eM.Tracking,this._updatePlane(s,o,l)):l.state=eM.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),_.push(t)}}),this._lastDetectedPlanes=u},n.onAddRequestTracking=function(e){e.state=eq.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?eM.TrackingLost:eM.Tracking,n.planeMode="horizontal"===i.orientation?eA.Horizontal:eA.Vertical,n.lastChangedTime<i.lastChangedTime){n.lastChangedTime=i.lastChangedTime,n.attributesDirty=!0;for(var _,h=i.polygon,c=0,l=a.length=h.length;c<l;c++)(a[_=c]||(a[_]=new t_)).copyFrom(h[c])}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}(tz);tV=o([tx(eR.PlaneTracking)],tV),e.WebXRDevice=tv,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 h(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 _(e,t,n){return t&&h(e.prototype,t),n&&h(e,n),e}function l(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,h=c.x,_=c.y,l=c.width,f=c.height;h===u.x&&_===u.y&&l===u.z&&f===u.w||(i.viewport=u.set(h,_,l,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(){},_(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 l(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}l(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,h=0,_=c.length;h<_;h++)this._handleEvent(c[h]);u.resetEvents(),u.frame.updateInputs(r);for(var l=0,f=r.length;l<f;l++){var d=r[l];if(d){var p=d.trackingState;n[l]===R.Tracking?p!==R.Tracking&&t.push(d):p===R.Tracking&&e.push(d),n[l]=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},_(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}l(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},_(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(){},_(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}l(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,h=r.length;c<h;c++){var _=r[c];switch(_.state){case B.Destroyed:for(var l=_.tracked,f=0,d=l.length;f<d;f++){var p=l[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=_.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 l(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 l(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 l(t,e),t.prototype._generateTracked=function(){var e=new K;return e.id=W._uuid++,e},_(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}l(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,h=u.length;c<h;c++){var _=u[c];i.set(0,1,0).transformNormal(_.pose.matrix),a.normal.copyFrom(i),a.distance=-t.Vector3.dot(i,_.pose.position);var l=e.intersectPlane(a);if(l>=0&&(e.getPoint(l,o),t.Vector3.transformToVec3(o,_.pose.inverseMatrix,s),this._checkPointerWithinPlane(s,_))){var f=new G;f.point.copyFrom(o),f.normal.copyFrom(i),f.distance=l,f.trackedObject=_,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,h=0;h<s;h++){var _=o[h];t.Vector3.subtract(_,u,r),t.Vector3.subtract(e,u,a),t.Vector3.cross(r,a,i);var l=i.y;if(0===c)l>0?c=1:l<0&&(c=-1);else if(l>0&&c<0||l<0&&c>0)return!1;u=_}return!0},n}(O);ee=Q([N(X.HitTest)],ee);var et=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return l(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 l(t,e),t}(Z),er=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this,t,X.AnchorTracking)||this)._anchors=[],n}l(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},_(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 l(t,e),t}(Z),ei=/*#__PURE__*/function(e){function t(){return e.apply(this,arguments)||this}return l(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 l(t,e),t.prototype._generateTracked=function(){var e=new ei;return e.id=W._uuid++,e},_(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 eh=/*#__PURE__*/function(e){function n(){return e.apply(this,arguments)||this}return l(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 e_(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(e_=function(){return!!e})()}function el(e,t,n){return(el=e_()?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}eh=Q([t.resourceLoader("XRReferenceImage",[])],eh);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,this._onValueChanged&&this._onValueChanged(),this},t.add=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._onValueChanged&&this._onValueChanged(),this},t.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._onValueChanged&&this._onValueChanged(),this},t.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,this._onValueChanged&&this._onValueChanged(),this},t.divide=function(e){return this._x/=e._x,this._y/=e._y,this._z/=e._z,this._onValueChanged&&this._onValueChanged(),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,this._onValueChanged&&this._onValueChanged(),this},t.normalize=function(){return e.normalize(this,this),this},t.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,this._onValueChanged&&this._onValueChanged(),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,this._onValueChanged&&this._onValueChanged(),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],this._onValueChanged&&this._onValueChanged(),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,n._onValueChanged&&n._onValueChanged()},e.subtract=function(e,t,n){n._x=e._x-t._x,n._y=e._y-t._y,n._z=e._z-t._z,n._onValueChanged&&n._onValueChanged()},e.multiply=function(e,t,n){n._x=e._x*t._x,n._y=e._y*t._y,n._z=e._z*t._z,n._onValueChanged&&n._onValueChanged()},e.divide=function(e,t,n){n._x=e._x/t._x,n._y=e._y/t._y,n._z=e._z/t._z,n._onValueChanged&&n._onValueChanged()},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,r._onValueChanged&&r._onValueChanged()},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),n._onValueChanged&&n._onValueChanged()},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),n._onValueChanged&&n._onValueChanged()},e.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._onValueChanged&&t._onValueChanged()},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,n._onValueChanged&&n._onValueChanged()},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],n._onValueChanged&&n._onValueChanged()},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],n._onValueChanged&&n._onValueChanged()},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],n._onValueChanged&&n._onValueChanged()},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,n._onValueChanged&&n._onValueChanged()},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,h=c*r+s*i-u*a,_=c*a+u*r-o*i,l=c*i+o*a-s*r,f=-o*r-s*a-u*i;n._x=h*c-f*o-_*u+l*s,n._y=_*c-f*s-l*o+h*u,n._z=l*c-f*u-h*s+_*o,n._onValueChanged&&n._onValueChanged()},em(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,this._onValueChanged&&this._onValueChanged()}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,this._onValueChanged&&this._onValueChanged()}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,this._onValueChanged&&this._onValueChanged()}}]),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],h=r[4],_=r[5],l=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+l*g,i[1]=s*p+h*m+f*g,i[2]=u*p+_*m+d*g,i[3]=o*v+c*y+l*x,i[4]=s*v+h*y+f*x,i[5]=u*v+_*y+d*x,i[6]=o*w+c*z+l*S,i[7]=s*w+h*z+f*S,i[8]=u*w+_*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,h=r*s,_=a*s,l=a*u,f=i*s,d=i*u,p=i*c,m=o*s,g=o*u,v=o*c;n[0]=1-l-p,n[3]=_-v,n[6]=f+g,n[1]=_+v,n[4]=1-h-p,n[7]=d-m,n[2]=f-g,n[5]=d+m,n[8]=1-h-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],h=n[6],_=n[7],l=n[8],f=l*u-c*_,d=-l*s+c*h,p=_*s-u*h,m=a*f+i*d+o*p;m&&(m=1/m,r[0]=f*m,r[1]=(-l*i+o*_)*m,r[2]=(c*i-o*u)*m,r[3]=d*m,r[4]=(l*a-o*h)*m,r[5]=(-c*a+o*s)*m,r[6]=p*m,r[7]=(-_*a+i*h)*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],h=n[6],_=n[7],l=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*h-o*u,z=a*_-s*u,S=i*h-o*c,k=i*_-s*c,C=o*_-s*h,M=l*g-f*m,T=l*v-d*m,b=l*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-h*V+_*R)*F,r[1]=(h*b-u*q-_*T)*F,r[2]=(u*V-c*b+_*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],h=r[3],_=r[4],l=r[5],f=r[6],d=r[7],p=r[8];a[0]=o*s+i*h,a[1]=o*u+i*_,a[2]=o*c+i*l,a[3]=o*h-i*s,a[4]=o*_-i*u,a[5]=o*l-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],h=i[3],_=i[4],l=i[5],f=i[6],d=i[7],p=i[8];o[0]=s,o[1]=u,o[2]=c,o[3]=h,o[4]=_,o[5]=l,o[6]=r*s+a*h+f,o[7]=r*u+a*_+d,o[8]=r*c+a*l+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,this._onValueChanged&&this._onValueChanged(),this},t.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onValueChanged&&this._onValueChanged(),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,this._onValueChanged&&this._onValueChanged(),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,e._onValueChanged&&e._onValueChanged(),e},t.toYawPitchRoll=function(e){return this._toYawPitchRoll(e),e._onValueChanged&&e._onValueChanged(),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,this._onValueChanged&&this._onValueChanged(),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],this._onValueChanged&&this._onValueChanged(),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,h=2*(t*a-n*r);h>(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):h<-(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(h/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,n._onValueChanged&&n._onValueChanged()},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,h=t._w;n._x=r*h+o*s+a*c-i*u,n._y=a*h+o*u+i*s-r*c,n._z=i*h+o*c+r*u-a*s,n._w=o*h-r*s-a*u-i*c,n._onValueChanged&&n._onValueChanged()},e.conjugate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=e._w,t._onValueChanged&&t._onValueChanged()},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),r._onValueChanged&&r._onValueChanged()},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),h=Math.cos(i),_=Math.sin(o),l=Math.cos(o),f=l*h,d=_*c;r._x=l*c*u+_*h*s,r._y=_*h*u-l*c*s,r._z=f*s-d*u,r._w=f*u+d*s,r._onValueChanged&&r._onValueChanged()},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],h=a[5],_=a[6],l=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=(h-l)*n,t._y=(_-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+_)*r,t._w=(h-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+h)*r,t._w=(_-s)*r):(r=.5/(n=Math.sqrt(1+f-i-c)),t._x=(s+_)*r,t._y=(h+l)*r,t._z=.5*n,t._w=(o-u)*r),t._onValueChanged&&t._onValueChanged()},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,t._onValueChanged&&t._onValueChanged()}},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,a._onValueChanged&&a._onValueChanged()},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,t._onValueChanged&&t._onValueChanged())},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,t._onValueChanged&&t._onValueChanged()},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,t._onValueChanged&&t._onValueChanged()},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,t._onValueChanged&&t._onValueChanged()},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,n._onValueChanged&&n._onValueChanged()},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,n._onValueChanged&&n._onValueChanged()},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,n._onValueChanged&&n._onValueChanged()},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,n._onValueChanged&&n._onValueChanged()},em(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=e,this._onValueChanged&&this._onValueChanged()}},{key:"y",get:function(){return this._y},set:function(e){this._y=e,this._onValueChanged&&this._onValueChanged()}},{key:"z",get:function(){return this._z},set:function(e){this._z=e,this._onValueChanged&&this._onValueChanged()}},{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,this._onValueChanged&&this._onValueChanged()}}]),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,h,_,l,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===h&&(h=1),void 0===_&&(_=0),void 0===l&&(l=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]=h,m[11]=_,m[12]=l,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,h,_,l,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]=h,m[11]=_,m[12]=l,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],h=e[9],_=e[10],l=e[11],f=e[12],d=e[13],p=e[14],m=e[15];return(t*o-n*i)*(_*m-l*p)-(t*s-r*i)*(h*m-l*d)+(t*u-a*i)*(h*p-_*d)+(n*s-r*o)*(c*m-l*f)-(n*u-a*o)*(c*p-_*f)+(r*u-a*s)*(c*d-h*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],h=i[4],_=i[5],l=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(h*h+_*_+l*l),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]=h*x,o[4]=_*x,o[5]=l*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 e._onValueChanged&&e._onValueChanged(),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],h=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+h*h)),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],h=r[4],_=r[5],l=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+h*S+d*k+v*C,i[1]=s*z+_*S+p*k+y*C,i[2]=u*z+l*S+m*k+x*C,i[3]=c*z+f*S+g*k+w*C,i[4]=o*M+h*T+d*b+v*R,i[5]=s*M+_*T+p*b+y*R,i[6]=u*M+l*T+m*b+x*R,i[7]=c*M+f*T+g*b+w*R,i[8]=o*V+h*q+d*F+v*A,i[9]=s*V+_*q+p*F+y*A,i[10]=u*V+l*q+m*F+x*A,i[11]=c*V+f*q+g*F+w*A,i[12]=o*E+h*P+d*L+v*D,i[13]=s*E+_*P+p*L+y*D,i[14]=u*E+l*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,h=r*s,_=a*s,l=a*u,f=i*s,d=i*u,p=i*c,m=o*s,g=o*u,v=o*c;n[0]=1-l-p,n[1]=_+v,n[2]=f-g,n[3]=0,n[4]=_-v,n[5]=1-h-p,n[6]=d+m,n[7]=0,n[8]=f+g,n[9]=d-m,n[10]=1-h-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,h=Math.sqrt(s*s+u*u+c*c);Math.abs(h)<eg.zeroTolerance||(s*=h=1/h,u*=h,c*=h,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,h=o+o,_=s+s,l=i*c,f=i*h,d=i*_,p=o*h,m=o*_,g=s*_,v=u*c,y=u*h,x=u*_,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-(l+g))*z,a[6]=(m+v)*z,a[7]=0,a[8]=(d+y)*S,a[9]=(m-v)*S,a[10]=(1-(l+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],h=n[6],_=n[7],l=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*h-o*u,z=a*_-s*u,S=i*h-o*c,k=i*_-s*c,C=o*_-s*h,M=l*g-f*m,T=l*v-d*m,b=l*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-h*V+_*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]=(h*b-u*q-_*T)*F,r[5]=(a*q-o*b+s*T)*F,r[6]=(v*z-m*C-y*w)*F,r[7]=(l*C-d*z+p*w)*F,r[8]=(u*V-c*b+_*M)*F,r[9]=(i*b-a*V-s*M)*F,r[10]=(m*k-g*z+y*x)*F,r[11]=(f*z-l*k-p*x)*F,r[12]=(c*T-u*R-h*M)*F,r[13]=(a*R-i*T+o*M)*F,r[14]=(g*w-m*S-v*x)*F,r[15]=(l*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),h=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*h,s[11]=0,s[12]=(e+t)*u,s[13]=(r+n)*c,s[14]=(i+a)*h,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,h=Math.sqrt(s*s+u*u+c*c);if(!(Math.abs(h)<eg.zeroTolerance)){var _=e.elements,l=r.elements;s*=h=1/h,u*=h,c*=h,a=Math.sin(n),o=1-(i=Math.cos(n));var f=_[0],d=_[1],p=_[2],m=_[3],g=_[4],v=_[5],y=_[6],x=_[7],w=_[8],z=_[9],S=_[10],k=_[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;l[0]=f*C+g*M+w*T,l[1]=d*C+v*M+z*T,l[2]=p*C+y*M+S*T,l[3]=m*C+x*M+k*T,l[4]=f*b+g*R+w*V,l[5]=d*b+v*R+z*V,l[6]=p*b+y*R+S*V,l[7]=m*b+x*R+k*V,l[8]=f*q+g*F+w*A,l[9]=d*q+v*F+z*A,l[10]=p*q+y*F+S*A,l[11]=m*q+x*F+k*A,e!==r&&(l[12]=_[12],l[13]=_[13],l[14]=_[14],l[15]=_[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],h=r[2],_=r[3],l=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]=h,a[3]=_,a[4]=l,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+l*o+m*s+r[12],a[13]=c*i+f*o+g*s+r[13],a[14]=h*i+d*o+v*s+r[14],a[15]=_*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 h=u.gripSpace,_=u.targetRaySpace;if(h){var l=t.getPose(h,a),f=l.transform,d=l.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(_){var m=t.getPose(_,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,h=s.emulatedPosition,_=0,l=c.length;_<l;_++){var f=c[_],d=function(e){switch(e){case"left":return C.LeftCamera;case"right":return C.RightCamera;default:return C.Camera}}(f.eye),p=c[_].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=h?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=h?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?el(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 h=n[u]._assembleOptions(o);h&&s.push(h)}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,h=u.length;c<h;c++){var _=u[c],l=_.index,f=n[l];if(f){var d=f.tracked[0];d||((d=f.tracked[0]=r()).referenceImage=f.image),"tracked"===_.trackingState?(this._updateTrackedImage(i,a,d,_),d.state=R.Tracking):d.state=R.TrackingLost,o[l]=s}else console.warn("Images can not find "+l)}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,h=0,_=c.length;h<_;h++){var l=c[h];u.has(l.xrPlane)?(l.state=R.Tracking,this._updatePlane(s,o,l)):l.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,h=i.polygon,_=0,l=a.length=h.length;_<l;_++)(a[c=_]||(a[c]=new ev)).copyFrom(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