Browse Source

Update builds.

Mugen87 6 years ago
parent
commit
027f70773d
3 changed files with 134 additions and 130 deletions
  1. 2 0
      build/three.js
  2. 130 130
      build/three.min.js
  3. 2 0
      build/three.module.js

+ 2 - 0
build/three.js

@@ -19387,6 +19387,8 @@
 					shadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );
 					shadow.map.texture.name = light.name + ".shadowMap";
 
+					shadow.camera.updateProjectionMatrix();
+
 				}
 
 				_renderer.setRenderTarget( shadow.map );

+ 130 - 130
build/three.min.js

@@ -1,4 +1,3 @@
-// threejs.org/license
 (function(k,sa){"object"===typeof exports&&"undefined"!==typeof module?sa(exports):"function"===typeof define&&define.amd?define(["exports"],sa):(k=k||self,sa(k.THREE={}))})(this,function(k){function sa(){}function A(a,b){this.x=a||0;this.y=b||0}function ra(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._w=void 0!==d?d:1}function n(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0}function ka(){this.elements=[1,0,0,0,1,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}
 function T(a,b,c,d,e,f,g,h,l,m){Object.defineProperty(this,"id",{value:Li++});this.uuid=P.generateUUID();this.name="";this.image=void 0!==a?a:T.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==b?b:T.DEFAULT_MAPPING;this.wrapS=void 0!==c?c:1001;this.wrapT=void 0!==d?d:1001;this.magFilter=void 0!==e?e:1006;this.minFilter=void 0!==f?f:1008;this.anisotropy=void 0!==l?l:1;this.format=void 0!==g?g:1023;this.type=void 0!==h?h:1009;this.offset=new A(0,0);this.repeat=new A(1,1);this.center=new A(0,0);this.rotation=
 0;this.matrixAutoUpdate=!0;this.matrix=new ka;this.generateMipmaps=!0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this.encoding=void 0!==m?m:3E3;this.version=0;this.onUpdate=null}function Z(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1}function bb(a,b,c){this.width=a;this.height=b;this.scissor=new Z(0,0,a,b);this.scissorTest=!1;this.viewport=new Z(0,0,a,b);c=c||{};this.texture=new T(void 0,void 0,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,
@@ -108,135 +107,136 @@ c,d,e,f){var g=b.geometry;var h=m;var l=b.customDepthMaterial;d.isPointLight&&(h
 h.nearDistance=e,h.farDistance=f);return h}function e(c,g,h,l){if(!1!==c.visible){if(c.layers.test(g.layers)&&(c.isMesh||c.isLine||c.isPoints)&&c.castShadow&&(!c.frustumCulled||f.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(h.matrixWorldInverse,c.matrixWorld);var m=b.update(c),q=c.material;if(Array.isArray(q))for(var t=m.groups,k=0,u=t.length;k<u;k++){var p=t[k],r=q[p.materialIndex];r&&r.visible&&(r=d(c,r,l,h.near,h.far),a.renderBufferDirect(h,null,m,r,c,p))}else q.visible&&(r=d(c,q,l,
 h.near,h.far),a.renderBufferDirect(h,null,m,r,c,null))}c=c.children;m=0;for(q=c.length;m<q;m++)e(c[m],g,h,l)}}for(var f=new Gd,g=new A,h=new A,l=new Z,m=Array(4),q=Array(4),t={},k={0:1,1:0,2:2},r=0;4!==r;++r){var p=0!==(r&1),n=0!==(r&2),v=new Fb({depthPacking:3201,morphTargets:p,skinning:n});m[r]=v;p=new Gb({morphTargets:p,skinning:n});q[r]=p}var y=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(b,d,m){if(!1!==y.enabled&&(!1!==y.autoUpdate||!1!==y.needsUpdate)&&
 0!==b.length){var q=a.getRenderTarget(),t=a.getActiveCubeFace(),k=a.getActiveMipmapLevel(),u=a.state;u.setBlending(0);u.buffers.color.setClear(1,1,1,1);u.buffers.depth.setTest(!0);u.setScissorTest(!1);for(var r=0,p=b.length;r<p;r++){var n=b[r],w=n.shadow;if(void 0===w)console.warn("THREE.WebGLShadowMap:",n,"has no shadow.");else{g.copy(w.mapSize);var v=w.getFrameExtents();g.multiply(v);h.copy(w.mapSize);if(g.x>c||g.y>c)console.warn("THREE.WebGLShadowMap:",n,"has shadow exceeding max texture size, reducing"),
-g.x>c&&(h.x=Math.floor(c/v.x),g.x=h.x*v.x,w.mapSize.x=h.x),g.y>c&&(h.y=Math.floor(c/v.y),g.y=h.y*v.y,w.mapSize.y=h.y);null===w.map&&(w.map=new bb(g.x,g.y,{minFilter:1003,magFilter:1003,format:1023}),w.map.texture.name=n.name+".shadowMap");a.setRenderTarget(w.map);a.clear();v=w.getViewportCount();for(var x=0;x<v;x++){var La=w.getViewport(x);l.set(h.x*La.x,h.y*La.y,h.x*La.z,h.y*La.w);u.viewport(l);w.updateMatrices(n,m,x);f=w.getFrustum();e(d,m,w.camera,n)}}}y.needsUpdate=!1;a.setRenderTarget(q,t,k)}}}
-function Zj(a,b,c,d){function e(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b=0;b<d;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function f(c,e){y[c]=1;0===x[c]&&(a.enableVertexAttribArray(c),x[c]=1);L[c]!==e&&((d.isWebGL2?a:b.get("ANGLE_instanced_arrays"))[d.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,e),L[c]=e)}function g(b){!0!==N[b]&&(a.enable(b),N[b]=!0)}function h(b){!1!==N[b]&&
-(a.disable(b),N[b]=!1)}function l(b,d,e,f,l,m,q,t){if(0===b)Y&&(h(3042),Y=!1);else if(Y||(g(3042),Y=!0),5!==b){if(b!==z||t!==La){if(100!==Ca||100!==C)a.blendEquation(32774),C=Ca=100;if(t)switch(b){case 1:a.blendFuncSeparate(1,771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}else switch(b){case 1:a.blendFuncSeparate(770,771,1,771);break;case 2:a.blendFunc(770,
-1);break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}G=I=D=H=null;z=b;La=t}}else{l=l||d;m=m||e;q=q||f;if(d!==Ca||l!==C)a.blendEquationSeparate(c.convert(d),c.convert(l)),Ca=d,C=l;if(e!==H||f!==D||m!==I||q!==G)a.blendFuncSeparate(c.convert(e),c.convert(f),c.convert(m),c.convert(q)),H=e,D=f,I=m,G=q;z=b;La=null}}function m(b){ja!==b&&(b?a.frontFace(2304):a.frontFace(2305),ja=b)}function q(b){0!==b?(g(2884),b!==Uf&&(1===
-b?a.cullFace(1029):2===b?a.cullFace(1028):a.cullFace(1032))):h(2884);Uf=b}function t(b,c,d){if(b){if(g(32823),Zb!==c||Bh!==d)a.polygonOffset(c,d),Zb=c,Bh=d}else h(32823)}function k(b){void 0===b&&(b=33984+F-1);Pa!==b&&(a.activeTexture(b),Pa=b)}var r=new function(){var b=!1,c=new Z,d=null,e=new Z(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===e.equals(c)&&(a.clearColor(b,
-d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,0,0,0)}}},p=new function(){var b=!1,c=null,d=null,e=null;return{setTest:function(a){a?g(2929):h(2929)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(512);break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);
-d=b}},setLocked:function(a){b=a},setClear:function(b){e!==b&&(a.clearDepth(b),e=b)},reset:function(){b=!1;e=d=c=null}}},n=new function(){var b=!1,c=null,d=null,e=null,f=null,l=null,m=null,q=null,t=null;return{setTest:function(a){b||(a?g(2960):h(2960))},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,g){if(d!==b||e!==c||f!==g)a.stencilFunc(b,c,g),d=b,e=c,f=g},setOp:function(b,c,d){if(l!==b||m!==c||q!==d)a.stencilOp(b,c,d),l=b,m=c,q=d},setLocked:function(a){b=a},setClear:function(b){t!==
-b&&(a.clearStencil(b),t=b)},reset:function(){b=!1;t=q=m=l=f=e=d=c=null}}},v=a.getParameter(34921),y=new Uint8Array(v),x=new Uint8Array(v),L=new Uint8Array(v),N={},B=null,A=null,Y=null,z=null,Ca=null,H=null,D=null,C=null,I=null,G=null,La=!1,ja=null,Uf=null,hh=null,Zb=null,Bh=null,F=a.getParameter(35661),E=!1;v=0;v=a.getParameter(7938);-1!==v.indexOf("WebGL")?(v=parseFloat(/^WebGL ([0-9])/.exec(v)[1]),E=1<=v):-1!==v.indexOf("OpenGL ES")&&(v=parseFloat(/^OpenGL ES ([0-9])/.exec(v)[1]),E=2<=v);var Pa=
-null,O={},P=new Z,Q=new Z,J={};J[3553]=e(3553,3553,1);J[34067]=e(34067,34069,6);r.setClear(0,0,0,1);p.setClear(1);n.setClear(0);g(2929);p.setFunc(3);m(!1);q(1);g(2884);l(0);return{buffers:{color:r,depth:p,stencil:n},initAttributes:function(){for(var a=0,b=y.length;a<b;a++)y[a]=0},enableAttribute:function(a){f(a,0)},enableAttributeAndDivisor:f,disableUnusedAttributes:function(){for(var b=0,c=x.length;b!==c;++b)x[b]!==y[b]&&(a.disableVertexAttribArray(b),x[b]=0)},enable:g,disable:h,getCompressedTextureFormats:function(){if(null===
-B&&(B=[],b.get("WEBGL_compressed_texture_pvrtc")||b.get("WEBGL_compressed_texture_s3tc")||b.get("WEBGL_compressed_texture_etc1")||b.get("WEBGL_compressed_texture_astc")))for(var c=a.getParameter(34467),d=0;d<c.length;d++)B.push(c[d]);return B},useProgram:function(b){return A!==b?(a.useProgram(b),A=b,!0):!1},setBlending:l,setMaterial:function(a,b){2===a.side?h(2884):g(2884);var c=1===a.side;b&&(c=!c);m(c);1===a.blending&&!1===a.transparent?l(0):l(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,
-a.blendSrcAlpha,a.blendDstAlpha,a.premultipliedAlpha);p.setFunc(a.depthFunc);p.setTest(a.depthTest);p.setMask(a.depthWrite);r.setMask(a.colorWrite);b=a.stencilWrite;n.setTest(b);b&&(n.setFunc(a.stencilFunc,a.stencilRef,a.stencilMask),n.setOp(a.stencilFail,a.stencilZFail,a.stencilZPass));t(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:m,setCullFace:q,setLineWidth:function(b){b!==hh&&(E&&a.lineWidth(b),hh=b)},setPolygonOffset:t,setScissorTest:function(a){a?g(3089):h(3089)},
-activeTexture:k,bindTexture:function(b,c){null===Pa&&k();var d=O[Pa];void 0===d&&(d={type:void 0,texture:void 0},O[Pa]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||J[b]),d.type=b,d.texture=c},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(W){console.error("THREE.WebGLState:",W)}},texImage2D:function(){try{a.texImage2D.apply(a,arguments)}catch(W){console.error("THREE.WebGLState:",W)}},texImage3D:function(){try{a.texImage3D.apply(a,arguments)}catch(W){console.error("THREE.WebGLState:",
-W)}},scissor:function(b){!1===P.equals(b)&&(a.scissor(b.x,b.y,b.z,b.w),P.copy(b))},viewport:function(b){!1===Q.equals(b)&&(a.viewport(b.x,b.y,b.z,b.w),Q.copy(b))},reset:function(){for(var b=0;b<x.length;b++)1===x[b]&&(a.disableVertexAttribArray(b),x[b]=0);N={};Pa=B=null;O={};Uf=ja=z=A=null;r.reset();p.reset();n.reset()}}}function ak(a,b,c,d,e,f,g){function h(a,b){return D?new OffscreenCanvas(a,b):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function l(a,b,c,d){var e=1;if(a.width>
-d||a.height>d)e=d/Math.max(a.width,a.height);if(1>e||!0===b){if("undefined"!==typeof HTMLImageElement&&a instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&a instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&a instanceof ImageBitmap)return d=b?P.floorPowerOfTwo:Math.floor,b=d(e*a.width),e=d(e*a.height),void 0===H&&(H=h(b,e)),c=c?h(b,e):H,c.width=b,c.height=e,c.getContext("2d").drawImage(a,0,0,b,e),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+
-a.width+"x"+a.height+") to ("+b+"x"+e+")."),c;"data"in a&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+a.width+"x"+a.height+").")}return a}function m(a){return P.isPowerOfTwo(a.width)&&P.isPowerOfTwo(a.height)}function q(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function t(b,c,e,f){a.generateMipmap(b);d.get(c).__maxMipLevel=Math.log(Math.max(e,f))*Math.LOG2E}function k(a,c){if(!e.isWebGL2)return a;var d=a;6403===a&&(5126===c&&(d=33326),5131===
-c&&(d=33325),5121===c&&(d=33321));6407===a&&(5126===c&&(d=34837),5131===c&&(d=34843),5121===c&&(d=32849));6408===a&&(5126===c&&(d=34836),5131===c&&(d=34842),5121===c&&(d=32856));33325===d||33326===d||34842===d||34836===d?b.get("EXT_color_buffer_float"):(34843===d||34837===d)&&console.warn("THREE.WebGLRenderer: Floating point textures with RGB format not supported. Please use RGBA instead.");return d}function r(a){return 1003===a||1004===a||1005===a?9728:9729}function p(b){b=b.target;b.removeEventListener("dispose",
-p);var c=d.get(b);void 0!==c.__webglInit&&(a.deleteTexture(c.__webglTexture),d.remove(b));b.isVideoTexture&&Ca.delete(b);g.memory.textures--}function n(b){b=b.target;b.removeEventListener("dispose",n);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLRenderTargetCube)for(e=0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);
-else a.deleteFramebuffer(c.__webglFramebuffer),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}function v(a,b){var e=d.get(a);if(a.isVideoTexture){var f=g.render.frame;Ca.get(a)!==f&&(Ca.set(a,f),a.update())}if(0<a.version&&e.__version!==a.version)if(f=a.image,void 0===f)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(!1===f.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");
-else{B(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function y(b,g){if(6===b.image.length){var h=d.get(b);if(0<b.version&&h.__version!==b.version){N(h,b);c.activeTexture(33984+g);c.bindTexture(34067,h.__webglTexture);a.pixelStorei(37440,b.flipY);var u=b&&b.isCompressedTexture;g=b.image[0]&&b.image[0].isDataTexture;for(var r=[],p=0;6>p;p++)r[p]=u||g?g?b.image[p].image:b.image[p]:l(b.image[p],!1,!0,e.maxCubemapSize);var n=r[0],w=m(n)||e.isWebGL2,v=f.convert(b.format),
-x=f.convert(b.type),ja=k(v,x);L(34067,b,w);if(u){for(p=0;6>p;p++){var B=r[p].mipmaps;for(u=0;u<B.length;u++){var y=B[u];1023!==b.format&&1022!==b.format?-1<c.getCompressedTextureFormats().indexOf(v)?c.compressedTexImage2D(34069+p,u,ja,y.width,y.height,0,y.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(34069+p,u,ja,y.width,y.height,0,v,x,y.data)}}h.__maxMipLevel=B.length-1}else{B=b.mipmaps;for(p=0;6>p;p++)if(g)for(c.texImage2D(34069+
-p,0,ja,r[p].width,r[p].height,0,v,x,r[p].data),u=0;u<B.length;u++)y=B[u],y=y.image[p].image,c.texImage2D(34069+p,u+1,ja,y.width,y.height,0,v,x,y.data);else for(c.texImage2D(34069+p,0,ja,v,x,r[p]),u=0;u<B.length;u++)y=B[u],c.texImage2D(34069+p,u+1,ja,v,x,y.image[p]);h.__maxMipLevel=B.length}q(b,w)&&t(34067,b,n.width,n.height);h.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+g),c.bindTexture(34067,h.__webglTexture)}}function x(a,b){c.activeTexture(33984+b);c.bindTexture(34067,
-d.get(a).__webglTexture)}function L(c,g,h){h?(a.texParameteri(c,10242,f.convert(g.wrapS)),a.texParameteri(c,10243,f.convert(g.wrapT)),32879!==c&&35866!==c||a.texParameteri(c,32882,f.convert(g.wrapR)),a.texParameteri(c,10240,f.convert(g.magFilter)),a.texParameteri(c,10241,f.convert(g.minFilter))):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879!==c&&35866!==c||a.texParameteri(c,32882,33071),1001===g.wrapS&&1001===g.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),
-a.texParameteri(c,10240,r(g.magFilter)),a.texParameteri(c,10241,r(g.minFilter)),1003!==g.minFilter&&1006!==g.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));!(h=b.get("EXT_texture_filter_anisotropic"))||1015===g.type&&null===b.get("OES_texture_float_linear")||1016===g.type&&null===(e.isWebGL2||b.get("OES_texture_half_float_linear"))||!(1<g.anisotropy||d.get(g).__currentAnisotropy)||(a.texParameterf(c,
-h.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(g.anisotropy,e.getMaxAnisotropy())),d.get(g).__currentAnisotropy=g.anisotropy)}function N(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",p),b.__webglTexture=a.createTexture(),g.memory.textures++)}function B(b,d,g){var h=3553;d.isDataTexture2DArray&&(h=35866);d.isDataTexture3D&&(h=32879);N(b,d);c.activeTexture(33984+g);c.bindTexture(h,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,
-d.unpackAlignment);g=e.isWebGL2?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==d.minFilter&&1006!==d.minFilter;g=g&&!1===m(d.image);g=l(d.image,g,!1,e.maxTextureSize);var u=m(g)||e.isWebGL2,p=f.convert(d.format),r=f.convert(d.type),n=k(p,r);L(h,d,u);var w=d.mipmaps;if(d.isDepthTexture){n=6402;if(1015===d.type){if(!e.isWebGL2)throw Error("Float Depth Texture only supported in WebGL2.0");n=36012}else e.isWebGL2&&(n=33189);1026===d.format&&6402===n&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),
-d.type=1012,r=f.convert(d.type));1027===d.format&&(n=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),d.type=1020,r=f.convert(d.type)));c.texImage2D(3553,0,n,g.width,g.height,0,p,r,null)}else if(d.isDataTexture)if(0<w.length&&u){for(var v=0,x=w.length;v<x;v++)h=w[v],c.texImage2D(3553,v,n,h.width,h.height,0,p,r,h.data);d.generateMipmaps=!1;b.__maxMipLevel=w.length-1}else c.texImage2D(3553,0,n,g.width,g.height,0,p,r,g.data),b.__maxMipLevel=
-0;else if(d.isCompressedTexture){v=0;for(x=w.length;v<x;v++)h=w[v],1023!==d.format&&1022!==d.format?-1<c.getCompressedTextureFormats().indexOf(p)?c.compressedTexImage2D(3553,v,n,h.width,h.height,0,h.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):c.texImage2D(3553,v,n,h.width,h.height,0,p,r,h.data);b.__maxMipLevel=w.length-1}else if(d.isDataTexture2DArray)c.texImage3D(35866,0,n,g.width,g.height,g.depth,0,p,r,g.data),b.__maxMipLevel=
-0;else if(d.isDataTexture3D)c.texImage3D(32879,0,n,g.width,g.height,g.depth,0,p,r,g.data),b.__maxMipLevel=0;else if(0<w.length&&u){v=0;for(x=w.length;v<x;v++)h=w[v],c.texImage2D(3553,v,n,p,r,h);d.generateMipmaps=!1;b.__maxMipLevel=w.length-1}else c.texImage2D(3553,0,n,p,r,g),b.__maxMipLevel=0;q(d,u)&&t(3553,d,g.width,g.height);b.__version=d.version;if(d.onUpdate)d.onUpdate(d)}function A(b,e,g,h){var l=f.convert(e.texture.format),m=f.convert(e.texture.type),q=k(l,m);c.texImage2D(h,0,q,e.width,e.height,
-0,l,m,null);a.bindFramebuffer(36160,b);a.framebufferTexture2D(36160,g,h,d.get(e.texture).__webglTexture,0);a.bindFramebuffer(36160,null)}function Y(b,c,d){a.bindRenderbuffer(36161,b);if(c.depthBuffer&&!c.stencilBuffer)d?(d=z(c),a.renderbufferStorageMultisample(36161,d,33189,c.width,c.height)):a.renderbufferStorage(36161,33189,c.width,c.height),a.framebufferRenderbuffer(36160,36096,36161,b);else if(c.depthBuffer&&c.stencilBuffer)d?(d=z(c),a.renderbufferStorageMultisample(36161,d,35056,c.width,c.height)):
-a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,33306,36161,b);else{b=f.convert(c.texture.format);var e=f.convert(c.texture.type);b=k(b,e);d?(d=z(c),a.renderbufferStorageMultisample(36161,d,b,c.width,c.height)):a.renderbufferStorage(36161,b,c.width,c.height)}a.bindRenderbuffer(36161,null)}function z(a){return e.isWebGL2&&a.isWebGLMultisampleRenderTarget?Math.min(e.maxSamples,a.samples):0}var Ca=new WeakMap,H,D="undefined"!==typeof OffscreenCanvas,C=0,I=!1,G=!1;
-this.allocateTextureUnit=function(){var a=C;a>=e.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+a+" texture units while this GPU supports only "+e.maxTextures);C+=1;return a};this.resetTextureUnits=function(){C=0};this.setTexture2D=v;this.setTexture2DArray=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?B(e,a,b):(c.activeTexture(33984+b),c.bindTexture(35866,e.__webglTexture))};this.setTexture3D=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?B(e,
-a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};this.setTextureCube=y;this.setTextureCubeDynamic=x;this.setupRenderTarget=function(b){var h=d.get(b),l=d.get(b.texture);b.addEventListener("dispose",n);l.__webglTexture=a.createTexture();g.memory.textures++;var u=!0===b.isWebGLRenderTargetCube,p=!0===b.isWebGLMultisampleRenderTarget,r=m(b)||e.isWebGL2;if(u)for(h.__webglFramebuffer=[],p=0;6>p;p++)h.__webglFramebuffer[p]=a.createFramebuffer();else if(h.__webglFramebuffer=a.createFramebuffer(),
-p)if(e.isWebGL2){h.__webglMultisampledFramebuffer=a.createFramebuffer();h.__webglColorRenderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,h.__webglColorRenderbuffer);p=f.convert(b.texture.format);var w=f.convert(b.texture.type);p=k(p,w);w=z(b);a.renderbufferStorageMultisample(36161,w,p,b.width,b.height);a.bindFramebuffer(36160,h.__webglMultisampledFramebuffer);a.framebufferRenderbuffer(36160,36064,36161,h.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);b.depthBuffer&&(h.__webglDepthRenderbuffer=
-a.createRenderbuffer(),Y(h.__webglDepthRenderbuffer,b,!0));a.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(u){c.bindTexture(34067,l.__webglTexture);L(34067,b.texture,r);for(p=0;6>p;p++)A(h.__webglFramebuffer[p],b,36064,34069+p);q(b.texture,r)&&t(34067,b.texture,b.width,b.height);c.bindTexture(34067,null)}else c.bindTexture(3553,l.__webglTexture),L(3553,b.texture,r),A(h.__webglFramebuffer,b,36064,3553),q(b.texture,
-r)&&t(3553,b.texture,b.width,b.height),c.bindTexture(3553,null);if(b.depthBuffer){h=d.get(b);l=!0===b.isWebGLRenderTargetCube;if(b.depthTexture){if(l)throw Error("target.depthTexture not supported in Cube render targets");if(b&&b.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(36160,h.__webglFramebuffer);if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");
-d.get(b.depthTexture).__webglTexture&&b.depthTexture.image.width===b.width&&b.depthTexture.image.height===b.height||(b.depthTexture.image.width=b.width,b.depthTexture.image.height=b.height,b.depthTexture.needsUpdate=!0);v(b.depthTexture,0);h=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(36160,36096,3553,h,0);else if(1027===b.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,h,0);else throw Error("Unknown depthTexture format");}else if(l)for(h.__webglDepthbuffer=
-[],l=0;6>l;l++)a.bindFramebuffer(36160,h.__webglFramebuffer[l]),h.__webglDepthbuffer[l]=a.createRenderbuffer(),Y(h.__webglDepthbuffer[l],b);else a.bindFramebuffer(36160,h.__webglFramebuffer),h.__webglDepthbuffer=a.createRenderbuffer(),Y(h.__webglDepthbuffer,b);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmap=function(a){var b=a.texture,f=m(a)||e.isWebGL2;if(q(b,f)){f=a.isWebGLRenderTargetCube?34067:3553;var g=d.get(b).__webglTexture;c.bindTexture(f,g);t(f,b,a.width,a.height);c.bindTexture(f,
-null)}};this.updateMultisampleRenderTarget=function(b){if(b.isWebGLMultisampleRenderTarget)if(e.isWebGL2){var c=d.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);c=b.width;var f=b.height,g=16384;b.depthBuffer&&(g|=256);b.stencilBuffer&&(g|=1024);a.blitFramebuffer(0,0,c,f,0,0,c,f,g,9728)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")};this.safeSetTexture2D=function(a,b){a&&a.isWebGLRenderTarget&&
-(!1===I&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),I=!0),a=a.texture);v(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLRenderTargetCube&&(!1===G&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),G=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?y(a,b):x(a,b)}}function Ch(a,b,c){return{convert:function(a){if(1E3===
-a)return 10497;if(1001===a)return 33071;if(1002===a)return 33648;if(1003===a)return 9728;if(1004===a)return 9984;if(1005===a)return 9986;if(1006===a)return 9729;if(1007===a)return 9985;if(1008===a)return 9987;if(1009===a)return 5121;if(1017===a)return 32819;if(1018===a)return 32820;if(1019===a)return 33635;if(1010===a)return 5120;if(1011===a)return 5122;if(1012===a)return 5123;if(1013===a)return 5124;if(1014===a)return 5125;if(1015===a)return 5126;if(1016===a){if(c.isWebGL2)return 5131;var d=b.get("OES_texture_half_float");
-if(null!==d)return d.HALF_FLOAT_OES}if(1021===a)return 6406;if(1022===a)return 6407;if(1023===a)return 6408;if(1024===a)return 6409;if(1025===a)return 6410;if(1026===a)return 6402;if(1027===a)return 34041;if(1028===a)return 6403;if(100===a)return 32774;if(101===a)return 32778;if(102===a)return 32779;if(200===a)return 0;if(201===a)return 1;if(202===a)return 768;if(203===a)return 769;if(204===a)return 770;if(205===a)return 771;if(206===a)return 772;if(207===a)return 773;if(208===a)return 774;if(209===
-a)return 775;if(210===a)return 776;if(33776===a||33777===a||33778===a||33779===a)if(d=b.get("WEBGL_compressed_texture_s3tc"),null!==d){if(33776===a)return d.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return d.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===a)return d.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return d.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===a||35841===a||35842===a||35843===a)if(d=b.get("WEBGL_compressed_texture_pvrtc"),null!==d){if(35840===a)return d.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===
-a)return d.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return d.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return d.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===a&&(d=b.get("WEBGL_compressed_texture_etc1"),null!==d))return d.COMPRESSED_RGB_ETC1_WEBGL;if(37808===a||37809===a||37810===a||37811===a||37812===a||37813===a||37814===a||37815===a||37816===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 Jc(){D.call(this);this.type="Group"}function Ld(a){V.call(this);this.cameras=a||[]}function Dh(a,b,c){Eh.setFromMatrixPosition(b.matrixWorld);Fh.setFromMatrixPosition(c.matrixWorld);var d=Eh.distanceTo(Fh),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 Yf(a){function b(){return null!==h&&!0===h.isPresenting}function c(){if(b()){var c=
-h.getEyeParameters("left");e=2*c.renderWidth*r;f=c.renderHeight*r;Ga=a.getPixelRatio();a.getSize(B);a.setDrawingBufferSize(e,f,1);x.viewport.set(0,0,e/2,f);L.viewport.set(e/2,0,e/2,f);z.start();g.dispatchEvent({type:"sessionstart"})}else g.enabled&&a.setDrawingBufferSize(B.width,B.height,Ga),z.stop(),g.dispatchEvent({type:"sessionend"})}function d(a,b){null!==b&&4===b.length&&a.set(b[0]*e,b[1]*f,b[2]*e,b[3]*f)}var e,f,g=this,h=null,l=null,m=null,q=[],t=new R,k=new R,r=1,p="local-floor";"undefined"!==
-typeof window&&"VRFrameData"in window&&(l=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",c,!1));var w=new R,v=new ra,y=new n,x=new V;x.viewport=new Z;x.layers.enable(1);var L=new V;L.viewport=new Z;L.layers.enable(2);var N=new Ld([x,L]);N.layers.enable(1);N.layers.enable(2);var B=new A,Ga,Y=[];this.enabled=!1;this.getController=function(a){var b=q[a];void 0===b&&(b=new Jc,b.matrixAutoUpdate=!1,b.visible=!1,q[a]=b);return b};this.getDevice=function(){return h};this.setDevice=
-function(a){void 0!==a&&(h=a);z.setContext(a)};this.setFramebufferScaleFactor=function(a){r=a};this.setReferenceSpaceType=function(a){p=a};this.setPoseTarget=function(a){void 0!==a&&(m=a)};this.getCamera=function(a){var c="local-floor"===p?1.6:0;if(!1===b())return a.position.set(0,c,0),a.rotation.set(0,0,0),a;h.depthNear=a.near;h.depthFar=a.far;h.getFrameData(l);if("local-floor"===p){var e=h.stageParameters;e?t.fromArray(e.sittingToStandingTransform):t.makeTranslation(0,c,0)}c=l.pose;e=null!==m?m:
-a;e.matrix.copy(t);e.matrix.decompose(e.position,e.quaternion,e.scale);null!==c.orientation&&(v.fromArray(c.orientation),e.quaternion.multiply(v));null!==c.position&&(v.setFromRotationMatrix(t),y.fromArray(c.position),y.applyQuaternion(v),e.position.add(y));e.updateMatrixWorld();x.near=a.near;L.near=a.near;x.far=a.far;L.far=a.far;x.matrixWorldInverse.fromArray(l.leftViewMatrix);L.matrixWorldInverse.fromArray(l.rightViewMatrix);k.getInverse(t);"local-floor"===p&&(x.matrixWorldInverse.multiply(k),L.matrixWorldInverse.multiply(k));
-a=e.parent;null!==a&&(w.getInverse(a.matrixWorld),x.matrixWorldInverse.multiply(w),L.matrixWorldInverse.multiply(w));x.matrixWorld.getInverse(x.matrixWorldInverse);L.matrixWorld.getInverse(L.matrixWorldInverse);x.projectionMatrix.fromArray(l.leftProjectionMatrix);L.projectionMatrix.fromArray(l.rightProjectionMatrix);Dh(N,x,L);a=h.getLayers();a.length&&(a=a[0],d(x.viewport,a.leftBounds),d(L.viewport,a.rightBounds));a:for(a=0;a<q.length;a++){c=q[a];b:{e=a;for(var f=navigator.getGamepads&&navigator.getGamepads(),
-g=0,u=0,r=f.length;g<r;g++){var n=f[g];if(n&&("Daydream Controller"===n.id||"Gear VR Controller"===n.id||"Oculus Go Controller"===n.id||"OpenVR Gamepad"===n.id||n.id.startsWith("Oculus Touch")||n.id.startsWith("HTC Vive Focus")||n.id.startsWith("Spatial Controller"))){if(u===e){e=n;break b}u++}}e=void 0}if(void 0!==e&&void 0!==e.pose){if(null===e.pose)break a;f=e.pose;!1===f.hasPosition&&c.position.set(.2,-.6,-.05);null!==f.position&&c.position.fromArray(f.position);null!==f.orientation&&c.quaternion.fromArray(f.orientation);
-c.matrix.compose(c.position,c.quaternion,c.scale);c.matrix.premultiply(t);c.matrix.decompose(c.position,c.quaternion,c.scale);c.matrixWorldNeedsUpdate=!0;c.visible=!0;f="Daydream Controller"===e.id?0:1;void 0===Y[a]&&(Y[a]=!1);Y[a]!==e.buttons[f].pressed&&(Y[a]=e.buttons[f].pressed,!0===Y[a]?c.dispatchEvent({type:"selectstart"}):(c.dispatchEvent({type:"selectend"}),c.dispatchEvent({type:"select"})))}else c.visible=!1}return N};this.getStandingMatrix=function(){return t};this.isPresenting=b;var z=
-new Vf;this.setAnimationLoop=function(a){z.setAnimationLoop(a);b()&&z.start()};this.submitFrame=function(){b()&&h.submitFrame()};this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",c)};this.setFrameOfReferenceType=function(){console.warn("THREE.WebVRManager: setFrameOfReferenceType() has been deprecated.")}}function Gh(a,b){function c(){return null!==l&&null!==m}function d(a){for(var b=0;b<k.length;b++)r[b]===a.inputSource&&k[b].dispatchEvent({type:a.type})}
-function e(){a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());x.stop();h.dispatchEvent({type:"sessionend"})}function f(a){m=a;x.setContext(l);x.start();h.dispatchEvent({type:"sessionstart"})}function g(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var h=this,l=null,m=null,q="local-floor",t=null,k=[],r=[],p=new V;p.layers.enable(1);p.viewport=new Z;var n=new V;n.layers.enable(2);n.viewport=
-new Z;var v=new Ld([p,n]);v.layers.enable(1);v.layers.enable(2);this.enabled=!1;this.getController=function(a){var b=k[a];void 0===b&&(b=new Jc,b.matrixAutoUpdate=!1,b.visible=!1,k[a]=b);return b};this.setFramebufferScaleFactor=function(a){};this.setReferenceSpaceType=function(a){q=a};this.getSession=function(){return l};this.setSession=function(a){l=a;null!==l&&(l.addEventListener("select",d),l.addEventListener("selectstart",d),l.addEventListener("selectend",d),l.addEventListener("end",e),l.updateRenderState({baseLayer:new XRWebGLLayer(l,
-b)}),l.requestReferenceSpace(q).then(f),r=l.inputSources,l.addEventListener("inputsourceschange",function(){r=l.inputSources;console.log(r);for(var a=0;a<k.length;a++)k[a].userData.inputSource=r[a]}))};this.getCamera=function(a){if(c()){var b=a.parent,d=v.cameras;g(v,b);for(var e=0;e<d.length;e++)g(d[e],b);a.matrixWorld.copy(v.matrixWorld);a=a.children;e=0;for(b=a.length;e<b;e++)a[e].updateMatrixWorld(!0);Dh(v,p,n);return v}return a};this.isPresenting=c;var y=null,x=new Vf;x.setAnimationLoop(function(b,
-c){t=c.getViewerPose(m);if(null!==t){var d=t.views,e=l.renderState.baseLayer;a.setFramebuffer(e.framebuffer);for(var f=0;f<d.length;f++){var g=d[f],h=e.getViewport(g),q=v.cameras[f];q.matrix.fromArray(g.transform.inverse.matrix).getInverse(q.matrix);q.projectionMatrix.fromArray(g.projectionMatrix);q.viewport.set(h.x,h.y,h.width,h.height);0===f&&v.matrix.copy(q.matrix)}}for(f=0;f<k.length;f++){d=k[f];if(e=r[f])if(e=c.getPose(e.targetRaySpace,m),null!==e){d.matrix.fromArray(e.transform.matrix);d.matrix.decompose(d.position,
-d.rotation,d.scale);d.visible=!0;continue}d.visible=!1}y&&y(b)});this.setAnimationLoop=function(a){y=a};this.dispose=function(){};this.getStandingMatrix=function(){console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed.");return new R};this.getDevice=function(){console.warn("THREE.WebXRManager: getDevice() has been deprecated.")};this.setDevice=function(){console.warn("THREE.WebXRManager: setDevice() has been deprecated.")};this.setFrameOfReferenceType=function(){console.warn("THREE.WebXRManager: setFrameOfReferenceType() has been deprecated.")};
-this.submitFrame=function(){}}function Zf(a){var b;function c(){oa=new Wi(K);Fa=new Ui(K,oa,a);Fa.isWebGL2||(oa.get("WEBGL_depth_texture"),oa.get("OES_texture_float"),oa.get("OES_texture_half_float"),oa.get("OES_texture_half_float_linear"),oa.get("OES_standard_derivatives"),oa.get("OES_element_index_uint"),oa.get("ANGLE_instanced_arrays"));oa.get("OES_texture_float_linear");la=new Ch(K,oa,Fa);da=new Zj(K,oa,la,Fa);da.scissor(Kd.copy(ka).multiplyScalar(ca).floor());da.viewport(V.copy(ea).multiplyScalar(ca).floor());
-ba=new Zi(K);aa=new Qj;ha=new ak(K,oa,da,aa,Fa,la,ba);va=new Ri(K);xa=new Xi(K,va,ba);ra=new bj(xa,ba);za=new aj(K);qa=new Pj(E,oa,Fa);wa=new Tj;sa=new Yj;na=new Si(E,da,ra,z);Ba=new Ti(K,oa,ba,Fa);Da=new Yi(K,oa,ba,Fa);ba.programs=qa.programs;E.capabilities=Fa;E.extensions=oa;E.properties=aa;E.renderLists=wa;E.state=da;E.info=ba}function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");O=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");O=!1;c()}function f(a){a=
-a.target;a.removeEventListener("dispose",f);g(a);aa.remove(a)}function g(a){var b=aa.get(a).program;a.program=void 0;void 0!==b&&qa.releaseProgram(b)}function h(a,b){a.render(function(a){E.renderBufferImmediate(a,b)})}function l(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=a.renderOrder;else if(a.isLOD)!0===a.autoUpdate&&a.update(b);else if(a.isLight)F.pushLight(a),a.castShadow&&F.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||ia.intersectsSprite(a)){d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd);
-var e=ra.update(a),f=a.material;f.visible&&H.push(a,e,f,c,Hb.z,null)}}else if(a.isImmediateRenderObject)d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd),H.push(a,null,a.material,c,Hb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||ia.intersectsObject(a))if(d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd),e=ra.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var q=g[h],k=f[q.materialIndex];
-k&&k.visible&&H.push(a,e,k,c,Hb.z,q)}else f.visible&&H.push(a,e,f,c,Hb.z,null);a=a.children;h=0;for(m=a.length;h<m;h++)l(a[h],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,l=g.geometry,m=void 0===d?g.material:d;g=g.group;if(c.isArrayCamera){Pa=c;for(var k=c.cameras,t=0,p=k.length;t<p;t++){var u=k[t];h.layers.test(u.layers)&&(da.viewport(V.copy(u.viewport)),F.setupLights(u),q(h,b,u,l,m,g))}}else Pa=null,q(h,b,c,l,m,g)}}function q(a,c,d,e,f,g){a.onBeforeRender(E,
-c,d,e,f,g);F=sa.get(c,Pa||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){da.setMaterial(f);var l=u(d,c.fog,f,a);X=b=null;U=!1;h(a,l)}else E.renderBufferDirect(d,c.fog,e,f,a,g);a.onAfterRender(E,c,d,e,f,g);F=sa.get(c,Pa||d)}function k(a,b,c){var d=aa.get(a),e=F.state.lights,h=e.state.version;c=qa.getParameters(a,e.state,F.state.shadowsArray,b,Oa.numPlanes,Oa.numIntersection,c);var l=qa.getProgramCode(a,
-c),m=d.program,q=!0;if(void 0===m)a.addEventListener("dispose",f);else if(m.code!==l)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=h;else if(void 0!==c.shaderID)return;q=!1}q&&(c.shaderID?(l=fb[c.shaderID],d.shader={name:a.type,uniforms:$b(l.uniforms),vertexShader:l.vertexShader,fragmentShader:l.fragmentShader}):d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader,E),l=qa.getProgramCode(a,c),m=qa.acquireProgram(a,
-d.shader,c,l),d.program=m,a.program=m);c=m.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<E.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<E.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Oa.numPlanes,d.numIntersection=Oa.numIntersection,c.clippingPlanes=Oa.uniform;d.fog=
-b;d.lightsStateVersion=h;a.lights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.spotLights.value=e.state.spot,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,
-c.pointShadowMap.value=e.state.pointShadowMap,c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=Eb.seqWithValue(a.seq,c);d.uniformsList=a}function u(a,b,c,d){ha.resetTextureUnits();var e=aa.get(c),f=F.state.lights;Ke&&(ua||a!==fa)&&Oa.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===fa&&c.id===Zb);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:c.lights&&e.lightsStateVersion!==f.state.version?c.needsUpdate=
-!0:void 0===e.numClippingPlanes||e.numClippingPlanes===Oa.numPlanes&&e.numIntersection===Oa.numIntersection||(c.needsUpdate=!0));c.needsUpdate&&(k(c,b,d),c.needsUpdate=!1);var g=!1,h=!1,l=!1;f=e.program;var m=f.getUniforms(),q=e.shader.uniforms;da.useProgram(f.program)&&(l=h=g=!0);c.id!==Zb&&(Zb=c.id,h=!0);if(g||fa!==a){m.setValue(K,"projectionMatrix",a.projectionMatrix);Fa.logarithmicDepthBuffer&&m.setValue(K,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));fa!==a&&(fa=a,l=h=!0);if(c.isShaderMaterial||
-c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)g=m.map.cameraPosition,void 0!==g&&g.setValue(K,Hb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&m.setValue(K,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(m.setOptional(K,d,"bindMatrix"),m.setOptional(K,d,"bindMatrixInverse"),a=d.skeleton))if(g=a.bones,Fa.floatVertexTextures){if(void 0===a.boneTexture){g=Math.sqrt(4*
-g.length);g=P.ceilPowerOfTwo(g);g=Math.max(g,4);var t=new Float32Array(g*g*4);t.set(a.boneMatrices);var u=new ac(t,g,g,1023,1015);u.needsUpdate=!0;a.boneMatrices=t;a.boneTexture=u;a.boneTextureSize=g}m.setValue(K,"boneTexture",a.boneTexture,ha);m.setValue(K,"boneTextureSize",a.boneTextureSize)}else m.setOptional(K,a,"boneMatrices");h&&(m.setValue(K,"toneMappingExposure",E.toneMappingExposure),m.setValue(K,"toneMappingWhitePoint",E.toneMappingWhitePoint),c.lights&&(h=l,q.ambientLightColor.needsUpdate=
-h,q.lightProbe.needsUpdate=h,q.directionalLights.needsUpdate=h,q.pointLights.needsUpdate=h,q.spotLights.needsUpdate=h,q.rectAreaLights.needsUpdate=h,q.hemisphereLights.needsUpdate=h),b&&c.fog&&(q.fogColor.value.copy(b.color),b.isFog?(q.fogNear.value=b.near,q.fogFar.value=b.far):b.isFogExp2&&(q.fogDensity.value=b.density)),c.isMeshBasicMaterial?r(q,c):c.isMeshLambertMaterial?(r(q,c),c.emissiveMap&&(q.emissiveMap.value=c.emissiveMap)):c.isMeshPhongMaterial?(r(q,c),c.isMeshToonMaterial?(p(q,c),c.gradientMap&&
-(q.gradientMap.value=c.gradientMap)):p(q,c)):c.isMeshStandardMaterial?(r(q,c),c.isMeshPhysicalMaterial?(w(q,c),q.reflectivity.value=c.reflectivity,q.clearcoat.value=c.clearcoat,q.clearcoatRoughness.value=c.clearcoatRoughness,c.sheen&&q.sheen.value.copy(c.sheen),c.clearcoatNormalMap&&(q.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),q.clearcoatNormalMap.value=c.clearcoatNormalMap,1===c.side&&q.clearcoatNormalScale.value.negate())):w(q,c)):c.isMeshMatcapMaterial?(r(q,c),c.matcap&&(q.matcap.value=
-c.matcap),c.bumpMap&&(q.bumpMap.value=c.bumpMap,q.bumpScale.value=c.bumpScale,1===c.side&&(q.bumpScale.value*=-1)),c.normalMap&&(q.normalMap.value=c.normalMap,q.normalScale.value.copy(c.normalScale),1===c.side&&q.normalScale.value.negate()),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isMeshDepthMaterial?(r(q,c),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=
-c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isMeshDistanceMaterial?(r(q,c),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias),q.referencePosition.value.copy(c.referencePosition),q.nearDistance.value=c.nearDistance,q.farDistance.value=c.farDistance):c.isMeshNormalMaterial?(r(q,c),c.bumpMap&&(q.bumpMap.value=c.bumpMap,q.bumpScale.value=c.bumpScale,1===c.side&&(q.bumpScale.value*=
--1)),c.normalMap&&(q.normalMap.value=c.normalMap,q.normalScale.value.copy(c.normalScale),1===c.side&&q.normalScale.value.negate()),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isLineBasicMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,c.isLineDashedMaterial&&(q.dashSize.value=c.dashSize,q.totalSize.value=c.dashSize+c.gapSize,q.scale.value=c.scale)):c.isPointsMaterial?(q.diffuse.value.copy(c.color),
-q.opacity.value=c.opacity,q.size.value=c.size*ca,q.scale.value=.5*W,q.map.value=c.map,null!==c.map&&(!0===c.map.matrixAutoUpdate&&c.map.updateMatrix(),q.uvTransform.value.copy(c.map.matrix))):c.isSpriteMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,q.rotation.value=c.rotation,q.map.value=c.map,null!==c.map&&(!0===c.map.matrixAutoUpdate&&c.map.updateMatrix(),q.uvTransform.value.copy(c.map.matrix))):c.isShadowMaterial&&(q.color.value.copy(c.color),q.opacity.value=c.opacity),void 0!==
-q.ltc_1&&(q.ltc_1.value=I.LTC_1),void 0!==q.ltc_2&&(q.ltc_2.value=I.LTC_2),Eb.upload(K,e.uniformsList,q,ha));c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Eb.upload(K,e.uniformsList,q,ha),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&m.setValue(K,"center",d.center);m.setValue(K,"modelViewMatrix",d.modelViewMatrix);m.setValue(K,"normalMatrix",d.normalMatrix);m.setValue(K,"modelMatrix",d.matrixWorld);return f}function r(a,b){a.opacity.value=b.opacity;b.color&&a.diffuse.value.copy(b.color);b.emissive&&
-a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);b.map&&(a.map.value=b.map);b.alphaMap&&(a.alphaMap.value=b.alphaMap);b.specularMap&&(a.specularMap.value=b.specularMap);b.envMap&&(a.envMap.value=b.envMap,a.flipEnvMap.value=b.envMap.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=b.refractionRatio,a.maxMipLevel.value=aa.get(b.envMap).__maxMipLevel);b.lightMap&&(a.lightMap.value=b.lightMap,a.lightMapIntensity.value=b.lightMapIntensity);b.aoMap&&(a.aoMap.value=
-b.aoMap,a.aoMapIntensity.value=b.aoMapIntensity);if(b.map)var c=b.map;else b.specularMap?c=b.specularMap:b.displacementMap?c=b.displacementMap:b.normalMap?c=b.normalMap:b.bumpMap?c=b.bumpMap:b.roughnessMap?c=b.roughnessMap:b.metalnessMap?c=b.metalnessMap:b.alphaMap?c=b.alphaMap:b.emissiveMap&&(c=b.emissiveMap);void 0!==c&&(c.isWebGLRenderTarget&&(c=c.texture),!0===c.matrixAutoUpdate&&c.updateMatrix(),a.uvTransform.value.copy(c.matrix))}function p(a,b){a.specular.value.copy(b.specular);a.shininess.value=
-Math.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias)}function w(a,b){a.roughness.value=b.roughness;
-a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=
-b.displacementScale,a.displacementBias.value=b.displacementBias);b.envMap&&(a.envMapIntensity.value=b.envMapIntensity)}a=a||{};var v=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),y=void 0!==a.context?a.context:null,x=void 0!==a.alpha?a.alpha:!1,L=void 0!==a.depth?a.depth:!0,N=void 0!==a.stencil?a.stencil:!0,B=void 0!==a.antialias?a.antialias:!1,z=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,C=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:
-!1,D=void 0!==a.powerPreference?a.powerPreference:"default",G=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,H=null,F=null;this.domElement=v;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=
-1;this.maxMorphTargets=8;this.maxMorphNormals=4;var E=this,O=!1,Q=null,S=0,ja=0,M=null,T=null,Zb=-1;var X=b=null;var U=!1;var fa=null,Pa=null,V=new Z,Kd=new Z,ma=null,J=v.width,W=v.height,ca=1,ea=new Z(0,0,J,W),ka=new Z(0,0,J,W),ta=!1,ia=new Gd,Oa=new Vi,Ke=!1,ua=!1,Jd=new R,Hb=new n;try{x={alpha:x,depth:L,stencil:N,antialias:B,premultipliedAlpha:z,preserveDrawingBuffer:C,powerPreference:D,failIfMajorPerformanceCaveat:G,xrCompatible:!0};v.addEventListener("webglcontextlost",d,!1);v.addEventListener("webglcontextrestored",
-e,!1);var K=y||v.getContext("webgl",x)||v.getContext("experimental-webgl",x);if(null===K){if(null!==v.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===K.getShaderPrecisionFormat&&(K.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Hh){throw console.error("THREE.WebGLRenderer: "+Hh.message),Hh;}var oa,Fa,da,ba,aa,ha,va,xa,ra,qa,wa,sa,na,za,Ba,Da,la;c();var pa="undefined"!==
-typeof navigator&&"xr"in navigator&&"supportsSession"in navigator.xr?new Gh(E,K):new Yf(E);this.vr=pa;var Ea=new Ah(E,ra,Fa.maxTextureSize);this.shadowMap=Ea;this.getContext=function(){return K};this.getContextAttributes=function(){return K.getContextAttributes()};this.forceContextLoss=function(){var a=oa.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=oa.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return ca};this.setPixelRatio=
-function(a){void 0!==a&&(ca=a,this.setSize(J,W,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new A);return a.set(J,W)};this.setSize=function(a,b,c){pa.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(J=a,W=b,v.width=Math.floor(a*ca),v.height=Math.floor(b*ca),!1!==c&&(v.style.width=a+"px",v.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===
-a&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),a=new A);return a.set(J*ca,W*ca).floor()};this.setDrawingBufferSize=function(a,b,c){J=a;W=b;ca=c;v.width=Math.floor(a*c);v.height=Math.floor(b*c);this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new Z);return a.copy(V)};this.getViewport=function(a){return a.copy(ea)};this.setViewport=
-function(a,b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);da.viewport(V.copy(ea).multiplyScalar(ca).floor())};this.getScissor=function(a){return a.copy(ka)};this.setScissor=function(a,b,c,d){a.isVector4?ka.set(a.x,a.y,a.z,a.w):ka.set(a,b,c,d);da.scissor(Kd.copy(ka).multiplyScalar(ca).floor())};this.getScissorTest=function(){return ta};this.setScissorTest=function(a){da.setScissorTest(ta=a)};this.getClearColor=function(){return na.getClearColor()};this.setClearColor=function(){na.setClearColor.apply(na,
-arguments)};this.getClearAlpha=function(){return na.getClearAlpha()};this.setClearAlpha=function(){na.setClearAlpha.apply(na,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;K.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.dispose=function(){v.removeEventListener("webglcontextlost",d,!1);v.removeEventListener("webglcontextrestored",
-e,!1);wa.dispose();sa.dispose();aa.dispose();ra.dispose();pa.dispose();ya.stop()};this.renderBufferImmediate=function(a,b){da.initAttributes();var c=aa.get(a);a.hasPositions&&!c.position&&(c.position=K.createBuffer());a.hasNormals&&!c.normal&&(c.normal=K.createBuffer());a.hasUvs&&!c.uv&&(c.uv=K.createBuffer());a.hasColors&&!c.color&&(c.color=K.createBuffer());b=b.getAttributes();a.hasPositions&&(K.bindBuffer(34962,c.position),K.bufferData(34962,a.positionArray,35048),da.enableAttribute(b.position),
-K.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(K.bindBuffer(34962,c.normal),K.bufferData(34962,a.normalArray,35048),da.enableAttribute(b.normal),K.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(K.bindBuffer(34962,c.uv),K.bufferData(34962,a.uvArray,35048),da.enableAttribute(b.uv),K.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(K.bindBuffer(34962,c.color),K.bufferData(34962,a.colorArray,35048),da.enableAttribute(b.color),K.vertexAttribPointer(b.color,3,5126,!1,0,0));
-da.disableUnusedAttributes();K.drawArrays(4,0,a.count);a.count=0};this.renderBufferDirect=function(a,c,d,e,f,g){var h=f.isMesh&&0>f.matrixWorld.determinant();da.setMaterial(e,h);var l=u(a,c,e,f),m=!1;if(b!==d.id||X!==l.id||U!==(!0===e.wireframe))b=d.id,X=l.id,U=!0===e.wireframe,m=!0;f.morphTargetInfluences&&(za.update(f,d,e,l),m=!0);h=d.index;var q=d.attributes.position;c=1;!0===e.wireframe&&(h=xa.getWireframeAttribute(d),c=2);a=Ba;if(null!==h){var k=va.get(h);a=Da;a.setIndex(k)}if(m){if(d&&d.isInstancedBufferGeometry&&
-!Fa.isWebGL2&&null===oa.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{da.initAttributes();m=d.attributes;l=l.getAttributes();var t=e.defaultAttributeValues;for(N in l){var p=l[N];if(0<=p){var r=m[N];if(void 0!==r){var n=r.normalized,w=r.itemSize,v=va.get(r);if(void 0!==v){var x=v.buffer,y=v.type;v=v.bytesPerElement;if(r.isInterleavedBufferAttribute){var B=
-r.data,L=B.stride;r=r.offset;B&&B.isInstancedInterleavedBuffer?(da.enableAttributeAndDivisor(p,B.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=B.meshPerAttribute*B.count)):da.enableAttribute(p);K.bindBuffer(34962,x);K.vertexAttribPointer(p,w,y,n,L*v,r*v)}else r.isInstancedBufferAttribute?(da.enableAttributeAndDivisor(p,r.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=r.meshPerAttribute*r.count)):da.enableAttribute(p),K.bindBuffer(34962,x),K.vertexAttribPointer(p,
-w,y,n,0,0)}}else if(void 0!==t&&(n=t[N],void 0!==n))switch(n.length){case 2:K.vertexAttrib2fv(p,n);break;case 3:K.vertexAttrib3fv(p,n);break;case 4:K.vertexAttrib4fv(p,n);break;default:K.vertexAttrib1fv(p,n)}}}da.disableUnusedAttributes()}null!==h&&K.bindBuffer(34963,k.buffer)}k=Infinity;null!==h?k=h.count:void 0!==q&&(k=q.count);h=d.drawRange.start*c;q=null!==g?g.start*c:0;var N=Math.max(h,q);g=Math.max(0,Math.min(k,h+d.drawRange.count*c,q+(null!==g?g.count*c:Infinity))-1-N+1);if(0!==g){if(f.isMesh)if(!0===
-e.wireframe)da.setLineWidth(e.wireframeLinewidth*(null===M?ca:1)),a.setMode(1);else switch(f.drawMode){case 0:a.setMode(4);break;case 1:a.setMode(5);break;case 2:a.setMode(6)}else f.isLine?(e=e.linewidth,void 0===e&&(e=1),da.setLineWidth(e*(null===M?ca:1)),f.isLineSegments?a.setMode(1):f.isLineLoop?a.setMode(2):a.setMode(3)):f.isPoints?a.setMode(0):f.isSprite&&a.setMode(4);d&&d.isInstancedBufferGeometry?0<d.maxInstancedCount&&a.renderInstances(d,N,g):a.render(N,g)}};this.compile=function(a,b){F=sa.get(a,
-b);F.init();a.traverse(function(a){a.isLight&&(F.pushLight(a),a.castShadow&&F.pushShadow(a))});F.setupLights(b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=0;c<b.material.length;c++)k(b.material[c],a.fog,b);else k(b.material,a.fog,b)})};var Aa=null,ya=new Vf;ya.setAnimationLoop(function(a){pa.isPresenting()||Aa&&Aa(a)});"undefined"!==typeof window&&ya.setContext(window);this.setAnimationLoop=function(a){Aa=a;pa.setAnimationLoop(a);ya.start()};this.render=function(a,
-c,d,e){if(void 0!==d){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");var f=d}if(void 0!==e){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");var g=e}c&&c.isCamera?O||(X=b=null,U=!1,Zb=-1,fa=null,!0===a.autoUpdate&&a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),pa.enabled&&(c=pa.getCamera(c)),F=sa.get(a,c),F.init(),a.onBeforeRender(E,a,c,f||M),Jd.multiplyMatrices(c.projectionMatrix,
-c.matrixWorldInverse),ia.setFromMatrix(Jd),ua=this.localClippingEnabled,Ke=Oa.init(this.clippingPlanes,ua,c),H=wa.get(a,c),H.init(),l(a,c,0,E.sortObjects),!0===E.sortObjects&&H.sort(),Ke&&Oa.beginShadows(),Ea.render(F.state.shadowsArray,a,c),F.setupLights(c),Ke&&Oa.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==f&&this.setRenderTarget(f),na.render(H,a,c,g),d=H.opaque,e=H.transparent,a.overrideMaterial?(f=a.overrideMaterial,d.length&&m(d,a,c,f),e.length&&m(e,a,c,f)):(d.length&&m(d,a,
-c),e.length&&m(e,a,c)),a.onAfterRender(E,a,c),null!==M&&(ha.updateRenderTargetMipmap(M),ha.updateMultisampleRenderTarget(M)),da.buffers.depth.setTest(!0),da.buffers.depth.setMask(!0),da.buffers.color.setMask(!0),da.setPolygonOffset(!1),pa.enabled&&pa.submitFrame(),F=H=null):console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")};this.setFramebuffer=function(a){Q!==a&&K.bindFramebuffer(36160,a);Q=a};this.getActiveCubeFace=function(){return S};this.getActiveMipmapLevel=
-function(){return ja};this.getRenderTarget=function(){return M};this.setRenderTarget=function(a,b,c){M=a;S=b;ja=c;a&&void 0===aa.get(a).__webglFramebuffer&&ha.setupRenderTarget(a);var d=Q,e=!1;a?(d=aa.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?aa.get(a).__webglMultisampledFramebuffer:d,V.copy(a.viewport),Kd.copy(a.scissor),ma=a.scissorTest):(V.copy(ea).multiplyScalar(ca).floor(),Kd.copy(ka).multiplyScalar(ca).floor(),ma=ta);T!==d&&(K.bindFramebuffer(36160,
-d),T=d);da.viewport(V);da.scissor(Kd);da.setScissorTest(ma);e&&(a=aa.get(a.texture),K.framebufferTexture2D(36160,36064,34069+(b||0),a.__webglTexture,c||0))};this.readRenderTargetPixels=function(a,b,c,d,e,f,g){if(a&&a.isWebGLRenderTarget){var h=aa.get(a).__webglFramebuffer;a.isWebGLRenderTargetCube&&void 0!==g&&(h=h[g]);if(h){g=!1;h!==T&&(K.bindFramebuffer(36160,h),g=!0);try{var l=a.texture,m=l.format,q=l.type;1023!==m&&la.convert(m)!==K.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):
-1009===q||la.convert(q)===K.getParameter(35738)||1015===q&&(Fa.isWebGL2||oa.get("OES_texture_float")||oa.get("WEBGL_color_buffer_float"))||1016===q&&(Fa.isWebGL2?oa.get("EXT_color_buffer_float"):oa.get("EXT_color_buffer_half_float"))?36053===K.checkFramebufferStatus(36160)?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&K.readPixels(b,c,d,e,la.convert(m),la.convert(q),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{g&&
-K.bindFramebuffer(36160,T)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(a,b,c){var d=b.image.width,e=b.image.height,f=la.convert(b.format);ha.setTexture2D(b,0);K.copyTexImage2D(3553,c||0,f,a.x,a.y,d,e,0)};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=la.convert(c.format),h=la.convert(c.type);ha.setTexture2D(c,0);b.isDataTexture?K.texSubImage2D(3553,d||0,
-a.x,a.y,e,f,g,h,b.image.data):K.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image)};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Le(a,b){this.name="";this.color=new G(a);this.density=void 0!==b?b:2.5E-4}function Me(a,b,c){this.name="";this.color=new G(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function cc(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,
-count:-1};this.version=0}function Md(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function Ib(a){O.call(this);this.type="SpriteMaterial";this.color=new G(16777215);this.map=null;this.rotation=0;this.sizeAttenuation=!0;this.lights=!1;this.transparent=!0;this.setValues(a)}function Nd(a){D.call(this);this.type="Sprite";if(void 0===Kc){Kc=new C;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new cc(b,5);Kc.setIndex([0,1,2,0,2,3]);Kc.addAttribute("position",
-new Md(b,3,0,!1));Kc.addAttribute("uv",new Md(b,2,3,!1))}this.geometry=Kc;this.material=void 0!==a?a:new Ib;this.center=new A(.5,.5)}function Ne(a,b,c,d,e,f){Lc.subVectors(a,c).addScalar(.5).multiply(d);void 0!==e?(Od.x=f*Lc.x-e*Lc.y,Od.y=e*Lc.x+f*Lc.y):Od.copy(Lc);a.copy(b);a.x+=Od.x;a.y+=Od.y;a.applyMatrix4(Ih)}function Pd(){D.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Qd(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");
-ua.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new R;this.bindMatrixInverse=new R}function Oe(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new R)}function $f(){D.call(this);
-this.type="Bone"}function M(a){O.call(this);this.type="LineBasicMaterial";this.color=new G(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(a)}function aa(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");D.call(this);this.type="Line";this.geometry=void 0!==a?a:new C;this.material=void 0!==b?b:new M({color:16777215*Math.random()})}function X(a,b){aa.call(this,a,b);this.type="LineSegments"}
-function Pe(a,b){aa.call(this,a,b);this.type="LineLoop"}function Qa(a){O.call(this);this.type="PointsMaterial";this.color=new G(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=this.morphTargets=!1;this.setValues(a)}function Mc(a,b){D.call(this);this.type="Points";this.geometry=void 0!==a?a:new C;this.material=void 0!==b?b:new Qa({color:16777215*Math.random()});this.updateMorphTargets()}function ag(a,b,c,d,e,f,g){var h=bg.distanceSqToPoint(a);h<c&&(c=new n,bg.closestPointToPoint(a,
-c),c.applyMatrix4(d),a=e.ray.origin.distanceTo(c),a<e.near||a>e.far||f.push({distance:a,distanceToRay:Math.sqrt(h),point:c,index:b,face:null,object:g}))}function cg(a,b,c,d,e,f,g,h,l){T.call(this,a,b,c,d,e,f,g,h,l);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function Nc(a,b,c,d,e,f,g,h,l,m,q,k){T.call(this,null,f,g,h,l,m,d,e,q,k);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Rd(a,
-b,c,d,e,f,g,h,l){T.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Sd(a,b,c,d,e,f,g,h,l,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);T.call(this,null,d,e,f,g,h,m,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Oc(a){C.call(this);this.type=
-"WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var l=a.faces;var m=0;for(d=l.length;m<d;m++){var q=l[m];for(c=0;3>c;c++){var k=q[h[c]];var u=q[h[(c+1)%3]];f[0]=Math.min(k,u);f[1]=Math.max(k,u);k=f[0]+","+f[1];void 0===g[k]&&(g[k]={index1:f[0],index2:f[1]})}}for(k in g)m=g[k],h=a.vertices[m.index1],b.push(h.x,h.y,h.z),h=a.vertices[m.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(h=new n,null!==a.index){l=a.attributes.position;q=a.index;var r=a.groups;
-0===r.length&&(r=[{start:0,count:q.count,materialIndex:0}]);a=0;for(e=r.length;a<e;++a)for(m=r[a],c=m.start,d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)k=q.getX(m+c),u=q.getX(m+(c+1)%3),f[0]=Math.min(k,u),f[1]=Math.max(k,u),k=f[0]+","+f[1],void 0===g[k]&&(g[k]={index1:f[0],index2:f[1]});for(k in g)m=g[k],h.fromBufferAttribute(l,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(l,m.index2),b.push(h.x,h.y,h.z)}else for(l=a.attributes.position,m=0,d=l.count/3;m<d;m++)for(c=0;3>c;c++)g=3*m+c,h.fromBufferAttribute(l,
-g),b.push(h.x,h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z);this.addAttribute("position",new z(b,3))}function Td(a,b,c){E.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Pc(a,b,c));this.mergeVertices()}function Pc(a,b,c){C.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new n,l=new n,m=new n,q=new n,k=new n,u,r;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");
-var p=b+1;for(u=0;u<=c;u++){var w=u/c;for(r=0;r<=b;r++){var v=r/b;a(v,w,l);e.push(l.x,l.y,l.z);0<=v-1E-5?(a(v-1E-5,w,m),q.subVectors(l,m)):(a(v+1E-5,w,m),q.subVectors(m,l));0<=w-1E-5?(a(v,w-1E-5,m),k.subVectors(l,m)):(a(v,w+1E-5,m),k.subVectors(m,l));h.crossVectors(q,k).normalize();f.push(h.x,h.y,h.z);g.push(v,w)}}for(u=0;u<c;u++)for(r=0;r<b;r++)a=u*p+r+1,h=(u+1)*p+r+1,l=(u+1)*p+r,d.push(u*p+r,a,l),d.push(a,h,l);this.setIndex(d);this.addAttribute("position",new z(e,3));this.addAttribute("normal",
-new z(f,3));this.addAttribute("uv",new z(g,2))}function Ud(a,b,c,d){E.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new la(a,b,c,d));this.mergeVertices()}function la(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}C.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,
-indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new n,d=new n,g=new n,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);var l,m,k=c,y=d,x=g,L=Math.pow(2,a),N=[];for(m=0;m<=L;m++){N[m]=[];var B=k.clone().lerp(x,m/L),A=y.clone().lerp(x,m/L),z=L-m;for(l=0;l<=z;l++)N[m][l]=0===l&&m===L?B:B.clone().lerp(A,l/z)}for(m=0;m<L;m++)for(l=0;l<2*(L-m)-1;l++)k=Math.floor(l/2),0===l%2?(e(N[m][k+1]),e(N[m+1][k]),e(N[m][k])):(e(N[m][k+1]),e(N[m+1][k+1]),e(N[m+1][k]))}})(d);(function(a){for(var b=
-new n,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new n,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new n;b=new n;for(var c=new n,d=new n,e=new A,f=new A,k=new A,v=0,y=0;v<h.length;v+=9,y+=6){a.set(h[v+0],h[v+1],h[v+2]);b.set(h[v+3],h[v+4],h[v+5]);c.set(h[v+6],h[v+7],h[v+8]);e.set(l[y+0],
-l[y+1]);f.set(l[y+2],l[y+3]);k.set(l[y+4],l[y+5]);d.copy(a).add(b).add(c).divideScalar(3);var x=Math.atan2(d.z,-d.x);g(e,y+0,a,x);g(f,y+2,b,x);g(k,y+4,c,x)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),.2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.addAttribute("position",new z(h,3));this.addAttribute("normal",new z(h.slice(),3));this.addAttribute("uv",new z(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Vd(a,
-b){E.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Qc(a,b));this.mergeVertices()}function Qc(a,b){la.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Wd(a,b){E.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new dc(a,b));this.mergeVertices()}function dc(a,b){la.call(this,[1,0,0,
--1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Xd(a,b){E.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Rc(a,b));this.mergeVertices()}function Rc(a,b){var c=(1+Math.sqrt(5))/2;la.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,
-11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Yd(a,b){E.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Sc(a,b));this.mergeVertices()}function Sc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;la.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,
-0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Zd(a,b,c,d,e,f){E.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,
-closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new ec(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function ec(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(u=0;u<=d;u++){var m=u/d*Math.PI*2,k=Math.sin(m);m=-Math.cos(m);l.x=m*f.x+k*e.x;l.y=m*f.y+k*e.y;l.z=m*f.z+k*e.z;l.normalize();p.push(l.x,l.y,l.z);h.x=q.x+c*l.x;h.y=q.y+c*l.y;h.z=
-q.z+c*l.z;r.push(h.x,h.y,h.z)}}C.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new n,l=new n,m=new A,q=new n,k,u,r=[],p=[],w=[],v=[];for(k=0;k<b;k++)f(k);f(!1===e?b:0);for(k=0;k<=b;k++)for(u=0;u<=d;u++)m.x=k/b,m.y=u/d,w.push(m.x,m.y);(function(){for(u=1;u<=b;u++)for(k=1;k<=d;k++){var a=
-(d+1)*u+(k-1),c=(d+1)*u+k,e=(d+1)*(u-1)+k;v.push((d+1)*(u-1)+(k-1),a,e);v.push(a,c,e)}})();this.setIndex(v);this.addAttribute("position",new z(r,3));this.addAttribute("normal",new z(p,3));this.addAttribute("uv",new z(w,2))}function $d(a,b,c,d,e,f,g){E.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Tc(a,
+g.x>c&&(h.x=Math.floor(c/v.x),g.x=h.x*v.x,w.mapSize.x=h.x),g.y>c&&(h.y=Math.floor(c/v.y),g.y=h.y*v.y,w.mapSize.y=h.y);null===w.map&&(w.map=new bb(g.x,g.y,{minFilter:1003,magFilter:1003,format:1023}),w.map.texture.name=n.name+".shadowMap",w.camera.updateProjectionMatrix());a.setRenderTarget(w.map);a.clear();v=w.getViewportCount();for(var x=0;x<v;x++){var La=w.getViewport(x);l.set(h.x*La.x,h.y*La.y,h.x*La.z,h.y*La.w);u.viewport(l);w.updateMatrices(n,m,x);f=w.getFrustum();e(d,m,w.camera,n)}}}y.needsUpdate=
+!1;a.setRenderTarget(q,t,k)}}}function Zj(a,b,c,d){function e(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b=0;b<d;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function f(c,e){y[c]=1;0===x[c]&&(a.enableVertexAttribArray(c),x[c]=1);L[c]!==e&&((d.isWebGL2?a:b.get("ANGLE_instanced_arrays"))[d.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,e),L[c]=e)}function g(b){!0!==N[b]&&(a.enable(b),
+N[b]=!0)}function h(b){!1!==N[b]&&(a.disable(b),N[b]=!1)}function l(b,d,e,f,l,m,q,t){if(0===b)Y&&(h(3042),Y=!1);else if(Y||(g(3042),Y=!0),5!==b){if(b!==z||t!==La){if(100!==Ca||100!==C)a.blendEquation(32774),C=Ca=100;if(t)switch(b){case 1:a.blendFuncSeparate(1,771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}else switch(b){case 1:a.blendFuncSeparate(770,
+771,1,771);break;case 2:a.blendFunc(770,1);break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}G=I=D=H=null;z=b;La=t}}else{l=l||d;m=m||e;q=q||f;if(d!==Ca||l!==C)a.blendEquationSeparate(c.convert(d),c.convert(l)),Ca=d,C=l;if(e!==H||f!==D||m!==I||q!==G)a.blendFuncSeparate(c.convert(e),c.convert(f),c.convert(m),c.convert(q)),H=e,D=f,I=m,G=q;z=b;La=null}}function m(b){ja!==b&&(b?a.frontFace(2304):a.frontFace(2305),ja=b)}
+function q(b){0!==b?(g(2884),b!==Uf&&(1===b?a.cullFace(1029):2===b?a.cullFace(1028):a.cullFace(1032))):h(2884);Uf=b}function t(b,c,d){if(b){if(g(32823),Zb!==c||Bh!==d)a.polygonOffset(c,d),Zb=c,Bh=d}else h(32823)}function k(b){void 0===b&&(b=33984+F-1);Pa!==b&&(a.activeTexture(b),Pa=b)}var r=new function(){var b=!1,c=new Z,d=null,e=new Z(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&(b*=g,d*=g,f*=g);c.set(b,
+d,f,g);!1===e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,0,0,0)}}},p=new function(){var b=!1,c=null,d=null,e=null;return{setTest:function(a){a?g(2929):h(2929)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(512);break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);
+break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);d=b}},setLocked:function(a){b=a},setClear:function(b){e!==b&&(a.clearDepth(b),e=b)},reset:function(){b=!1;e=d=c=null}}},n=new function(){var b=!1,c=null,d=null,e=null,f=null,l=null,m=null,q=null,t=null;return{setTest:function(a){b||(a?g(2960):h(2960))},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,g){if(d!==b||e!==c||f!==g)a.stencilFunc(b,c,g),d=b,e=c,f=g},setOp:function(b,c,d){if(l!==b||
+m!==c||q!==d)a.stencilOp(b,c,d),l=b,m=c,q=d},setLocked:function(a){b=a},setClear:function(b){t!==b&&(a.clearStencil(b),t=b)},reset:function(){b=!1;t=q=m=l=f=e=d=c=null}}},v=a.getParameter(34921),y=new Uint8Array(v),x=new Uint8Array(v),L=new Uint8Array(v),N={},B=null,A=null,Y=null,z=null,Ca=null,H=null,D=null,C=null,I=null,G=null,La=!1,ja=null,Uf=null,hh=null,Zb=null,Bh=null,F=a.getParameter(35661),E=!1;v=0;v=a.getParameter(7938);-1!==v.indexOf("WebGL")?(v=parseFloat(/^WebGL ([0-9])/.exec(v)[1]),E=
+1<=v):-1!==v.indexOf("OpenGL ES")&&(v=parseFloat(/^OpenGL ES ([0-9])/.exec(v)[1]),E=2<=v);var Pa=null,O={},P=new Z,Q=new Z,J={};J[3553]=e(3553,3553,1);J[34067]=e(34067,34069,6);r.setClear(0,0,0,1);p.setClear(1);n.setClear(0);g(2929);p.setFunc(3);m(!1);q(1);g(2884);l(0);return{buffers:{color:r,depth:p,stencil:n},initAttributes:function(){for(var a=0,b=y.length;a<b;a++)y[a]=0},enableAttribute:function(a){f(a,0)},enableAttributeAndDivisor:f,disableUnusedAttributes:function(){for(var b=0,c=x.length;b!==
+c;++b)x[b]!==y[b]&&(a.disableVertexAttribArray(b),x[b]=0)},enable:g,disable:h,getCompressedTextureFormats:function(){if(null===B&&(B=[],b.get("WEBGL_compressed_texture_pvrtc")||b.get("WEBGL_compressed_texture_s3tc")||b.get("WEBGL_compressed_texture_etc1")||b.get("WEBGL_compressed_texture_astc")))for(var c=a.getParameter(34467),d=0;d<c.length;d++)B.push(c[d]);return B},useProgram:function(b){return A!==b?(a.useProgram(b),A=b,!0):!1},setBlending:l,setMaterial:function(a,b){2===a.side?h(2884):g(2884);
+var c=1===a.side;b&&(c=!c);m(c);1===a.blending&&!1===a.transparent?l(0):l(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha,a.premultipliedAlpha);p.setFunc(a.depthFunc);p.setTest(a.depthTest);p.setMask(a.depthWrite);r.setMask(a.colorWrite);b=a.stencilWrite;n.setTest(b);b&&(n.setFunc(a.stencilFunc,a.stencilRef,a.stencilMask),n.setOp(a.stencilFail,a.stencilZFail,a.stencilZPass));t(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:m,
+setCullFace:q,setLineWidth:function(b){b!==hh&&(E&&a.lineWidth(b),hh=b)},setPolygonOffset:t,setScissorTest:function(a){a?g(3089):h(3089)},activeTexture:k,bindTexture:function(b,c){null===Pa&&k();var d=O[Pa];void 0===d&&(d={type:void 0,texture:void 0},O[Pa]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||J[b]),d.type=b,d.texture=c},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(W){console.error("THREE.WebGLState:",W)}},texImage2D:function(){try{a.texImage2D.apply(a,
+arguments)}catch(W){console.error("THREE.WebGLState:",W)}},texImage3D:function(){try{a.texImage3D.apply(a,arguments)}catch(W){console.error("THREE.WebGLState:",W)}},scissor:function(b){!1===P.equals(b)&&(a.scissor(b.x,b.y,b.z,b.w),P.copy(b))},viewport:function(b){!1===Q.equals(b)&&(a.viewport(b.x,b.y,b.z,b.w),Q.copy(b))},reset:function(){for(var b=0;b<x.length;b++)1===x[b]&&(a.disableVertexAttribArray(b),x[b]=0);N={};Pa=B=null;O={};Uf=ja=z=A=null;r.reset();p.reset();n.reset()}}}function ak(a,b,c,
+d,e,f,g){function h(a,b){return D?new OffscreenCanvas(a,b):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function l(a,b,c,d){var e=1;if(a.width>d||a.height>d)e=d/Math.max(a.width,a.height);if(1>e||!0===b){if("undefined"!==typeof HTMLImageElement&&a instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&a instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&a instanceof ImageBitmap)return d=b?P.floorPowerOfTwo:Math.floor,b=d(e*a.width),e=d(e*a.height),void 0===
+H&&(H=h(b,e)),c=c?h(b,e):H,c.width=b,c.height=e,c.getContext("2d").drawImage(a,0,0,b,e),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+a.width+"x"+a.height+") to ("+b+"x"+e+")."),c;"data"in a&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+a.width+"x"+a.height+").")}return a}function m(a){return P.isPowerOfTwo(a.width)&&P.isPowerOfTwo(a.height)}function q(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function t(b,c,e,f){a.generateMipmap(b);
+d.get(c).__maxMipLevel=Math.log(Math.max(e,f))*Math.LOG2E}function k(a,c){if(!e.isWebGL2)return a;var d=a;6403===a&&(5126===c&&(d=33326),5131===c&&(d=33325),5121===c&&(d=33321));6407===a&&(5126===c&&(d=34837),5131===c&&(d=34843),5121===c&&(d=32849));6408===a&&(5126===c&&(d=34836),5131===c&&(d=34842),5121===c&&(d=32856));33325===d||33326===d||34842===d||34836===d?b.get("EXT_color_buffer_float"):(34843===d||34837===d)&&console.warn("THREE.WebGLRenderer: Floating point textures with RGB format not supported. Please use RGBA instead.");
+return d}function r(a){return 1003===a||1004===a||1005===a?9728:9729}function p(b){b=b.target;b.removeEventListener("dispose",p);var c=d.get(b);void 0!==c.__webglInit&&(a.deleteTexture(c.__webglTexture),d.remove(b));b.isVideoTexture&&Ca.delete(b);g.memory.textures--}function n(b){b=b.target;b.removeEventListener("dispose",n);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLRenderTargetCube)for(e=
+0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);else a.deleteFramebuffer(c.__webglFramebuffer),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}function v(a,b){var e=d.get(a);if(a.isVideoTexture){var f=g.render.frame;Ca.get(a)!==f&&(Ca.set(a,f),a.update())}if(0<a.version&&e.__version!==a.version)if(f=a.image,void 0===f)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");
+else if(!1===f.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{B(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function y(b,g){if(6===b.image.length){var h=d.get(b);if(0<b.version&&h.__version!==b.version){N(h,b);c.activeTexture(33984+g);c.bindTexture(34067,h.__webglTexture);a.pixelStorei(37440,b.flipY);var u=b&&b.isCompressedTexture;g=b.image[0]&&b.image[0].isDataTexture;for(var r=[],p=0;6>p;p++)r[p]=u||g?g?b.image[p].image:
+b.image[p]:l(b.image[p],!1,!0,e.maxCubemapSize);var n=r[0],w=m(n)||e.isWebGL2,v=f.convert(b.format),x=f.convert(b.type),ja=k(v,x);L(34067,b,w);if(u){for(p=0;6>p;p++){var B=r[p].mipmaps;for(u=0;u<B.length;u++){var y=B[u];1023!==b.format&&1022!==b.format?-1<c.getCompressedTextureFormats().indexOf(v)?c.compressedTexImage2D(34069+p,u,ja,y.width,y.height,0,y.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(34069+p,u,ja,y.width,
+y.height,0,v,x,y.data)}}h.__maxMipLevel=B.length-1}else{B=b.mipmaps;for(p=0;6>p;p++)if(g)for(c.texImage2D(34069+p,0,ja,r[p].width,r[p].height,0,v,x,r[p].data),u=0;u<B.length;u++)y=B[u],y=y.image[p].image,c.texImage2D(34069+p,u+1,ja,y.width,y.height,0,v,x,y.data);else for(c.texImage2D(34069+p,0,ja,v,x,r[p]),u=0;u<B.length;u++)y=B[u],c.texImage2D(34069+p,u+1,ja,v,x,y.image[p]);h.__maxMipLevel=B.length}q(b,w)&&t(34067,b,n.width,n.height);h.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+
+g),c.bindTexture(34067,h.__webglTexture)}}function x(a,b){c.activeTexture(33984+b);c.bindTexture(34067,d.get(a).__webglTexture)}function L(c,g,h){h?(a.texParameteri(c,10242,f.convert(g.wrapS)),a.texParameteri(c,10243,f.convert(g.wrapT)),32879!==c&&35866!==c||a.texParameteri(c,32882,f.convert(g.wrapR)),a.texParameteri(c,10240,f.convert(g.magFilter)),a.texParameteri(c,10241,f.convert(g.minFilter))):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879!==c&&35866!==c||a.texParameteri(c,
+32882,33071),1001===g.wrapS&&1001===g.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),a.texParameteri(c,10240,r(g.magFilter)),a.texParameteri(c,10241,r(g.minFilter)),1003!==g.minFilter&&1006!==g.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));!(h=b.get("EXT_texture_filter_anisotropic"))||1015===
+g.type&&null===b.get("OES_texture_float_linear")||1016===g.type&&null===(e.isWebGL2||b.get("OES_texture_half_float_linear"))||!(1<g.anisotropy||d.get(g).__currentAnisotropy)||(a.texParameterf(c,h.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(g.anisotropy,e.getMaxAnisotropy())),d.get(g).__currentAnisotropy=g.anisotropy)}function N(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",p),b.__webglTexture=a.createTexture(),g.memory.textures++)}function B(b,d,g){var h=3553;d.isDataTexture2DArray&&
+(h=35866);d.isDataTexture3D&&(h=32879);N(b,d);c.activeTexture(33984+g);c.bindTexture(h,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);g=e.isWebGL2?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==d.minFilter&&1006!==d.minFilter;g=g&&!1===m(d.image);g=l(d.image,g,!1,e.maxTextureSize);var u=m(g)||e.isWebGL2,p=f.convert(d.format),r=f.convert(d.type),n=k(p,r);L(h,d,u);var w=d.mipmaps;if(d.isDepthTexture){n=6402;if(1015===d.type){if(!e.isWebGL2)throw Error("Float Depth Texture only supported in WebGL2.0");
+n=36012}else e.isWebGL2&&(n=33189);1026===d.format&&6402===n&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),d.type=1012,r=f.convert(d.type));1027===d.format&&(n=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),d.type=1020,r=f.convert(d.type)));c.texImage2D(3553,0,n,g.width,g.height,0,p,r,null)}else if(d.isDataTexture)if(0<w.length&&u){for(var v=
+0,x=w.length;v<x;v++)h=w[v],c.texImage2D(3553,v,n,h.width,h.height,0,p,r,h.data);d.generateMipmaps=!1;b.__maxMipLevel=w.length-1}else c.texImage2D(3553,0,n,g.width,g.height,0,p,r,g.data),b.__maxMipLevel=0;else if(d.isCompressedTexture){v=0;for(x=w.length;v<x;v++)h=w[v],1023!==d.format&&1022!==d.format?-1<c.getCompressedTextureFormats().indexOf(p)?c.compressedTexImage2D(3553,v,n,h.width,h.height,0,h.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):
+c.texImage2D(3553,v,n,h.width,h.height,0,p,r,h.data);b.__maxMipLevel=w.length-1}else if(d.isDataTexture2DArray)c.texImage3D(35866,0,n,g.width,g.height,g.depth,0,p,r,g.data),b.__maxMipLevel=0;else if(d.isDataTexture3D)c.texImage3D(32879,0,n,g.width,g.height,g.depth,0,p,r,g.data),b.__maxMipLevel=0;else if(0<w.length&&u){v=0;for(x=w.length;v<x;v++)h=w[v],c.texImage2D(3553,v,n,p,r,h);d.generateMipmaps=!1;b.__maxMipLevel=w.length-1}else c.texImage2D(3553,0,n,p,r,g),b.__maxMipLevel=0;q(d,u)&&t(3553,d,g.width,
+g.height);b.__version=d.version;if(d.onUpdate)d.onUpdate(d)}function A(b,e,g,h){var l=f.convert(e.texture.format),m=f.convert(e.texture.type),q=k(l,m);c.texImage2D(h,0,q,e.width,e.height,0,l,m,null);a.bindFramebuffer(36160,b);a.framebufferTexture2D(36160,g,h,d.get(e.texture).__webglTexture,0);a.bindFramebuffer(36160,null)}function Y(b,c,d){a.bindRenderbuffer(36161,b);if(c.depthBuffer&&!c.stencilBuffer)d?(d=z(c),a.renderbufferStorageMultisample(36161,d,33189,c.width,c.height)):a.renderbufferStorage(36161,
+33189,c.width,c.height),a.framebufferRenderbuffer(36160,36096,36161,b);else if(c.depthBuffer&&c.stencilBuffer)d?(d=z(c),a.renderbufferStorageMultisample(36161,d,35056,c.width,c.height)):a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,33306,36161,b);else{b=f.convert(c.texture.format);var e=f.convert(c.texture.type);b=k(b,e);d?(d=z(c),a.renderbufferStorageMultisample(36161,d,b,c.width,c.height)):a.renderbufferStorage(36161,b,c.width,c.height)}a.bindRenderbuffer(36161,
+null)}function z(a){return e.isWebGL2&&a.isWebGLMultisampleRenderTarget?Math.min(e.maxSamples,a.samples):0}var Ca=new WeakMap,H,D="undefined"!==typeof OffscreenCanvas,C=0,I=!1,G=!1;this.allocateTextureUnit=function(){var a=C;a>=e.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+a+" texture units while this GPU supports only "+e.maxTextures);C+=1;return a};this.resetTextureUnits=function(){C=0};this.setTexture2D=v;this.setTexture2DArray=function(a,b){var e=d.get(a);0<a.version&&e.__version!==
+a.version?B(e,a,b):(c.activeTexture(33984+b),c.bindTexture(35866,e.__webglTexture))};this.setTexture3D=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?B(e,a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};this.setTextureCube=y;this.setTextureCubeDynamic=x;this.setupRenderTarget=function(b){var h=d.get(b),l=d.get(b.texture);b.addEventListener("dispose",n);l.__webglTexture=a.createTexture();g.memory.textures++;var u=!0===b.isWebGLRenderTargetCube,p=!0===b.isWebGLMultisampleRenderTarget,
+r=m(b)||e.isWebGL2;if(u)for(h.__webglFramebuffer=[],p=0;6>p;p++)h.__webglFramebuffer[p]=a.createFramebuffer();else if(h.__webglFramebuffer=a.createFramebuffer(),p)if(e.isWebGL2){h.__webglMultisampledFramebuffer=a.createFramebuffer();h.__webglColorRenderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,h.__webglColorRenderbuffer);p=f.convert(b.texture.format);var w=f.convert(b.texture.type);p=k(p,w);w=z(b);a.renderbufferStorageMultisample(36161,w,p,b.width,b.height);a.bindFramebuffer(36160,h.__webglMultisampledFramebuffer);
+a.framebufferRenderbuffer(36160,36064,36161,h.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);b.depthBuffer&&(h.__webglDepthRenderbuffer=a.createRenderbuffer(),Y(h.__webglDepthRenderbuffer,b,!0));a.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(u){c.bindTexture(34067,l.__webglTexture);L(34067,b.texture,r);for(p=0;6>p;p++)A(h.__webglFramebuffer[p],b,36064,34069+p);q(b.texture,r)&&t(34067,b.texture,b.width,
+b.height);c.bindTexture(34067,null)}else c.bindTexture(3553,l.__webglTexture),L(3553,b.texture,r),A(h.__webglFramebuffer,b,36064,3553),q(b.texture,r)&&t(3553,b.texture,b.width,b.height),c.bindTexture(3553,null);if(b.depthBuffer){h=d.get(b);l=!0===b.isWebGLRenderTargetCube;if(b.depthTexture){if(l)throw Error("target.depthTexture not supported in Cube render targets");if(b&&b.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(36160,h.__webglFramebuffer);
+if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");d.get(b.depthTexture).__webglTexture&&b.depthTexture.image.width===b.width&&b.depthTexture.image.height===b.height||(b.depthTexture.image.width=b.width,b.depthTexture.image.height=b.height,b.depthTexture.needsUpdate=!0);v(b.depthTexture,0);h=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(36160,36096,3553,h,0);else if(1027===
+b.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,h,0);else throw Error("Unknown depthTexture format");}else if(l)for(h.__webglDepthbuffer=[],l=0;6>l;l++)a.bindFramebuffer(36160,h.__webglFramebuffer[l]),h.__webglDepthbuffer[l]=a.createRenderbuffer(),Y(h.__webglDepthbuffer[l],b);else a.bindFramebuffer(36160,h.__webglFramebuffer),h.__webglDepthbuffer=a.createRenderbuffer(),Y(h.__webglDepthbuffer,b);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmap=function(a){var b=a.texture,
+f=m(a)||e.isWebGL2;if(q(b,f)){f=a.isWebGLRenderTargetCube?34067:3553;var g=d.get(b).__webglTexture;c.bindTexture(f,g);t(f,b,a.width,a.height);c.bindTexture(f,null)}};this.updateMultisampleRenderTarget=function(b){if(b.isWebGLMultisampleRenderTarget)if(e.isWebGL2){var c=d.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);c=b.width;var f=b.height,g=16384;b.depthBuffer&&(g|=256);b.stencilBuffer&&(g|=1024);a.blitFramebuffer(0,0,c,f,0,0,c,f,
+g,9728)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")};this.safeSetTexture2D=function(a,b){a&&a.isWebGLRenderTarget&&(!1===I&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),I=!0),a=a.texture);v(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLRenderTargetCube&&(!1===G&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),
+G=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?y(a,b):x(a,b)}}function Ch(a,b,c){return{convert:function(a){if(1E3===a)return 10497;if(1001===a)return 33071;if(1002===a)return 33648;if(1003===a)return 9728;if(1004===a)return 9984;if(1005===a)return 9986;if(1006===a)return 9729;if(1007===a)return 9985;if(1008===a)return 9987;if(1009===a)return 5121;if(1017===a)return 32819;if(1018===a)return 32820;if(1019===a)return 33635;if(1010===a)return 5120;if(1011===a)return 5122;
+if(1012===a)return 5123;if(1013===a)return 5124;if(1014===a)return 5125;if(1015===a)return 5126;if(1016===a){if(c.isWebGL2)return 5131;var d=b.get("OES_texture_half_float");if(null!==d)return d.HALF_FLOAT_OES}if(1021===a)return 6406;if(1022===a)return 6407;if(1023===a)return 6408;if(1024===a)return 6409;if(1025===a)return 6410;if(1026===a)return 6402;if(1027===a)return 34041;if(1028===a)return 6403;if(100===a)return 32774;if(101===a)return 32778;if(102===a)return 32779;if(200===a)return 0;if(201===
+a)return 1;if(202===a)return 768;if(203===a)return 769;if(204===a)return 770;if(205===a)return 771;if(206===a)return 772;if(207===a)return 773;if(208===a)return 774;if(209===a)return 775;if(210===a)return 776;if(33776===a||33777===a||33778===a||33779===a)if(d=b.get("WEBGL_compressed_texture_s3tc"),null!==d){if(33776===a)return d.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return d.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===a)return d.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return d.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===
+a||35841===a||35842===a||35843===a)if(d=b.get("WEBGL_compressed_texture_pvrtc"),null!==d){if(35840===a)return d.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===a)return d.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return d.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return d.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===a&&(d=b.get("WEBGL_compressed_texture_etc1"),null!==d))return d.COMPRESSED_RGB_ETC1_WEBGL;if(37808===a||37809===a||37810===a||37811===a||37812===a||37813===a||37814===a||37815===a||37816===
+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 Jc(){D.call(this);this.type="Group"}function Ld(a){V.call(this);
+this.cameras=a||[]}function Dh(a,b,c){Eh.setFromMatrixPosition(b.matrixWorld);Fh.setFromMatrixPosition(c.matrixWorld);var d=Eh.distanceTo(Fh),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 Yf(a){function b(){return null!==h&&!0===h.isPresenting}function c(){if(b()){var c=h.getEyeParameters("left");e=2*c.renderWidth*r;f=c.renderHeight*r;Ga=a.getPixelRatio();a.getSize(B);a.setDrawingBufferSize(e,f,1);x.viewport.set(0,0,e/2,f);L.viewport.set(e/2,0,e/2,f);z.start();g.dispatchEvent({type:"sessionstart"})}else g.enabled&&a.setDrawingBufferSize(B.width,B.height,Ga),z.stop(),g.dispatchEvent({type:"sessionend"})}
+function d(a,b){null!==b&&4===b.length&&a.set(b[0]*e,b[1]*f,b[2]*e,b[3]*f)}var e,f,g=this,h=null,l=null,m=null,q=[],t=new R,k=new R,r=1,p="local-floor";"undefined"!==typeof window&&"VRFrameData"in window&&(l=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",c,!1));var w=new R,v=new ra,y=new n,x=new V;x.viewport=new Z;x.layers.enable(1);var L=new V;L.viewport=new Z;L.layers.enable(2);var N=new Ld([x,L]);N.layers.enable(1);N.layers.enable(2);var B=new A,Ga,Y=[];this.enabled=!1;
+this.getController=function(a){var b=q[a];void 0===b&&(b=new Jc,b.matrixAutoUpdate=!1,b.visible=!1,q[a]=b);return b};this.getDevice=function(){return h};this.setDevice=function(a){void 0!==a&&(h=a);z.setContext(a)};this.setFramebufferScaleFactor=function(a){r=a};this.setReferenceSpaceType=function(a){p=a};this.setPoseTarget=function(a){void 0!==a&&(m=a)};this.getCamera=function(a){var c="local-floor"===p?1.6:0;if(!1===b())return a.position.set(0,c,0),a.rotation.set(0,0,0),a;h.depthNear=a.near;h.depthFar=
+a.far;h.getFrameData(l);if("local-floor"===p){var e=h.stageParameters;e?t.fromArray(e.sittingToStandingTransform):t.makeTranslation(0,c,0)}c=l.pose;e=null!==m?m:a;e.matrix.copy(t);e.matrix.decompose(e.position,e.quaternion,e.scale);null!==c.orientation&&(v.fromArray(c.orientation),e.quaternion.multiply(v));null!==c.position&&(v.setFromRotationMatrix(t),y.fromArray(c.position),y.applyQuaternion(v),e.position.add(y));e.updateMatrixWorld();x.near=a.near;L.near=a.near;x.far=a.far;L.far=a.far;x.matrixWorldInverse.fromArray(l.leftViewMatrix);
+L.matrixWorldInverse.fromArray(l.rightViewMatrix);k.getInverse(t);"local-floor"===p&&(x.matrixWorldInverse.multiply(k),L.matrixWorldInverse.multiply(k));a=e.parent;null!==a&&(w.getInverse(a.matrixWorld),x.matrixWorldInverse.multiply(w),L.matrixWorldInverse.multiply(w));x.matrixWorld.getInverse(x.matrixWorldInverse);L.matrixWorld.getInverse(L.matrixWorldInverse);x.projectionMatrix.fromArray(l.leftProjectionMatrix);L.projectionMatrix.fromArray(l.rightProjectionMatrix);Dh(N,x,L);a=h.getLayers();a.length&&
+(a=a[0],d(x.viewport,a.leftBounds),d(L.viewport,a.rightBounds));a:for(a=0;a<q.length;a++){c=q[a];b:{e=a;for(var f=navigator.getGamepads&&navigator.getGamepads(),g=0,u=0,r=f.length;g<r;g++){var n=f[g];if(n&&("Daydream Controller"===n.id||"Gear VR Controller"===n.id||"Oculus Go Controller"===n.id||"OpenVR Gamepad"===n.id||n.id.startsWith("Oculus Touch")||n.id.startsWith("HTC Vive Focus")||n.id.startsWith("Spatial Controller"))){if(u===e){e=n;break b}u++}}e=void 0}if(void 0!==e&&void 0!==e.pose){if(null===
+e.pose)break a;f=e.pose;!1===f.hasPosition&&c.position.set(.2,-.6,-.05);null!==f.position&&c.position.fromArray(f.position);null!==f.orientation&&c.quaternion.fromArray(f.orientation);c.matrix.compose(c.position,c.quaternion,c.scale);c.matrix.premultiply(t);c.matrix.decompose(c.position,c.quaternion,c.scale);c.matrixWorldNeedsUpdate=!0;c.visible=!0;f="Daydream Controller"===e.id?0:1;void 0===Y[a]&&(Y[a]=!1);Y[a]!==e.buttons[f].pressed&&(Y[a]=e.buttons[f].pressed,!0===Y[a]?c.dispatchEvent({type:"selectstart"}):
+(c.dispatchEvent({type:"selectend"}),c.dispatchEvent({type:"select"})))}else c.visible=!1}return N};this.getStandingMatrix=function(){return t};this.isPresenting=b;var z=new Vf;this.setAnimationLoop=function(a){z.setAnimationLoop(a);b()&&z.start()};this.submitFrame=function(){b()&&h.submitFrame()};this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",c)};this.setFrameOfReferenceType=function(){console.warn("THREE.WebVRManager: setFrameOfReferenceType() has been deprecated.")}}
+function Gh(a,b){function c(){return null!==l&&null!==m}function d(a){for(var b=0;b<k.length;b++)r[b]===a.inputSource&&k[b].dispatchEvent({type:a.type})}function e(){a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());x.stop();h.dispatchEvent({type:"sessionend"})}function f(a){m=a;x.setContext(l);x.start();h.dispatchEvent({type:"sessionstart"})}function g(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}
+var h=this,l=null,m=null,q="local-floor",t=null,k=[],r=[],p=new V;p.layers.enable(1);p.viewport=new Z;var n=new V;n.layers.enable(2);n.viewport=new Z;var v=new Ld([p,n]);v.layers.enable(1);v.layers.enable(2);this.enabled=!1;this.getController=function(a){var b=k[a];void 0===b&&(b=new Jc,b.matrixAutoUpdate=!1,b.visible=!1,k[a]=b);return b};this.setFramebufferScaleFactor=function(a){};this.setReferenceSpaceType=function(a){q=a};this.getSession=function(){return l};this.setSession=function(a){l=a;null!==
+l&&(l.addEventListener("select",d),l.addEventListener("selectstart",d),l.addEventListener("selectend",d),l.addEventListener("end",e),l.updateRenderState({baseLayer:new XRWebGLLayer(l,b)}),l.requestReferenceSpace(q).then(f),r=l.inputSources,l.addEventListener("inputsourceschange",function(){r=l.inputSources;console.log(r);for(var a=0;a<k.length;a++)k[a].userData.inputSource=r[a]}))};this.getCamera=function(a){if(c()){var b=a.parent,d=v.cameras;g(v,b);for(var e=0;e<d.length;e++)g(d[e],b);a.matrixWorld.copy(v.matrixWorld);
+a=a.children;e=0;for(b=a.length;e<b;e++)a[e].updateMatrixWorld(!0);Dh(v,p,n);return v}return a};this.isPresenting=c;var y=null,x=new Vf;x.setAnimationLoop(function(b,c){t=c.getViewerPose(m);if(null!==t){var d=t.views,e=l.renderState.baseLayer;a.setFramebuffer(e.framebuffer);for(var f=0;f<d.length;f++){var g=d[f],h=e.getViewport(g),q=v.cameras[f];q.matrix.fromArray(g.transform.inverse.matrix).getInverse(q.matrix);q.projectionMatrix.fromArray(g.projectionMatrix);q.viewport.set(h.x,h.y,h.width,h.height);
+0===f&&v.matrix.copy(q.matrix)}}for(f=0;f<k.length;f++){d=k[f];if(e=r[f])if(e=c.getPose(e.targetRaySpace,m),null!==e){d.matrix.fromArray(e.transform.matrix);d.matrix.decompose(d.position,d.rotation,d.scale);d.visible=!0;continue}d.visible=!1}y&&y(b)});this.setAnimationLoop=function(a){y=a};this.dispose=function(){};this.getStandingMatrix=function(){console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed.");return new R};this.getDevice=function(){console.warn("THREE.WebXRManager: getDevice() has been deprecated.")};
+this.setDevice=function(){console.warn("THREE.WebXRManager: setDevice() has been deprecated.")};this.setFrameOfReferenceType=function(){console.warn("THREE.WebXRManager: setFrameOfReferenceType() has been deprecated.")};this.submitFrame=function(){}}function Zf(a){var b;function c(){oa=new Wi(K);Fa=new Ui(K,oa,a);Fa.isWebGL2||(oa.get("WEBGL_depth_texture"),oa.get("OES_texture_float"),oa.get("OES_texture_half_float"),oa.get("OES_texture_half_float_linear"),oa.get("OES_standard_derivatives"),oa.get("OES_element_index_uint"),
+oa.get("ANGLE_instanced_arrays"));oa.get("OES_texture_float_linear");la=new Ch(K,oa,Fa);da=new Zj(K,oa,la,Fa);da.scissor(Kd.copy(ka).multiplyScalar(ca).floor());da.viewport(V.copy(ea).multiplyScalar(ca).floor());ba=new Zi(K);aa=new Qj;ha=new ak(K,oa,da,aa,Fa,la,ba);va=new Ri(K);xa=new Xi(K,va,ba);ra=new bj(xa,ba);za=new aj(K);qa=new Pj(E,oa,Fa);wa=new Tj;sa=new Yj;na=new Si(E,da,ra,z);Ba=new Ti(K,oa,ba,Fa);Da=new Yi(K,oa,ba,Fa);ba.programs=qa.programs;E.capabilities=Fa;E.extensions=oa;E.properties=
+aa;E.renderLists=wa;E.state=da;E.info=ba}function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");O=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");O=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);aa.remove(a)}function g(a){var b=aa.get(a).program;a.program=void 0;void 0!==b&&qa.releaseProgram(b)}function h(a,b){a.render(function(a){E.renderBufferImmediate(a,b)})}function l(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=
+a.renderOrder;else if(a.isLOD)!0===a.autoUpdate&&a.update(b);else if(a.isLight)F.pushLight(a),a.castShadow&&F.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||ia.intersectsSprite(a)){d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd);var e=ra.update(a),f=a.material;f.visible&&H.push(a,e,f,c,Hb.z,null)}}else if(a.isImmediateRenderObject)d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd),H.push(a,null,a.material,c,Hb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&
+a.skeleton.update(),!a.frustumCulled||ia.intersectsObject(a))if(d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Jd),e=ra.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var q=g[h],k=f[q.materialIndex];k&&k.visible&&H.push(a,e,k,c,Hb.z,q)}else f.visible&&H.push(a,e,f,c,Hb.z,null);a=a.children;h=0;for(m=a.length;h<m;h++)l(a[h],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,l=g.geometry,m=void 0===d?g.material:d;g=g.group;
+if(c.isArrayCamera){Pa=c;for(var k=c.cameras,t=0,p=k.length;t<p;t++){var u=k[t];h.layers.test(u.layers)&&(da.viewport(V.copy(u.viewport)),F.setupLights(u),q(h,b,u,l,m,g))}}else Pa=null,q(h,b,c,l,m,g)}}function q(a,c,d,e,f,g){a.onBeforeRender(E,c,d,e,f,g);F=sa.get(c,Pa||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){da.setMaterial(f);var l=u(d,c.fog,f,a);X=b=null;U=!1;h(a,l)}else E.renderBufferDirect(d,
+c.fog,e,f,a,g);a.onAfterRender(E,c,d,e,f,g);F=sa.get(c,Pa||d)}function k(a,b,c){var d=aa.get(a),e=F.state.lights,h=e.state.version;c=qa.getParameters(a,e.state,F.state.shadowsArray,b,Oa.numPlanes,Oa.numIntersection,c);var l=qa.getProgramCode(a,c),m=d.program,q=!0;if(void 0===m)a.addEventListener("dispose",f);else if(m.code!==l)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=h;else if(void 0!==c.shaderID)return;q=!1}q&&(c.shaderID?(l=fb[c.shaderID],d.shader={name:a.type,uniforms:$b(l.uniforms),
+vertexShader:l.vertexShader,fragmentShader:l.fragmentShader}):d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader,E),l=qa.getProgramCode(a,c),m=qa.acquireProgram(a,d.shader,c,l),d.program=m,a.program=m);c=m.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<E.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<E.maxMorphNormals;l++)0<=
+c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Oa.numPlanes,d.numIntersection=Oa.numIntersection,c.clippingPlanes=Oa.uniform;d.fog=b;d.lightsStateVersion=h;a.lights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.spotLights.value=e.state.spot,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.hemisphereLights.value=
+e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=Eb.seqWithValue(a.seq,c);d.uniformsList=a}function u(a,b,c,d){ha.resetTextureUnits();var e=aa.get(c),f=F.state.lights;Ke&&(ua||a!==fa)&&Oa.setState(c.clippingPlanes,
+c.clipIntersection,c.clipShadows,a,e,a===fa&&c.id===Zb);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:c.lights&&e.lightsStateVersion!==f.state.version?c.needsUpdate=!0:void 0===e.numClippingPlanes||e.numClippingPlanes===Oa.numPlanes&&e.numIntersection===Oa.numIntersection||(c.needsUpdate=!0));c.needsUpdate&&(k(c,b,d),c.needsUpdate=!1);var g=!1,h=!1,l=!1;f=e.program;var m=f.getUniforms(),q=e.shader.uniforms;da.useProgram(f.program)&&(l=h=g=!0);c.id!==Zb&&
+(Zb=c.id,h=!0);if(g||fa!==a){m.setValue(K,"projectionMatrix",a.projectionMatrix);Fa.logarithmicDepthBuffer&&m.setValue(K,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));fa!==a&&(fa=a,l=h=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)g=m.map.cameraPosition,void 0!==g&&g.setValue(K,Hb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&m.setValue(K,
+"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(m.setOptional(K,d,"bindMatrix"),m.setOptional(K,d,"bindMatrixInverse"),a=d.skeleton))if(g=a.bones,Fa.floatVertexTextures){if(void 0===a.boneTexture){g=Math.sqrt(4*g.length);g=P.ceilPowerOfTwo(g);g=Math.max(g,4);var t=new Float32Array(g*g*4);t.set(a.boneMatrices);var u=new ac(t,g,g,1023,1015);u.needsUpdate=!0;a.boneMatrices=t;a.boneTexture=u;a.boneTextureSize=g}m.setValue(K,"boneTexture",a.boneTexture,ha);m.setValue(K,"boneTextureSize",a.boneTextureSize)}else m.setOptional(K,
+a,"boneMatrices");h&&(m.setValue(K,"toneMappingExposure",E.toneMappingExposure),m.setValue(K,"toneMappingWhitePoint",E.toneMappingWhitePoint),c.lights&&(h=l,q.ambientLightColor.needsUpdate=h,q.lightProbe.needsUpdate=h,q.directionalLights.needsUpdate=h,q.pointLights.needsUpdate=h,q.spotLights.needsUpdate=h,q.rectAreaLights.needsUpdate=h,q.hemisphereLights.needsUpdate=h),b&&c.fog&&(q.fogColor.value.copy(b.color),b.isFog?(q.fogNear.value=b.near,q.fogFar.value=b.far):b.isFogExp2&&(q.fogDensity.value=
+b.density)),c.isMeshBasicMaterial?r(q,c):c.isMeshLambertMaterial?(r(q,c),c.emissiveMap&&(q.emissiveMap.value=c.emissiveMap)):c.isMeshPhongMaterial?(r(q,c),c.isMeshToonMaterial?(p(q,c),c.gradientMap&&(q.gradientMap.value=c.gradientMap)):p(q,c)):c.isMeshStandardMaterial?(r(q,c),c.isMeshPhysicalMaterial?(w(q,c),q.reflectivity.value=c.reflectivity,q.clearcoat.value=c.clearcoat,q.clearcoatRoughness.value=c.clearcoatRoughness,c.sheen&&q.sheen.value.copy(c.sheen),c.clearcoatNormalMap&&(q.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),
+q.clearcoatNormalMap.value=c.clearcoatNormalMap,1===c.side&&q.clearcoatNormalScale.value.negate())):w(q,c)):c.isMeshMatcapMaterial?(r(q,c),c.matcap&&(q.matcap.value=c.matcap),c.bumpMap&&(q.bumpMap.value=c.bumpMap,q.bumpScale.value=c.bumpScale,1===c.side&&(q.bumpScale.value*=-1)),c.normalMap&&(q.normalMap.value=c.normalMap,q.normalScale.value.copy(c.normalScale),1===c.side&&q.normalScale.value.negate()),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,
+q.displacementBias.value=c.displacementBias)):c.isMeshDepthMaterial?(r(q,c),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isMeshDistanceMaterial?(r(q,c),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias),q.referencePosition.value.copy(c.referencePosition),q.nearDistance.value=c.nearDistance,
+q.farDistance.value=c.farDistance):c.isMeshNormalMaterial?(r(q,c),c.bumpMap&&(q.bumpMap.value=c.bumpMap,q.bumpScale.value=c.bumpScale,1===c.side&&(q.bumpScale.value*=-1)),c.normalMap&&(q.normalMap.value=c.normalMap,q.normalScale.value.copy(c.normalScale),1===c.side&&q.normalScale.value.negate()),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isLineBasicMaterial?(q.diffuse.value.copy(c.color),
+q.opacity.value=c.opacity,c.isLineDashedMaterial&&(q.dashSize.value=c.dashSize,q.totalSize.value=c.dashSize+c.gapSize,q.scale.value=c.scale)):c.isPointsMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,q.size.value=c.size*ca,q.scale.value=.5*W,q.map.value=c.map,null!==c.map&&(!0===c.map.matrixAutoUpdate&&c.map.updateMatrix(),q.uvTransform.value.copy(c.map.matrix))):c.isSpriteMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,q.rotation.value=c.rotation,q.map.value=c.map,
+null!==c.map&&(!0===c.map.matrixAutoUpdate&&c.map.updateMatrix(),q.uvTransform.value.copy(c.map.matrix))):c.isShadowMaterial&&(q.color.value.copy(c.color),q.opacity.value=c.opacity),void 0!==q.ltc_1&&(q.ltc_1.value=I.LTC_1),void 0!==q.ltc_2&&(q.ltc_2.value=I.LTC_2),Eb.upload(K,e.uniformsList,q,ha));c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Eb.upload(K,e.uniformsList,q,ha),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&m.setValue(K,"center",d.center);m.setValue(K,"modelViewMatrix",d.modelViewMatrix);
+m.setValue(K,"normalMatrix",d.normalMatrix);m.setValue(K,"modelMatrix",d.matrixWorld);return f}function r(a,b){a.opacity.value=b.opacity;b.color&&a.diffuse.value.copy(b.color);b.emissive&&a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);b.map&&(a.map.value=b.map);b.alphaMap&&(a.alphaMap.value=b.alphaMap);b.specularMap&&(a.specularMap.value=b.specularMap);b.envMap&&(a.envMap.value=b.envMap,a.flipEnvMap.value=b.envMap.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=
+b.refractionRatio,a.maxMipLevel.value=aa.get(b.envMap).__maxMipLevel);b.lightMap&&(a.lightMap.value=b.lightMap,a.lightMapIntensity.value=b.lightMapIntensity);b.aoMap&&(a.aoMap.value=b.aoMap,a.aoMapIntensity.value=b.aoMapIntensity);if(b.map)var c=b.map;else b.specularMap?c=b.specularMap:b.displacementMap?c=b.displacementMap:b.normalMap?c=b.normalMap:b.bumpMap?c=b.bumpMap:b.roughnessMap?c=b.roughnessMap:b.metalnessMap?c=b.metalnessMap:b.alphaMap?c=b.alphaMap:b.emissiveMap&&(c=b.emissiveMap);void 0!==
+c&&(c.isWebGLRenderTarget&&(c=c.texture),!0===c.matrixAutoUpdate&&c.updateMatrix(),a.uvTransform.value.copy(c.matrix))}function p(a,b){a.specular.value.copy(b.specular);a.shininess.value=Math.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&
+(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias)}function w(a,b){a.roughness.value=b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=
+b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias);b.envMap&&(a.envMapIntensity.value=b.envMapIntensity)}a=a||{};var v=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),y=void 0!==a.context?a.context:null,x=void 0!==a.alpha?a.alpha:!1,L=void 0!==a.depth?a.depth:
+!0,N=void 0!==a.stencil?a.stencil:!0,B=void 0!==a.antialias?a.antialias:!1,z=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,C=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,D=void 0!==a.powerPreference?a.powerPreference:"default",G=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,H=null,F=null;this.domElement=v;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=
+[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var E=this,O=!1,Q=null,S=0,ja=0,M=null,T=null,Zb=-1;var X=b=null;var U=!1;var fa=null,Pa=null,V=new Z,Kd=new Z,ma=null,J=v.width,W=v.height,ca=1,ea=new Z(0,0,J,W),ka=new Z(0,0,J,W),ta=!1,ia=new Gd,Oa=new Vi,Ke=!1,ua=!1,Jd=new R,Hb=new n;try{x={alpha:x,depth:L,stencil:N,
+antialias:B,premultipliedAlpha:z,preserveDrawingBuffer:C,powerPreference:D,failIfMajorPerformanceCaveat:G,xrCompatible:!0};v.addEventListener("webglcontextlost",d,!1);v.addEventListener("webglcontextrestored",e,!1);var K=y||v.getContext("webgl",x)||v.getContext("experimental-webgl",x);if(null===K){if(null!==v.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===K.getShaderPrecisionFormat&&(K.getShaderPrecisionFormat=
+function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Hh){throw console.error("THREE.WebGLRenderer: "+Hh.message),Hh;}var oa,Fa,da,ba,aa,ha,va,xa,ra,qa,wa,sa,na,za,Ba,Da,la;c();var pa="undefined"!==typeof navigator&&"xr"in navigator&&"supportsSession"in navigator.xr?new Gh(E,K):new Yf(E);this.vr=pa;var Ea=new Ah(E,ra,Fa.maxTextureSize);this.shadowMap=Ea;this.getContext=function(){return K};this.getContextAttributes=function(){return K.getContextAttributes()};this.forceContextLoss=function(){var a=
+oa.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=oa.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return ca};this.setPixelRatio=function(a){void 0!==a&&(ca=a,this.setSize(J,W,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new A);return a.set(J,W)};this.setSize=function(a,b,c){pa.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):
+(J=a,W=b,v.width=Math.floor(a*ca),v.height=Math.floor(b*ca),!1!==c&&(v.style.width=a+"px",v.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),a=new A);return a.set(J*ca,W*ca).floor()};this.setDrawingBufferSize=function(a,b,c){J=a;W=b;ca=c;v.width=Math.floor(a*c);v.height=Math.floor(b*c);this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===
+a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new Z);return a.copy(V)};this.getViewport=function(a){return a.copy(ea)};this.setViewport=function(a,b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);da.viewport(V.copy(ea).multiplyScalar(ca).floor())};this.getScissor=function(a){return a.copy(ka)};this.setScissor=function(a,b,c,d){a.isVector4?ka.set(a.x,a.y,a.z,a.w):ka.set(a,b,c,d);da.scissor(Kd.copy(ka).multiplyScalar(ca).floor())};this.getScissorTest=
+function(){return ta};this.setScissorTest=function(a){da.setScissorTest(ta=a)};this.getClearColor=function(){return na.getClearColor()};this.setClearColor=function(){na.setClearColor.apply(na,arguments)};this.getClearAlpha=function(){return na.getClearAlpha()};this.setClearAlpha=function(){na.setClearAlpha.apply(na,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;K.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=
+function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.dispose=function(){v.removeEventListener("webglcontextlost",d,!1);v.removeEventListener("webglcontextrestored",e,!1);wa.dispose();sa.dispose();aa.dispose();ra.dispose();pa.dispose();ya.stop()};this.renderBufferImmediate=function(a,b){da.initAttributes();var c=aa.get(a);a.hasPositions&&!c.position&&(c.position=K.createBuffer());a.hasNormals&&!c.normal&&(c.normal=K.createBuffer());a.hasUvs&&!c.uv&&(c.uv=K.createBuffer());
+a.hasColors&&!c.color&&(c.color=K.createBuffer());b=b.getAttributes();a.hasPositions&&(K.bindBuffer(34962,c.position),K.bufferData(34962,a.positionArray,35048),da.enableAttribute(b.position),K.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(K.bindBuffer(34962,c.normal),K.bufferData(34962,a.normalArray,35048),da.enableAttribute(b.normal),K.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(K.bindBuffer(34962,c.uv),K.bufferData(34962,a.uvArray,35048),da.enableAttribute(b.uv),K.vertexAttribPointer(b.uv,
+2,5126,!1,0,0));a.hasColors&&(K.bindBuffer(34962,c.color),K.bufferData(34962,a.colorArray,35048),da.enableAttribute(b.color),K.vertexAttribPointer(b.color,3,5126,!1,0,0));da.disableUnusedAttributes();K.drawArrays(4,0,a.count);a.count=0};this.renderBufferDirect=function(a,c,d,e,f,g){var h=f.isMesh&&0>f.matrixWorld.determinant();da.setMaterial(e,h);var l=u(a,c,e,f),m=!1;if(b!==d.id||X!==l.id||U!==(!0===e.wireframe))b=d.id,X=l.id,U=!0===e.wireframe,m=!0;f.morphTargetInfluences&&(za.update(f,d,e,l),m=
+!0);h=d.index;var q=d.attributes.position;c=1;!0===e.wireframe&&(h=xa.getWireframeAttribute(d),c=2);a=Ba;if(null!==h){var k=va.get(h);a=Da;a.setIndex(k)}if(m){if(d&&d.isInstancedBufferGeometry&&!Fa.isWebGL2&&null===oa.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{da.initAttributes();m=d.attributes;l=l.getAttributes();var t=e.defaultAttributeValues;for(N in l){var p=
+l[N];if(0<=p){var r=m[N];if(void 0!==r){var n=r.normalized,w=r.itemSize,v=va.get(r);if(void 0!==v){var x=v.buffer,y=v.type;v=v.bytesPerElement;if(r.isInterleavedBufferAttribute){var B=r.data,L=B.stride;r=r.offset;B&&B.isInstancedInterleavedBuffer?(da.enableAttributeAndDivisor(p,B.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=B.meshPerAttribute*B.count)):da.enableAttribute(p);K.bindBuffer(34962,x);K.vertexAttribPointer(p,w,y,n,L*v,r*v)}else r.isInstancedBufferAttribute?(da.enableAttributeAndDivisor(p,
+r.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=r.meshPerAttribute*r.count)):da.enableAttribute(p),K.bindBuffer(34962,x),K.vertexAttribPointer(p,w,y,n,0,0)}}else if(void 0!==t&&(n=t[N],void 0!==n))switch(n.length){case 2:K.vertexAttrib2fv(p,n);break;case 3:K.vertexAttrib3fv(p,n);break;case 4:K.vertexAttrib4fv(p,n);break;default:K.vertexAttrib1fv(p,n)}}}da.disableUnusedAttributes()}null!==h&&K.bindBuffer(34963,k.buffer)}k=Infinity;null!==h?k=h.count:void 0!==q&&(k=q.count);h=
+d.drawRange.start*c;q=null!==g?g.start*c:0;var N=Math.max(h,q);g=Math.max(0,Math.min(k,h+d.drawRange.count*c,q+(null!==g?g.count*c:Infinity))-1-N+1);if(0!==g){if(f.isMesh)if(!0===e.wireframe)da.setLineWidth(e.wireframeLinewidth*(null===M?ca:1)),a.setMode(1);else switch(f.drawMode){case 0:a.setMode(4);break;case 1:a.setMode(5);break;case 2:a.setMode(6)}else f.isLine?(e=e.linewidth,void 0===e&&(e=1),da.setLineWidth(e*(null===M?ca:1)),f.isLineSegments?a.setMode(1):f.isLineLoop?a.setMode(2):a.setMode(3)):
+f.isPoints?a.setMode(0):f.isSprite&&a.setMode(4);d&&d.isInstancedBufferGeometry?0<d.maxInstancedCount&&a.renderInstances(d,N,g):a.render(N,g)}};this.compile=function(a,b){F=sa.get(a,b);F.init();a.traverse(function(a){a.isLight&&(F.pushLight(a),a.castShadow&&F.pushShadow(a))});F.setupLights(b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=0;c<b.material.length;c++)k(b.material[c],a.fog,b);else k(b.material,a.fog,b)})};var Aa=null,ya=new Vf;ya.setAnimationLoop(function(a){pa.isPresenting()||
+Aa&&Aa(a)});"undefined"!==typeof window&&ya.setContext(window);this.setAnimationLoop=function(a){Aa=a;pa.setAnimationLoop(a);ya.start()};this.render=function(a,c,d,e){if(void 0!==d){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");var f=d}if(void 0!==e){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");var g=e}c&&c.isCamera?O||(X=b=null,U=!1,Zb=-1,fa=null,!0===a.autoUpdate&&
+a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),pa.enabled&&(c=pa.getCamera(c)),F=sa.get(a,c),F.init(),a.onBeforeRender(E,a,c,f||M),Jd.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),ia.setFromMatrix(Jd),ua=this.localClippingEnabled,Ke=Oa.init(this.clippingPlanes,ua,c),H=wa.get(a,c),H.init(),l(a,c,0,E.sortObjects),!0===E.sortObjects&&H.sort(),Ke&&Oa.beginShadows(),Ea.render(F.state.shadowsArray,a,c),F.setupLights(c),Ke&&Oa.endShadows(),this.info.autoReset&&this.info.reset(),
+void 0!==f&&this.setRenderTarget(f),na.render(H,a,c,g),d=H.opaque,e=H.transparent,a.overrideMaterial?(f=a.overrideMaterial,d.length&&m(d,a,c,f),e.length&&m(e,a,c,f)):(d.length&&m(d,a,c),e.length&&m(e,a,c)),a.onAfterRender(E,a,c),null!==M&&(ha.updateRenderTargetMipmap(M),ha.updateMultisampleRenderTarget(M)),da.buffers.depth.setTest(!0),da.buffers.depth.setMask(!0),da.buffers.color.setMask(!0),da.setPolygonOffset(!1),pa.enabled&&pa.submitFrame(),F=H=null):console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")};
+this.setFramebuffer=function(a){Q!==a&&K.bindFramebuffer(36160,a);Q=a};this.getActiveCubeFace=function(){return S};this.getActiveMipmapLevel=function(){return ja};this.getRenderTarget=function(){return M};this.setRenderTarget=function(a,b,c){M=a;S=b;ja=c;a&&void 0===aa.get(a).__webglFramebuffer&&ha.setupRenderTarget(a);var d=Q,e=!1;a?(d=aa.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?aa.get(a).__webglMultisampledFramebuffer:d,V.copy(a.viewport),
+Kd.copy(a.scissor),ma=a.scissorTest):(V.copy(ea).multiplyScalar(ca).floor(),Kd.copy(ka).multiplyScalar(ca).floor(),ma=ta);T!==d&&(K.bindFramebuffer(36160,d),T=d);da.viewport(V);da.scissor(Kd);da.setScissorTest(ma);e&&(a=aa.get(a.texture),K.framebufferTexture2D(36160,36064,34069+(b||0),a.__webglTexture,c||0))};this.readRenderTargetPixels=function(a,b,c,d,e,f,g){if(a&&a.isWebGLRenderTarget){var h=aa.get(a).__webglFramebuffer;a.isWebGLRenderTargetCube&&void 0!==g&&(h=h[g]);if(h){g=!1;h!==T&&(K.bindFramebuffer(36160,
+h),g=!0);try{var l=a.texture,m=l.format,q=l.type;1023!==m&&la.convert(m)!==K.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===q||la.convert(q)===K.getParameter(35738)||1015===q&&(Fa.isWebGL2||oa.get("OES_texture_float")||oa.get("WEBGL_color_buffer_float"))||1016===q&&(Fa.isWebGL2?oa.get("EXT_color_buffer_float"):oa.get("EXT_color_buffer_half_float"))?36053===K.checkFramebufferStatus(36160)?0<=b&&b<=
+a.width-d&&0<=c&&c<=a.height-e&&K.readPixels(b,c,d,e,la.convert(m),la.convert(q),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{g&&K.bindFramebuffer(36160,T)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=
+function(a,b,c){var d=b.image.width,e=b.image.height,f=la.convert(b.format);ha.setTexture2D(b,0);K.copyTexImage2D(3553,c||0,f,a.x,a.y,d,e,0)};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=la.convert(c.format),h=la.convert(c.type);ha.setTexture2D(c,0);b.isDataTexture?K.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,h,b.image.data):K.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image)};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",
+{detail:this}))}function Le(a,b){this.name="";this.color=new G(a);this.density=void 0!==b?b:2.5E-4}function Me(a,b,c){this.name="";this.color=new G(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function cc(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.version=0}function Md(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function Ib(a){O.call(this);this.type="SpriteMaterial";this.color=
+new G(16777215);this.map=null;this.rotation=0;this.sizeAttenuation=!0;this.lights=!1;this.transparent=!0;this.setValues(a)}function Nd(a){D.call(this);this.type="Sprite";if(void 0===Kc){Kc=new C;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new cc(b,5);Kc.setIndex([0,1,2,0,2,3]);Kc.addAttribute("position",new Md(b,3,0,!1));Kc.addAttribute("uv",new Md(b,2,3,!1))}this.geometry=Kc;this.material=void 0!==a?a:new Ib;this.center=new A(.5,.5)}function Ne(a,b,c,d,e,f){Lc.subVectors(a,
+c).addScalar(.5).multiply(d);void 0!==e?(Od.x=f*Lc.x-e*Lc.y,Od.y=e*Lc.x+f*Lc.y):Od.copy(Lc);a.copy(b);a.x+=Od.x;a.y+=Od.y;a.applyMatrix4(Ih)}function Pd(){D.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Qd(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");ua.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new R;this.bindMatrixInverse=
+new R}function Oe(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new R)}function $f(){D.call(this);this.type="Bone"}function M(a){O.call(this);this.type="LineBasicMaterial";this.color=new G(16777215);this.linewidth=
+1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(a)}function aa(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");D.call(this);this.type="Line";this.geometry=void 0!==a?a:new C;this.material=void 0!==b?b:new M({color:16777215*Math.random()})}function X(a,b){aa.call(this,a,b);this.type="LineSegments"}function Pe(a,b){aa.call(this,a,b);this.type="LineLoop"}function Qa(a){O.call(this);this.type="PointsMaterial";
+this.color=new G(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=this.morphTargets=!1;this.setValues(a)}function Mc(a,b){D.call(this);this.type="Points";this.geometry=void 0!==a?a:new C;this.material=void 0!==b?b:new Qa({color:16777215*Math.random()});this.updateMorphTargets()}function ag(a,b,c,d,e,f,g){var h=bg.distanceSqToPoint(a);h<c&&(c=new n,bg.closestPointToPoint(a,c),c.applyMatrix4(d),a=e.ray.origin.distanceTo(c),a<e.near||a>e.far||f.push({distance:a,distanceToRay:Math.sqrt(h),
+point:c,index:b,face:null,object:g}))}function cg(a,b,c,d,e,f,g,h,l){T.call(this,a,b,c,d,e,f,g,h,l);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function Nc(a,b,c,d,e,f,g,h,l,m,q,k){T.call(this,null,f,g,h,l,m,d,e,q,k);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Rd(a,b,c,d,e,f,g,h,l){T.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Sd(a,b,c,d,e,f,g,h,l,m){m=void 0!==m?
+m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);T.call(this,null,d,e,f,g,h,m,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Oc(a){C.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var l=a.faces;var m=0;for(d=
+l.length;m<d;m++){var q=l[m];for(c=0;3>c;c++){var k=q[h[c]];var u=q[h[(c+1)%3]];f[0]=Math.min(k,u);f[1]=Math.max(k,u);k=f[0]+","+f[1];void 0===g[k]&&(g[k]={index1:f[0],index2:f[1]})}}for(k in g)m=g[k],h=a.vertices[m.index1],b.push(h.x,h.y,h.z),h=a.vertices[m.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(h=new n,null!==a.index){l=a.attributes.position;q=a.index;var r=a.groups;0===r.length&&(r=[{start:0,count:q.count,materialIndex:0}]);a=0;for(e=r.length;a<e;++a)for(m=r[a],c=m.start,
+d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)k=q.getX(m+c),u=q.getX(m+(c+1)%3),f[0]=Math.min(k,u),f[1]=Math.max(k,u),k=f[0]+","+f[1],void 0===g[k]&&(g[k]={index1:f[0],index2:f[1]});for(k in g)m=g[k],h.fromBufferAttribute(l,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(l,m.index2),b.push(h.x,h.y,h.z)}else for(l=a.attributes.position,m=0,d=l.count/3;m<d;m++)for(c=0;3>c;c++)g=3*m+c,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z);this.addAttribute("position",
+new z(b,3))}function Td(a,b,c){E.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Pc(a,b,c));this.mergeVertices()}function Pc(a,b,c){C.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new n,l=new n,m=new n,q=new n,k=new n,u,r;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var p=b+1;for(u=0;u<=c;u++){var w=
+u/c;for(r=0;r<=b;r++){var v=r/b;a(v,w,l);e.push(l.x,l.y,l.z);0<=v-1E-5?(a(v-1E-5,w,m),q.subVectors(l,m)):(a(v+1E-5,w,m),q.subVectors(m,l));0<=w-1E-5?(a(v,w-1E-5,m),k.subVectors(l,m)):(a(v,w+1E-5,m),k.subVectors(m,l));h.crossVectors(q,k).normalize();f.push(h.x,h.y,h.z);g.push(v,w)}}for(u=0;u<c;u++)for(r=0;r<b;r++)a=u*p+r+1,h=(u+1)*p+r+1,l=(u+1)*p+r,d.push(u*p+r,a,l),d.push(a,h,l);this.setIndex(d);this.addAttribute("position",new z(e,3));this.addAttribute("normal",new z(f,3));this.addAttribute("uv",
+new z(g,2))}function Ud(a,b,c,d){E.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new la(a,b,c,d));this.mergeVertices()}function la(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}C.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=
+c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new n,d=new n,g=new n,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);var l,m,k=c,y=d,x=g,L=Math.pow(2,a),N=[];for(m=0;m<=L;m++){N[m]=[];var B=k.clone().lerp(x,m/L),A=y.clone().lerp(x,m/L),z=L-m;for(l=0;l<=z;l++)N[m][l]=0===l&&m===L?B:B.clone().lerp(A,l/z)}for(m=0;m<L;m++)for(l=0;l<2*(L-m)-1;l++)k=Math.floor(l/2),0===l%2?(e(N[m][k+1]),e(N[m+1][k]),e(N[m][k])):(e(N[m][k+1]),e(N[m+1][k+1]),e(N[m+1][k]))}})(d);(function(a){for(var b=new n,c=0;c<
+h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new n,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new n;b=new n;for(var c=new n,d=new n,e=new A,f=new A,k=new A,v=0,y=0;v<h.length;v+=9,y+=6){a.set(h[v+0],h[v+1],h[v+2]);b.set(h[v+3],h[v+4],h[v+5]);c.set(h[v+6],h[v+7],h[v+8]);e.set(l[y+0],l[y+1]);f.set(l[y+
+2],l[y+3]);k.set(l[y+4],l[y+5]);d.copy(a).add(b).add(c).divideScalar(3);var x=Math.atan2(d.z,-d.x);g(e,y+0,a,x);g(f,y+2,b,x);g(k,y+4,c,x)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),.2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.addAttribute("position",new z(h,3));this.addAttribute("normal",new z(h.slice(),3));this.addAttribute("uv",new z(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Vd(a,b){E.call(this);
+this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Qc(a,b));this.mergeVertices()}function Qc(a,b){la.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Wd(a,b){E.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new dc(a,b));this.mergeVertices()}function dc(a,b){la.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,
+0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Xd(a,b){E.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Rc(a,b));this.mergeVertices()}function Rc(a,b){var c=(1+Math.sqrt(5))/2;la.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,
+6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Yd(a,b){E.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Sc(a,b));this.mergeVertices()}function Sc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;la.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,
+0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Zd(a,b,c,d,e,f){E.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==
+f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new ec(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function ec(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(u=0;u<=d;u++){var m=u/d*Math.PI*2,k=Math.sin(m);m=-Math.cos(m);l.x=m*f.x+k*e.x;l.y=m*f.y+k*e.y;l.z=m*f.z+k*e.z;l.normalize();p.push(l.x,l.y,l.z);h.x=q.x+c*l.x;h.y=q.y+c*l.y;h.z=q.z+c*l.z;r.push(h.x,
+h.y,h.z)}}C.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new n,l=new n,m=new A,q=new n,k,u,r=[],p=[],w=[],v=[];for(k=0;k<b;k++)f(k);f(!1===e?b:0);for(k=0;k<=b;k++)for(u=0;u<=d;u++)m.x=k/b,m.y=u/d,w.push(m.x,m.y);(function(){for(u=1;u<=b;u++)for(k=1;k<=d;k++){var a=(d+1)*u+(k-1),c=(d+
+1)*u+k,e=(d+1)*(u-1)+k;v.push((d+1)*(u-1)+(k-1),a,e);v.push(a,c,e)}})();this.setIndex(v);this.addAttribute("position",new z(r,3));this.addAttribute("normal",new z(p,3));this.addAttribute("uv",new z(w,2))}function $d(a,b,c,d,e,f,g){E.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Tc(a,
 b,c,d,e,f));this.mergeVertices()}function Tc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}C.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;var h=[],l=[],m=[],q=[],k,u=new n,r=new n,p=new n,w=new n,v=new n,y=new n,x=new n;for(k=0;k<=c;++k){var L=k/c*e*Math.PI*2;
 g(L,e,f,a,p);g(L+.01,e,f,a,w);y.subVectors(w,p);x.addVectors(w,p);v.crossVectors(y,x);x.crossVectors(v,y);v.normalize();x.normalize();for(L=0;L<=d;++L){var N=L/d*Math.PI*2,B=-b*Math.cos(N);N=b*Math.sin(N);u.x=p.x+(B*x.x+N*v.x);u.y=p.y+(B*x.y+N*v.y);u.z=p.z+(B*x.z+N*v.z);l.push(u.x,u.y,u.z);r.subVectors(u,p).normalize();m.push(r.x,r.y,r.z);q.push(k/c);q.push(L/d)}}for(L=1;L<=c;L++)for(k=1;k<=d;k++)a=(d+1)*L+(k-1),b=(d+1)*L+k,e=(d+1)*(L-1)+k,h.push((d+1)*(L-1)+(k-1),a,e),h.push(a,b,e);this.setIndex(h);
 this.addAttribute("position",new z(l,3));this.addAttribute("normal",new z(m,3));this.addAttribute("uv",new z(q,2))}function ae(a,b,c,d,e){E.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Uc(a,b,c,d,e));this.mergeVertices()}function Uc(a,b,c,d,e){C.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||

+ 2 - 0
build/three.module.js

@@ -19381,6 +19381,8 @@ function WebGLShadowMap( _renderer, _objects, maxTextureSize ) {
 				shadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );
 				shadow.map.texture.name = light.name + ".shadowMap";
 
+				shadow.camera.updateProjectionMatrix();
+
 			}
 
 			_renderer.setRenderTarget( shadow.map );