@galacean/engine-xr-webxr 0.0.0-experimental-1.3-xr.5 → 0.0.0-experimental-1.3-xr.9

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,(ex=eV||(eV={}))[ex.Controller=0]="Controller",ex[ex.LeftController=1]="LeftController",ex[ex.RightController=2]="RightController",ex[ex.Camera=3]="Camera",ex[ex.LeftCamera=4]="LeftCamera",ex[ex.RightCamera=5]="RightCamera",ex[ex.LeftHand=6]="LeftHand",ex[ex.RightHand=7]="RightHand",(ez=ek||(ek={}))[ez.None=0]="None",ez[ez.Requesting=1]="Requesting",ez[ez.Initialized=2]="Initialized",ez[ez.Running=3]="Running",ez[ez.Paused=4]="Paused";var f,d,m,g,p,y,v,x,z,w,C,V,k,M,S,b,T,R,q,P,F,A,E,L,D,I,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,ep,ey,ev,ex,ez,ew,eC,eV,ek,eM,eS,eb,eT,eR,eq,eP,eF,eA,eE,eL,eD,eI,eN=((eC=(ew=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 eV.Camera:n._cameraType=t.CameraType.XRCenterCamera;break;case eV.LeftCamera:n._cameraType=t.CameraType.XRLeftCamera;break;case eV.RightCamera:n._cameraType=t.CameraType.XRRightCamera}r._camera=n}},eC.detachCamera=function(e){var n=this._xrManager.inputManager.getTrackedDevice(e),r=n._camera;return r&&(r._cameraType=t.CameraType.Normal),n._camera=null,r},eC._onSessionStart=function(){},eC._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)}}},eC._onSessionExit=function(){},eC._getCameraClearFlagsMask=function(e){return e!==t.CameraType.XRCenterCamera?t.CameraClearFlags.None:this._xrManager.sessionManager.state===ek.Running?t.CameraClearFlags.Color:t.CameraClearFlags.None},eC._onDestroy=function(){},h(ew,[{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.")}}]),ew),eB=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 ej=function(e){this.type=e,this.trackingState=eM.NotTracking},eO=(c(d=function(){var e;return e=ej.apply(this,arguments)||this,e.pose=new eB,e.viewport=new t.Rect,e.projectionMatrix=new t.Matrix,e},ej),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 eX=(c(g=function(){var e;return e=ej.apply(this,arguments)||this,e.gripPose=new eB,e.targetRayPose=new eB,e.pressedButtons=eS.None,e.down=eS.None,e.up=eS.None,e},ej),(p=g.prototype).isButtonDown=function(e){return(this.down&e)!=0},p.isButtonUp=function(e){return(this.up&e)!=0},p.isButtonHeldDown=function(e){return(this.pressedButtons&e)!=0},g);(y=eb||(eb={}))[y.SelectStart=0]="SelectStart",y[y.Select=1]="Select",y[y.SelectEnd=2]="SelectEnd",y[y.SqueezeStart=3]="SqueezeStart",y[y.Squeeze=4]="Squeeze",y[y.SqueezeEnd=5]="SqueezeEnd",(v=eT||(eT={}))[v.Gaze=0]="Gaze",v[v.TrackedPointer=1]="TrackedPointer",v[v.Screen=2]="Screen";var eW=((z=(x=function(e,t){this._xrManager=e,this._engine=t,this._cameras=[],this._controllers=[],this._added=[],this._removed=[],this._trackedDevices=[],this._statusSnapshot=[],this._listeners=[];for(var n=this._trackedDevices,r=this._controllers,a=this._cameras,i=0;i<6;i++)switch(i){case eV.Camera:case eV.LeftCamera:case eV.RightCamera:a.push(n[i]=new eO(i));break;case eV.Controller:case eV.LeftController:case eV.RightController:r.push(n[i]=new eX(i))}this._statusSnapshot.fill(eM.NotTracking,0,n.length)}).prototype).getTrackedDevice=function(e){return this._trackedDevices[e]},z.addTrackedDeviceChangedListener=function(e){this._listeners.push(e)},z.removeTrackedDeviceChangedListener=function(e){var t=this._listeners,n=t.indexOf(e);n>=0&&t.splice(n,1)},z._onUpdate=function(){var e=this._added,t=this._removed,n=this._listeners,r=this._statusSnapshot,a=this._trackedDevices,i=this._controllers;e.length=t.length=0;for(var o=0,s=i.length;o<s;o++){var u=i[o];u.down=u.up=0}for(var _=this._xrManager.sessionManager._platformSession,h=_.events,c=0,l=h.length;c<l;c++)this._handleEvent(h[c]);_.resetEvents(),_.frame.updateInputs(a);for(var f=0,d=a.length;f<d;f++){var m=a[f];if(m){var g=m.trackingState;r[f]===eM.Tracking?g!==eM.Tracking&&t.push(m):g===eM.Tracking&&e.push(m),r[f]=g}}if(e.length>0||t.length>0)for(var p=0,y=n.length;p<y;p++)n[p](e,t)},z._onDestroy=function(){this._listeners.length=0},z._handleEvent=function(e){var t=this._trackedDevices[e.input];switch(e.targetRayMode){case eT.TrackedPointer:switch(e.type){case eb.SelectStart:t.down|=eS.Select,t.pressedButtons|=eS.Select;break;case eb.SelectEnd:t.up|=eS.Select,t.pressedButtons&=~eS.Select;break;case eb.SqueezeStart:t.down|=eS.Squeeze,t.pressedButtons|=eS.Squeeze;break;case eb.SqueezeEnd:t.up|=eS.Squeeze,t.pressedButtons&=~eS.Squeeze}break;case eT.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 eb.SelectStart:r.dispatchEvent(this._makeUpPointerEvent("pointerdown",e.id,s,u));break;case eb.Select:r.dispatchEvent(this._makeUpPointerEvent("pointermove",e.id,s,u));break;case eb.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=eR||(eR={}))[w.None=0]="None",w[w.AR=1]="AR",w[w.VR=2]="VR";var eH=((V=(C=function(e,t){this._xrManager=e,this._engine=t,this._mode=eR.None,this._state=ek.None,this._listeners=[],this._rhi=t._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.state=ek.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!==ek.Running)throw Error("Session is not running.");n._mainFrameBuffer=null,n._mainFrameWidth=n._mainFrameHeight=0,e.stop(),this.state=ek.Paused,this._xrManager._onSessionStop(),t.isPaused||(t.pause(),t.resume())},V.addChangedListener=function(e){this._listeners.push(e)},V.removeChangedListener=function(e){var t=this._listeners,n=t.indexOf(e);n>=0&&t.splice(n,1)},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.state=ek.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===ek.Running?this._platformSession.requestAnimationFrame:this._raf},V._getCancelAnimationFrame=function(){return this._state===ek.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.state=ek.None,this._xrManager._onSessionExit(),n.isPaused||(n.pause(),n.resume())},V._onDestroy=function(){},h(C,[{key:"mode",get:function(){return this._mode}},{key:"state",get:function(){return this._state},set:function(e){this._state=e;for(var t=this._listeners,n=0,r=t.length;n<r;n++)t[n](e)}},{key:"supportedFrameRate",get:function(){return this._platformSession.supportedFrameRates}},{key:"frameRate",get:function(){return this._platformSession.frameRate}}]),C),eU=(k=t.XRManager,c(M=function(){return k.apply(this,arguments)},k),(S=M.prototype).isSupportedFeature=function(e){return this._platformDevice.isSupportedFeature(M._featureMap.get(e))},S.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(M._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},S.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}},S.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.state=ek.Requesting,r._initialize(e,n.features).then(function(){t&&r.run(),a()},i)},i)})},S.exitXR=function(){var e=this;return new Promise(function(t,n){e.sessionManager._exit().then(function(){t()},n)})},S._initialize=function(e,t){this.features.length=0,this._platformDevice=t,this.sessionManager=new eH(this,e),this.inputManager=new eW(this,e),this.cameraManager=new eN(this)},S._update=function(){var e=this.sessionManager;if(e.state===ek.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()}}},S._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())},S._getRequestAnimationFrame=function(){return this.sessionManager._getRequestAnimationFrame()},S._getCancelAnimationFrame=function(){return this.sessionManager._getCancelAnimationFrame()},S._getCameraClearFlagsMask=function(e){return this.cameraManager._getCameraClearFlagsMask(e)},S._onSessionStop=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionStop()}},S._onSessionInit=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionInit()}},S._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()}},S._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(M,[{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}}]),M);function eG(e){return function(t){eU._featureMap.set(t,e)}}eU._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,[eU]);var eQ=((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=eq||(eq={}))[R.AnchorTracking=0]="AnchorTracking",R[R.ImageTracking=1]="ImageTracking",R[R.PlaneTracking=2]="PlaneTracking",R[R.HitTest=3]="HitTest",(q=eP||(eP={}))[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 eY=(c(P=function(){var e;return e=eQ.apply(this,arguments)||this,e._requestTrackings=[],e._tracked=[],e._added=[],e._updated=[],e._removed=[],e._statusSnapshot={},e._listeners=[],e},eQ),(F=P.prototype).addChangedListener=function(e){this._listeners.push(e)},F.removeChangedListener=function(e){var t=this._listeners,n=t.indexOf(e);n>=0&&t.splice(n,1)},F._onUpdate=function(){var e=this._xrManager.sessionManager._platformSession,t=e.frame,n=this._platformFeature,r=this._listeners,a=this._requestTrackings,i=this._statusSnapshot,o=this._tracked,s=this._added,u=this._updated,_=this._removed;if(t&&a.length&&n.checkAvailable(e,t,a)){s.length=u.length=_.length=0,n.getTrackedResult(e,t,a,this._generateTracked);for(var h=0,c=a.length;h<c;h++){var l=a[h];switch(l.state){case eP.Destroyed:for(var f=l.tracked,d=0,m=f.length;d<m;d++){var g=f[d],p=g.id;i[p]===eM.Tracking&&(_.push(g),o.splice(o.indexOf(g),1)),i[p]=eM.NotTracking}break;case eP.Resolved:for(var y=l.tracked,v=0,x=y.length;v<x;v++){var z=y[v],w=z.id;z.state===eM.Tracking?i[w]===eM.Tracking?u.push(z):(s.push(z),i[w]=eM.Tracking,o.push(z)):(i[w]===eM.Tracking&&(_.push(z),o.splice(o.indexOf(z),1)),i[w]=z.state)}}}for(var C=a.length-1;C>=0;C--)a[C].state===eP.Destroyed&&a.splice(C,1);if(s.length>0||u.length>0||_.length>0)for(var V=0,k=r.length;V<k;V++)r[V](s,u,_)}},F._onSessionStop=function(){this._added.length=this._updated.length=this._removed.length=0},F._onSessionExit=function(){this._requestTrackings.length=this._tracked.length=this._added.length=this._updated.length=this._removed.length=0},F._addRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(eq[this._type]+" request tracking cannot be modified after initialization.");this._requestTrackings.push(e),t.onAddRequestTracking(e)},F._removeRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(eq[this._type]+" request tracking cannot be modified after initialization.");t.onDelRequestTracking(e)},F._removeAllRequestTrackings=function(){var e=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!e.canModifyRequestTrackingAfterInit)throw Error(eq[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);eY._uuid=0;var eJ=function(){this.pose=new eB,this.state=eM.NotTracking};(A=eF||(eF={}))[A.Plane=1]="Plane",A[A.All=1]="All";var eZ=function(){this.point=new t.Vector3,this.normal=new t.Vector3};function eK(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 e$=function(){this.state=eP.None,this.tracked=[]},e1=(c(L=function(e){var t;return(t=e$.call(this)||this).detectionMode=e,t},e$),L),e0=(c(D=function(){var e;return e=eJ.apply(this,arguments)||this,e.polygon=[],e.attributesDirty=!1,e},eJ),D),e3=(c(I=function(e,t){var n;return void 0===t&&(t=eA.EveryThing),(n=eY.call(this,e,eq.PlaneTracking,t)||this)._addRequestTracking(new e1(t)),n},eY),I.prototype._generateTracked=function(){var e=new e0;return e.id=eY._uuid++,e},h(I,[{key:"detectionMode",get:function(){return this._requestTrackings[0].detectionMode}},{key:"trackedPlanes",get:function(){return this._tracked}}]),I);e3=eK([eG(eq.PlaneTracking)],e3);var e2=(c(N=function(e){var n;return(n=eQ.call(this,e,eq.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},eQ),(B=N.prototype).hitTest=function(e,t){var n=[];return t&eF.Plane&&this._hitTestPlane(e,n),n},B.screenHitTest=function(e,t,n){var r=this._xrManager;if(r.sessionManager.mode!==eR.AR)throw Error("Only AR mode supports using screen ray hit test.");var a=r.inputManager.getTrackedDevice(eV.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(e3);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 eZ;f.point.copyFrom(o),f.normal.copyFrom(i),f.distance=l,f.trackedObject=c,f.trackableType=eF.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);e2=eK([eG(eq.HitTest)],e2);var e5=(c(j=function(){return eJ.apply(this,arguments)},eJ),j),e4=(c(O=function(e,t){var n;return(n=e$.call(this)||this).position=e,n.rotation=t,n},e$),O),e6=(c(X=function(e){var t;return(t=eY.call(this,e,eq.AnchorTracking)||this)._anchors=[],t},eY),(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 e4(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 e5;return e.id=eY._uuid++,e},h(X,[{key:"trackingAnchors",get:function(){return this._anchors}},{key:"trackedAnchors",get:function(){return this._tracked}}]),X);e6=eK([eG(eq.AnchorTracking)],e6);var e8=(c(H=function(e){var t;return(t=e$.call(this)||this).image=e,t},e$),H),e7=(c(U=function(){return eJ.apply(this,arguments)},eJ),U),e9=(c(G=function(e,t){var n;if((n=eY.call(this,e,eq.ImageTracking,t)||this)._trackingImages=t,(t?t.length:0)>0)for(var r=0,a=t.length;r<a;r++)n._addRequestTracking(new e8(t[r]));else console.warn("No image to be tracked.");return n},eY),G.prototype._generateTracked=function(){var e=new e7;return e.id=eY._uuid++,e},h(G,[{key:"trackingImages",get:function(){return this._trackingImages}},{key:"trackedImages",get:function(){return this._tracked}}]),G);e9=eK([eG(eq.ImageTracking)],e9);var te=function(e,t,n){this.name=e,this.imageSource=t,this.physicalWidth=n},tt=((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 te("",a,r))},a.src=URL.createObjectURL(new window.Blob([t.nextImagesData(1)[0]]))})},Q);function tn(){return(tn=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)}tt=eK([t.decoder("XRReferenceImage")],tt);var tr=(Y=t.Loader,c(J=function(){return Y.apply(this,arguments)},Y),J.prototype.load=function(e,n){var r=this;return new t.AssetPromise(function(a,i){r.request(e.url,tn({},e,{type:"arraybuffer"})).then(function(e){t.decode(e,n.engine).then(function(e){a(e)})}).catch(i)})},J);function ta(e,t,n,r,a,i,o){try{var s=e[i](o),u=s.value}catch(e){n(e);return}s.done?t(u):Promise.resolve(u).then(r,a)}tr=eK([t.resourceLoader("XRReferenceImage",[])],tr);var ti=((Z=function(){}).parse=function(e,n,r){var a;return(a=function(){var a,i,o,s,u,_,h,c,l,f,d,m,g,p,y,v,x,z,w,C,V;return g=this,p=function(g){switch(g.label){case 0:if(!(a=e.xrManager))return t.Logger.error("XRManager is not found in the engine."),[2];o=(i=r.scene.xr).origin,s=i.camera,u=i.leftCamera,_=i.rightCamera,h=i.features,c=n.entityMap,o&&(a.origin=c.get(o)),to(l=a.cameraManager,eV.Camera,c.get(s)),to(l,eV.LeftCamera,c.get(u)),to(l,eV.RightCamera,c.get(_)),f=0,d=h.length,g.label=1;case 1:if(!(f<d))return[3,9];if(!(m=h[f]).enable)return[3,8];switch(m.type){case eq.ImageTracking:return[3,2];case eq.PlaneTracking:return[3,4];case eq.AnchorTracking:return[3,5];case eq.HitTest:return[3,6]}return[3,7];case 2:return[4,function(e,n,r){if(!n.isSupportedFeature(e9)){t.Logger.error("Image Tracking is not supported.");return}for(var a=[],i=r.images,o=e.resourceManager,s=0,u=i.length;s<u;s++)a.push(o.getResourceByRef(i[s]));return Promise.all(a).then(function(e){n.addFeature(e9,e)})}(e,a,m)];case 3:return g.sent(),[3,8];case 4:return function(e,n){if(!e.isSupportedFeature(e3)){t.Logger.error("Plane Tracking is not supported.");return}e.addFeature(e3,n.detectionMode)}(a,m),[3,8];case 5:return function(e,n){if(!e.isSupportedFeature(e6)){t.Logger.error("Anchor Tracking is not supported.");return}for(var r=e.addFeature(e6),a=n.anchors,i=0,o=a.length;i<o;i++){var s=a[i],u=new t.Vector3().copyFrom(s.position),_=new t.Quaternion().copyFrom(s.rotation);r.addAnchor(u,_)}}(a,m),[3,8];case 6:return function(e,n){if(!e.isSupportedFeature(e2)){t.Logger.error("Hit Test is not supported.");return}e.addFeature(e2)}(a),[3,8];case 7:return[3,8];case 8:return f++,[3,1];case 9:return[2]}},y=function(e){return function(t){return v([e,t])}},v=function(e){if(x)throw TypeError("Generator is already executing.");for(;C&&(C=0,e[0]&&(V=0)),V;)try{if(x=1,z&&(w=2&e[0]?z.return:e[0]?z.throw||((w=z.return)&&w.call(z),0):z.next)&&!(w=w.call(z,e[1])).done)return w;switch(z=0,w&&(e=[2&e[0],w.value]),e[0]){case 0:case 1:w=e;break;case 4:return V.label++,{value:e[1],done:!1};case 5:V.label++,z=e[1],e=[0];continue;case 7:e=V.ops.pop(),V.trys.pop();continue;default:if(!(w=(w=V.trys).length>0&&w[w.length-1])&&(6===e[0]||2===e[0])){V=0;continue}if(3===e[0]&&(!w||e[1]>w[0]&&e[1]<w[3])){V.label=e[1];break}if(6===e[0]&&V.label<w[1]){V.label=w[1],w=e;break}if(w&&V.label<w[2]){V.label=w[2],V.ops.push(e);break}w[2]&&V.ops.pop(),V.trys.pop();continue}e=p.call(g,V)}catch(t){e=[6,t],z=0}finally{x=w=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}},V={label:0,sent:function(){if(1&w[0])throw w[1];return w[1]},trys:[],ops:[]},C={next:y(0),throw:y(1),return:y(2)},"function"==typeof Symbol&&(C[Symbol.iterator]=function(){return this}),C},function(){var e=this,t=arguments;return new Promise(function(n,r){var i=a.apply(e,t);function o(e){ta(i,n,r,o,s,"next",e)}function s(e){ta(i,n,r,o,s,"throw",e)}o(void 0)})})()},Z);function to(e,n,r){var a=null==r?void 0:r.getComponent(t.Camera);a&&e.attachCamera(n,a)}function ts(e,t,n){return(ts=!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 tu(e){switch(e){case 1:return"immersive-ar";case 2:return"immersive-vr";default:return null}}function t_(e){var t;switch(e.targetRayMode){case"gaze":break;case"screen":return eV.Controller;case"tracked-pointer":if(e.hand)switch(e.handedness){case"left":return eV.LeftHand;case"right":return eV.RightHand}else switch(e.handedness){case"left":return eV.LeftController;case"right":return eV.RightController}}return t}function th(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 tc(e,t,n){return t&&th(e.prototype,t),n&&th(e,n),e}ti=eK([t.registerSceneExtendParser("XR")],ti),(K=eE||(eE={}))[K.Disjoint=0]="Disjoint",K[K.Contains=1]="Contains",K[K.Intersects=2]="Intersects",($=eL||(eL={}))[$.Back=0]="Back",$[$.Front=1]="Front",$[$.Intersecting=2]="Intersecting",(ee=eD||(eD={}))[ee.Near=0]="Near",ee[ee.Far=1]="Far",ee[ee.Left=2]="Left",ee[ee.Right=3]="Right",ee[ee.Bottom=4]="Bottom",ee[ee.Top=5]="Top";var tl=((et=function(){}).clamp=function(e,t,n){return Math.max(t,Math.min(n,e))},et.equals=function(e,t){return Math.abs(e-t)<=et.zeroTolerance},et.isPowerOf2=function(e){return(e&e-1)==0},et.radianToDegree=function(e){return e*et.radToDegreeFactor},et.degreeToRadian=function(e){return e*et.degreeToRadFactor},et.lerp=function(e,t,n){return e+(t-e)*n},et);tl.zeroTolerance=1e-6,tl.radToDegreeFactor=180/Math.PI,tl.degreeToRadFactor=Math.PI/180;var tf=((er=(en=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},er.add=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._onValueChanged&&this._onValueChanged(),this},er.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._onValueChanged&&this._onValueChanged(),this},er.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,this._onValueChanged&&this._onValueChanged(),this},er.divide=function(e){return this._x/=e._x,this._y/=e._y,this._z/=e._z,this._onValueChanged&&this._onValueChanged(),this},er.length=function(){var e=this._x,t=this._y,n=this._z;return Math.sqrt(e*e+t*t+n*n)},er.lengthSquared=function(){var e=this._x,t=this._y,n=this._z;return e*e+t*t+n*n},er.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,this._onValueChanged&&this._onValueChanged(),this},er.normalize=function(){return en.normalize(this,this),this},er.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,this._onValueChanged&&this._onValueChanged(),this},er.transformNormal=function(e){return en.transformNormal(this,e,this),this},er.transformToVec3=function(e){return en.transformToVec3(this,e,this),this},er.transformCoordinate=function(e){return en.transformCoordinate(this,e,this),this},er.transformByQuat=function(e){return en.transformByQuat(this,e,this),this},er.clone=function(){return new en(this._x,this._y,this._z)},er.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._onValueChanged&&this._onValueChanged(),this},er.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},er.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z},er.toJSON=function(){return{x:this._x,y:this._y,z:this._z}},en.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()},en.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()},en.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()},en.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()},en.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z},en.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)},en.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)},en.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},en.equals=function(e,t){return tl.equals(e._x,t._x)&&tl.equals(e._y,t._y)&&tl.equals(e._z,t._z)},en.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()},en.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()},en.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()},en.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._onValueChanged&&t._onValueChanged()},en.normalize=function(e,t){var n=e._x,r=e._y,a=e._z,i=Math.sqrt(n*n+r*r+a*a);i>tl.zeroTolerance&&(i=1/i,t.set(n*i,r*i,a*i))},en.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._z=e._z*t,n._onValueChanged&&n._onValueChanged()},en.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()},en.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()},en.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()},en.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()},en.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()},tc(en,[{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()}}]),en);tf._zero=new tf(0,0,0),tf._one=new tf(1,1,1),((ei=(ea=function(e,t){void 0===e&&(e=null),void 0===t&&(t=0),this.center=new tf,this.radius=0,e&&this.center.copyFrom(e),this.radius=t}).prototype).clone=function(){return new ea(this.center,this.radius)},ei.copyFrom=function(e){return this.center.copyFrom(e.center),this.radius=e.radius,this},ea.fromPoints=function(e,t){if(!e||0===e.length)throw Error("points must be array and length must > 0");var n=e.length,r=ea._tempVec30;r.x=r.y=r.z=0;for(var a=0;a<n;++a)tf.add(e[a],r,r);tf.scale(r,1/n,t.center);for(var i=0,o=0;o<n;++o){var s=tf.distanceSquared(r,e[o]);s>i&&(i=s)}t.radius=Math.sqrt(i)},ea.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=tf.distance(n,a)},ea)._tempVec30=new tf;var td=((es=(eo=function(e,t){void 0===e&&(e=null),void 0===t&&(t=null),this.min=new tf,this.max=new tf,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},es.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},es.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 tf;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},es.transform=function(e){return eo.transform(this,e,this),this},es.clone=function(){return new eo(this.min,this.max)},es.copyFrom=function(e){return this.min.copyFrom(e.min),this.max.copyFrom(e.max),this},eo.fromCenterAndExtent=function(e,t,n){tf.subtract(e,t,n.min),tf.add(e,t,n.max)},eo.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];tf.min(n,o,n),tf.max(r,o,r)}},eo.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},eo.transform=function(e,t,n){var r=eo._tempVec30,a=eo._tempVec31;e.getCenter(r),e.getExtent(a),tf.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],p=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===p?0:Math.abs(s*p))),tf.subtract(r,a,n.min),tf.add(r,a,n.max)},eo.merge=function(e,t,n){return tf.min(e.min,t.min,n.min),tf.max(e.max,t.max,n.max),n},eo);td._tempVec30=new tf,td._tempVec31=new tf;var tm=((eu=function(){}).intersectionPointThreePlanes=function(e,t,n,r){var a=e.normal,i=t.normal,o=n.normal;tf.cross(i,o,eu._tempVec30),tf.cross(o,a,eu._tempVec31),tf.cross(a,i,eu._tempVec32);var s=-tf.dot(a,eu._tempVec30),u=-tf.dot(i,eu._tempVec31),_=-tf.dot(o,eu._tempVec32);tf.scale(eu._tempVec30,e.distance/s,eu._tempVec30),tf.scale(eu._tempVec31,t.distance/u,eu._tempVec31),tf.scale(eu._tempVec32,n.distance/_,eu._tempVec32),tf.add(eu._tempVec30,eu._tempVec31,r),tf.add(r,eu._tempVec32,r)},eu.distancePlaneAndPoint=function(e,t){return tf.dot(e.normal,t)+e.distance},eu.intersectsPlaneAndPoint=function(e,t){var n=eu.distancePlaneAndPoint(e,t);return n>0?eL.Front:n<0?eL.Back:eL.Intersecting},eu.intersectsPlaneAndBox=function(e,t){var n=t.min,r=t.max,a=e.normal,i=eu._tempVec30,o=eu._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>eu.distancePlaneAndPoint(e,i))?eL.Back:eu.distancePlaneAndPoint(e,o)>0?eL.Front:eL.Intersecting},eu.intersectsPlaneAndSphere=function(e,t){var n=t.center,r=t.radius,a=eu.distancePlaneAndPoint(e,n);return a>r?eL.Front:a<-r?eL.Back:eL.Intersecting},eu.intersectsRayAndPlane=function(e,t){var n=t.normal,r=tl.zeroTolerance,a=tf.dot(n,e.direction);if(Math.abs(a)<r)return -1;var i=tf.dot(n,e.origin),o=(-t.distance-i)/a;if(o<0){if(o<-r)return -1;o=0}return o},eu.intersectsRayAndBox=function(e,t){var n=tl.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,p=(o.x-h)*m;if(g>p){var y=g;g=p,p=y}if((f=Math.max(g,f))>(d=Math.min(p,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,k=(o.z-l)*C;if(V>k){var M=V;V=k,k=M}if((f=Math.max(V,f))>(d=Math.min(k,d)))return -1}return f},eu.intersectsRayAndSphere=function(e,t){var n=e.origin,r=e.direction,a=t.center,i=t.radius,o=eu._tempVec30;tf.subtract(n,a,o);var s=tf.dot(o,r),u=tf.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},eu.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)},eu.intersectsSphereAndSphere=function(e,t){var n=e.radius+t.radius;return tf.distanceSquared(e.center,t.center)<n*n},eu.intersectsSphereAndBox=function(e,t){var n=e.center,r=t.max,a=t.min,i=eu._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))),tf.distanceSquared(n,i)<=e.radius*e.radius},eu.intersectsFrustumAndBox=function(e,t){for(var n=t.min,r=t.max,a=eu._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),tf.dot(s,a)<-o.distance)return!1}return!0},eu.frustumContainsPoint=function(e,t){var n=eu.distancePlaneAndPoint(e.near,t);return Math.abs(n)<tl.zeroTolerance?eE.Intersects:n<0?eE.Disjoint:Math.abs(n=eu.distancePlaneAndPoint(e.far,t))<tl.zeroTolerance?eE.Intersects:n<0?eE.Disjoint:Math.abs(n=eu.distancePlaneAndPoint(e.left,t))<tl.zeroTolerance?eE.Intersects:n<0?eE.Disjoint:Math.abs(n=eu.distancePlaneAndPoint(e.right,t))<tl.zeroTolerance?eE.Intersects:n<0?eE.Disjoint:Math.abs(n=eu.distancePlaneAndPoint(e.top,t))<tl.zeroTolerance?eE.Intersects:n<0?eE.Disjoint:Math.abs(n=eu.distancePlaneAndPoint(e.bottom,t))<tl.zeroTolerance?eE.Intersects:n<0?eE.Disjoint:eE.Contains},eu.frustumContainsBox=function(e,t){for(var n=t.min,r=t.max,a=eu._tempVec30,i=eu._tempVec31,o=eE.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),eu.intersectsPlaneAndPoint(u,a)===eL.Back)return eE.Disjoint;eu.intersectsPlaneAndPoint(u,i)===eL.Back&&(o=eE.Intersects)}return o},eu.frustumContainsSphere=function(e,t){for(var n=eE.Contains,r=0;r<6;++r){var a=e.getPlane(r),i=eu.intersectsPlaneAndSphere(a,t);if(i===eL.Back)return eE.Disjoint;if(i===eL.Intersecting){n=eE.Intersects;break}}return n},eu);tm._tempVec30=new tf,tm._tempVec31=new tf,tm._tempVec32=new tf;var tg=((eh=(e_=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},eh.add=function(e){return e_.add(this,e,this),this},eh.subtract=function(e){return e_.subtract(this,e,this),this},eh.multiply=function(e){return e_.multiply(this,e,this),this},eh.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)},eh.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},eh.invert=function(){return e_.invert(this,this),this},eh.rotate=function(e){return e_.rotate(this,e,this),this},eh.scale=function(e){return e_.scale(this,e,this),this},eh.translate=function(e){return e_.translate(this,e,this),this},eh.transpose=function(){return e_.transpose(this,this),this},eh.clone=function(){var e=this.elements;return new e_(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},eh.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},eh.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},eh.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]},eh.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],_=r[3],h=r[4],c=r[5],l=r[6],f=r[7],d=r[8],m=a[0],g=a[1],p=a[2],y=a[3],v=a[4],x=a[5],z=a[6],w=a[7],C=a[8];i[0]=o*m+_*g+l*p,i[1]=s*m+h*g+f*p,i[2]=u*m+c*g+d*p,i[3]=o*y+_*v+l*x,i[4]=s*y+h*v+f*x,i[5]=u*y+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},e_.equals=function(e,t){var n=e.elements,r=t.elements;return tl.equals(n[0],r[0])&&tl.equals(n[1],r[1])&&tl.equals(n[2],r[2])&&tl.equals(n[3],r[3])&&tl.equals(n[4],r[4])&&tl.equals(n[5],r[5])&&tl.equals(n[6],r[6])&&tl.equals(n[7],r[7])&&tl.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,_=i+i,h=r*s,c=a*s,l=a*u,f=i*s,d=i*u,m=i*_,g=o*s,p=o*u,y=o*_;n[0]=1-l-m,n[3]=c-y,n[6]=f+p,n[1]=c+y,n[4]=1-h-m,n[7]=d-g,n[2]=f-p,n[5]=d+g,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],_=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)},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],_=n[5],h=n[6],c=n[7],l=n[8],f=n[9],d=n[10],m=n[11],g=n[12],p=n[13],y=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*_,k=o*c-s*h,M=l*p-f*g,S=l*y-d*g,b=l*v-m*g,T=f*y-d*p,R=f*v-m*p,q=d*v-m*y,P=x*q-z*R+w*T+C*b-V*S+k*M;if(!P)return null;P=1/P,r[0]=(_*q-h*R+c*T)*P,r[1]=(h*b-u*q-c*S)*P,r[2]=(u*R-_*b+c*M)*P,r[3]=(o*R-i*q-s*T)*P,r[4]=(a*q-o*b+s*S)*P,r[5]=(i*b-a*R-s*M)*P,r[6]=(p*k-y*V+v*C)*P,r[7]=(y*w-g*k-v*z)*P,r[8]=(g*V-p*w+v*x)*P},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],_=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},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],_=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},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_),tp=((el=(ec=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},el.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onValueChanged&&this._onValueChanged(),this},el.getAxisAngle=function(e){var t=this._x,n=this._y,r=this._z,a=t*t+n*n+r*r;if(a<tl.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)},el.identity=function(){return this._x=0,this._y=0,this._z=0,this._w=1,this._onValueChanged&&this._onValueChanged(),this},el.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)},el.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},el.normalize=function(){return ec.normalize(this,this),this},el.toEuler=function(e){this._toYawPitchRoll(e);var t=e._x;return e._x=e._y,e._y=t,e._onValueChanged&&e._onValueChanged(),e},el.toYawPitchRoll=function(e){return this._toYawPitchRoll(e),e._onValueChanged&&e._onValueChanged(),e},el.rotateX=function(e){return ec.rotateX(this,e,this),this},el.rotateY=function(e){return ec.rotateY(this,e,this),this},el.rotateZ=function(e){return ec.rotateZ(this,e,this),this},el.rotationAxisAngle=function(e,t){return ec.rotationAxisAngle(e,t,this),this},el.multiply=function(e){return ec.multiply(this,e,this),this},el.invert=function(){return ec.invert(this,this),this},el.dot=function(e){return ec.dot(this,e)},el.lerp=function(e,t){return ec.lerp(this,e,t,this),this},el.rotateAxisAngle=function(e,t){return ec._tempQuat1.rotationAxisAngle(e,t),this.multiply(ec._tempQuat1),this},el.clone=function(){return new ec(this._x,this._y,this._z,this._w)},el.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},el.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},el.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},el.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},el._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-tl.zeroTolerance)*_?(e._x=Math.atan2(2*(a*n-t*r),i+u-o-s),e._y=Math.PI/2,e._z=0):h<-(1-tl.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))},ec.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()},ec.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()},ec.conjugate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=e._w,t._onValueChanged&&t._onValueChanged()},ec.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},ec.equals=function(e,t){return tl.equals(e._x,t._x)&&tl.equals(e._y,t._y)&&tl.equals(e._z,t._z)&&tl.equals(e._w,t._w)},ec.rotationAxisAngle=function(e,t,n){var r=ec._tempVector3;tf.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()},ec.rotationEuler=function(e,t,n,r){ec.rotationYawPitchRoll(t,e,n,r)},ec.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()},ec.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()},ec.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>tl.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()}},ec.lerp=function(e,t,n,r){var a=1-n;ec.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()},ec.slerp=function(e,t,n,r){var a,i,o=ec.dot(e,t);if(Math.abs(o)>1-tl.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()},ec.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>tl.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,t._onValueChanged&&t._onValueChanged())},ec.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()},ec.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()},ec.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()},ec.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()},ec.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()},ec.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()},ec.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()},tc(ec,[{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)<tl.zeroTolerance}},{key:"w",get:function(){return this._w},set:function(e){this._w=e,this._onValueChanged&&this._onValueChanged()}}]),ec);tp._tempVector3=new tf,tp._tempQuat1=new tp;var ty=((ed=(ef=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},ed.multiply=function(e){return ef.multiply(this,e,this),this},ed.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)},ed.decompose=function(e,t,n){var r=ef._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),p=Math.sqrt(l*l+f*f+d*d);if(0>this.determinant()&&(m=-m),n.set(m,g,p),Math.abs(m)<tl.zeroTolerance||Math.abs(g)<tl.zeroTolerance||Math.abs(p)<tl.zeroTolerance)return t.identity(),!1;var y=1/m,v=1/g,x=1/p;return i[0]=o*y,i[1]=s*y,i[2]=u*y,i[3]=_*v,i[4]=h*v,i[5]=c*v,i[6]=l*x,i[7]=f*x,i[8]=d*x,tp.rotationMatrix3x3(r,t),!0},ed.getRotation=function(e){var t=this.elements,n=t[0]+t[5]+t[10];if(n>tl.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},ed.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},ed.getTranslation=function(e){var t=this.elements;return e.set(t[12],t[13],t[14]),e},ed.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},ed.invert=function(){return ef.invert(this,this),this},ed.rotateAxisAngle=function(e,t){return ef.rotateAxisAngle(this,e,t,this),this},ed.scale=function(e){return ef.scale(this,e,this),this},ed.translate=function(e){return ef.translate(this,e,this),this},ed.transpose=function(){return ef.transpose(this,this),this},ed.clone=function(){var e=this.elements;return new ef(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])},ed.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},ed.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},ed.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]},ef.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],p=r[11],y=r[12],v=r[13],x=r[14],z=r[15],w=a[0],C=a[1],V=a[2],k=a[3],M=a[4],S=a[5],b=a[6],T=a[7],R=a[8],q=a[9],P=a[10],F=a[11],A=a[12],E=a[13],L=a[14],D=a[15];i[0]=o*w+h*C+d*V+y*k,i[1]=s*w+c*C+m*V+v*k,i[2]=u*w+l*C+g*V+x*k,i[3]=_*w+f*C+p*V+z*k,i[4]=o*M+h*S+d*b+y*T,i[5]=s*M+c*S+m*b+v*T,i[6]=u*M+l*S+g*b+x*T,i[7]=_*M+f*S+p*b+z*T,i[8]=o*R+h*q+d*P+y*F,i[9]=s*R+c*q+m*P+v*F,i[10]=u*R+l*q+g*P+x*F,i[11]=_*R+f*q+p*P+z*F,i[12]=o*A+h*E+d*L+y*D,i[13]=s*A+c*E+m*L+v*D,i[14]=u*A+l*E+g*L+x*D,i[15]=_*A+f*E+p*L+z*D},ef.equals=function(e,t){var n=e.elements,r=t.elements;return tl.equals(n[0],r[0])&&tl.equals(n[1],r[1])&&tl.equals(n[2],r[2])&&tl.equals(n[3],r[3])&&tl.equals(n[4],r[4])&&tl.equals(n[5],r[5])&&tl.equals(n[6],r[6])&&tl.equals(n[7],r[7])&&tl.equals(n[8],r[8])&&tl.equals(n[9],r[9])&&tl.equals(n[10],r[10])&&tl.equals(n[11],r[11])&&tl.equals(n[12],r[12])&&tl.equals(n[13],r[13])&&tl.equals(n[14],r[14])&&tl.equals(n[15],r[15])},ef.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},ef.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]},ef.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},ef.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,p=o*u,y=o*_;n[0]=1-l-m,n[1]=c+y,n[2]=f-p,n[3]=0,n[4]=c-y,n[5]=1-h-m,n[6]=d+g,n[7]=0,n[8]=f+p,n[9]=d-g,n[10]=1-h-l,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1},ef.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)<tl.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)},ef.rotationTranslation=function(e,t,n){ef.rotationQuaternion(e,n);var r=n.elements;r[12]=t._x,r[13]=t._y,r[14]=t._z},ef.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,p=s*c,y=u*_,v=u*h,x=u*c,z=e._x,w=e._y,C=e._z;a[0]=(1-(m+p))*z,a[1]=(f+x)*z,a[2]=(d-v)*z,a[3]=0,a[4]=(f-x)*w,a[5]=(1-(l+p))*w,a[6]=(g+y)*w,a[7]=0,a[8]=(d+v)*C,a[9]=(g-y)*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},ef.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},ef.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},ef.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],p=n[13],y=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*_,k=o*c-s*h,M=l*p-f*g,S=l*y-d*g,b=l*v-m*g,T=f*y-d*p,R=f*v-m*p,q=d*v-m*y,P=x*q-z*R+w*T+C*b-V*S+k*M;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]=(p*k-y*V+v*C)*P,r[3]=(d*V-f*k-m*C)*P,r[4]=(h*b-u*q-c*S)*P,r[5]=(a*q-o*b+s*S)*P,r[6]=(y*w-g*k-v*z)*P,r[7]=(l*k-d*w+m*z)*P,r[8]=(u*R-_*b+c*M)*P,r[9]=(i*b-a*R-s*M)*P,r[10]=(g*V-p*w+v*x)*P,r[11]=(f*w-l*V-m*x)*P,r[12]=(_*S-u*T-h*M)*P,r[13]=(a*T-i*S+o*M)*P,r[14]=(p*z-g*C-y*x)*P,r[15]=(l*C-f*z+d*x)*P},ef.lookAt=function(e,t,n,r){var a=r.elements,i=ef._tempVec30,o=ef._tempVec31,s=ef._tempVec32;tf.subtract(e,t,s),s.normalize(),tf.cross(n,s,i),i.normalize(),tf.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]=-tf.dot(i,e),a[13]=-tf.dot(o,e),a[14]=-tf.dot(s,e),a[15]=1},ef.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},ef.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},ef.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)<tl.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],p=c[4],y=c[5],v=c[6],x=c[7],z=c[8],w=c[9],C=c[10],V=c[11],k=s*s*o+i,M=u*s*o+_*a,S=_*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,F=_*_*o+i;l[0]=f*k+p*M+z*S,l[1]=d*k+y*M+w*S,l[2]=m*k+v*M+C*S,l[3]=g*k+x*M+V*S,l[4]=f*b+p*T+z*R,l[5]=d*b+y*T+w*R,l[6]=m*b+v*T+C*R,l[7]=g*b+x*T+V*R,l[8]=f*q+p*P+z*F,l[9]=d*q+y*P+w*F,l[10]=m*q+v*P+C*F,l[11]=g*q+x*P+V*F,e!==r&&(l[12]=c[12],l[13]=c[13],l[14]=c[14],l[15]=c[15])}},ef.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]},ef.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],p=r[9],y=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]=p,a[10]=y,a[11]=v,a[12]=u*i+l*o+g*s+r[12],a[13]=_*i+f*o+p*s+r[13],a[14]=h*i+d*o+y*s+r[14],a[15]=c*i+m*o+v*s+r[15]}},ef.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]},ef);ty._tempVec30=new tf,ty._tempVec31=new tf,ty._tempVec32=new tf,ty._tempMat30=new tg,ty._identity=new ty(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);var tv=((eg=(em=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},eg.add=function(e){return this._x+=e._x,this._y+=e._y,this._onValueChanged&&this._onValueChanged(),this},eg.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._onValueChanged&&this._onValueChanged(),this},eg.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._onValueChanged&&this._onValueChanged(),this},eg.divide=function(e){return this._x/=e._x,this._y/=e._y,this._onValueChanged&&this._onValueChanged(),this},eg.length=function(){var e=this._x,t=this._y;return Math.sqrt(e*e+t*t)},eg.lengthSquared=function(){var e=this._x,t=this._y;return e*e+t*t},eg.negate=function(){return this._x=-this._x,this._y=-this._y,this._onValueChanged&&this._onValueChanged(),this},eg.normalize=function(){return em.normalize(this,this),this},eg.scale=function(e){return this._x*=e,this._y*=e,this._onValueChanged&&this._onValueChanged(),this},eg.clone=function(){return new em(this._x,this._y)},eg.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._onValueChanged&&this._onValueChanged(),this},eg.copyFromArray=function(e,t){return void 0===t&&(t=0),this._x=e[t],this._y=e[t+1],this._onValueChanged&&this._onValueChanged(),this},eg.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y},eg.toJSON=function(){return{x:this._x,y:this._y}},em.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._onValueChanged&&n._onValueChanged()},em.subtract=function(e,t,n){n._x=e._x-t._x,n._y=e._y-t._y,n._onValueChanged&&n._onValueChanged()},em.multiply=function(e,t,n){n._x=e._x*t._x,n._y=e._y*t._y,n._onValueChanged&&n._onValueChanged()},em.divide=function(e,t,n){n._x=e._x/t._x,n._y=e._y/t._y,n._onValueChanged&&n._onValueChanged()},em.dot=function(e,t){return e._x*t._x+e._y*t._y},em.distance=function(e,t){var n=t._x-e._x,r=t._y-e._y;return Math.sqrt(n*n+r*r)},em.distanceSquared=function(e,t){var n=t._x-e._x,r=t._y-e._y;return n*n+r*r},em.equals=function(e,t){return tl.equals(e._x,t._x)&&tl.equals(e._y,t._y)},em.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()},em.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()},em.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()},em.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._onValueChanged&&t._onValueChanged()},em.normalize=function(e,t){var n=e._x,r=e._y,a=Math.sqrt(n*n+r*r);a>tl.zeroTolerance&&(a=1/a,t._x=n*a,t._y=r*a,t._onValueChanged&&t._onValueChanged())},em.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._onValueChanged&&n._onValueChanged()},tc(em,[{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()}}]),em);tv._zero=new tv(0,0),tv._one=new tv(1,1);var tx=((ey=(ep=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 ep.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 ep(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.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}},ep.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()},ep.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()},ep.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()},ep.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()},ep.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},ep.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)},ep.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},ep.equals=function(e,t){return tl.equals(e._x,t._x)&&tl.equals(e._y,t._y)&&tl.equals(e._z,t._z)&&tl.equals(e._w,t._w)},ep.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()},ep.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()},ep.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()},ep.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=-e._w,t._onValueChanged&&t._onValueChanged()},ep.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>tl.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,t._onValueChanged&&t._onValueChanged())},ep.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()},ep.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()},ep.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()},tc(ep,[{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()}}]),ep);tx._zero=new tx(0,0,0,0),tx._one=new tx(1,1,1,1);var tz=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[t_(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),p=g.transform,y=g.emulatedPosition;if(p){var v=_.targetRayPose;v.matrix.copyFromArray(p.matrix),v.position.copyFrom(p.position),v.rotation.copyFrom(p.orientation),_.trackingState=y?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 eV.LeftCamera;case"right":return eV.RightCamera;default:return eV.Camera}}(f.eye),m=_[c].transform;d===eV.Camera&&(u||(u=!0));var g=e[d],p=g.pose;p.matrix.copyFromArray(m.matrix),p.position.copyFrom(m.position),p.rotation.copyFrom(m.orientation),g.projectionMatrix.copyFromArray(f.projectionMatrix),g.trackingState=h?eM.TrackingLost:eM.Tracking;var y=a.getViewport(f),v=y.width/i,x=y.height/o,z=y.x/i,w=1-y.y/o-x;g.viewport.set(z,w,v,x)}if(!u){var C=e[eV.LeftCamera],V=e[eV.RightCamera],k=e[eV.Camera],M=C.pose,S=V.pose,b=k.pose;b.rotation.copyFrom(M.rotation);var T=b.position,R=b.matrix;tf.add(M.position,S.position,T),T.scale(.5),R.copyFrom(M.matrix);var q=R.elements;q[12]=T.x,q[13]=T.y,q[14]=T.z,k.projectionMatrix.copyFrom(C.projectionMatrix),k.trackingState=h?eM.TrackingLost:eM.Tracking,k.viewport=C.viewport.width&&C.viewport.height?C.viewport:V.viewport}}},e}(),tw=function(){function e(e,t,n){this._events=[],this._screenPointers=[],this._inputEventTypeMap={selectstart:eb.SelectStart,select:eb.Select,selectend:eb.SelectEnd,squeezestart:eb.SqueezeStart,squeeze:eb.Squeeze,squeezeend:eb.SqueezeEnd},this._targetRayModeMap={gaze:eT.Gaze,"tracked-pointer":eT.TrackedPointer,screen:eT.Screen},this._frame=new tz(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:t_(t),targetRayMode:this._targetRayModeMap[t.targetRayMode]};if(n.targetRayMode===eT.Screen){var r=this._screenPointers,a=t.gamepad.axes;switch(n.x=a[0],n.y=a[1],n.type){case eb.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 eb.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:eb.Select,targetRayMode:eT.Screen,input:eV.Controller,id:n,x:a[0],y:a[1]};e.push(i)}}return e}}]),e}(),tC=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(tu(e)).then(function(e){e?t():n(Error("The current context doesn't support WebXR."))})})},t.isSupportedFeature=function(e){switch(e){case eq.HitTest:case eq.PlaneTracking:return"undefined"!=typeof XRPlane;case eq.AnchorTracking:return"undefined"!=typeof XRAnchor;case eq.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?ts(i,[].concat(r)):null},t.requestSession=function(e,t,n){return new Promise(function(r,a){for(var i=tu(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 tw(t,o,e))},a)},a)},a)},a)})},e}();function tV(e){return function(t){tC._platformFeatureMap[e]=t}}tC._platformFeatureMap=[];var tk=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=eP.Destroyed},r(t,[{key:"canModifyRequestTrackingAfterInit",get:function(){return!1}}]),t}(function(){}),tM=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===eP.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===eP.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 eP.Submitted:e.state=eP.WaitingDestroy;break;case eP.Resolved:e.xrAnchor.delete(),e.state=eP.Destroyed;break;default:e.state=eP.Destroyed}},n._assembleOptions=function(e){e.requiredFeatures.push("anchors")},n._addAnchor=function(e,t,n){if(e&&t){n.state=eP.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===eP.WaitingDestroy?(e.delete(),n.state=eP.Destroyed):(n.xrAnchor=e,n.state=eP.Resolved)},function(){n.state===eP.WaitingDestroy?n.state=eP.Destroyed:n.state=eP.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}(tk);tM=o([tV(eq.AnchorTracking)],tM);var tS=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=eP.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=eP.Resolved):(o.state=eP.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}(tk);tS=o([tV(eq.ImageTracking)],tS),(ev=eI||(eI={}))[ev.NotReceived=0]="NotReceived",ev[ev.Waiting=1]="Waiting",ev[ev.Received=2]="Received";var tb=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=eP.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 tf)).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}(tk);tb=o([tV(eq.PlaneTracking)],tb),e.WebXRDevice=tC,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(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,k,S,b,T,R,q,P,A,F,E,L,D,I,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,ek,eS,eb,eT,eR,eq,eP,eA,eF,eE,eL,eD,eI=((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._getCameraClearFlagsMask=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=ek||(ek={}))[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=ek.None,e.down=ek.None,e.up=ek.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=eS||(eS={}))[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,t){this._xrManager=e,this._engine=t,this._cameras=[],this._controllers=[],this._added=[],this._removed=[],this._trackedDevices=[],this._statusSnapshot=[],this._listeners=[];for(var n=this._trackedDevices,r=this._controllers,a=this._cameras,i=0;i<6;i++)switch(i){case eC.Camera:case eC.LeftCamera:case eC.RightCamera:a.push(n[i]=new ej(i));break;case eC.Controller:case eC.LeftController:case eC.RightController:r.push(n[i]=new eO(i))}this._statusSnapshot.fill(eM.NotTracking,0,n.length)}).prototype).getTrackedDevice=function(e){return this._trackedDevices[e]},z.addTrackedDeviceChangedListener=function(e){this._listeners.push(e)},z.removeTrackedDeviceChangedListener=function(e){var t=this._listeners,n=t.indexOf(e);n>=0&&t.splice(n,1)},z._onUpdate=function(){var e=this._added,t=this._removed,n=this._listeners,r=this._statusSnapshot,a=this._trackedDevices,i=this._controllers;e.length=t.length=0;for(var o=0,s=i.length;o<s;o++){var u=i[o];u.down=u.up=0}for(var _=this._xrManager.sessionManager._platformSession,h=_.events,c=0,l=h.length;c<l;c++)this._handleEvent(h[c]);_.resetEvents(),_.frame.updateInputs(a);for(var f=0,d=a.length;f<d;f++){var m=a[f];if(m){var g=m.trackingState;r[f]===eM.Tracking?g!==eM.Tracking&&t.push(m):g===eM.Tracking&&e.push(m),r[f]=g}}if(e.length>0||t.length>0)for(var y=0,p=n.length;y<p;y++)n[y](e,t)},z._onDestroy=function(){this._listeners.length=0},z._handleEvent=function(e){var t=this._trackedDevices[e.input];switch(e.targetRayMode){case eb.TrackedPointer:switch(e.type){case eS.SelectStart:t.down|=ek.Select,t.pressedButtons|=ek.Select;break;case eS.SelectEnd:t.up|=ek.Select,t.pressedButtons&=~ek.Select;break;case eS.SqueezeStart:t.down|=ek.Squeeze,t.pressedButtons|=ek.Squeeze;break;case eS.SqueezeEnd:t.up|=ek.Squeeze,t.pressedButtons&=~ek.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 eS.SelectStart:r.dispatchEvent(this._makeUpPointerEvent("pointerdown",e.id,s,u));break;case eS.Select:r.dispatchEvent(this._makeUpPointerEvent("pointermove",e.id,s,u));break;case eS.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(k=function(){var e;return e=M.apply(this,arguments)||this,e.features=[],e},M),(S=k.prototype).isSupportedFeature=function(e){return this._platformDevice.isSupportedFeature(k._featureMap.get(e))},S.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(k._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},S.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}},S.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)})},S.exitXR=function(){var e=this;return new Promise(function(t,n){e.sessionManager._exit().then(function(){t()},n)})},S._initialize=function(e,t){this._platformDevice=t,this.sessionManager=new eW(this,e),this.inputManager=new eX(this,e),this.cameraManager=new eI(this)},S._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()}}},S._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())},S._getRequestAnimationFrame=function(){return this.sessionManager._getRequestAnimationFrame()},S._getCancelAnimationFrame=function(){return this.sessionManager._getCancelAnimationFrame()},S._getCameraClearFlagsMask=function(e){return this.cameraManager._getCameraClearFlagsMask(e)},S._onSessionStop=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionStop()}},S._onSessionInit=function(){for(var e=this.features,t=0,n=e.length;t<n;t++){var r=e[t];r.enabled&&r._onSessionInit()}},S._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()}},S._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(k,[{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}}]),k);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 k=C[V];k.destroyed||k.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(D=function(){var e;return e=eY.apply(this,arguments)||this,e.polygon=[],e.attributesDirty=!1,e},eY),D),e0=(c(I=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),I.prototype._generateTracked=function(){var e=new e1;return e.id=eQ._uuid++,e},h(I,[{key:"detectionMode",get:function(){return this._requestTrackings[0].detectionMode}},{key:"trackedPlanes",get:function(){return this._tracked}}]),I);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){var r=this;return new t.AssetPromise(function(a,i){r.request(e.url,tt({},e,{type:"arraybuffer"})).then(function(e){t.decode(e,n.engine).then(function(e){a(e)})}).catch(i)})},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.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 k=V;V=M,M=k}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,k=l*y-f*g,S=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*S+M*k;if(!P)return null;P=1/P,r[0]=(_*q-h*R+c*T)*P,r[1]=(h*b-u*q-c*S)*P,r[2]=(u*R-_*b+c*k)*P,r[3]=(o*R-i*q-s*T)*P,r[4]=(a*q-o*b+s*S)*P,r[5]=(i*b-a*R-s*k)*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.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],k=a[4],S=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],D=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*k+h*S+d*b+p*T,i[5]=s*k+c*S+m*b+v*T,i[6]=u*k+l*S+g*b+x*T,i[7]=_*k+f*S+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*D,i[13]=s*F+c*E+m*L+v*D,i[14]=u*F+l*E+g*L+x*D,i[15]=_*F+f*E+y*L+z*D},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,k=l*y-f*g,S=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*S+M*k;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*S)*P,r[5]=(a*q-o*b+s*S)*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*k)*P,r[9]=(i*b-a*R-s*k)*P,r[10]=(g*V-y*w+v*x)*P,r[11]=(f*w-l*V-m*x)*P,r[12]=(_*S-u*T-h*k)*P,r[13]=(a*T-i*S+o*k)*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,k=u*s*o+_*a,S=_*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*k+z*S,l[1]=d*M+p*k+w*S,l[2]=m*M+v*k+C*S,l[3]=g*M+x*k+V*S,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.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.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],k=C.pose,S=V.pose,b=M.pose;b.rotation.copyFrom(k.rotation);var T=b.position,R=b.matrix;t_.add(k.position,S.position,T),T.scale(.5),R.copyFrom(k.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:eS.SelectStart,select:eS.Select,selectend:eS.SelectEnd,squeezestart:eS.SqueezeStart,squeeze:eS.Squeeze,squeezeend:eS.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 eS.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 eS.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:eS.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=eD||(eD={}))[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})});
2
2
  //# sourceMappingURL=browser.min.js.map