@galacean/engine-xr-webxr 1.2.0-beta.2 → 1.2.0-beta.3

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 +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 _(e,t,n){return(_=!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 u(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&&u(e.prototype,t),n&&u(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,(eg=ex||(ex={}))[eg.Controller=0]="Controller",eg[eg.LeftController=1]="LeftController",eg[eg.RightController=2]="RightController",eg[eg.Camera=3]="Camera",eg[eg.LeftCamera=4]="LeftCamera",eg[eg.RightCamera=5]="RightCamera",eg[eg.LeftHand=6]="LeftHand",eg[eg.RightHand=7]="RightHand",(ey=ez||(ez={}))[ey.None=0]="None",ey[ey.Initialized=1]="Initialized",ey[ey.Running=2]="Running",ey[ey.Paused=3]="Paused";var f,d,m,g,y,p,v,x,z,w,C,V,M,k,S,b,T,R,q,P,F,A,E,D,L,I,N,B,j,O,W,X,H,U,G,Q,Y,J,Z,K,$,ee,et,en,er,ea,ei,eo,es,e_,eu,eh,ec,el,ef,ed,em,eg,ey,ep,ev,ex,ez,ew,eC,eV,eM,ek,eS,eb,eT,eR,eq,eP,eF,eA,eE=((ev=(ep=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 ex.Camera:n._cameraType=t.CameraType.XRCenterCamera;break;case ex.LeftCamera:n._cameraType=t.CameraType.XRLeftCamera;break;case ex.RightCamera:n._cameraType=t.CameraType.XRRightCamera}r._camera=n}},ev.detachCamera=function(e){var n=this._xrManager.inputManager.getTrackedDevice(e),r=n._camera;return r&&(r._cameraType=t.CameraType.Normal),n._camera=null,r},ev._onSessionStart=function(){},ev._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 _=i.viewport,u=a.viewport,h=u.x,c=u.y,l=u.width,f=u.height;h===_.x&&c===_.y&&l===_.z&&f===_.w||(i.viewport=_.set(h,c,l,f)),t.Matrix.equals(i.projectionMatrix,a.projectionMatrix)||(i.projectionMatrix=a.projectionMatrix)}}},ev._onSessionExit=function(){},ev._getCameraClearFlagsMask=function(e){return e!==t.CameraType.XRCenterCamera?t.CameraClearFlags.None:this._xrManager.sessionManager.state===ez.Running?t.CameraClearFlags.Color:t.CameraClearFlags.None},ev._onDestroy=function(){},h(ep,[{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.")}}]),ep),eD=function(){this.position=new t.Vector3,this.rotation=new t.Quaternion,this.matrix=new t.Matrix,this.inverseMatrix=new t.Matrix};(f=ew||(ew={}))[f.NotTracking=0]="NotTracking",f[f.Tracking=1]="Tracking",f[f.TrackingLost=2]="TrackingLost";var eL=function(e){this.type=e,this.trackingState=ew.NotTracking},eI=(c(d=function(){var e;return e=eL.apply(this,arguments)||this,e.pose=new eD,e.viewport=new t.Rect,e.projectionMatrix=new t.Matrix,e},eL),d);(m=eC||(eC={}))[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 eN=(c(g=function(){var e;return e=eL.apply(this,arguments)||this,e.gripPose=new eD,e.targetRayPose=new eD,e.pressedButtons=eC.None,e.down=eC.None,e.up=eC.None,e},eL),(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=eV||(eV={}))[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=eM||(eM={}))[v.Gaze=0]="Gaze",v[v.TrackedPointer=1]="TrackedPointer",v[v.Screen=2]="Screen";var eB=((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 ex.Camera:case ex.LeftCamera:case ex.RightCamera:a.push(n[i]=new eI(i));break;case ex.Controller:case ex.LeftController:case ex.RightController:r.push(n[i]=new eN(i))}this._statusSnapshot.fill(ew.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 _=i[o];_.down=_.up=0}for(var u=this._xrManager.sessionManager._platformSession,h=u.events,c=0,l=h.length;c<l;c++)this._handleEvent(h[c]);u.resetEvents(),u.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]===ew.Tracking?g!==ew.Tracking&&t.push(m):g===ew.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 eM.TrackedPointer:switch(e.type){case eV.SelectStart:t.down|=eC.Select,t.pressedButtons|=eC.Select;break;case eV.SelectEnd:t.up|=eC.Select,t.pressedButtons&=~eC.Select;break;case eV.SqueezeStart:t.down|=eC.Squeeze,t.pressedButtons|=eC.Squeeze;break;case eV.SqueezeEnd:t.up|=eC.Squeeze,t.pressedButtons&=~eC.Squeeze}break;case eM.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,_=o*(e.y+1)*.5;switch(e.type){case eV.SelectStart:r.dispatchEvent(this._makeUpPointerEvent("pointerdown",e.id,s,_));break;case eV.Select:r.dispatchEvent(this._makeUpPointerEvent("pointermove",e.id,s,_));break;case eV.SelectEnd:r.dispatchEvent(this._makeUpPointerEvent("pointerup",e.id,s,_)),r.dispatchEvent(this._makeUpPointerEvent("pointerleave",e.id,s,_))}}},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=ek||(ek={}))[w.None=0]="None",w[w.AR=1]="AR",w[w.VR=2]="VR";var ej=((V=(C=function(e,t){this._xrManager=e,this._engine=t,this._mode=ek.None,this._state=ez.None,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=ez.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!==ez.Running)throw Error("Session is not running.");n._mainFrameBuffer=null,n._mainFrameWidth=n._mainFrameHeight=0,e.stop(),this._state=ez.Paused,this._xrManager._onSessionStop(),t.isPaused||(t.pause(),t.resume())},V._initialize=function(e,t){var n=this;return new Promise(function(r,a){for(var i=n._xrManager,o=[],s=0,_=t.length;s<_;s++){var u=t[s]._platformFeature;u&&o.push(u)}i._platformDevice.requestSession(n._rhi,e,o).then(function(t){n._mode=e,n._platformSession=t,n._state=ez.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===ez.Running?this._platformSession.requestAnimationFrame:this._raf},V._getCancelAnimationFrame=function(){return this._state===ez.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=ez.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}},{key:"supportedFrameRate",get:function(){return this._platformSession.supportedFrameRates}},{key:"frameRate",get:function(){return this._platformSession.frameRate}}]),C),eO=(M=t.XRManager,c(k=function(){return M.apply(this,arguments)},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.");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=_(e,[].concat(this,n));return this._features.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.getFeatures=function(e,t){t?t.length=0:t=[];for(var n=this._features,r=0,a=n.length;r<a;r--){var i=n[r];l(i,e)&&t.push(i)}return t},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._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=[],this._platformDevice=t,this.sessionManager=new ej(this,e),this.inputManager=new eB(this,e),this.cameraManager=new eE(this)},S._update=function(){var e=this.sessionManager;if(e.state===ez.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 eW(e){return function(t){eO._featureMap.set(t,e)}}eO._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,[eO]);var eX=((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=eS||(eS={}))[R.Plane=1]="Plane",R[R.All=1]="All";var eH=function(){this.point=new t.Vector3,this.normal=new t.Vector3};function eU(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,(q=eb||(eb={}))[q.AnchorTracking=0]="AnchorTracking",q[q.ImageTracking=1]="ImageTracking",q[q.PlaneTracking=2]="PlaneTracking",q[q.HitTest=3]="HitTest",(P=eT||(eT={}))[P.None=0]="None",P[P.Submitted=1]="Submitted",P[P.Resolved=2]="Resolved",P[P.Rejected=3]="Rejected",P[P.Destroyed=4]="Destroyed",P[P.WaitingDestroy=5]="WaitingDestroy";var eG=(c(F=function(){var e;return e=eX.apply(this,arguments)||this,e._requestTrackings=[],e._tracked=[],e._added=[],e._updated=[],e._removed=[],e._statusSnapshot={},e._listeners=[],e},eX),(A=F.prototype).addChangedListener=function(e){this._listeners.push(e)},A.removeChangedListener=function(e){var t=this._listeners,n=t.indexOf(e);n>=0&&t.splice(n,1)},A._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,_=this._updated,u=this._removed;if(t&&a.length&&n.checkAvailable(e,t,a)){s.length=_.length=u.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 eT.Destroyed:for(var f=l.tracked,d=0,m=f.length;d<m;d++){var g=f[d],y=g.id;i[y]===ew.Tracking&&(u.push(g),o.splice(o.indexOf(g),1)),i[y]=ew.NotTracking}break;case eT.Resolved:for(var p=l.tracked,v=0,x=p.length;v<x;v++){var z=p[v],w=z.id;z.state===ew.Tracking?i[w]===ew.Tracking?_.push(z):(s.push(z),i[w]=ew.Tracking,o.push(z)):(i[w]===ew.Tracking&&(u.push(z),o.splice(o.indexOf(z),1)),i[w]=z.state)}}}for(var C=a.length-1;C>=0;C--)a[C].state===eT.Destroyed&&a.splice(C,1);if(s.length>0||_.length>0||u.length>0)for(var V=0,M=r.length;V<M;V++)r[V](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},A._onDestroy=function(){this._requestTrackings.length=this._tracked.length=this._added.length=this._updated.length=this._removed.length=0},A._addRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(eb[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(eb[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(eb[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])},F);eG._uuid=0,(E=eR||(eR={}))[E.None=0]="None",E[E.Horizontal=1]="Horizontal",E[E.Vertical=2]="Vertical",E[E.EveryThing=3]="EveryThing";var eQ=function(){this.state=eT.None,this.tracked=[]},eY=(c(D=function(e){var t;return(t=eQ.call(this)||this).detectionMode=e,t},eQ),D),eJ=function(){this.pose=new eD,this.state=ew.NotTracking},eZ=(c(L=function(){var e;return e=eJ.apply(this,arguments)||this,e.polygon=[],e.attributesDirty=!1,e},eJ),L),eK=(c(I=function(e,t){var n;return void 0===t&&(t=eR.EveryThing),(n=eG.call(this,e,eb.PlaneTracking,t)||this)._addRequestTracking(new eY(t)),n},eG),I.prototype._generateTracked=function(){var e=new eZ;return e.id=eG._uuid++,e},h(I,[{key:"detectionMode",get:function(){return this._requestTrackings[0].detectionMode}},{key:"trackedPlanes",get:function(){return this._tracked}}]),I);eK=eU([eW(eb.PlaneTracking)],eK);var e$=(c(N=function(e){var n;return(n=eX.call(this,e,eb.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},eX),(B=N.prototype).hitTest=function(e,t){var n=[];return t&eS.Plane&&this._hitTestPlane(e,n),n},B.screenHitTest=function(e,t,n){var r=this._xrManager;if(r.sessionManager.mode!==ek.AR)throw Error("Only AR mode supports using screen ray hit test.");var a=r.inputManager.getTrackedDevice(ex.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(eK);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,_=r.trackedPlanes,u=0,h=_.length;u<h;u++){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 eH;f.point.copyFrom(o),f.normal.copyFrom(i),f.distance=l,f.trackedObject=c,f.trackableType=eS.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,_=o[s-1],u=0,h=0;h<s;h++){var c=o[h];t.Vector3.subtract(c,_,r),t.Vector3.subtract(e,_,a),t.Vector3.cross(r,a,i);var l=i.y;if(0===u)l>0?u=1:l<0&&(u=-1);else if(l>0&&u<0||l<0&&u>0)return!1;_=c}return!0},N);e$=eU([eW(eb.HitTest)],e$);var e1=(c(j=function(){return eJ.apply(this,arguments)},eJ),j),e0=(c(O=function(e,t){var n;return(n=eQ.call(this)||this).position=e,n.rotation=t,n},eQ),O),e3=(c(W=function(e){var t;return(t=eG.call(this,e,eb.AnchorTracking)||this)._anchors=[],t},eG),(X=W.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 e0(e,t),a=this._generateTracked();return r.tracked[0]=a,this._addRequestTracking(r),n.push(a),a},X.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)},X.clearAnchors=function(){if(!this._enabled)throw Error("Cannot remove anchors from a disabled anchor manager.");this._removeAllRequestTrackings()},X._generateTracked=function(){var e=new e1;return e.id=eG._uuid++,e},h(W,[{key:"trackingAnchors",get:function(){return this._anchors}},{key:"trackedAnchors",get:function(){return this._tracked}}]),W);e3=eU([eW(eb.AnchorTracking)],e3);var e2=(c(H=function(e){var t;return(t=eQ.call(this)||this).image=e,t},eQ),H),e5=(c(U=function(){return eJ.apply(this,arguments)},eJ),U),e4=(c(G=function(e,t){var n;if((n=eG.call(this,e,eb.ImageTracking,t)||this)._trackingImages=t,(t?t.length:0)>0)for(var r=0,a=t.length;r<a;r++)n._addRequestTracking(new e2(t[r]));else console.warn("No image to be tracked.");return n},eG),G.prototype._generateTracked=function(){var e=new e5;return e.id=eG._uuid++,e},h(G,[{key:"trackingImages",get:function(){return this._trackingImages}},{key:"trackedImages",get:function(){return this._tracked}}]),G);function e6(e,t,n){return(e6=!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 e8(e){switch(e){case 1:return"immersive-ar";case 2:return"immersive-vr";default:return null}}function e7(e){var t;switch(e.targetRayMode){case"gaze":break;case"screen":return ex.Controller;case"tracked-pointer":if(e.hand)switch(e.handedness){case"left":return ex.LeftHand;case"right":return ex.RightHand}else switch(e.handedness){case"left":return ex.LeftController;case"right":return ex.RightController}}return t}function e9(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 te(e,t,n){return t&&e9(e.prototype,t),n&&e9(e,n),e}e4=eU([eW(eb.ImageTracking)],e4),(Q=eq||(eq={}))[Q.Disjoint=0]="Disjoint",Q[Q.Contains=1]="Contains",Q[Q.Intersects=2]="Intersects",(Y=eP||(eP={}))[Y.Back=0]="Back",Y[Y.Front=1]="Front",Y[Y.Intersecting=2]="Intersecting",(J=eF||(eF={}))[J.Near=0]="Near",J[J.Far=1]="Far",J[J.Left=2]="Left",J[J.Right=3]="Right",J[J.Bottom=4]="Bottom",J[J.Top=5]="Top";var tt=((Z=function(){}).clamp=function(e,t,n){return Math.max(t,Math.min(n,e))},Z.equals=function(e,t){return Math.abs(e-t)<=Z.zeroTolerance},Z.isPowerOf2=function(e){return(e&e-1)==0},Z.radianToDegree=function(e){return e*Z.radToDegreeFactor},Z.degreeToRadian=function(e){return e*Z.degreeToRadFactor},Z);tt.zeroTolerance=1e-6,tt.radToDegreeFactor=180/Math.PI,tt.degreeToRadFactor=Math.PI/180;var tn=(($=(K=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},$.add=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._onValueChanged&&this._onValueChanged(),this},$.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._onValueChanged&&this._onValueChanged(),this},$.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,this._onValueChanged&&this._onValueChanged(),this},$.divide=function(e){return this._x/=e._x,this._y/=e._y,this._z/=e._z,this._onValueChanged&&this._onValueChanged(),this},$.length=function(){var e=this._x,t=this._y,n=this._z;return Math.sqrt(e*e+t*t+n*n)},$.lengthSquared=function(){var e=this._x,t=this._y,n=this._z;return e*e+t*t+n*n},$.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,this._onValueChanged&&this._onValueChanged(),this},$.normalize=function(){return K.normalize(this,this),this},$.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,this._onValueChanged&&this._onValueChanged(),this},$.transformNormal=function(e){return K.transformNormal(this,e,this),this},$.transformToVec3=function(e){return K.transformToVec3(this,e,this),this},$.transformCoordinate=function(e){return K.transformCoordinate(this,e,this),this},$.transformByQuat=function(e){return K.transformByQuat(this,e,this),this},$.clone=function(){return new K(this._x,this._y,this._z)},$.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._onValueChanged&&this._onValueChanged(),this},$.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},$.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z},$.toJSON=function(){return{x:this._x,y:this._y,z:this._z}},K.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()},K.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()},K.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()},K.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()},K.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z},K.cross=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,_=t._z;n.set(a*_-i*s,i*o-r*_,r*s-a*o)},K.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)},K.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},K.equals=function(e,t){return tt.equals(e._x,t._x)&&tt.equals(e._y,t._y)&&tt.equals(e._z,t._z)},K.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()},K.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()},K.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()},K.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._onValueChanged&&t._onValueChanged()},K.normalize=function(e,t){var n=e._x,r=e._y,a=e._z,i=Math.sqrt(n*n+r*r+a*a);i>tt.zeroTolerance&&(i=1/i,t.set(n*i,r*i,a*i))},K.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._z=e._z*t,n._onValueChanged&&n._onValueChanged()},K.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()},K.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()},K.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()},K.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()},K.transformByQuat=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,_=t._z,u=t._w,h=u*r+s*i-_*a,c=u*a+_*r-o*i,l=u*i+o*a-s*r,f=-o*r-s*a-_*i;n._x=h*u-f*o-c*_+l*s,n._y=c*u-f*s-l*o+h*_,n._z=l*u-f*_-h*s+c*o,n._onValueChanged&&n._onValueChanged()},te(K,[{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()}}]),K);tn._zero=new tn(0,0,0),tn._one=new tn(1,1,1),((et=(ee=function(e,t){void 0===e&&(e=null),void 0===t&&(t=0),this.center=new tn,this.radius=0,e&&this.center.copyFrom(e),this.radius=t}).prototype).clone=function(){return new ee(this.center,this.radius)},et.copyFrom=function(e){return this.center.copyFrom(e.center),this.radius=e.radius,this},ee.fromPoints=function(e,t){if(!e||0===e.length)throw Error("points must be array and length must > 0");var n=e.length,r=ee._tempVec30;r.x=r.y=r.z=0;for(var a=0;a<n;++a)tn.add(e[a],r,r);tn.scale(r,1/n,t.center);for(var i=0,o=0;o<n;++o){var s=tn.distanceSquared(r,e[o]);s>i&&(i=s)}t.radius=Math.sqrt(i)},ee.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=tn.distance(n,a)},ee)._tempVec30=new tn;var tr=((er=(en=function(e,t){void 0===e&&(e=null),void 0===t&&(t=null),this.min=new tn,this.max=new tn,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},er.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},er.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,_=n.z,u=e.length;if(u<8)for(var h=0,c=8-u;h<c;++h)e[u+h]=new tn;return e[0].set(r,s,_),e[1].set(o,s,_),e[2].set(o,a,_),e[3].set(r,a,_),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},er.transform=function(e){return en.transform(this,e,this),this},er.clone=function(){return new en(this.min,this.max)},er.copyFrom=function(e){return this.min.copyFrom(e.min),this.max.copyFrom(e.max),this},en.fromCenterAndExtent=function(e,t,n){tn.subtract(e,t,n.min),tn.add(e,t,n.max)},en.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];tn.min(n,o,n),tn.max(r,o,r)}},en.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},en.transform=function(e,t,n){var r=en._tempVec30,a=en._tempVec31;e.getCenter(r),e.getExtent(a),tn.transformCoordinate(r,t,r);var i=a.x,o=a.y,s=a.z,_=t.elements,u=_[0],h=_[1],c=_[2],l=_[4],f=_[5],d=_[6],m=_[8],g=_[9],y=_[10];a.set((0===u?0:Math.abs(i*u))+(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))),tn.subtract(r,a,n.min),tn.add(r,a,n.max)},en.merge=function(e,t,n){return tn.min(e.min,t.min,n.min),tn.max(e.max,t.max,n.max),n},en);tr._tempVec30=new tn,tr._tempVec31=new tn;var ta=((ea=function(){}).intersectionPointThreePlanes=function(e,t,n,r){var a=e.normal,i=t.normal,o=n.normal;tn.cross(i,o,ea._tempVec30),tn.cross(o,a,ea._tempVec31),tn.cross(a,i,ea._tempVec32);var s=-tn.dot(a,ea._tempVec30),_=-tn.dot(i,ea._tempVec31),u=-tn.dot(o,ea._tempVec32);tn.scale(ea._tempVec30,e.distance/s,ea._tempVec30),tn.scale(ea._tempVec31,t.distance/_,ea._tempVec31),tn.scale(ea._tempVec32,n.distance/u,ea._tempVec32),tn.add(ea._tempVec30,ea._tempVec31,r),tn.add(r,ea._tempVec32,r)},ea.distancePlaneAndPoint=function(e,t){return tn.dot(e.normal,t)+e.distance},ea.intersectsPlaneAndPoint=function(e,t){var n=ea.distancePlaneAndPoint(e,t);return n>0?eP.Front:n<0?eP.Back:eP.Intersecting},ea.intersectsPlaneAndBox=function(e,t){var n=t.min,r=t.max,a=e.normal,i=ea._tempVec30,o=ea._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>ea.distancePlaneAndPoint(e,i))?eP.Back:ea.distancePlaneAndPoint(e,o)>0?eP.Front:eP.Intersecting},ea.intersectsPlaneAndSphere=function(e,t){var n=t.center,r=t.radius,a=ea.distancePlaneAndPoint(e,n);return a>r?eP.Front:a<-r?eP.Back:eP.Intersecting},ea.intersectsRayAndPlane=function(e,t){var n=t.normal,r=tt.zeroTolerance,a=tn.dot(n,e.direction);if(Math.abs(a)<r)return -1;var i=tn.dot(n,e.origin),o=(-t.distance-i)/a;if(o<0){if(o<-r)return -1;o=0}return o},ea.intersectsRayAndBox=function(e,t){var n=tt.zeroTolerance,r=e.origin,a=e.direction,i=t.min,o=t.max,s=a.x,_=a.y,u=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(_)<n){if(c<i.y||c>o.y)return -1}else{var v=1/_,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(u)<n){if(l<i.z||l>o.z)return -1}else{var C=1/u,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},ea.intersectsRayAndSphere=function(e,t){var n=e.origin,r=e.direction,a=t.center,i=t.radius,o=ea._tempVec30;tn.subtract(n,a,o);var s=tn.dot(o,r),_=tn.dot(o,o)-i*i;if(s>0&&_>0)return -1;var u=s*s-_;if(u<0)return -1;var h=-s-Math.sqrt(u);return h<0&&(h=0),h},ea.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)},ea.intersectsSphereAndSphere=function(e,t){var n=e.radius+t.radius;return tn.distanceSquared(e.center,t.center)<n*n},ea.intersectsSphereAndBox=function(e,t){var n=e.center,r=t.max,a=t.min,i=ea._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))),tn.distanceSquared(n,i)<=e.radius*e.radius},ea.intersectsFrustumAndBox=function(e,t){for(var n=t.min,r=t.max,a=ea._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),tn.dot(s,a)<-o.distance)return!1}return!0},ea.frustumContainsPoint=function(e,t){var n=ea.distancePlaneAndPoint(e.near,t);return Math.abs(n)<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.far,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.left,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.right,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.top,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.bottom,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:eq.Contains},ea.frustumContainsBox=function(e,t){for(var n=t.min,r=t.max,a=ea._tempVec30,i=ea._tempVec31,o=eq.Contains,s=0;s<6;++s){var _=e.getPlane(s),u=_.normal;if(u.x>=0?(a.x=r.x,i.x=n.x):(a.x=n.x,i.x=r.x),u.y>=0?(a.y=r.y,i.y=n.y):(a.y=n.y,i.y=r.y),u.z>=0?(a.z=r.z,i.z=n.z):(a.z=n.z,i.z=r.z),ea.intersectsPlaneAndPoint(_,a)===eP.Back)return eq.Disjoint;ea.intersectsPlaneAndPoint(_,i)===eP.Back&&(o=eq.Intersects)}return o},ea.frustumContainsSphere=function(e,t){for(var n=eq.Contains,r=0;r<6;++r){var a=e.getPlane(r),i=ea.intersectsPlaneAndSphere(a,t);if(i===eP.Back)return eq.Disjoint;if(i===eP.Intersecting){n=eq.Intersects;break}}return n},ea);ta._tempVec30=new tn,ta._tempVec31=new tn,ta._tempVec32=new tn;var ti=((eo=(ei=function(e,t,n,r,a,i,o,s,_){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===_&&(_=1),this.elements=new Float32Array(9);var u=this.elements;u[0]=e,u[1]=t,u[2]=n,u[3]=r,u[4]=a,u[5]=i,u[6]=o,u[7]=s,u[8]=_}).prototype).set=function(e,t,n,r,a,i,o,s,_){var u=this.elements;return u[0]=e,u[1]=t,u[2]=n,u[3]=r,u[4]=a,u[5]=i,u[6]=o,u[7]=s,u[8]=_,this},eo.add=function(e){return ei.add(this,e,this),this},eo.subtract=function(e){return ei.subtract(this,e,this),this},eo.multiply=function(e){return ei.multiply(this,e,this),this},eo.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],_=e[7],u=e[8];return t*(u*i-o*_)+n*(-u*a+o*s)+r*(_*a-i*s)},eo.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},eo.invert=function(){return ei.invert(this,this),this},eo.rotate=function(e){return ei.rotate(this,e,this),this},eo.scale=function(e){return ei.scale(this,e,this),this},eo.translate=function(e){return ei.translate(this,e,this),this},eo.transpose=function(){return ei.transpose(this,this),this},eo.clone=function(){var e=this.elements;return new ei(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},eo.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},eo.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},eo.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]},eo.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},ei.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]},ei.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]},ei.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],_=r[2],u=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+u*g+l*y,i[1]=s*m+h*g+f*y,i[2]=_*m+c*g+d*y,i[3]=o*p+u*v+l*x,i[4]=s*p+h*v+f*x,i[5]=_*p+c*v+d*x,i[6]=o*z+u*w+l*C,i[7]=s*z+h*w+f*C,i[8]=_*z+c*w+d*C},ei.equals=function(e,t){var n=e.elements,r=t.elements;return tt.equals(n[0],r[0])&&tt.equals(n[1],r[1])&&tt.equals(n[2],r[2])&&tt.equals(n[3],r[3])&&tt.equals(n[4],r[4])&&tt.equals(n[5],r[5])&&tt.equals(n[6],r[6])&&tt.equals(n[7],r[7])&&tt.equals(n[8],r[8])},ei.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},ei.rotationQuaternion=function(e,t){var n=t.elements,r=e._x,a=e._y,i=e._z,o=e._w,s=r+r,_=a+a,u=i+i,h=r*s,c=a*s,l=a*_,f=i*s,d=i*_,m=i*u,g=o*s,y=o*_,p=o*u;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},ei.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},ei.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},ei.invert=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],_=n[4],u=n[5],h=n[6],c=n[7],l=n[8],f=l*_-u*c,d=-l*s+u*h,m=c*s-_*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]=(u*i-o*_)*g,r[3]=d*g,r[4]=(l*a-o*h)*g,r[5]=(-u*a+o*s)*g,r[6]=m*g,r[7]=(-c*a+i*h)*g,r[8]=(_*a-i*s)*g)},ei.normalMatrix=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],_=n[4],u=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*u-i*_,z=a*h-o*_,w=a*c-s*_,C=i*h-o*u,V=i*c-s*u,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]=(u*q-h*R+c*T)*P,r[1]=(h*b-_*q-c*S)*P,r[2]=(_*R-u*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},ei.rotate=function(e,t,n){var r=e.elements,a=n.elements,i=Math.sin(t),o=Math.cos(t),s=r[0],_=r[1],u=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*_+i*c,a[2]=o*u+i*l,a[3]=o*h-i*s,a[4]=o*c-i*_,a[5]=o*l-i*u,a[6]=f,a[7]=d,a[8]=m},ei.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]},ei.translate=function(e,t,n){var r=t._x,a=t._y,i=e.elements,o=n.elements,s=i[0],_=i[1],u=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]=_,o[2]=u,o[3]=h,o[4]=c,o[5]=l,o[6]=r*s+a*h+f,o[7]=r*_+a*c+d,o[8]=r*u+a*l+m},ei.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]},ei),to=((e_=(es=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},e_.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onValueChanged&&this._onValueChanged(),this},e_.getAxisAngle=function(e){var t=this._x,n=this._y,r=this._z,a=t*t+n*n+r*r;if(a<tt.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)},e_.identity=function(){return this._x=0,this._y=0,this._z=0,this._w=1,this._onValueChanged&&this._onValueChanged(),this},e_.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)},e_.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},e_.normalize=function(){return es.normalize(this,this),this},e_.toEuler=function(e){this._toYawPitchRoll(e);var t=e._x;return e._x=e._y,e._y=t,e._onValueChanged&&e._onValueChanged(),e},e_.toYawPitchRoll=function(e){return this._toYawPitchRoll(e),e._onValueChanged&&e._onValueChanged(),e},e_.rotateX=function(e){return es.rotateX(this,e,this),this},e_.rotateY=function(e){return es.rotateY(this,e,this),this},e_.rotateZ=function(e){return es.rotateZ(this,e,this),this},e_.rotationAxisAngle=function(e,t){return es.rotationAxisAngle(e,t,this),this},e_.multiply=function(e){return es.multiply(this,e,this),this},e_.invert=function(){return es.invert(this,this),this},e_.dot=function(e){return es.dot(this,e)},e_.lerp=function(e,t){return es.lerp(this,e,t,this),this},e_.rotateAxisAngle=function(e,t){return es._tempQuat1.rotationAxisAngle(e,t),this.multiply(es._tempQuat1),this},e_.clone=function(){return new es(this._x,this._y,this._z,this._w)},e_.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},e_.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},e_.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},e_.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},e_._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,_=a*a,u=i+o+s+_,h=2*(t*a-n*r);h>(1-tt.zeroTolerance)*u?(e._x=Math.atan2(2*(a*n-t*r),s+_-o-s),e._y=Math.PI/2,e._z=0):h<-(1-tt.zeroTolerance)*u?(e._x=Math.atan2(2*(a*n-t*r),s+_-o-s),e._y=-Math.PI/2,e._z=0):(e._x=Math.atan2(2*(r*t+n*a),s+_-o-i),e._y=Math.asin(h/u),e._z=Math.atan2(2*(t*n+r*a),o+_-s-i))},es.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()},es.multiply=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t._x,_=t._y,u=t._z,h=t._w;n._x=r*h+o*s+a*u-i*_,n._y=a*h+o*_+i*s-r*u,n._z=i*h+o*u+r*_-a*s,n._w=o*h-r*s-a*_-i*u,n._onValueChanged&&n._onValueChanged()},es.conjugate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=e._w,t._onValueChanged&&t._onValueChanged()},es.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},es.equals=function(e,t){return tt.equals(e._x,t._x)&&tt.equals(e._y,t._y)&&tt.equals(e._z,t._z)&&tt.equals(e._w,t._w)},es.rotationAxisAngle=function(e,t,n){var r=es._tempVector3;tn.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()},es.rotationEuler=function(e,t,n,r){es.rotationYawPitchRoll(t,e,n,r)},es.rotationYawPitchRoll=function(e,t,n,r){var a=.5*n,i=.5*t,o=.5*e,s=Math.sin(a),_=Math.cos(a),u=Math.sin(i),h=Math.cos(i),c=Math.sin(o),l=Math.cos(o),f=l*h,d=c*u;r._x=l*u*_+c*h*s,r._y=c*h*_-l*u*s,r._z=f*s-d*_,r._w=f*_+d*s,r._onValueChanged&&r._onValueChanged()},es.rotationMatrix3x3=function(e,t){var n,r,a=e.elements,i=a[0],o=a[1],s=a[2],_=a[3],u=a[4],h=a[5],c=a[6],l=a[7],f=a[8],d=i+u+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-_)*n):i>=u&&i>=f?(r=.5/(n=Math.sqrt(1+i-u-f)),t._x=.5*n,t._y=(o+_)*r,t._z=(s+c)*r,t._w=(h-l)*r):u>f?(r=.5/(n=Math.sqrt(1+u-i-f)),t._x=(_+o)*r,t._y=.5*n,t._z=(l+h)*r,t._w=(c-s)*r):(r=.5/(n=Math.sqrt(1+f-i-u)),t._x=(s+c)*r,t._y=(h+l)*r,t._z=.5*n,t._w=(o-_)*r),t._onValueChanged&&t._onValueChanged()},es.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>tt.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()}},es.lerp=function(e,t,n,r){var a=1-n;es.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()},es.slerp=function(e,t,n,r){var a,i,o=es.dot(e,t);if(Math.abs(o)>1-tt.zeroTolerance)i=1-n,a=n*Math.sign(o);else{var s=Math.acos(Math.abs(o)),_=1/Math.sin(s);i=Math.sin((1-n)*s)*_,a=Math.sin(n*s)*_*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()},es.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>tt.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,t._onValueChanged&&t._onValueChanged())},es.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()},es.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()},es.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()},es.rotateX=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),_=Math.cos(t);n._x=r*_+o*s,n._y=a*_+i*s,n._z=i*_-a*s,n._w=o*_-r*s,n._onValueChanged&&n._onValueChanged()},es.rotateY=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),_=Math.cos(t);n._x=r*_-i*s,n._y=a*_+o*s,n._z=i*_+r*s,n._w=o*_-a*s,n._onValueChanged&&n._onValueChanged()},es.rotateZ=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),_=Math.cos(t);n._x=r*_+a*s,n._y=a*_-r*s,n._z=i*_+o*s,n._w=o*_-i*s,n._onValueChanged&&n._onValueChanged()},es.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()},te(es,[{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)<tt.zeroTolerance}},{key:"w",get:function(){return this._w},set:function(e){this._w=e,this._onValueChanged&&this._onValueChanged()}}]),es);to._tempVector3=new tn,to._tempQuat1=new to;var ts=((eh=(eu=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===_&&(_=0),void 0===u&&(u=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]=_,g[9]=u,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]=_,g[9]=u,g[10]=h,g[11]=c,g[12]=l,g[13]=f,g[14]=d,g[15]=m,this},eh.multiply=function(e){return eu.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],_=e[7],u=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*_-a*i)*(h*m-c*d)+(n*s-r*o)*(u*g-l*f)-(n*_-a*o)*(u*m-c*f)+(r*_-a*s)*(u*d-h*f)},eh.decompose=function(e,t,n){var r=eu._tempMat30,a=this.elements,i=r.elements,o=a[0],s=a[1],_=a[2],u=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+_*_),g=Math.sqrt(u*u+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)<tt.zeroTolerance||Math.abs(g)<tt.zeroTolerance||Math.abs(y)<tt.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]=_*p,i[3]=u*v,i[4]=h*v,i[5]=c*v,i[6]=l*x,i[7]=f*x,i[8]=d*x,to.rotationMatrix3x3(r,t),!0},eh.getRotation=function(e){var t=this.elements,n=t[0]+t[5]+t[10];if(n>tt.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},eh.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],_=t[8],u=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},eh.getTranslation=function(e){var t=this.elements;return e.set(t[12],t[13],t[14]),e},eh.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},eh.invert=function(){return eu.invert(this,this),this},eh.rotateAxisAngle=function(e,t){return eu.rotateAxisAngle(this,e,t,this),this},eh.scale=function(e){return eu.scale(this,e,this),this},eh.translate=function(e){return eu.translate(this,e,this),this},eh.transpose=function(){return eu.transpose(this,this),this},eh.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[9],e[10],e[11],e[12],e[13],e[14],e[15])},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],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},eh.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},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],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]},eu.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],_=r[2],u=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],F=a[11],A=a[12],E=a[13],D=a[14],L=a[15];i[0]=o*w+h*C+d*V+p*M,i[1]=s*w+c*C+m*V+v*M,i[2]=_*w+l*C+g*V+x*M,i[3]=u*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]=_*k+l*S+g*b+x*T,i[7]=u*k+f*S+y*b+z*T,i[8]=o*R+h*q+d*P+p*F,i[9]=s*R+c*q+m*P+v*F,i[10]=_*R+l*q+g*P+x*F,i[11]=u*R+f*q+y*P+z*F,i[12]=o*A+h*E+d*D+p*L,i[13]=s*A+c*E+m*D+v*L,i[14]=_*A+l*E+g*D+x*L,i[15]=u*A+f*E+y*D+z*L},eu.equals=function(e,t){var n=e.elements,r=t.elements;return tt.equals(n[0],r[0])&&tt.equals(n[1],r[1])&&tt.equals(n[2],r[2])&&tt.equals(n[3],r[3])&&tt.equals(n[4],r[4])&&tt.equals(n[5],r[5])&&tt.equals(n[6],r[6])&&tt.equals(n[7],r[7])&&tt.equals(n[8],r[8])&&tt.equals(n[9],r[9])&&tt.equals(n[10],r[10])&&tt.equals(n[11],r[11])&&tt.equals(n[12],r[12])&&tt.equals(n[13],r[13])&&tt.equals(n[14],r[14])&&tt.equals(n[15],r[15])},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,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},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],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]},eu.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},eu.rotationQuaternion=function(e,t){var n=t.elements,r=e._x,a=e._y,i=e._z,o=e._w,s=r+r,_=a+a,u=i+i,h=r*s,c=a*s,l=a*_,f=i*s,d=i*_,m=i*u,g=o*s,y=o*_,p=o*u;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},eu.rotationAxisAngle=function(e,t,n){var r,a,i,o=n.elements,s=e._x,_=e._y,u=e._z,h=Math.sqrt(s*s+_*_+u*u);Math.abs(h)<tt.zeroTolerance||(s*=h=1/h,_*=h,u*=h,r=Math.sin(t),i=1-(a=Math.cos(t)),o[0]=s*s*i+a,o[1]=_*s*i+u*r,o[2]=u*s*i-_*r,o[3]=0,o[4]=s*_*i-u*r,o[5]=_*_*i+a,o[6]=u*_*i+s*r,o[7]=0,o[8]=s*u*i+_*r,o[9]=_*u*i-s*r,o[10]=u*u*i+a,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1)},eu.rotationTranslation=function(e,t,n){eu.rotationQuaternion(e,n);var r=n.elements;r[12]=t._x,r[13]=t._y,r[14]=t._z},eu.affineTransformation=function(e,t,n,r){var a=r.elements,i=t._x,o=t._y,s=t._z,_=t._w,u=i+i,h=o+o,c=s+s,l=i*u,f=i*h,d=i*c,m=o*h,g=o*c,y=s*c,p=_*u,v=_*h,x=_*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},eu.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},eu.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},eu.invert=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],_=n[4],u=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*u-i*_,z=a*h-o*_,w=a*c-s*_,C=i*h-o*u,V=i*c-s*u,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]=(u*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-_*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]=(_*R-u*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]=(u*S-_*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},eu.lookAt=function(e,t,n,r){var a=r.elements,i=eu._tempVec30,o=eu._tempVec31,s=eu._tempVec32;tn.subtract(e,t,s),s.normalize(),tn.cross(n,s,i),i.normalize(),tn.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]=-tn.dot(i,e),a[13]=-tn.dot(o,e),a[14]=-tn.dot(s,e),a[15]=1},eu.ortho=function(e,t,n,r,a,i,o){var s=o.elements,_=1/(e-t),u=1/(n-r),h=1/(a-i);s[0]=-2*_,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*u,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*h,s[11]=0,s[12]=(e+t)*_,s[13]=(r+n)*u,s[14]=(i+a)*h,s[15]=1},eu.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},eu.rotateAxisAngle=function(e,t,n,r){var a,i,o,s=t._x,_=t._y,u=t._z,h=Math.sqrt(s*s+_*_+u*u);if(!(Math.abs(h)<tt.zeroTolerance)){var c=e.elements,l=r.elements;s*=h=1/h,_*=h,u*=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=_*s*o+u*a,S=u*s*o-_*a,b=s*_*o-u*a,T=_*_*o+i,R=u*_*o+s*a,q=s*u*o+_*a,P=_*u*o-s*a,F=u*u*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*F,l[9]=d*q+p*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])}},eu.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]},eu.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 _=r[0],u=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]=_,a[1]=u,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]=_*i+l*o+g*s+r[12],a[13]=u*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]}},eu.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],_=n[7],u=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]=_,r[14]=u}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]},eu);ts._tempVec30=new tn,ts._tempVec31=new tn,ts._tempVec32=new tn,ts._tempMat30=new ti,ts._identity=new ts(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);var t_=((el=(ec=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},el.add=function(e){return this._x+=e._x,this._y+=e._y,this._onValueChanged&&this._onValueChanged(),this},el.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._onValueChanged&&this._onValueChanged(),this},el.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._onValueChanged&&this._onValueChanged(),this},el.divide=function(e){return this._x/=e._x,this._y/=e._y,this._onValueChanged&&this._onValueChanged(),this},el.length=function(){var e=this._x,t=this._y;return Math.sqrt(e*e+t*t)},el.lengthSquared=function(){var e=this._x,t=this._y;return e*e+t*t},el.negate=function(){return this._x=-this._x,this._y=-this._y,this._onValueChanged&&this._onValueChanged(),this},el.normalize=function(){return ec.normalize(this,this),this},el.scale=function(e){return this._x*=e,this._y*=e,this._onValueChanged&&this._onValueChanged(),this},el.clone=function(){return new ec(this._x,this._y)},el.copyFrom=function(e){return this._x=e.x,this._y=e.y,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._onValueChanged&&this._onValueChanged(),this},el.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y},el.toJSON=function(){return{x:this._x,y:this._y}},ec.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._onValueChanged&&n._onValueChanged()},ec.subtract=function(e,t,n){n._x=e._x-t._x,n._y=e._y-t._y,n._onValueChanged&&n._onValueChanged()},ec.multiply=function(e,t,n){n._x=e._x*t._x,n._y=e._y*t._y,n._onValueChanged&&n._onValueChanged()},ec.divide=function(e,t,n){n._x=e._x/t._x,n._y=e._y/t._y,n._onValueChanged&&n._onValueChanged()},ec.dot=function(e,t){return e._x*t._x+e._y*t._y},ec.distance=function(e,t){var n=t._x-e._x,r=t._y-e._y;return Math.sqrt(n*n+r*r)},ec.distanceSquared=function(e,t){var n=t._x-e._x,r=t._y-e._y;return n*n+r*r},ec.equals=function(e,t){return tt.equals(e._x,t._x)&&tt.equals(e._y,t._y)},ec.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()},ec.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()},ec.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()},ec.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._onValueChanged&&t._onValueChanged()},ec.normalize=function(e,t){var n=e._x,r=e._y,a=Math.sqrt(n*n+r*r);a>tt.zeroTolerance&&(a=1/a,t._x=n*a,t._y=r*a,t._onValueChanged&&t._onValueChanged())},ec.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._onValueChanged&&n._onValueChanged()},te(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()}}]),ec);t_._zero=new t_(0,0),t_._one=new t_(1,1);var tu=((ed=(ef=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},ed.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},ed.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},ed.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},ed.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},ed.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)},ed.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},ed.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,this._w=-this._w,this._onValueChanged&&this._onValueChanged(),this},ed.normalize=function(){return ef.normalize(this,this),this},ed.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,this._w*=e,this._onValueChanged&&this._onValueChanged(),this},ed.clone=function(){return new ef(this._x,this._y,this._z,this._w)},ed.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},ed.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},ed.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},ed.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},ef.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()},ef.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()},ef.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()},ef.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()},ef.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},ef.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)},ef.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},ef.equals=function(e,t){return tt.equals(e._x,t._x)&&tt.equals(e._y,t._y)&&tt.equals(e._z,t._z)&&tt.equals(e._w,t._w)},ef.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()},ef.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()},ef.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()},ef.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=-e._w,t._onValueChanged&&t._onValueChanged()},ef.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>tt.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,t._onValueChanged&&t._onValueChanged())},ef.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()},ef.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()},ef.transformByQuat=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t._x,_=t._y,u=t._z,h=t._w,c=h*r+_*i-u*a,l=h*a+u*r-s*i,f=h*i+s*a-_*r,d=-s*r-_*a-u*i;n._x=c*h-d*s-l*u+f*_,n._y=l*h-d*_-f*s+c*u,n._z=f*h-d*u-c*_+l*s,n._w=o,n._onValueChanged&&n._onValueChanged()},te(ef,[{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()}}]),ef);tu._zero=new tu(0,0,0,0),tu._one=new tu(1,1,1,1);var th=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 _=i[o],u=e[e7(_)];switch(_.targetRayMode){case"screen":case"tracked-pointer":var h=_.gripSpace,c=_.targetRaySpace;if(h){var l=t.getPose(h,a),f=l.transform,d=l.emulatedPosition;if(f){var m=u.gripPose;m.matrix.copyFromArray(f.matrix),m.position.copyFrom(f.position),m.rotation.copyFrom(f.orientation)}u.trackingState=d?ew.TrackingLost:ew.Tracking}if(c){var g=t.getPose(c,a),y=g.transform,p=g.emulatedPosition;if(y){var v=u.targetRayPose;v.matrix.copyFromArray(y.matrix),v.position.copyFrom(y.position),v.rotation.copyFrom(y.orientation),u.trackingState=p?ew.TrackingLost:ew.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 _=!1,u=s.views,h=s.emulatedPosition,c=0,l=u.length;c<l;c++){var f=u[c],d=function(e){switch(e){case"left":return ex.LeftCamera;case"right":return ex.RightCamera;default:return ex.Camera}}(f.eye),m=u[c].transform;d===ex.Camera&&(_||(_=!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?ew.TrackingLost:ew.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(!_){var C=e[ex.LeftCamera],V=e[ex.RightCamera],M=e[ex.Camera],k=C.pose,S=V.pose,b=M.pose;b.rotation.copyFrom(k.rotation);var T=b.position,R=b.matrix;tn.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?ew.TrackingLost:ew.Tracking,M.viewport=C.viewport.width&&C.viewport.height?C.viewport:V.viewport}}},e}(),tc=function(){function e(e,t,n){this._events=[],this._screenPointers=[],this._inputEventTypeMap={selectstart:eV.SelectStart,select:eV.Select,selectend:eV.SelectEnd,squeezestart:eV.SqueezeStart,squeeze:eV.Squeeze,squeezeend:eV.SqueezeEnd},this._targetRayModeMap={gaze:eM.Gaze,"tracked-pointer":eM.TrackedPointer,screen:eM.Screen},this._frame=new th(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.addEventListener("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:e7(t),targetRayMode:this._targetRayModeMap[t.targetRayMode]};if(n.targetRayMode===eM.Screen){var r=this._screenPointers,a=t.gamepad.axes;switch(n.x=a[0],n.y=a[1],n.type){case eV.SelectStart:for(var i=-1,o=-1,s=r.length-1;s>=0;s--){var _=r[s];if(_===t){i=s;break}_||(o=s)}-1===i&&(-1===o?i=r.push(t)-1:(i=o,r[o]=t)),n.id=i;break;case eV.SelectEnd:for(var u=r.length-1;u>=0;u--)r[u]===t&&(r[u]=null,n.id=u)}}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:eV.Select,targetRayMode:eM.Screen,input:ex.Controller,id:n,x:a[0],y:a[1]};e.push(i)}}return e}}]),e}(),tl=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(e8(e)).then(function(e){e?t():n(Error("The current context doesn't support WebXR."))})})},t.isSupportedFeature=function(e){return!0},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?e6(i,[].concat(r)):null},t.requestSession=function(e,t,n){return new Promise(function(r,a){for(var i=e8(t),o={requiredFeatures:["local"]},s=[],_=0,u=n.length;_<u;_++){var h=n[_]._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 _={antialias:void 0!==t.renderState.layers||i.antialias,alpha:!0,depth:i.depth,stencil:i.stencil,framebufferScaleFactor:s};o=new XRWebGLLayer(t,n,_),t.updateRenderState({baseLayer:o})}t.requestReferenceSpace("local").then(function(e){r(new tc(t,o,e))},a)},a)},a)},a)})},e}();function tf(e){return function(t){tl._platformFeatureMap[e]=t}}tl._platformFeatureMap=[];var td=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=eT.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===eT.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 _=n[o];if(_.state===eT.Resolved){var u=_.tracked[0];i.has(_.xrAnchor)?this._updateTrackedAnchor(a,r,_)?u.state===ew.Tracking&&(u.state=ew.TrackingLost):u.state=ew.Tracking:u.state=ew.NotTracking}}},n.onDelRequestTracking=function(e){switch(e.state){case eT.Submitted:e.state=eT.WaitingDestroy;break;case eT.Resolved:e.xrAnchor.delete(),e.state=eT.Destroyed;break;default:e.state=eT.Destroyed}},n._assembleOptions=function(e){e.requiredFeatures.push("anchors")},n._addAnchor=function(e,t,n){if(e&&t){n.state=eT.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===eT.WaitingDestroy?(e.delete(),n.state=eT.Destroyed):(n.xrAnchor=e,n.state=eT.Resolved)},function(){n.state===eT.WaitingDestroy?n.state=eT.Destroyed:n.state=eT.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}(td);tm=o([tf(eb.AnchorTracking)],tm);var tg=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,_=i.getImageTrackingResults(),u=0,h=_.length;u<h;u++){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=ew.Tracking):d.state=ew.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=ew.NotTracking)},n.onAddRequestTracking=function(e){e.state=eT.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=eT.Resolved):(o.state=eT.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}(td);tg=o([tf(eb.ImageTracking)],tg),(em=eA||(eA={}))[em.NotReceived=0]="NotReceived",em[em.Waiting=1]="Waiting",em[em.Received=2]="Received";var ty=function(e){function t(t){var n=e.call(this);return t!==eR.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,_=s.detectedPlanes||(null==(a=s.worldInformation)?void 0:a.detectedPlanes),u=n[0].tracked,h=0,c=u.length;h<c;h++){var l=u[h];_.has(l.xrPlane)?(l.state=ew.Tracking,this._updatePlane(s,o,l)):l.state=ew.NotTracking}var f=this._lastDetectedPlanes;_.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),u.push(t)}}),this._lastDetectedPlanes=_},n.onAddRequestTracking=function(e){e.state=eT.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,_=o.emulatedPosition;if(n.state=_?ew.TrackingLost:ew.Tracking,n.planeMode="horizontal"===i.orientation?eR.Horizontal:eR.Vertical,n.lastChangedTime<i.lastChangedTime){n.lastChangedTime=i.lastChangedTime,n.attributesDirty=!0;for(var u,h=i.polygon,c=0,l=a.length=h.length;c<l;c++)(a[u=c]||(a[u]=new tn)).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}(td);ty=o([tf(eb.PlaneTracking)],ty),e.WebXRDevice=tl,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 _(e,t,n){return(_=!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 u(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&&u(e.prototype,t),n&&u(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,(eg=ex||(ex={}))[eg.Controller=0]="Controller",eg[eg.LeftController=1]="LeftController",eg[eg.RightController=2]="RightController",eg[eg.Camera=3]="Camera",eg[eg.LeftCamera=4]="LeftCamera",eg[eg.RightCamera=5]="RightCamera",eg[eg.LeftHand=6]="LeftHand",eg[eg.RightHand=7]="RightHand",(ey=ez||(ez={}))[ey.None=0]="None",ey[ey.Initialized=1]="Initialized",ey[ey.Running=2]="Running",ey[ey.Paused=3]="Paused";var f,d,m,g,y,p,v,x,z,w,C,V,M,k,S,b,T,R,q,P,F,A,E,D,L,I,N,B,j,O,W,X,H,U,G,Q,Y,J,Z,K,$,ee,et,en,er,ea,ei,eo,es,e_,eu,eh,ec,el,ef,ed,em,eg,ey,ep,ev,ex,ez,ew,eC,eV,eM,ek,eS,eb,eT,eR,eq,eP,eF,eA,eE=((ev=(ep=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 ex.Camera:n._cameraType=t.CameraType.XRCenterCamera;break;case ex.LeftCamera:n._cameraType=t.CameraType.XRLeftCamera;break;case ex.RightCamera:n._cameraType=t.CameraType.XRRightCamera}r._camera=n}},ev.detachCamera=function(e){var n=this._xrManager.inputManager.getTrackedDevice(e),r=n._camera;return r&&(r._cameraType=t.CameraType.Normal),n._camera=null,r},ev._onSessionStart=function(){},ev._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 _=i.viewport,u=a.viewport,h=u.x,c=u.y,l=u.width,f=u.height;h===_.x&&c===_.y&&l===_.z&&f===_.w||(i.viewport=_.set(h,c,l,f)),t.Matrix.equals(i.projectionMatrix,a.projectionMatrix)||(i.projectionMatrix=a.projectionMatrix)}}},ev._onSessionExit=function(){},ev._getCameraClearFlagsMask=function(e){return e!==t.CameraType.XRCenterCamera?t.CameraClearFlags.None:this._xrManager.sessionManager.state===ez.Running?t.CameraClearFlags.Color:t.CameraClearFlags.None},ev._onDestroy=function(){},h(ep,[{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.")}}]),ep),eD=function(){this.position=new t.Vector3,this.rotation=new t.Quaternion,this.matrix=new t.Matrix,this.inverseMatrix=new t.Matrix};(f=ew||(ew={}))[f.NotTracking=0]="NotTracking",f[f.Tracking=1]="Tracking",f[f.TrackingLost=2]="TrackingLost";var eL=function(e){this.type=e,this.trackingState=ew.NotTracking},eI=(c(d=function(){var e;return e=eL.apply(this,arguments)||this,e.pose=new eD,e.viewport=new t.Rect,e.projectionMatrix=new t.Matrix,e},eL),d);(m=eC||(eC={}))[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 eN=(c(g=function(){var e;return e=eL.apply(this,arguments)||this,e.gripPose=new eD,e.targetRayPose=new eD,e.pressedButtons=eC.None,e.down=eC.None,e.up=eC.None,e},eL),(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=eV||(eV={}))[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=eM||(eM={}))[v.Gaze=0]="Gaze",v[v.TrackedPointer=1]="TrackedPointer",v[v.Screen=2]="Screen";var eB=((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 ex.Camera:case ex.LeftCamera:case ex.RightCamera:a.push(n[i]=new eI(i));break;case ex.Controller:case ex.LeftController:case ex.RightController:r.push(n[i]=new eN(i))}this._statusSnapshot.fill(ew.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 _=i[o];_.down=_.up=0}for(var u=this._xrManager.sessionManager._platformSession,h=u.events,c=0,l=h.length;c<l;c++)this._handleEvent(h[c]);u.resetEvents(),u.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]===ew.Tracking?g!==ew.Tracking&&t.push(m):g===ew.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 eM.TrackedPointer:switch(e.type){case eV.SelectStart:t.down|=eC.Select,t.pressedButtons|=eC.Select;break;case eV.SelectEnd:t.up|=eC.Select,t.pressedButtons&=~eC.Select;break;case eV.SqueezeStart:t.down|=eC.Squeeze,t.pressedButtons|=eC.Squeeze;break;case eV.SqueezeEnd:t.up|=eC.Squeeze,t.pressedButtons&=~eC.Squeeze}break;case eM.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,_=o*(e.y+1)*.5;switch(e.type){case eV.SelectStart:r.dispatchEvent(this._makeUpPointerEvent("pointerdown",e.id,s,_));break;case eV.Select:r.dispatchEvent(this._makeUpPointerEvent("pointermove",e.id,s,_));break;case eV.SelectEnd:r.dispatchEvent(this._makeUpPointerEvent("pointerup",e.id,s,_)),r.dispatchEvent(this._makeUpPointerEvent("pointerleave",e.id,s,_))}}},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=ek||(ek={}))[w.None=0]="None",w[w.AR=1]="AR",w[w.VR=2]="VR";var ej=((V=(C=function(e,t){this._xrManager=e,this._engine=t,this._mode=ek.None,this._state=ez.None,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=ez.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!==ez.Running)throw Error("Session is not running.");n._mainFrameBuffer=null,n._mainFrameWidth=n._mainFrameHeight=0,e.stop(),this._state=ez.Paused,this._xrManager._onSessionStop(),t.isPaused||(t.pause(),t.resume())},V._initialize=function(e,t){var n=this;return new Promise(function(r,a){for(var i=n._xrManager,o=[],s=0,_=t.length;s<_;s++){var u=t[s]._platformFeature;u&&o.push(u)}i._platformDevice.requestSession(n._rhi,e,o).then(function(t){n._mode=e,n._platformSession=t,n._state=ez.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===ez.Running?this._platformSession.requestAnimationFrame:this._raf},V._getCancelAnimationFrame=function(){return this._state===ez.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=ez.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}},{key:"supportedFrameRate",get:function(){return this._platformSession.supportedFrameRates}},{key:"frameRate",get:function(){return this._platformSession.frameRate}}]),C),eO=(M=t.XRManager,c(k=function(){return M.apply(this,arguments)},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.");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=_(e,[].concat(this,n));return this._features.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.getFeatures=function(e,t){t?t.length=0:t=[];for(var n=this._features,r=0,a=n.length;r<a;r--){var i=n[r];l(i,e)&&t.push(i)}return t},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._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=[],this._platformDevice=t,this.sessionManager=new ej(this,e),this.inputManager=new eB(this,e),this.cameraManager=new eE(this)},S._update=function(){var e=this.sessionManager;if(e.state===ez.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 eW(e){return function(t){eO._featureMap.set(t,e)}}eO._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,[eO]);var eX=((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=eS||(eS={}))[R.Plane=1]="Plane",R[R.All=1]="All";var eH=function(){this.point=new t.Vector3,this.normal=new t.Vector3};function eU(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,(q=eb||(eb={}))[q.AnchorTracking=0]="AnchorTracking",q[q.ImageTracking=1]="ImageTracking",q[q.PlaneTracking=2]="PlaneTracking",q[q.HitTest=3]="HitTest",(P=eT||(eT={}))[P.None=0]="None",P[P.Submitted=1]="Submitted",P[P.Resolved=2]="Resolved",P[P.Rejected=3]="Rejected",P[P.Destroyed=4]="Destroyed",P[P.WaitingDestroy=5]="WaitingDestroy";var eG=(c(F=function(){var e;return e=eX.apply(this,arguments)||this,e._requestTrackings=[],e._tracked=[],e._added=[],e._updated=[],e._removed=[],e._statusSnapshot={},e._listeners=[],e},eX),(A=F.prototype).addChangedListener=function(e){this._listeners.push(e)},A.removeChangedListener=function(e){var t=this._listeners,n=t.indexOf(e);n>=0&&t.splice(n,1)},A._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,_=this._updated,u=this._removed;if(t&&a.length&&n.checkAvailable(e,t,a)){s.length=_.length=u.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 eT.Destroyed:for(var f=l.tracked,d=0,m=f.length;d<m;d++){var g=f[d],y=g.id;i[y]===ew.Tracking&&(u.push(g),o.splice(o.indexOf(g),1)),i[y]=ew.NotTracking}break;case eT.Resolved:for(var p=l.tracked,v=0,x=p.length;v<x;v++){var z=p[v],w=z.id;z.state===ew.Tracking?i[w]===ew.Tracking?_.push(z):(s.push(z),i[w]=ew.Tracking,o.push(z)):(i[w]===ew.Tracking&&(u.push(z),o.splice(o.indexOf(z),1)),i[w]=z.state)}}}for(var C=a.length-1;C>=0;C--)a[C].state===eT.Destroyed&&a.splice(C,1);if(s.length>0||_.length>0||u.length>0)for(var V=0,M=r.length;V<M;V++)r[V](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},A._onDestroy=function(){this._requestTrackings.length=this._tracked.length=this._added.length=this._updated.length=this._removed.length=0},A._addRequestTracking=function(e){var t=this._platformFeature;if(this._xrManager.sessionManager._platformSession&&!t.canModifyRequestTrackingAfterInit)throw Error(eb[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(eb[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(eb[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])},F);eG._uuid=0,(E=eR||(eR={}))[E.None=0]="None",E[E.Horizontal=1]="Horizontal",E[E.Vertical=2]="Vertical",E[E.EveryThing=3]="EveryThing";var eQ=function(){this.state=eT.None,this.tracked=[]},eY=(c(D=function(e){var t;return(t=eQ.call(this)||this).detectionMode=e,t},eQ),D),eJ=function(){this.pose=new eD,this.state=ew.NotTracking},eZ=(c(L=function(){var e;return e=eJ.apply(this,arguments)||this,e.polygon=[],e.attributesDirty=!1,e},eJ),L),eK=(c(I=function(e,t){var n;return void 0===t&&(t=eR.EveryThing),(n=eG.call(this,e,eb.PlaneTracking,t)||this)._addRequestTracking(new eY(t)),n},eG),I.prototype._generateTracked=function(){var e=new eZ;return e.id=eG._uuid++,e},h(I,[{key:"detectionMode",get:function(){return this._requestTrackings[0].detectionMode}},{key:"trackedPlanes",get:function(){return this._tracked}}]),I);eK=eU([eW(eb.PlaneTracking)],eK);var e$=(c(N=function(e){var n;return(n=eX.call(this,e,eb.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},eX),(B=N.prototype).hitTest=function(e,t){var n=[];return t&eS.Plane&&this._hitTestPlane(e,n),n},B.screenHitTest=function(e,t,n){var r=this._xrManager;if(r.sessionManager.mode!==ek.AR)throw Error("Only AR mode supports using screen ray hit test.");var a=r.inputManager.getTrackedDevice(ex.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(eK);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,_=r.trackedPlanes,u=0,h=_.length;u<h;u++){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 eH;f.point.copyFrom(o),f.normal.copyFrom(i),f.distance=l,f.trackedObject=c,f.trackableType=eS.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,_=o[s-1],u=0,h=0;h<s;h++){var c=o[h];t.Vector3.subtract(c,_,r),t.Vector3.subtract(e,_,a),t.Vector3.cross(r,a,i);var l=i.y;if(0===u)l>0?u=1:l<0&&(u=-1);else if(l>0&&u<0||l<0&&u>0)return!1;_=c}return!0},N);e$=eU([eW(eb.HitTest)],e$);var e1=(c(j=function(){return eJ.apply(this,arguments)},eJ),j),e0=(c(O=function(e,t){var n;return(n=eQ.call(this)||this).position=e,n.rotation=t,n},eQ),O),e3=(c(W=function(e){var t;return(t=eG.call(this,e,eb.AnchorTracking)||this)._anchors=[],t},eG),(X=W.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 e0(e,t),a=this._generateTracked();return r.tracked[0]=a,this._addRequestTracking(r),n.push(a),a},X.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)},X.clearAnchors=function(){if(!this._enabled)throw Error("Cannot remove anchors from a disabled anchor manager.");this._removeAllRequestTrackings()},X._generateTracked=function(){var e=new e1;return e.id=eG._uuid++,e},h(W,[{key:"trackingAnchors",get:function(){return this._anchors}},{key:"trackedAnchors",get:function(){return this._tracked}}]),W);e3=eU([eW(eb.AnchorTracking)],e3);var e2=(c(H=function(e){var t;return(t=eQ.call(this)||this).image=e,t},eQ),H),e5=(c(U=function(){return eJ.apply(this,arguments)},eJ),U),e4=(c(G=function(e,t){var n;if((n=eG.call(this,e,eb.ImageTracking,t)||this)._trackingImages=t,(t?t.length:0)>0)for(var r=0,a=t.length;r<a;r++)n._addRequestTracking(new e2(t[r]));else console.warn("No image to be tracked.");return n},eG),G.prototype._generateTracked=function(){var e=new e5;return e.id=eG._uuid++,e},h(G,[{key:"trackingImages",get:function(){return this._trackingImages}},{key:"trackedImages",get:function(){return this._tracked}}]),G);function e6(e,t,n){return(e6=!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 e8(e){switch(e){case 1:return"immersive-ar";case 2:return"immersive-vr";default:return null}}function e7(e){var t;switch(e.targetRayMode){case"gaze":break;case"screen":return ex.Controller;case"tracked-pointer":if(e.hand)switch(e.handedness){case"left":return ex.LeftHand;case"right":return ex.RightHand}else switch(e.handedness){case"left":return ex.LeftController;case"right":return ex.RightController}}return t}function e9(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 te(e,t,n){return t&&e9(e.prototype,t),n&&e9(e,n),e}e4=eU([eW(eb.ImageTracking)],e4),(Q=eq||(eq={}))[Q.Disjoint=0]="Disjoint",Q[Q.Contains=1]="Contains",Q[Q.Intersects=2]="Intersects",(Y=eP||(eP={}))[Y.Back=0]="Back",Y[Y.Front=1]="Front",Y[Y.Intersecting=2]="Intersecting",(J=eF||(eF={}))[J.Near=0]="Near",J[J.Far=1]="Far",J[J.Left=2]="Left",J[J.Right=3]="Right",J[J.Bottom=4]="Bottom",J[J.Top=5]="Top";var tt=((Z=function(){}).clamp=function(e,t,n){return Math.max(t,Math.min(n,e))},Z.equals=function(e,t){return Math.abs(e-t)<=Z.zeroTolerance},Z.isPowerOf2=function(e){return(e&e-1)==0},Z.radianToDegree=function(e){return e*Z.radToDegreeFactor},Z.degreeToRadian=function(e){return e*Z.degreeToRadFactor},Z);tt.zeroTolerance=1e-6,tt.radToDegreeFactor=180/Math.PI,tt.degreeToRadFactor=Math.PI/180;var tn=(($=(K=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},$.add=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._onValueChanged&&this._onValueChanged(),this},$.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._z-=e._z,this._onValueChanged&&this._onValueChanged(),this},$.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._z*=e._z,this._onValueChanged&&this._onValueChanged(),this},$.divide=function(e){return this._x/=e._x,this._y/=e._y,this._z/=e._z,this._onValueChanged&&this._onValueChanged(),this},$.length=function(){var e=this._x,t=this._y,n=this._z;return Math.sqrt(e*e+t*t+n*n)},$.lengthSquared=function(){var e=this._x,t=this._y,n=this._z;return e*e+t*t+n*n},$.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,this._onValueChanged&&this._onValueChanged(),this},$.normalize=function(){return K.normalize(this,this),this},$.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,this._onValueChanged&&this._onValueChanged(),this},$.transformNormal=function(e){return K.transformNormal(this,e,this),this},$.transformToVec3=function(e){return K.transformToVec3(this,e,this),this},$.transformCoordinate=function(e){return K.transformCoordinate(this,e,this),this},$.transformByQuat=function(e){return K.transformByQuat(this,e,this),this},$.clone=function(){return new K(this._x,this._y,this._z)},$.copyFrom=function(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._onValueChanged&&this._onValueChanged(),this},$.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},$.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z},$.toJSON=function(){return{x:this._x,y:this._y,z:this._z}},K.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()},K.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()},K.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()},K.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()},K.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z},K.cross=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,_=t._z;n.set(a*_-i*s,i*o-r*_,r*s-a*o)},K.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)},K.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},K.equals=function(e,t){return tt.equals(e._x,t._x)&&tt.equals(e._y,t._y)&&tt.equals(e._z,t._z)},K.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()},K.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()},K.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()},K.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._onValueChanged&&t._onValueChanged()},K.normalize=function(e,t){var n=e._x,r=e._y,a=e._z,i=Math.sqrt(n*n+r*r+a*a);i>tt.zeroTolerance&&(i=1/i,t.set(n*i,r*i,a*i))},K.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._z=e._z*t,n._onValueChanged&&n._onValueChanged()},K.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()},K.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()},K.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()},K.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()},K.transformByQuat=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=t._x,s=t._y,_=t._z,u=t._w,h=u*r+s*i-_*a,c=u*a+_*r-o*i,l=u*i+o*a-s*r,f=-o*r-s*a-_*i;n._x=h*u-f*o-c*_+l*s,n._y=c*u-f*s-l*o+h*_,n._z=l*u-f*_-h*s+c*o,n._onValueChanged&&n._onValueChanged()},te(K,[{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()}}]),K);tn._zero=new tn(0,0,0),tn._one=new tn(1,1,1),((et=(ee=function(e,t){void 0===e&&(e=null),void 0===t&&(t=0),this.center=new tn,this.radius=0,e&&this.center.copyFrom(e),this.radius=t}).prototype).clone=function(){return new ee(this.center,this.radius)},et.copyFrom=function(e){return this.center.copyFrom(e.center),this.radius=e.radius,this},ee.fromPoints=function(e,t){if(!e||0===e.length)throw Error("points must be array and length must > 0");var n=e.length,r=ee._tempVec30;r.x=r.y=r.z=0;for(var a=0;a<n;++a)tn.add(e[a],r,r);tn.scale(r,1/n,t.center);for(var i=0,o=0;o<n;++o){var s=tn.distanceSquared(r,e[o]);s>i&&(i=s)}t.radius=Math.sqrt(i)},ee.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=tn.distance(n,a)},ee)._tempVec30=new tn;var tr=((er=(en=function(e,t){void 0===e&&(e=null),void 0===t&&(t=null),this.min=new tn,this.max=new tn,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},er.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},er.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,_=n.z,u=e.length;if(u<8)for(var h=0,c=8-u;h<c;++h)e[u+h]=new tn;return e[0].set(r,s,_),e[1].set(o,s,_),e[2].set(o,a,_),e[3].set(r,a,_),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},er.transform=function(e){return en.transform(this,e,this),this},er.clone=function(){return new en(this.min,this.max)},er.copyFrom=function(e){return this.min.copyFrom(e.min),this.max.copyFrom(e.max),this},en.fromCenterAndExtent=function(e,t,n){tn.subtract(e,t,n.min),tn.add(e,t,n.max)},en.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];tn.min(n,o,n),tn.max(r,o,r)}},en.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},en.transform=function(e,t,n){var r=en._tempVec30,a=en._tempVec31;e.getCenter(r),e.getExtent(a),tn.transformCoordinate(r,t,r);var i=a.x,o=a.y,s=a.z,_=t.elements,u=_[0],h=_[1],c=_[2],l=_[4],f=_[5],d=_[6],m=_[8],g=_[9],y=_[10];a.set((0===u?0:Math.abs(i*u))+(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))),tn.subtract(r,a,n.min),tn.add(r,a,n.max)},en.merge=function(e,t,n){return tn.min(e.min,t.min,n.min),tn.max(e.max,t.max,n.max),n},en);tr._tempVec30=new tn,tr._tempVec31=new tn;var ta=((ea=function(){}).intersectionPointThreePlanes=function(e,t,n,r){var a=e.normal,i=t.normal,o=n.normal;tn.cross(i,o,ea._tempVec30),tn.cross(o,a,ea._tempVec31),tn.cross(a,i,ea._tempVec32);var s=-tn.dot(a,ea._tempVec30),_=-tn.dot(i,ea._tempVec31),u=-tn.dot(o,ea._tempVec32);tn.scale(ea._tempVec30,e.distance/s,ea._tempVec30),tn.scale(ea._tempVec31,t.distance/_,ea._tempVec31),tn.scale(ea._tempVec32,n.distance/u,ea._tempVec32),tn.add(ea._tempVec30,ea._tempVec31,r),tn.add(r,ea._tempVec32,r)},ea.distancePlaneAndPoint=function(e,t){return tn.dot(e.normal,t)+e.distance},ea.intersectsPlaneAndPoint=function(e,t){var n=ea.distancePlaneAndPoint(e,t);return n>0?eP.Front:n<0?eP.Back:eP.Intersecting},ea.intersectsPlaneAndBox=function(e,t){var n=t.min,r=t.max,a=e.normal,i=ea._tempVec30,o=ea._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>ea.distancePlaneAndPoint(e,i))?eP.Back:ea.distancePlaneAndPoint(e,o)>0?eP.Front:eP.Intersecting},ea.intersectsPlaneAndSphere=function(e,t){var n=t.center,r=t.radius,a=ea.distancePlaneAndPoint(e,n);return a>r?eP.Front:a<-r?eP.Back:eP.Intersecting},ea.intersectsRayAndPlane=function(e,t){var n=t.normal,r=tt.zeroTolerance,a=tn.dot(n,e.direction);if(Math.abs(a)<r)return -1;var i=tn.dot(n,e.origin),o=(-t.distance-i)/a;if(o<0){if(o<-r)return -1;o=0}return o},ea.intersectsRayAndBox=function(e,t){var n=tt.zeroTolerance,r=e.origin,a=e.direction,i=t.min,o=t.max,s=a.x,_=a.y,u=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(_)<n){if(c<i.y||c>o.y)return -1}else{var v=1/_,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(u)<n){if(l<i.z||l>o.z)return -1}else{var C=1/u,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},ea.intersectsRayAndSphere=function(e,t){var n=e.origin,r=e.direction,a=t.center,i=t.radius,o=ea._tempVec30;tn.subtract(n,a,o);var s=tn.dot(o,r),_=tn.dot(o,o)-i*i;if(s>0&&_>0)return -1;var u=s*s-_;if(u<0)return -1;var h=-s-Math.sqrt(u);return h<0&&(h=0),h},ea.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)},ea.intersectsSphereAndSphere=function(e,t){var n=e.radius+t.radius;return tn.distanceSquared(e.center,t.center)<n*n},ea.intersectsSphereAndBox=function(e,t){var n=e.center,r=t.max,a=t.min,i=ea._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))),tn.distanceSquared(n,i)<=e.radius*e.radius},ea.intersectsFrustumAndBox=function(e,t){for(var n=t.min,r=t.max,a=ea._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),tn.dot(s,a)<-o.distance)return!1}return!0},ea.frustumContainsPoint=function(e,t){var n=ea.distancePlaneAndPoint(e.near,t);return Math.abs(n)<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.far,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.left,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.right,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.top,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:Math.abs(n=ea.distancePlaneAndPoint(e.bottom,t))<tt.zeroTolerance?eq.Intersects:n<0?eq.Disjoint:eq.Contains},ea.frustumContainsBox=function(e,t){for(var n=t.min,r=t.max,a=ea._tempVec30,i=ea._tempVec31,o=eq.Contains,s=0;s<6;++s){var _=e.getPlane(s),u=_.normal;if(u.x>=0?(a.x=r.x,i.x=n.x):(a.x=n.x,i.x=r.x),u.y>=0?(a.y=r.y,i.y=n.y):(a.y=n.y,i.y=r.y),u.z>=0?(a.z=r.z,i.z=n.z):(a.z=n.z,i.z=r.z),ea.intersectsPlaneAndPoint(_,a)===eP.Back)return eq.Disjoint;ea.intersectsPlaneAndPoint(_,i)===eP.Back&&(o=eq.Intersects)}return o},ea.frustumContainsSphere=function(e,t){for(var n=eq.Contains,r=0;r<6;++r){var a=e.getPlane(r),i=ea.intersectsPlaneAndSphere(a,t);if(i===eP.Back)return eq.Disjoint;if(i===eP.Intersecting){n=eq.Intersects;break}}return n},ea);ta._tempVec30=new tn,ta._tempVec31=new tn,ta._tempVec32=new tn;var ti=((eo=(ei=function(e,t,n,r,a,i,o,s,_){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===_&&(_=1),this.elements=new Float32Array(9);var u=this.elements;u[0]=e,u[1]=t,u[2]=n,u[3]=r,u[4]=a,u[5]=i,u[6]=o,u[7]=s,u[8]=_}).prototype).set=function(e,t,n,r,a,i,o,s,_){var u=this.elements;return u[0]=e,u[1]=t,u[2]=n,u[3]=r,u[4]=a,u[5]=i,u[6]=o,u[7]=s,u[8]=_,this},eo.add=function(e){return ei.add(this,e,this),this},eo.subtract=function(e){return ei.subtract(this,e,this),this},eo.multiply=function(e){return ei.multiply(this,e,this),this},eo.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],_=e[7],u=e[8];return t*(u*i-o*_)+n*(-u*a+o*s)+r*(_*a-i*s)},eo.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},eo.invert=function(){return ei.invert(this,this),this},eo.rotate=function(e){return ei.rotate(this,e,this),this},eo.scale=function(e){return ei.scale(this,e,this),this},eo.translate=function(e){return ei.translate(this,e,this),this},eo.transpose=function(){return ei.transpose(this,this),this},eo.clone=function(){var e=this.elements;return new ei(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},eo.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},eo.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},eo.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]},eo.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},ei.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]},ei.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]},ei.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],_=r[2],u=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+u*g+l*y,i[1]=s*m+h*g+f*y,i[2]=_*m+c*g+d*y,i[3]=o*p+u*v+l*x,i[4]=s*p+h*v+f*x,i[5]=_*p+c*v+d*x,i[6]=o*z+u*w+l*C,i[7]=s*z+h*w+f*C,i[8]=_*z+c*w+d*C},ei.equals=function(e,t){var n=e.elements,r=t.elements;return tt.equals(n[0],r[0])&&tt.equals(n[1],r[1])&&tt.equals(n[2],r[2])&&tt.equals(n[3],r[3])&&tt.equals(n[4],r[4])&&tt.equals(n[5],r[5])&&tt.equals(n[6],r[6])&&tt.equals(n[7],r[7])&&tt.equals(n[8],r[8])},ei.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},ei.rotationQuaternion=function(e,t){var n=t.elements,r=e._x,a=e._y,i=e._z,o=e._w,s=r+r,_=a+a,u=i+i,h=r*s,c=a*s,l=a*_,f=i*s,d=i*_,m=i*u,g=o*s,y=o*_,p=o*u;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},ei.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},ei.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},ei.invert=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],_=n[4],u=n[5],h=n[6],c=n[7],l=n[8],f=l*_-u*c,d=-l*s+u*h,m=c*s-_*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]=(u*i-o*_)*g,r[3]=d*g,r[4]=(l*a-o*h)*g,r[5]=(-u*a+o*s)*g,r[6]=m*g,r[7]=(-c*a+i*h)*g,r[8]=(_*a-i*s)*g)},ei.normalMatrix=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],_=n[4],u=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*u-i*_,z=a*h-o*_,w=a*c-s*_,C=i*h-o*u,V=i*c-s*u,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]=(u*q-h*R+c*T)*P,r[1]=(h*b-_*q-c*S)*P,r[2]=(_*R-u*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},ei.rotate=function(e,t,n){var r=e.elements,a=n.elements,i=Math.sin(t),o=Math.cos(t),s=r[0],_=r[1],u=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*_+i*c,a[2]=o*u+i*l,a[3]=o*h-i*s,a[4]=o*c-i*_,a[5]=o*l-i*u,a[6]=f,a[7]=d,a[8]=m},ei.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]},ei.translate=function(e,t,n){var r=t._x,a=t._y,i=e.elements,o=n.elements,s=i[0],_=i[1],u=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]=_,o[2]=u,o[3]=h,o[4]=c,o[5]=l,o[6]=r*s+a*h+f,o[7]=r*_+a*c+d,o[8]=r*u+a*l+m},ei.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]},ei),to=((e_=(es=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},e_.conjugate=function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onValueChanged&&this._onValueChanged(),this},e_.getAxisAngle=function(e){var t=this._x,n=this._y,r=this._z,a=t*t+n*n+r*r;if(a<tt.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)},e_.identity=function(){return this._x=0,this._y=0,this._z=0,this._w=1,this._onValueChanged&&this._onValueChanged(),this},e_.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)},e_.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},e_.normalize=function(){return es.normalize(this,this),this},e_.toEuler=function(e){this._toYawPitchRoll(e);var t=e._x;return e._x=e._y,e._y=t,e._onValueChanged&&e._onValueChanged(),e},e_.toYawPitchRoll=function(e){return this._toYawPitchRoll(e),e._onValueChanged&&e._onValueChanged(),e},e_.rotateX=function(e){return es.rotateX(this,e,this),this},e_.rotateY=function(e){return es.rotateY(this,e,this),this},e_.rotateZ=function(e){return es.rotateZ(this,e,this),this},e_.rotationAxisAngle=function(e,t){return es.rotationAxisAngle(e,t,this),this},e_.multiply=function(e){return es.multiply(this,e,this),this},e_.invert=function(){return es.invert(this,this),this},e_.dot=function(e){return es.dot(this,e)},e_.lerp=function(e,t){return es.lerp(this,e,t,this),this},e_.rotateAxisAngle=function(e,t){return es._tempQuat1.rotationAxisAngle(e,t),this.multiply(es._tempQuat1),this},e_.clone=function(){return new es(this._x,this._y,this._z,this._w)},e_.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},e_.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},e_.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},e_.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},e_._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,_=a*a,u=i+o+s+_,h=2*(t*a-n*r);h>(1-tt.zeroTolerance)*u?(e._x=Math.atan2(2*(a*n-t*r),i+_-o-s),e._y=Math.PI/2,e._z=0):h<-(1-tt.zeroTolerance)*u?(e._x=Math.atan2(2*(a*n-t*r),i+_-o-s),e._y=-Math.PI/2,e._z=0):(e._x=Math.atan2(2*(r*t+n*a),s+_-o-i),e._y=Math.asin(h/u),e._z=Math.atan2(2*(t*n+r*a),o+_-s-i))},es.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()},es.multiply=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t._x,_=t._y,u=t._z,h=t._w;n._x=r*h+o*s+a*u-i*_,n._y=a*h+o*_+i*s-r*u,n._z=i*h+o*u+r*_-a*s,n._w=o*h-r*s-a*_-i*u,n._onValueChanged&&n._onValueChanged()},es.conjugate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=e._w,t._onValueChanged&&t._onValueChanged()},es.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},es.equals=function(e,t){return tt.equals(e._x,t._x)&&tt.equals(e._y,t._y)&&tt.equals(e._z,t._z)&&tt.equals(e._w,t._w)},es.rotationAxisAngle=function(e,t,n){var r=es._tempVector3;tn.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()},es.rotationEuler=function(e,t,n,r){es.rotationYawPitchRoll(t,e,n,r)},es.rotationYawPitchRoll=function(e,t,n,r){var a=.5*n,i=.5*t,o=.5*e,s=Math.sin(a),_=Math.cos(a),u=Math.sin(i),h=Math.cos(i),c=Math.sin(o),l=Math.cos(o),f=l*h,d=c*u;r._x=l*u*_+c*h*s,r._y=c*h*_-l*u*s,r._z=f*s-d*_,r._w=f*_+d*s,r._onValueChanged&&r._onValueChanged()},es.rotationMatrix3x3=function(e,t){var n,r,a=e.elements,i=a[0],o=a[1],s=a[2],_=a[3],u=a[4],h=a[5],c=a[6],l=a[7],f=a[8],d=i+u+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-_)*n):i>=u&&i>=f?(r=.5/(n=Math.sqrt(1+i-u-f)),t._x=.5*n,t._y=(o+_)*r,t._z=(s+c)*r,t._w=(h-l)*r):u>f?(r=.5/(n=Math.sqrt(1+u-i-f)),t._x=(_+o)*r,t._y=.5*n,t._z=(l+h)*r,t._w=(c-s)*r):(r=.5/(n=Math.sqrt(1+f-i-u)),t._x=(s+c)*r,t._y=(h+l)*r,t._z=.5*n,t._w=(o-_)*r),t._onValueChanged&&t._onValueChanged()},es.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>tt.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()}},es.lerp=function(e,t,n,r){var a=1-n;es.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()},es.slerp=function(e,t,n,r){var a,i,o=es.dot(e,t);if(Math.abs(o)>1-tt.zeroTolerance)i=1-n,a=n*Math.sign(o);else{var s=Math.acos(Math.abs(o)),_=1/Math.sin(s);i=Math.sin((1-n)*s)*_,a=Math.sin(n*s)*_*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()},es.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>tt.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,t._onValueChanged&&t._onValueChanged())},es.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()},es.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()},es.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()},es.rotateX=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),_=Math.cos(t);n._x=r*_+o*s,n._y=a*_+i*s,n._z=i*_-a*s,n._w=o*_-r*s,n._onValueChanged&&n._onValueChanged()},es.rotateY=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),_=Math.cos(t);n._x=r*_-i*s,n._y=a*_+o*s,n._z=i*_+r*s,n._w=o*_-a*s,n._onValueChanged&&n._onValueChanged()},es.rotateZ=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=Math.sin(t*=.5),_=Math.cos(t);n._x=r*_+a*s,n._y=a*_-r*s,n._z=i*_+o*s,n._w=o*_-i*s,n._onValueChanged&&n._onValueChanged()},es.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()},te(es,[{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)<tt.zeroTolerance}},{key:"w",get:function(){return this._w},set:function(e){this._w=e,this._onValueChanged&&this._onValueChanged()}}]),es);to._tempVector3=new tn,to._tempQuat1=new to;var ts=((eh=(eu=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===_&&(_=0),void 0===u&&(u=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]=_,g[9]=u,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]=_,g[9]=u,g[10]=h,g[11]=c,g[12]=l,g[13]=f,g[14]=d,g[15]=m,this},eh.multiply=function(e){return eu.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],_=e[7],u=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*_-a*i)*(h*m-c*d)+(n*s-r*o)*(u*g-l*f)-(n*_-a*o)*(u*m-c*f)+(r*_-a*s)*(u*d-h*f)},eh.decompose=function(e,t,n){var r=eu._tempMat30,a=this.elements,i=r.elements,o=a[0],s=a[1],_=a[2],u=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+_*_),g=Math.sqrt(u*u+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)<tt.zeroTolerance||Math.abs(g)<tt.zeroTolerance||Math.abs(y)<tt.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]=_*p,i[3]=u*v,i[4]=h*v,i[5]=c*v,i[6]=l*x,i[7]=f*x,i[8]=d*x,to.rotationMatrix3x3(r,t),!0},eh.getRotation=function(e){var t=this.elements,n=t[0]+t[5]+t[10];if(n>tt.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},eh.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],_=t[8],u=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},eh.getTranslation=function(e){var t=this.elements;return e.set(t[12],t[13],t[14]),e},eh.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},eh.invert=function(){return eu.invert(this,this),this},eh.rotateAxisAngle=function(e,t){return eu.rotateAxisAngle(this,e,t,this),this},eh.scale=function(e){return eu.scale(this,e,this),this},eh.translate=function(e){return eu.translate(this,e,this),this},eh.transpose=function(){return eu.transpose(this,this),this},eh.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[9],e[10],e[11],e[12],e[13],e[14],e[15])},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],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},eh.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},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],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]},eu.multiply=function(e,t,n){var r=e.elements,a=t.elements,i=n.elements,o=r[0],s=r[1],_=r[2],u=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],F=a[11],A=a[12],E=a[13],D=a[14],L=a[15];i[0]=o*w+h*C+d*V+p*M,i[1]=s*w+c*C+m*V+v*M,i[2]=_*w+l*C+g*V+x*M,i[3]=u*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]=_*k+l*S+g*b+x*T,i[7]=u*k+f*S+y*b+z*T,i[8]=o*R+h*q+d*P+p*F,i[9]=s*R+c*q+m*P+v*F,i[10]=_*R+l*q+g*P+x*F,i[11]=u*R+f*q+y*P+z*F,i[12]=o*A+h*E+d*D+p*L,i[13]=s*A+c*E+m*D+v*L,i[14]=_*A+l*E+g*D+x*L,i[15]=u*A+f*E+y*D+z*L},eu.equals=function(e,t){var n=e.elements,r=t.elements;return tt.equals(n[0],r[0])&&tt.equals(n[1],r[1])&&tt.equals(n[2],r[2])&&tt.equals(n[3],r[3])&&tt.equals(n[4],r[4])&&tt.equals(n[5],r[5])&&tt.equals(n[6],r[6])&&tt.equals(n[7],r[7])&&tt.equals(n[8],r[8])&&tt.equals(n[9],r[9])&&tt.equals(n[10],r[10])&&tt.equals(n[11],r[11])&&tt.equals(n[12],r[12])&&tt.equals(n[13],r[13])&&tt.equals(n[14],r[14])&&tt.equals(n[15],r[15])},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,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},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],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]},eu.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},eu.rotationQuaternion=function(e,t){var n=t.elements,r=e._x,a=e._y,i=e._z,o=e._w,s=r+r,_=a+a,u=i+i,h=r*s,c=a*s,l=a*_,f=i*s,d=i*_,m=i*u,g=o*s,y=o*_,p=o*u;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},eu.rotationAxisAngle=function(e,t,n){var r,a,i,o=n.elements,s=e._x,_=e._y,u=e._z,h=Math.sqrt(s*s+_*_+u*u);Math.abs(h)<tt.zeroTolerance||(s*=h=1/h,_*=h,u*=h,r=Math.sin(t),i=1-(a=Math.cos(t)),o[0]=s*s*i+a,o[1]=_*s*i+u*r,o[2]=u*s*i-_*r,o[3]=0,o[4]=s*_*i-u*r,o[5]=_*_*i+a,o[6]=u*_*i+s*r,o[7]=0,o[8]=s*u*i+_*r,o[9]=_*u*i-s*r,o[10]=u*u*i+a,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1)},eu.rotationTranslation=function(e,t,n){eu.rotationQuaternion(e,n);var r=n.elements;r[12]=t._x,r[13]=t._y,r[14]=t._z},eu.affineTransformation=function(e,t,n,r){var a=r.elements,i=t._x,o=t._y,s=t._z,_=t._w,u=i+i,h=o+o,c=s+s,l=i*u,f=i*h,d=i*c,m=o*h,g=o*c,y=s*c,p=_*u,v=_*h,x=_*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},eu.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},eu.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},eu.invert=function(e,t){var n=e.elements,r=t.elements,a=n[0],i=n[1],o=n[2],s=n[3],_=n[4],u=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*u-i*_,z=a*h-o*_,w=a*c-s*_,C=i*h-o*u,V=i*c-s*u,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]=(u*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-_*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]=(_*R-u*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]=(u*S-_*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},eu.lookAt=function(e,t,n,r){var a=r.elements,i=eu._tempVec30,o=eu._tempVec31,s=eu._tempVec32;tn.subtract(e,t,s),s.normalize(),tn.cross(n,s,i),i.normalize(),tn.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]=-tn.dot(i,e),a[13]=-tn.dot(o,e),a[14]=-tn.dot(s,e),a[15]=1},eu.ortho=function(e,t,n,r,a,i,o){var s=o.elements,_=1/(e-t),u=1/(n-r),h=1/(a-i);s[0]=-2*_,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*u,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*h,s[11]=0,s[12]=(e+t)*_,s[13]=(r+n)*u,s[14]=(i+a)*h,s[15]=1},eu.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},eu.rotateAxisAngle=function(e,t,n,r){var a,i,o,s=t._x,_=t._y,u=t._z,h=Math.sqrt(s*s+_*_+u*u);if(!(Math.abs(h)<tt.zeroTolerance)){var c=e.elements,l=r.elements;s*=h=1/h,_*=h,u*=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=_*s*o+u*a,S=u*s*o-_*a,b=s*_*o-u*a,T=_*_*o+i,R=u*_*o+s*a,q=s*u*o+_*a,P=_*u*o-s*a,F=u*u*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*F,l[9]=d*q+p*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])}},eu.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]},eu.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 _=r[0],u=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]=_,a[1]=u,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]=_*i+l*o+g*s+r[12],a[13]=u*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]}},eu.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],_=n[7],u=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]=_,r[14]=u}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]},eu);ts._tempVec30=new tn,ts._tempVec31=new tn,ts._tempVec32=new tn,ts._tempMat30=new ti,ts._identity=new ts(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);var t_=((el=(ec=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},el.add=function(e){return this._x+=e._x,this._y+=e._y,this._onValueChanged&&this._onValueChanged(),this},el.subtract=function(e){return this._x-=e._x,this._y-=e._y,this._onValueChanged&&this._onValueChanged(),this},el.multiply=function(e){return this._x*=e._x,this._y*=e._y,this._onValueChanged&&this._onValueChanged(),this},el.divide=function(e){return this._x/=e._x,this._y/=e._y,this._onValueChanged&&this._onValueChanged(),this},el.length=function(){var e=this._x,t=this._y;return Math.sqrt(e*e+t*t)},el.lengthSquared=function(){var e=this._x,t=this._y;return e*e+t*t},el.negate=function(){return this._x=-this._x,this._y=-this._y,this._onValueChanged&&this._onValueChanged(),this},el.normalize=function(){return ec.normalize(this,this),this},el.scale=function(e){return this._x*=e,this._y*=e,this._onValueChanged&&this._onValueChanged(),this},el.clone=function(){return new ec(this._x,this._y)},el.copyFrom=function(e){return this._x=e.x,this._y=e.y,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._onValueChanged&&this._onValueChanged(),this},el.copyToArray=function(e,t){void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y},el.toJSON=function(){return{x:this._x,y:this._y}},ec.add=function(e,t,n){n._x=e._x+t._x,n._y=e._y+t._y,n._onValueChanged&&n._onValueChanged()},ec.subtract=function(e,t,n){n._x=e._x-t._x,n._y=e._y-t._y,n._onValueChanged&&n._onValueChanged()},ec.multiply=function(e,t,n){n._x=e._x*t._x,n._y=e._y*t._y,n._onValueChanged&&n._onValueChanged()},ec.divide=function(e,t,n){n._x=e._x/t._x,n._y=e._y/t._y,n._onValueChanged&&n._onValueChanged()},ec.dot=function(e,t){return e._x*t._x+e._y*t._y},ec.distance=function(e,t){var n=t._x-e._x,r=t._y-e._y;return Math.sqrt(n*n+r*r)},ec.distanceSquared=function(e,t){var n=t._x-e._x,r=t._y-e._y;return n*n+r*r},ec.equals=function(e,t){return tt.equals(e._x,t._x)&&tt.equals(e._y,t._y)},ec.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()},ec.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()},ec.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()},ec.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._onValueChanged&&t._onValueChanged()},ec.normalize=function(e,t){var n=e._x,r=e._y,a=Math.sqrt(n*n+r*r);a>tt.zeroTolerance&&(a=1/a,t._x=n*a,t._y=r*a,t._onValueChanged&&t._onValueChanged())},ec.scale=function(e,t,n){n._x=e._x*t,n._y=e._y*t,n._onValueChanged&&n._onValueChanged()},te(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()}}]),ec);t_._zero=new t_(0,0),t_._one=new t_(1,1);var tu=((ed=(ef=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},ed.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},ed.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},ed.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},ed.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},ed.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)},ed.lengthSquared=function(){var e=this._x,t=this._y,n=this._z,r=this._w;return e*e+t*t+n*n+r*r},ed.negate=function(){return this._x=-this._x,this._y=-this._y,this._z=-this._z,this._w=-this._w,this._onValueChanged&&this._onValueChanged(),this},ed.normalize=function(){return ef.normalize(this,this),this},ed.scale=function(e){return this._x*=e,this._y*=e,this._z*=e,this._w*=e,this._onValueChanged&&this._onValueChanged(),this},ed.clone=function(){return new ef(this._x,this._y,this._z,this._w)},ed.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},ed.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},ed.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},ed.toJSON=function(){return{x:this._x,y:this._y,z:this._z,w:this._w}},ef.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()},ef.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()},ef.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()},ef.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()},ef.dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},ef.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)},ef.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},ef.equals=function(e,t){return tt.equals(e._x,t._x)&&tt.equals(e._y,t._y)&&tt.equals(e._z,t._z)&&tt.equals(e._w,t._w)},ef.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()},ef.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()},ef.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()},ef.negate=function(e,t){t._x=-e._x,t._y=-e._y,t._z=-e._z,t._w=-e._w,t._onValueChanged&&t._onValueChanged()},ef.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>tt.zeroTolerance&&(o=1/o,t._x=n*o,t._y=r*o,t._z=a*o,t._w=i*o,t._onValueChanged&&t._onValueChanged())},ef.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()},ef.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()},ef.transformByQuat=function(e,t,n){var r=e._x,a=e._y,i=e._z,o=e._w,s=t._x,_=t._y,u=t._z,h=t._w,c=h*r+_*i-u*a,l=h*a+u*r-s*i,f=h*i+s*a-_*r,d=-s*r-_*a-u*i;n._x=c*h-d*s-l*u+f*_,n._y=l*h-d*_-f*s+c*u,n._z=f*h-d*u-c*_+l*s,n._w=o,n._onValueChanged&&n._onValueChanged()},te(ef,[{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()}}]),ef);tu._zero=new tu(0,0,0,0),tu._one=new tu(1,1,1,1);var th=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 _=i[o],u=e[e7(_)];switch(_.targetRayMode){case"screen":case"tracked-pointer":var h=_.gripSpace,c=_.targetRaySpace;if(h){var l=t.getPose(h,a),f=l.transform,d=l.emulatedPosition;if(f){var m=u.gripPose;m.matrix.copyFromArray(f.matrix),m.position.copyFrom(f.position),m.rotation.copyFrom(f.orientation)}u.trackingState=d?ew.TrackingLost:ew.Tracking}if(c){var g=t.getPose(c,a),y=g.transform,p=g.emulatedPosition;if(y){var v=u.targetRayPose;v.matrix.copyFromArray(y.matrix),v.position.copyFrom(y.position),v.rotation.copyFrom(y.orientation),u.trackingState=p?ew.TrackingLost:ew.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 _=!1,u=s.views,h=s.emulatedPosition,c=0,l=u.length;c<l;c++){var f=u[c],d=function(e){switch(e){case"left":return ex.LeftCamera;case"right":return ex.RightCamera;default:return ex.Camera}}(f.eye),m=u[c].transform;d===ex.Camera&&(_||(_=!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?ew.TrackingLost:ew.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(!_){var C=e[ex.LeftCamera],V=e[ex.RightCamera],M=e[ex.Camera],k=C.pose,S=V.pose,b=M.pose;b.rotation.copyFrom(k.rotation);var T=b.position,R=b.matrix;tn.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?ew.TrackingLost:ew.Tracking,M.viewport=C.viewport.width&&C.viewport.height?C.viewport:V.viewport}}},e}(),tc=function(){function e(e,t,n){this._events=[],this._screenPointers=[],this._inputEventTypeMap={selectstart:eV.SelectStart,select:eV.Select,selectend:eV.SelectEnd,squeezestart:eV.SqueezeStart,squeeze:eV.Squeeze,squeezeend:eV.SqueezeEnd},this._targetRayModeMap={gaze:eM.Gaze,"tracked-pointer":eM.TrackedPointer,screen:eM.Screen},this._frame=new th(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.addEventListener("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:e7(t),targetRayMode:this._targetRayModeMap[t.targetRayMode]};if(n.targetRayMode===eM.Screen){var r=this._screenPointers,a=t.gamepad.axes;switch(n.x=a[0],n.y=a[1],n.type){case eV.SelectStart:for(var i=-1,o=-1,s=r.length-1;s>=0;s--){var _=r[s];if(_===t){i=s;break}_||(o=s)}-1===i&&(-1===o?i=r.push(t)-1:(i=o,r[o]=t)),n.id=i;break;case eV.SelectEnd:for(var u=r.length-1;u>=0;u--)r[u]===t&&(r[u]=null,n.id=u)}}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:eV.Select,targetRayMode:eM.Screen,input:ex.Controller,id:n,x:a[0],y:a[1]};e.push(i)}}return e}}]),e}(),tl=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(e8(e)).then(function(e){e?t():n(Error("The current context doesn't support WebXR."))})})},t.isSupportedFeature=function(e){return!0},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?e6(i,[].concat(r)):null},t.requestSession=function(e,t,n){return new Promise(function(r,a){for(var i=e8(t),o={requiredFeatures:["local"]},s=[],_=0,u=n.length;_<u;_++){var h=n[_]._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 _={antialias:void 0!==t.renderState.layers||i.antialias,alpha:!0,depth:i.depth,stencil:i.stencil,framebufferScaleFactor:s};o=new XRWebGLLayer(t,n,_),t.updateRenderState({baseLayer:o})}t.requestReferenceSpace("local").then(function(e){r(new tc(t,o,e))},a)},a)},a)},a)})},e}();function tf(e){return function(t){tl._platformFeatureMap[e]=t}}tl._platformFeatureMap=[];var td=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=eT.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===eT.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 _=n[o];if(_.state===eT.Resolved){var u=_.tracked[0];i.has(_.xrAnchor)?this._updateTrackedAnchor(a,r,_)?u.state===ew.Tracking&&(u.state=ew.TrackingLost):u.state=ew.Tracking:u.state=ew.NotTracking}}},n.onDelRequestTracking=function(e){switch(e.state){case eT.Submitted:e.state=eT.WaitingDestroy;break;case eT.Resolved:e.xrAnchor.delete(),e.state=eT.Destroyed;break;default:e.state=eT.Destroyed}},n._assembleOptions=function(e){e.requiredFeatures.push("anchors")},n._addAnchor=function(e,t,n){if(e&&t){n.state=eT.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===eT.WaitingDestroy?(e.delete(),n.state=eT.Destroyed):(n.xrAnchor=e,n.state=eT.Resolved)},function(){n.state===eT.WaitingDestroy?n.state=eT.Destroyed:n.state=eT.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}(td);tm=o([tf(eb.AnchorTracking)],tm);var tg=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,_=i.getImageTrackingResults(),u=0,h=_.length;u<h;u++){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=ew.Tracking):d.state=ew.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=ew.NotTracking)},n.onAddRequestTracking=function(e){e.state=eT.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=eT.Resolved):(o.state=eT.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}(td);tg=o([tf(eb.ImageTracking)],tg),(em=eA||(eA={}))[em.NotReceived=0]="NotReceived",em[em.Waiting=1]="Waiting",em[em.Received=2]="Received";var ty=function(e){function t(t){var n=e.call(this);return t!==eR.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,_=s.detectedPlanes||(null==(a=s.worldInformation)?void 0:a.detectedPlanes),u=n[0].tracked,h=0,c=u.length;h<c;h++){var l=u[h];_.has(l.xrPlane)?(l.state=ew.Tracking,this._updatePlane(s,o,l)):l.state=ew.NotTracking}var f=this._lastDetectedPlanes;_.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),u.push(t)}}),this._lastDetectedPlanes=_},n.onAddRequestTracking=function(e){e.state=eT.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,_=o.emulatedPosition;if(n.state=_?ew.TrackingLost:ew.Tracking,n.planeMode="horizontal"===i.orientation?eR.Horizontal:eR.Vertical,n.lastChangedTime<i.lastChangedTime){n.lastChangedTime=i.lastChangedTime,n.attributesDirty=!0;for(var u,h=i.polygon,c=0,l=a.length=h.length;c<l;c++)(a[u=c]||(a[u]=new tn)).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}(td);ty=o([tf(eb.PlaneTracking)],ty),e.WebXRDevice=tl,Object.defineProperty(e,"__esModule",{value:!0})});
2
+ //# sourceMappingURL=browser.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/main.js CHANGED
@@ -2179,11 +2179,11 @@ function _create_class(Constructor, protoProps, staticProps) {
2179
2179
  var unit = xx + yy + zz + ww;
2180
2180
  var test = 2 * (x * w - y * z);
2181
2181
  if (test > (1 - MathUtil.zeroTolerance) * unit) {
2182
- out._x = Math.atan2(2.0 * (w * y - x * z), zz + ww - yy - zz);
2182
+ out._x = Math.atan2(2.0 * (w * y - x * z), xx + ww - yy - zz);
2183
2183
  out._y = Math.PI / 2;
2184
2184
  out._z = 0;
2185
2185
  } else if (test < -(1 - MathUtil.zeroTolerance) * unit) {
2186
- out._x = Math.atan2(2.0 * (w * y - x * z), zz + ww - yy - zz);
2186
+ out._x = Math.atan2(2.0 * (w * y - x * z), xx + ww - yy - zz);
2187
2187
  out._y = -Math.PI / 2;
2188
2188
  out._z = 0;
2189
2189
  } else {