| 145 | a||37817===a||37818===a||37819===a||37820===a||37821===a)if(d=b.get("WEBGL_compressed_texture_astc"),null!==d)return a;if(103===a||104===a){if(c.isWebGL2){if(103===a)return 32775;if(104===a)return 32776}d=b.get("EXT_blend_minmax");if(null!==d){if(103===a)return d.MIN_EXT;if(104===a)return d.MAX_EXT}}if(1020===a){if(c.isWebGL2)return 34042;d=b.get("WEBGL_depth_texture");if(null!==d)return d.UNSIGNED_INT_24_8_WEBGL}return 0}}}function Xb(){D.call(this);this.type="Group"}function Xa(){D.call(this);this.type= |
| 146 | "Camera";this.matrixWorldInverse=new P;this.projectionMatrix=new P;this.projectionMatrixInverse=new P}function ca(a,b,c,d){Xa.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Jc(a){ca.call(this);this.cameras=a||[]}function uf(a,b,c){vf.setFromMatrixPosition(b.matrixWorld);wf.setFromMatrixPosition(c.matrixWorld); |
| 147 | var d=vf.distanceTo(wf),e=b.projectionMatrix.elements,f=c.projectionMatrix.elements,g=e[14]/(e[10]-1);c=e[14]/(e[10]+1);var h=(e[9]+1)/e[5],l=(e[9]-1)/e[5],m=(e[8]-1)/e[0],q=(f[8]+1)/f[0];e=g*m;f=g*q;q=d/(-m+q);m=q*-m;b.matrixWorld.decompose(a.position,a.quaternion,a.scale);a.translateX(m);a.translateZ(q);a.matrixWorld.compose(a.position,a.quaternion,a.scale);a.matrixWorldInverse.getInverse(a.matrixWorld);b=g+q;g=c+q;a.projectionMatrix.makePerspective(e-m,f+(d-m),h*c/g*b,l*c/g*b,b,g)}function xf(a){function b(){return null!== |
| 148 | e&&!0===e.isPresenting}function c(){if(b()){var c=e.getEyeParameters("left"),f=c.renderWidth*q;c=c.renderHeight*q;y=a.getPixelRatio();a.getSize(x);a.setDrawingBufferSize(2*f,c,1);G.start()}else d.enabled&&a.setDrawingBufferSize(x.width,x.height,y),G.stop()}var d=this,e=null,f=null,g=null,h=[],l=new P,m=new P,q=1,p="stage";"undefined"!==typeof window&&"VRFrameData"in window&&(f=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",c,!1));var k=new P,t=new ma,r=new n,u=new ca;u.bounds= |
| 149 | new W(0,0,.5,1);u.layers.enable(1);var w=new ca;w.bounds=new W(.5,0,.5,1);w.layers.enable(2);var z=new Jc([u,w]);z.layers.enable(1);z.layers.enable(2);var x=new C,y,F=[];this.enabled=!1;this.getController=function(a){var b=h[a];void 0===b&&(b=new Xb,b.matrixAutoUpdate=!1,b.visible=!1,h[a]=b);return b};this.getDevice=function(){return e};this.setDevice=function(a){void 0!==a&&(e=a);G.setContext(a)};this.setFramebufferScaleFactor=function(a){q=a};this.setFrameOfReferenceType=function(a){p=a};this.setPoseTarget= |
| 150 | function(a){void 0!==a&&(g=a)};this.getCamera=function(a){var c="stage"===p?1.6:0;if(!1===b())return a.position.set(0,c,0),a.rotation.set(0,0,0),a;e.depthNear=a.near;e.depthFar=a.far;e.getFrameData(f);if("stage"===p){var d=e.stageParameters;d?l.fromArray(d.sittingToStandingTransform):l.makeTranslation(0,c,0)}c=f.pose;d=null!==g?g:a;d.matrix.copy(l);d.matrix.decompose(d.position,d.quaternion,d.scale);null!==c.orientation&&(t.fromArray(c.orientation),d.quaternion.multiply(t));null!==c.position&&(t.setFromRotationMatrix(l), |
| 151 | r.fromArray(c.position),r.applyQuaternion(t),d.position.add(r));d.updateMatrixWorld();u.near=a.near;w.near=a.near;u.far=a.far;w.far=a.far;u.matrixWorldInverse.fromArray(f.leftViewMatrix);w.matrixWorldInverse.fromArray(f.rightViewMatrix);m.getInverse(l);"stage"===p&&(u.matrixWorldInverse.multiply(m),w.matrixWorldInverse.multiply(m));a=d.parent;null!==a&&(k.getInverse(a.matrixWorld),u.matrixWorldInverse.multiply(k),w.matrixWorldInverse.multiply(k));u.matrixWorld.getInverse(u.matrixWorldInverse);w.matrixWorld.getInverse(w.matrixWorldInverse); |
| 152 | u.projectionMatrix.fromArray(f.leftProjectionMatrix);w.projectionMatrix.fromArray(f.rightProjectionMatrix);uf(z,u,w);a=e.getLayers();a.length&&(a=a[0],null!==a.leftBounds&&4===a.leftBounds.length&&u.bounds.fromArray(a.leftBounds),null!==a.rightBounds&&4===a.rightBounds.length&&w.bounds.fromArray(a.rightBounds));a:for(a=0;a<h.length;a++){c=h[a];b:{d=a;for(var q=navigator.getGamepads&&navigator.getGamepads(),v=0,n=0,y=q.length;v<y;v++){var x=q[v];if(x&&("Daydream Controller"===x.id||"Gear VR Controller"=== |
| 153 | x.id||"Oculus Go Controller"===x.id||"OpenVR Gamepad"===x.id||x.id.startsWith("Oculus Touch")||x.id.startsWith("Spatial Controller"))){if(n===d){d=x;break b}n++}}d=void 0}if(void 0!==d&&void 0!==d.pose){if(null===d.pose)break a;q=d.pose;!1===q.hasPosition&&c.position.set(.2,-.6,-.05);null!==q.position&&c.position.fromArray(q.position);null!==q.orientation&&c.quaternion.fromArray(q.orientation);c.matrix.compose(c.position,c.quaternion,c.scale);c.matrix.premultiply(l);c.matrix.decompose(c.position, |
| 154 | c.quaternion,c.scale);c.matrixWorldNeedsUpdate=!0;c.visible=!0;q="Daydream Controller"===d.id?0:1;F[a]!==d.buttons[q].pressed&&(F[a]=d.buttons[q].pressed,!0===F[a]?c.dispatchEvent({type:"selectstart"}):(c.dispatchEvent({type:"selectend"}),c.dispatchEvent({type:"select"})))}else c.visible=!1}return z};this.getStandingMatrix=function(){return l};this.isPresenting=b;var G=new de;this.setAnimationLoop=function(a){G.setAnimationLoop(a);b()&&G.start()};this.submitFrame=function(){b()&&e.submitFrame()}; |
| 155 | this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",c)}}function gh(a){function b(){return null!==h&&null!==m}function c(a){var b=k[t.indexOf(a.inputSource)];b&&b.dispatchEvent({type:a.type})}function d(){a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());x.stop()}function e(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var f=a.context, |
| 156 | g=null,h=null,l=1,m=null,q="stage",p=null,k=[],t=[],r=new ca;r.layers.enable(1);r.viewport=new W;var u=new ca;u.layers.enable(2);u.viewport=new W;var n=new Jc([r,u]);n.layers.enable(1);n.layers.enable(2);this.enabled=!1;this.getController=function(a){var b=k[a];void 0===b&&(b=new Xb,b.matrixAutoUpdate=!1,b.visible=!1,k[a]=b);return b};this.getDevice=function(){return g};this.setDevice=function(a){void 0!==a&&(g=a);a instanceof XRDevice&&f.setCompatibleXRDevice(a)};this.setFramebufferScaleFactor=function(a){l= |
| 157 | a};this.setFrameOfReferenceType=function(a){q=a};this.setSession=function(b){h=b;null!==h&&(h.addEventListener("select",c),h.addEventListener("selectstart",c),h.addEventListener("selectend",c),h.addEventListener("end",d),h.baseLayer=new XRWebGLLayer(h,f,{framebufferScaleFactor:l}),h.requestFrameOfReference(q).then(function(b){m=b;a.setFramebuffer(h.baseLayer.framebuffer);x.setContext(h);x.start()}),t=h.getInputSources(),h.addEventListener("inputsourceschange",function(){t=h.getInputSources();console.log(t); |
| 158 | for(var a=0;a<k.length;a++)k[a].userData.inputSource=t[a]}))};this.getCamera=function(a){if(b()){var c=a.parent,d=n.cameras;e(n,c);for(var f=0;f<d.length;f++)e(d[f],c);a.matrixWorld.copy(n.matrixWorld);a=a.children;f=0;for(c=a.length;f<c;f++)a[f].updateMatrixWorld(!0);uf(n,r,u);return n}return a};this.isPresenting=b;var z=null,x=new de;x.setAnimationLoop(function(a,b){p=b.getDevicePose(m);if(null!==p)for(var c=h.baseLayer,d=b.views,e=0;e<d.length;e++){var f=d[e],g=c.getViewport(f),l=p.getViewMatrix(f), |