2
0
Mr.doob 5 жил өмнө
parent
commit
2561e944e1
3 өөрчлөгдсөн 113 нэмэгдсэн , 67 устгасан
  1. 23 0
      build/three.js
  2. 68 67
      build/three.min.js
  3. 22 0
      build/three.module.js

+ 23 - 0
build/three.js

@@ -228,6 +228,7 @@
 	var RGBA_ASTC_10x10_Format = 37819;
 	var RGBA_ASTC_12x10_Format = 37820;
 	var RGBA_ASTC_12x12_Format = 37821;
+	var RGBA_BPTC_Format = 36492;
 	var SRGB8_ALPHA8_ASTC_4x4_Format = 37840;
 	var SRGB8_ALPHA8_ASTC_5x4_Format = 37841;
 	var SRGB8_ALPHA8_ASTC_5x5_Format = 37842;
@@ -21550,6 +21551,9 @@
 
 				_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );
 				if ( renderTargetProperties.__webglDepthbuffer ) { _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer ); }
+				if ( renderTargetProperties.__webglMultisampledFramebuffer ) { _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer ); }
+				if ( renderTargetProperties.__webglColorRenderbuffer ) { _gl.deleteRenderbuffer( renderTargetProperties.__webglColorRenderbuffer ); }
+				if ( renderTargetProperties.__webglDepthRenderbuffer ) { _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthRenderbuffer ); }
 
 			}
 
@@ -22708,6 +22712,24 @@
 
 			}
 
+			if ( p === RGBA_BPTC_Format ) {
+
+				extension = extensions.get( 'EXT_texture_compression_bptc' );
+
+				if ( extension !== null ) {
+
+					// TODO Complete?
+
+					return p;
+
+				} else {
+
+					return null;
+
+				}
+
+			}
+
 			if ( p === UnsignedInt248Type ) {
 
 				if ( isWebGL2 ) { return 34042; }
@@ -50215,6 +50237,7 @@
 	exports.RGBA_ASTC_8x5_Format = RGBA_ASTC_8x5_Format;
 	exports.RGBA_ASTC_8x6_Format = RGBA_ASTC_8x6_Format;
 	exports.RGBA_ASTC_8x8_Format = RGBA_ASTC_8x8_Format;
+	exports.RGBA_BPTC_Format = RGBA_BPTC_Format;
 	exports.RGBA_ETC2_EAC_Format = RGBA_ETC2_EAC_Format;
 	exports.RGBA_PVRTC_2BPPV1_Format = RGBA_PVRTC_2BPPV1_Format;
 	exports.RGBA_PVRTC_4BPPV1_Format = RGBA_PVRTC_4BPPV1_Format;

+ 68 - 67
build/three.min.js

@@ -133,65 +133,66 @@ e,f,g){function h(a,b){return K?new OffscreenCanvas(a,b):document.createElementN
 G&&(G=h(b,e)),c=c?h(b,e):G,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 L.isPowerOfTwo(a.width)&&L.isPowerOfTwo(a.height)}function k(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function p(b,c,e,f){a.generateMipmap(b);
 d.get(c).__maxMipLevel=Math.log(Math.max(e,f))*Math.LOG2E}function x(c,d,e){if(!1===Ca)return d;if(null!==c){if(void 0!==a[c])return a[c];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+c+"'")}c=d;6403===d&&(5126===e&&(c=33326),5131===e&&(c=33325),5121===e&&(c=33321));6407===d&&(5126===e&&(c=34837),5131===e&&(c=34843),5121===e&&(c=32849));6408===d&&(5126===e&&(c=34836),5131===e&&(c=34842),5121===e&&(c=32856));33325!==c&&33326!==c&&34842!==c&&34836!==c||b.get("EXT_color_buffer_float");
 return c}function r(a){return 1003===a||1004===a||1005===a?9728:9729}function q(b){b=b.target;b.removeEventListener("dispose",q);var c=d.get(b);void 0!==c.__webglInit&&(a.deleteTexture(c.__webglTexture),d.remove(b));b.isVideoTexture&&C.delete(b);g.memory.textures--}function v(b){b=b.target;b.removeEventListener("dispose",v);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.isWebGLCubeRenderTarget)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 n(a,b){var e=d.get(a);if(a.isVideoTexture){var f=g.render.frame;C.get(a)!==f&&(C.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{ca(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function w(b,e){if(6===b.image.length){var g=d.get(b);if(0<b.version&&g.__version!==b.version){U(g,b);c.activeTexture(33984+e);c.bindTexture(34067,g.__webglTexture);a.pixelStorei(37440,b.flipY);var h=b&&(b.isCompressedTexture||b.image[0].isCompressedTexture);e=b.image[0]&&b.image[0].isDataTexture;for(var u=
-[],q=0;6>q;q++)u[q]=h||e?e?b.image[q].image:b.image[q]:l(b.image[q],!1,!0,H);var r=u[0],v=m(r)||Ca,n=f.convert(b.format),w=f.convert(b.type),E=x(b.internalFormat,n,w);t(34067,b,v);if(h){for(q=0;6>q;q++){var Z=u[q].mipmaps;for(h=0;h<Z.length;h++){var z=Z[h];1023!==b.format&&1022!==b.format?null!==n?c.compressedTexImage2D(34069+q,h,E,z.width,z.height,0,z.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(34069+q,h,E,z.width,
-z.height,0,n,w,z.data)}}g.__maxMipLevel=Z.length-1}else{Z=b.mipmaps;for(q=0;6>q;q++)if(e)for(c.texImage2D(34069+q,0,E,u[q].width,u[q].height,0,n,w,u[q].data),h=0;h<Z.length;h++)z=Z[h],z=z.image[q].image,c.texImage2D(34069+q,h+1,E,z.width,z.height,0,n,w,z.data);else for(c.texImage2D(34069+q,0,E,n,w,u[q]),h=0;h<Z.length;h++)z=Z[h],c.texImage2D(34069+q,h+1,E,n,w,z.image[q]);g.__maxMipLevel=Z.length}k(b,v)&&p(34067,b,r.width,r.height);g.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+
-e),c.bindTexture(34067,g.__webglTexture)}}function z(a,b){c.activeTexture(33984+b);c.bindTexture(34067,d.get(a).__webglTexture)}function t(c,f,g){g?(a.texParameteri(c,10242,N[f.wrapS]),a.texParameteri(c,10243,N[f.wrapT]),32879!==c&&35866!==c||a.texParameteri(c,32882,N[f.wrapR]),a.texParameteri(c,10240,fa[f.magFilter]),a.texParameteri(c,10241,fa[f.minFilter])):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879!==c&&35866!==c||a.texParameteri(c,32882,33071),1001===f.wrapS&&1001===
-f.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(f.magFilter)),a.texParameteri(c,10241,r(f.minFilter)),1003!==f.minFilter&&1006!==f.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));!(g=b.get("EXT_texture_filter_anisotropic"))||1015===f.type&&null===b.get("OES_texture_float_linear")||
-1016===f.type&&null===(Ca||b.get("OES_texture_half_float_linear"))||!(1<f.anisotropy||d.get(f).__currentAnisotropy)||(a.texParameterf(c,g.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(f.anisotropy,e.getMaxAnisotropy())),d.get(f).__currentAnisotropy=f.anisotropy)}function U(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",q),b.__webglTexture=a.createTexture(),g.memory.textures++)}function ca(b,d,e){var g=3553;d.isDataTexture2DArray&&(g=35866);d.isDataTexture3D&&(g=32879);U(b,d);c.activeTexture(33984+
-e);c.bindTexture(g,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);e=Ca?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==d.minFilter&&1006!==d.minFilter;e=e&&!1===m(d.image);e=l(d.image,e,!1,F);var h=m(e)||Ca,u=f.convert(d.format),q=f.convert(d.type),r=x(d.internalFormat,u,q);t(g,d,h);var v=d.mipmaps;if(d.isDepthTexture)r=6402,Ca?r=1015===d.type?36012:1014===d.type?33190:1020===d.type?35056:33189:1015===d.type&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),
-1026===d.format&&6402===r&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),d.type=1012,q=f.convert(d.type)),1027===d.format&&6402===r&&(r=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),d.type=1020,q=f.convert(d.type))),c.texImage2D(3553,0,r,e.width,e.height,0,u,q,null);else if(d.isDataTexture)if(0<v.length&&h){for(var n=0,w=v.length;n<w;n++){var E=
-v[n];c.texImage2D(3553,n,r,E.width,E.height,0,u,q,E.data)}d.generateMipmaps=!1;b.__maxMipLevel=v.length-1}else c.texImage2D(3553,0,r,e.width,e.height,0,u,q,e.data),b.__maxMipLevel=0;else if(d.isCompressedTexture){n=0;for(w=v.length;n<w;n++)E=v[n],1023!==d.format&&1022!==d.format?null!==u?c.compressedTexImage2D(3553,n,r,E.width,E.height,0,E.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):c.texImage2D(3553,n,r,E.width,E.height,0,u,
-q,E.data);b.__maxMipLevel=v.length-1}else if(d.isDataTexture2DArray)c.texImage3D(35866,0,r,e.width,e.height,e.depth,0,u,q,e.data),b.__maxMipLevel=0;else if(d.isDataTexture3D)c.texImage3D(32879,0,r,e.width,e.height,e.depth,0,u,q,e.data),b.__maxMipLevel=0;else if(0<v.length&&h){n=0;for(w=v.length;n<w;n++)E=v[n],c.texImage2D(3553,n,r,u,q,E);d.generateMipmaps=!1;b.__maxMipLevel=v.length-1}else c.texImage2D(3553,0,r,u,q,e),b.__maxMipLevel=0;k(d,h)&&p(g,d,e.width,e.height);b.__version=d.version;if(d.onUpdate)d.onUpdate(d)}
-function B(b,e,g,h){var l=f.convert(e.texture.format),m=f.convert(e.texture.type),p=x(e.texture.internalFormat,l,m);c.texImage2D(h,0,p,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){var e=33189;d?((d=c.depthTexture)&&d.isDepthTexture&&(1015===d.type?e=36012:1014===d.type&&(e=33190)),d=ia(c),a.renderbufferStorageMultisample(36161,
-d,e,c.width,c.height)):a.renderbufferStorage(36161,e,c.width,c.height);a.framebufferRenderbuffer(36160,36096,36161,b)}else c.depthBuffer&&c.stencilBuffer?(d?(d=ia(c),a.renderbufferStorageMultisample(36161,d,35056,c.width,c.height)):a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,33306,36161,b)):(b=f.convert(c.texture.format),e=f.convert(c.texture.type),e=x(c.texture.internalFormat,b,e),d?(d=ia(c),a.renderbufferStorageMultisample(36161,d,e,c.width,c.height)):a.renderbufferStorage(36161,
-e,c.width,c.height));a.bindRenderbuffer(36161,null)}function ia(a){return Ca&&a.isWebGLMultisampleRenderTarget?Math.min(A,a.samples):0}var Ca=e.isWebGL2,D=e.maxTextures,H=e.maxCubemapSize,F=e.maxTextureSize,A=e.maxSamples,C=new WeakMap,G,K=!1;try{K="undefined"!==typeof OffscreenCanvas&&null!==(new OffscreenCanvas(1,1)).getContext("2d")}catch(Nd){}var M=0,N={1E3:10497,1001:33071,1002:33648},fa={1003:9728,1004:9984,1005:9986,1006:9729,1007:9985,1008:9987},P=!1,O=!1;this.allocateTextureUnit=function(){var a=
-M;a>=D&&console.warn("THREE.WebGLTextures: Trying to use "+a+" texture units while this GPU supports only "+D);M+=1;return a};this.resetTextureUnits=function(){M=0};this.setTexture2D=n;this.setTexture2DArray=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?ca(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?ca(e,a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};
-this.setTextureCube=w;this.setTextureCubeDynamic=z;this.setupRenderTarget=function(b){var e=d.get(b),h=d.get(b.texture);b.addEventListener("dispose",v);h.__webglTexture=a.createTexture();g.memory.textures++;var l=!0===b.isWebGLCubeRenderTarget,u=!0===b.isWebGLMultisampleRenderTarget,q=m(b)||Ca;!Ca||1022!==b.texture.format||1015!==b.texture.type&&1016!==b.texture.type||(b.texture.format=1023,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead."));
-if(l)for(e.__webglFramebuffer=[],u=0;6>u;u++)e.__webglFramebuffer[u]=a.createFramebuffer();else if(e.__webglFramebuffer=a.createFramebuffer(),u)if(Ca){e.__webglMultisampledFramebuffer=a.createFramebuffer();e.__webglColorRenderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,e.__webglColorRenderbuffer);u=f.convert(b.texture.format);var r=f.convert(b.texture.type);u=x(b.texture.internalFormat,u,r);r=ia(b);a.renderbufferStorageMultisample(36161,r,u,b.width,b.height);a.bindFramebuffer(36160,e.__webglMultisampledFramebuffer);
-a.framebufferRenderbuffer(36160,36064,36161,e.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);b.depthBuffer&&(e.__webglDepthRenderbuffer=a.createRenderbuffer(),y(e.__webglDepthRenderbuffer,b,!0));a.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(l){c.bindTexture(34067,h.__webglTexture);t(34067,b.texture,q);for(u=0;6>u;u++)B(e.__webglFramebuffer[u],b,36064,34069+u);k(b.texture,q)&&p(34067,b.texture,b.width,
-b.height);c.bindTexture(34067,null)}else c.bindTexture(3553,h.__webglTexture),t(3553,b.texture,q),B(e.__webglFramebuffer,b,36064,3553),k(b.texture,q)&&p(3553,b.texture,b.width,b.height),c.bindTexture(3553,null);if(b.depthBuffer){e=d.get(b);h=!0===b.isWebGLCubeRenderTarget;if(b.depthTexture){if(h)throw Error("target.depthTexture not supported in Cube render targets");if(b&&b.isWebGLCubeRenderTarget)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(36160,e.__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);n(b.depthTexture,0);e=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(36160,36096,3553,e,0);else if(1027===
-b.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,e,0);else throw Error("Unknown depthTexture format");}else if(h)for(e.__webglDepthbuffer=[],h=0;6>h;h++)a.bindFramebuffer(36160,e.__webglFramebuffer[h]),e.__webglDepthbuffer[h]=a.createRenderbuffer(),y(e.__webglDepthbuffer[h],b,!1);else a.bindFramebuffer(36160,e.__webglFramebuffer),e.__webglDepthbuffer=a.createRenderbuffer(),y(e.__webglDepthbuffer,b,!1);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmap=function(a){var b=a.texture,
-e=m(a)||Ca;if(k(b,e)){e=a.isWebGLCubeRenderTarget?34067:3553;var f=d.get(b).__webglTexture;c.bindTexture(e,f);p(e,b,a.width,a.height);c.bindTexture(e,null)}};this.updateMultisampleRenderTarget=function(b){if(b.isWebGLMultisampleRenderTarget)if(Ca){var c=d.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);var e=b.width,f=b.height,g=16384;b.depthBuffer&&(g|=256);b.stencilBuffer&&(g|=1024);a.blitFramebuffer(0,0,e,f,0,0,e,f,g,9728);a.bindFramebuffer(36160,
-c.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")};this.safeSetTexture2D=function(a,b){a&&a.isWebGLRenderTarget&&(!1===P&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),P=!0),a=a.texture);n(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLCubeRenderTarget&&(!1===O&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),
-O=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?w(a,b):z(a,b)}}function Zh(a,b,c){var d=c.isWebGL2;return{convert:function(a){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(d)return 5131;var c=b.get("OES_texture_half_float");return null!==c?c.HALF_FLOAT_OES:
-null}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(1029===a)return 36244;if(1030===a)return 33319;if(1031===a)return 33320;if(1032===a)return 36248;if(1033===a)return 36249;if(33776===a||33777===a||33778===a||33779===a)if(c=b.get("WEBGL_compressed_texture_s3tc"),null!==c){if(33776===a)return c.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return c.COMPRESSED_RGBA_S3TC_DXT1_EXT;
-if(33778===a)return c.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return c.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(35840===a||35841===a||35842===a||35843===a)if(c=b.get("WEBGL_compressed_texture_pvrtc"),null!==c){if(35840===a)return c.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===a)return c.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return c.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return c.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(36196===a)return c=b.get("WEBGL_compressed_texture_etc1"),
-null!==c?c.COMPRESSED_RGB_ETC1_WEBGL:null;if(37492===a||37496===a)if(c=b.get("WEBGL_compressed_texture_etc"),null!==c){if(37492===a)return c.COMPRESSED_RGB8_ETC2;if(37496===a)return c.COMPRESSED_RGBA8_ETC2_EAC}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||37840===a||37841===a||37842===a||37843===a||37844===a||37845===a||37846===a||37847===a||37848===a||37849===a||37850===a||37851===a||37852===
-a||37853===a)return c=b.get("WEBGL_compressed_texture_astc"),null!==c?a:null;if(1020===a){if(d)return 34042;c=b.get("WEBGL_depth_texture");return null!==c?c.UNSIGNED_INT_24_8_WEBGL:null}}}}function Qe(a){aa.call(this);this.cameras=a||[]}function Mc(){F.call(this);this.type="Group"}function $h(a,b){function c(a){var b=q.get(a.inputSource);b&&(b.targetRay&&b.targetRay.dispatchEvent({type:a.type}),b.grip&&b.grip.dispatchEvent({type:a.type}))}function d(){q.forEach(function(a,b){a.targetRay&&(a.targetRay.dispatchEvent({type:"disconnected",
-data:b}),a.targetRay.visible=!1);a.grip&&(a.grip.dispatchEvent({type:"disconnected",data:b}),a.grip.visible=!1)});q.clear();a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());y.stop();h.isPresenting=!1;h.dispatchEvent({type:"sessionend"})}function e(a){k=a;y.setContext(l);y.start();h.isPresenting=!0;h.dispatchEvent({type:"sessionstart"})}function f(a){for(var b=l.inputSources,c=0;c<r.length;c++)q.set(b[c],r[c]);for(c=0;c<a.removed.length;c++){b=a.removed[c];var d=q.get(b);d&&(d.targetRay&&
-d.targetRay.dispatchEvent({type:"disconnected",data:b}),d.grip&&d.grip.dispatchEvent({type:"disconnected",data:b}),q.delete(b))}for(c=0;c<a.added.length;c++)if(b=a.added[c],d=q.get(b))d.targetRay&&d.targetRay.dispatchEvent({type:"connected",data:b}),d.grip&&d.grip.dispatchEvent({type:"connected",data:b})}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=1,k=null,p="local-floor",
-x=null,r=[],q=new Map,v=new aa;v.layers.enable(1);v.viewport=new ka;var E=new aa;E.layers.enable(2);E.viewport=new ka;var w=new Qe([v,E]);w.layers.enable(1);w.layers.enable(2);var z=null,t=null;this.isPresenting=this.enabled=!1;this.getController=function(a){var b=r[a];void 0===b&&(b={},r[a]=b);void 0===b.targetRay&&(b.targetRay=new Mc,b.targetRay.matrixAutoUpdate=!1,b.targetRay.visible=!1);return b.targetRay};this.getControllerGrip=function(a){var b=r[a];void 0===b&&(b={},r[a]=b);void 0===b.grip&&
-(b.grip=new Mc,b.grip.matrixAutoUpdate=!1,b.grip.visible=!1);return b.grip};this.setFramebufferScaleFactor=function(a){m=a;1==h.isPresenting&&console.warn("WebXRManager: Cannot change framebuffer scale while presenting VR content")};this.setReferenceSpaceType=function(a){p=a};this.getReferenceSpace=function(){return k};this.getSession=function(){return l};this.setSession=function(a){l=a;null!==l&&(l.addEventListener("select",c),l.addEventListener("selectstart",c),l.addEventListener("selectend",c),
-l.addEventListener("squeeze",c),l.addEventListener("squeezestart",c),l.addEventListener("squeezeend",c),l.addEventListener("end",d),a=b.getContextAttributes(),a=new XRWebGLLayer(l,b,{antialias:a.antialias,alpha:a.alpha,depth:a.depth,stencil:a.stencil,framebufferScaleFactor:m}),l.updateRenderState({baseLayer:a}),l.requestReferenceSpace(p).then(e),l.addEventListener("inputsourceschange",f))};var U=new n,ca=new n;this.getCamera=function(a){w.near=E.near=v.near=a.near;w.far=E.far=v.far=a.far;if(z!==w.near||
-t!==w.far)l.updateRenderState({depthNear:w.near,depthFar:w.far}),z=w.near,t=w.far;var b=a.parent,c=w.cameras;g(w,b);for(var d=0;d<c.length;d++)g(c[d],b);a.matrixWorld.copy(w.matrixWorld);a=a.children;d=0;for(b=a.length;d<b;d++)a[d].updateMatrixWorld(!0);U.setFromMatrixPosition(v.matrixWorld);ca.setFromMatrixPosition(E.matrixWorld);d=U.distanceTo(ca);var e=v.projectionMatrix.elements,f=E.projectionMatrix.elements,h=e[14]/(e[10]-1);a=e[14]/(e[10]+1);b=(e[9]+1)/e[5];c=(e[9]-1)/e[5];var m=(e[8]-1)/e[0],
-p=(f[8]+1)/f[0];f=h*m;e=h*p;p=d/(-m+p);m=p*-m;v.matrixWorld.decompose(w.position,w.quaternion,w.scale);w.translateX(m);w.translateZ(p);w.matrixWorld.compose(w.position,w.quaternion,w.scale);w.matrixWorldInverse.getInverse(w.matrixWorld);h+=p;p=a+p;w.projectionMatrix.makePerspective(f-m,e+(d-m),b*a/p*h,c*a/p*h,h,p);return w};var B=null,y=new Ah;y.setAnimationLoop(function(b,c){x=c.getViewerPose(k);if(null!==x){var d=x.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),m=w.cameras[f];m.matrix.fromArray(g.transform.matrix);m.projectionMatrix.fromArray(g.projectionMatrix);m.viewport.set(h.x,h.y,h.width,h.height);0===f&&w.matrix.copy(m.matrix)}}d=l.inputSources;for(f=0;f<r.length;f++)e=r[f],g=d[f],m=h=null,g&&(e.targetRay&&(h=c.getPose(g.targetRaySpace,k),null!==h&&(e.targetRay.matrix.fromArray(h.transform.matrix),e.targetRay.matrix.decompose(e.targetRay.position,e.targetRay.rotation,e.targetRay.scale))),e.grip&&g.gripSpace&&(m=c.getPose(g.gripSpace,
-k),null!==m&&(e.grip.matrix.fromArray(m.transform.matrix),e.grip.matrix.decompose(e.grip.position,e.grip.rotation,e.grip.scale)))),e.targetRay&&(e.targetRay.visible=null!==h),e.grip&&(e.grip.visible=null!==m);B&&B(b,c)});this.setAnimationLoop=function(a){B=a};this.dispose=function(){}}function og(a){var b;function c(){ra=new zj(I);Fa=new xj(I,ra,a);!1===Fa.isWebGL2&&(ra.get("WEBGL_depth_texture"),ra.get("OES_texture_float"),ra.get("OES_texture_half_float"),ra.get("OES_texture_half_float_linear"),
-ra.get("OES_standard_derivatives"),ra.get("OES_element_index_uint"),ra.get("ANGLE_instanced_arrays"));ra.get("OES_texture_float_linear");qa=new Zh(I,ra,Fa);Y=new Ik(I,ra,Fa);Y.scissor(T.copy(ja).multiplyScalar(Q).floor());Y.viewport(Z.copy(R).multiplyScalar(Q).floor());aa=new Cj(I);X=new yk;ea=new Jk(I,ra,Y,X,Fa,qa,aa);oa=new uj(I,Fa);xa=new Aj(I,oa,aa);sa=new Fj(I,xa,oa,aa);ya=new Ej(I);ta=new xk(H,ra,Fa);wa=new Bk;va=new Hk;pa=new vj(H,Y,sa,ca);Aa=new wj(I,ra,aa,Fa);Ba=new Bj(I,ra,aa,Fa);aa.programs=
-ta.programs;H.capabilities=Fa;H.extensions=ra;H.properties=X;H.renderLists=wa;H.state=Y;H.info=aa}function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");G=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");G=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);X.remove(a)}function g(a){var b=X.get(a).program;a.program=void 0;void 0!==b&&ta.releaseProgram(b)}function h(a,b){a.render(function(a){H.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)A.pushLight(a),a.castShadow&&A.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||lg.intersectsSprite(a)){d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md);var e=sa.update(a),f=a.material;f.visible&&C.push(a,e,f,c,Hb.z,null)}}else if(a.isImmediateRenderObject)d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md),C.push(a,null,a.material,
-c,Hb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.frame!==aa.render.frame&&(a.skeleton.update(),a.skeleton.frame=aa.render.frame),!a.frustumCulled||lg.intersectsObject(a))if(d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md),e=sa.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var p=g[h],k=f[p.materialIndex];k&&k.visible&&C.push(a,e,k,c,Hb.z,p)}else f.visible&&C.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){ba=c;for(var p=c.cameras,u=0,q=p.length;u<q;u++){var x=p[u];h.layers.test(x.layers)&&(Y.viewport(Z.copy(x.viewport)),A.setupLights(x),k(h,b,x,l,m,g))}}else ba=null,k(h,b,c,l,m,g)}}function k(a,c,d,e,f,g){a.onBeforeRender(H,c,d,e,f,g);A=va.get(c,ba||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);
-if(a.isImmediateRenderObject){var l=x(d,c,f,a);Y.setMaterial(f);fa=b=null;Pe=!1;h(a,l)}else H.renderBufferDirect(d,c,e,f,a,g);a.onAfterRender(H,c,d,e,f,g);A=va.get(c,ba||d)}function p(a,b,c){var d=X.get(a),e=A.state.lights,h=e.state.version;c=ta.getParameters(a,e.state,A.state.shadowsArray,b,Ua.numPlanes,Ua.numIntersection,c);var l=ta.getProgramCacheKey(c),m=d.program,p=!0;if(void 0===m)a.addEventListener("dispose",f);else if(m.cacheKey!==l)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=
-h;else if(void 0!==c.shaderID)return;p=!1}p&&(m=ta.acquireProgram(c,l),d.program=m,d.uniforms=c.uniforms,d.environment=a.isMeshStandardMaterial?b.environment:null,d.outputEncoding=H.outputEncoding,a.program=m);c=m.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<H.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<H.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.uniforms;
-if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Ua.numPlanes,d.numIntersection=Ua.numIntersection,c.clippingPlanes=Ua.uniform;d.fog=b.fog;d.needsLights=a.isMeshLambertMaterial||a.isMeshToonMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=h;d.needsLights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.directionalLightShadows.value=
-e.state.directionalShadow,c.spotLights.value=e.state.spot,c.spotLightShadows.value=e.state.spotShadow,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.pointLightShadows.value=e.state.pointShadow,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 x(a,b,c,d){ea.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=X.get(c),h=A.state.lights;na&&(mg||a!==V)&&Ua.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,g,a===V&&c.id===Oe);c.version===g.__version?void 0===g.program?p(c,b,d):c.fog&&g.fog!==e?p(c,b,d):g.environment!==f?p(c,b,d):g.needsLights&&g.lightsStateVersion!==h.state.version?
-p(c,b,d):void 0===g.numClippingPlanes||g.numClippingPlanes===Ua.numPlanes&&g.numIntersection===Ua.numIntersection?g.outputEncoding!==H.outputEncoding&&p(c,b,d):p(c,b,d):(p(c,b,d),g.__version=c.version);var l=!1,m=!1,k=!1;b=g.program;h=b.getUniforms();var u=g.uniforms;Y.useProgram(b.program)&&(k=m=l=!0);c.id!==Oe&&(Oe=c.id,m=!0);if(l||V!==a){h.setValue(I,"projectionMatrix",a.projectionMatrix);Fa.logarithmicDepthBuffer&&h.setValue(I,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));V!==a&&(V=a,k=m=!0);
-if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshStandardMaterial||c.envMap)l=h.map.cameraPosition,void 0!==l&&l.setValue(I,Hb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial)&&h.setValue(I,"isOrthographic",!0===a.isOrthographicCamera);(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||
-c.isShaderMaterial||c.skinning)&&h.setValue(I,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(h.setOptional(I,d,"bindMatrix"),h.setOptional(I,d,"bindMatrixInverse"),a=d.skeleton))if(l=a.bones,Fa.floatVertexTextures){if(void 0===a.boneTexture){l=Math.sqrt(4*l.length);l=L.ceilPowerOfTwo(l);l=Math.max(l,4);var x=new Float32Array(l*l*4);x.set(a.boneMatrices);var v=new ac(x,l,l,1023,1015);a.boneMatrices=x;a.boneTexture=v;a.boneTextureSize=l}h.setValue(I,"boneTexture",a.boneTexture,ea);h.setValue(I,
-"boneTextureSize",a.boneTextureSize)}else h.setOptional(I,a,"boneMatrices");if(m||g.receiveShadow!==d.receiveShadow)g.receiveShadow=d.receiveShadow,h.setValue(I,"receiveShadow",d.receiveShadow);if(m){h.setValue(I,"toneMappingExposure",H.toneMappingExposure);h.setValue(I,"toneMappingWhitePoint",H.toneMappingWhitePoint);g.needsLights&&(m=k,u.ambientLightColor.needsUpdate=m,u.lightProbe.needsUpdate=m,u.directionalLights.needsUpdate=m,u.directionalLightShadows.needsUpdate=m,u.pointLights.needsUpdate=
-m,u.pointLightShadows.needsUpdate=m,u.spotLights.needsUpdate=m,u.spotLightShadows.needsUpdate=m,u.rectAreaLights.needsUpdate=m,u.hemisphereLights.needsUpdate=m);e&&c.fog&&(u.fogColor.value.copy(e.color),e.isFog?(u.fogNear.value=e.near,u.fogFar.value=e.far):e.isFogExp2&&(u.fogDensity.value=e.density));if(c.isMeshBasicMaterial)r(u,c);else if(c.isMeshLambertMaterial)r(u,c),c.emissiveMap&&(u.emissiveMap.value=c.emissiveMap);else if(c.isMeshToonMaterial)r(u,c),u.specular.value.copy(c.specular),u.shininess.value=
-Math.max(c.shininess,1E-4),c.gradientMap&&(u.gradientMap.value=c.gradientMap),c.emissiveMap&&(u.emissiveMap.value=c.emissiveMap),c.bumpMap&&(u.bumpMap.value=c.bumpMap,u.bumpScale.value=c.bumpScale,1===c.side&&(u.bumpScale.value*=-1)),c.normalMap&&(u.normalMap.value=c.normalMap,u.normalScale.value.copy(c.normalScale),1===c.side&&u.normalScale.value.negate()),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias);
-else if(c.isMeshPhongMaterial)r(u,c),u.specular.value.copy(c.specular),u.shininess.value=Math.max(c.shininess,1E-4),c.emissiveMap&&(u.emissiveMap.value=c.emissiveMap),c.bumpMap&&(u.bumpMap.value=c.bumpMap,u.bumpScale.value=c.bumpScale,1===c.side&&(u.bumpScale.value*=-1)),c.normalMap&&(u.normalMap.value=c.normalMap,u.normalScale.value.copy(c.normalScale),1===c.side&&u.normalScale.value.negate()),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,
-u.displacementBias.value=c.displacementBias);else if(c.isMeshStandardMaterial)r(u,c,f),c.isMeshPhysicalMaterial?(q(u,c,f),u.reflectivity.value=c.reflectivity,u.clearcoat.value=c.clearcoat,u.clearcoatRoughness.value=c.clearcoatRoughness,c.sheen&&u.sheen.value.copy(c.sheen),c.clearcoatMap&&(u.clearcoatMap.value=c.clearcoatMap),c.clearcoatRoughnessMap&&(u.clearcoatRoughnessMap.value=c.clearcoatRoughnessMap),c.clearcoatNormalMap&&(u.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),u.clearcoatNormalMap.value=
-c.clearcoatNormalMap,1===c.side&&u.clearcoatNormalScale.value.negate()),u.transparency.value=c.transparency):q(u,c,f);else if(c.isMeshMatcapMaterial)r(u,c),c.matcap&&(u.matcap.value=c.matcap),c.bumpMap&&(u.bumpMap.value=c.bumpMap,u.bumpScale.value=c.bumpScale,1===c.side&&(u.bumpScale.value*=-1)),c.normalMap&&(u.normalMap.value=c.normalMap,u.normalScale.value.copy(c.normalScale),1===c.side&&u.normalScale.value.negate()),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=
-c.displacementScale,u.displacementBias.value=c.displacementBias);else if(c.isMeshDepthMaterial)r(u,c),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias);else if(c.isMeshDistanceMaterial)r(u,c),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias),u.referencePosition.value.copy(c.referencePosition),u.nearDistance.value=
-c.nearDistance,u.farDistance.value=c.farDistance;else if(c.isMeshNormalMaterial)r(u,c),c.bumpMap&&(u.bumpMap.value=c.bumpMap,u.bumpScale.value=c.bumpScale,1===c.side&&(u.bumpScale.value*=-1)),c.normalMap&&(u.normalMap.value=c.normalMap,u.normalScale.value.copy(c.normalScale),1===c.side&&u.normalScale.value.negate()),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias);else if(c.isLineBasicMaterial)u.diffuse.value.copy(c.color),
-u.opacity.value=c.opacity,c.isLineDashedMaterial&&(u.dashSize.value=c.dashSize,u.totalSize.value=c.dashSize+c.gapSize,u.scale.value=c.scale);else if(c.isPointsMaterial){u.diffuse.value.copy(c.color);u.opacity.value=c.opacity;u.size.value=c.size*Q;u.scale.value=.5*J;c.map&&(u.map.value=c.map);c.alphaMap&&(u.alphaMap.value=c.alphaMap);if(c.map)var n=c.map;else c.alphaMap&&(n=c.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),u.uvTransform.value.copy(n.matrix))}else if(c.isSpriteMaterial){u.diffuse.value.copy(c.color);
+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),c.__webglMultisampledFramebuffer&&a.deleteFramebuffer(c.__webglMultisampledFramebuffer),c.__webglColorRenderbuffer&&a.deleteRenderbuffer(c.__webglColorRenderbuffer),c.__webglDepthRenderbuffer&&a.deleteRenderbuffer(c.__webglDepthRenderbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}
+function n(a,b){var e=d.get(a);if(a.isVideoTexture){var f=g.render.frame;C.get(a)!==f&&(C.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{ca(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function w(b,e){if(6===b.image.length){var g=
+d.get(b);if(0<b.version&&g.__version!==b.version){U(g,b);c.activeTexture(33984+e);c.bindTexture(34067,g.__webglTexture);a.pixelStorei(37440,b.flipY);var h=b&&(b.isCompressedTexture||b.image[0].isCompressedTexture);e=b.image[0]&&b.image[0].isDataTexture;for(var u=[],q=0;6>q;q++)u[q]=h||e?e?b.image[q].image:b.image[q]:l(b.image[q],!1,!0,H);var r=u[0],v=m(r)||Ca,n=f.convert(b.format),w=f.convert(b.type),E=x(b.internalFormat,n,w);t(34067,b,v);if(h){for(q=0;6>q;q++){var Z=u[q].mipmaps;for(h=0;h<Z.length;h++){var z=
+Z[h];1023!==b.format&&1022!==b.format?null!==n?c.compressedTexImage2D(34069+q,h,E,z.width,z.height,0,z.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(34069+q,h,E,z.width,z.height,0,n,w,z.data)}}g.__maxMipLevel=Z.length-1}else{Z=b.mipmaps;for(q=0;6>q;q++)if(e)for(c.texImage2D(34069+q,0,E,u[q].width,u[q].height,0,n,w,u[q].data),h=0;h<Z.length;h++)z=Z[h],z=z.image[q].image,c.texImage2D(34069+q,h+1,E,z.width,z.height,
+0,n,w,z.data);else for(c.texImage2D(34069+q,0,E,n,w,u[q]),h=0;h<Z.length;h++)z=Z[h],c.texImage2D(34069+q,h+1,E,n,w,z.image[q]);g.__maxMipLevel=Z.length}k(b,v)&&p(34067,b,r.width,r.height);g.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+e),c.bindTexture(34067,g.__webglTexture)}}function z(a,b){c.activeTexture(33984+b);c.bindTexture(34067,d.get(a).__webglTexture)}function t(c,f,g){g?(a.texParameteri(c,10242,N[f.wrapS]),a.texParameteri(c,10243,N[f.wrapT]),32879!==c&&35866!==
+c||a.texParameteri(c,32882,N[f.wrapR]),a.texParameteri(c,10240,fa[f.magFilter]),a.texParameteri(c,10241,fa[f.minFilter])):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879!==c&&35866!==c||a.texParameteri(c,32882,33071),1001===f.wrapS&&1001===f.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(f.magFilter)),a.texParameteri(c,10241,r(f.minFilter)),1003!==f.minFilter&&
+1006!==f.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));!(g=b.get("EXT_texture_filter_anisotropic"))||1015===f.type&&null===b.get("OES_texture_float_linear")||1016===f.type&&null===(Ca||b.get("OES_texture_half_float_linear"))||!(1<f.anisotropy||d.get(f).__currentAnisotropy)||(a.texParameterf(c,g.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(f.anisotropy,e.getMaxAnisotropy())),d.get(f).__currentAnisotropy=
+f.anisotropy)}function U(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",q),b.__webglTexture=a.createTexture(),g.memory.textures++)}function ca(b,d,e){var g=3553;d.isDataTexture2DArray&&(g=35866);d.isDataTexture3D&&(g=32879);U(b,d);c.activeTexture(33984+e);c.bindTexture(g,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);e=Ca?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==d.minFilter&&1006!==d.minFilter;
+e=e&&!1===m(d.image);e=l(d.image,e,!1,F);var h=m(e)||Ca,u=f.convert(d.format),q=f.convert(d.type),r=x(d.internalFormat,u,q);t(g,d,h);var v=d.mipmaps;if(d.isDepthTexture)r=6402,Ca?r=1015===d.type?36012:1014===d.type?33190:1020===d.type?35056:33189:1015===d.type&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),1026===d.format&&6402===r&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),
+d.type=1012,q=f.convert(d.type)),1027===d.format&&6402===r&&(r=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),d.type=1020,q=f.convert(d.type))),c.texImage2D(3553,0,r,e.width,e.height,0,u,q,null);else if(d.isDataTexture)if(0<v.length&&h){for(var n=0,w=v.length;n<w;n++){var E=v[n];c.texImage2D(3553,n,r,E.width,E.height,0,u,q,E.data)}d.generateMipmaps=!1;b.__maxMipLevel=v.length-1}else c.texImage2D(3553,0,r,e.width,e.height,0,u,
+q,e.data),b.__maxMipLevel=0;else if(d.isCompressedTexture){n=0;for(w=v.length;n<w;n++)E=v[n],1023!==d.format&&1022!==d.format?null!==u?c.compressedTexImage2D(3553,n,r,E.width,E.height,0,E.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):c.texImage2D(3553,n,r,E.width,E.height,0,u,q,E.data);b.__maxMipLevel=v.length-1}else if(d.isDataTexture2DArray)c.texImage3D(35866,0,r,e.width,e.height,e.depth,0,u,q,e.data),b.__maxMipLevel=0;else if(d.isDataTexture3D)c.texImage3D(32879,
+0,r,e.width,e.height,e.depth,0,u,q,e.data),b.__maxMipLevel=0;else if(0<v.length&&h){n=0;for(w=v.length;n<w;n++)E=v[n],c.texImage2D(3553,n,r,u,q,E);d.generateMipmaps=!1;b.__maxMipLevel=v.length-1}else c.texImage2D(3553,0,r,u,q,e),b.__maxMipLevel=0;k(d,h)&&p(g,d,e.width,e.height);b.__version=d.version;if(d.onUpdate)d.onUpdate(d)}function B(b,e,g,h){var l=f.convert(e.texture.format),m=f.convert(e.texture.type),p=x(e.texture.internalFormat,l,m);c.texImage2D(h,0,p,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){var e=33189;d?((d=c.depthTexture)&&d.isDepthTexture&&(1015===d.type?e=36012:1014===d.type&&(e=33190)),d=ia(c),a.renderbufferStorageMultisample(36161,d,e,c.width,c.height)):a.renderbufferStorage(36161,e,c.width,c.height);a.framebufferRenderbuffer(36160,36096,36161,b)}else c.depthBuffer&&c.stencilBuffer?(d?(d=ia(c),a.renderbufferStorageMultisample(36161,
+d,35056,c.width,c.height)):a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,33306,36161,b)):(b=f.convert(c.texture.format),e=f.convert(c.texture.type),e=x(c.texture.internalFormat,b,e),d?(d=ia(c),a.renderbufferStorageMultisample(36161,d,e,c.width,c.height)):a.renderbufferStorage(36161,e,c.width,c.height));a.bindRenderbuffer(36161,null)}function ia(a){return Ca&&a.isWebGLMultisampleRenderTarget?Math.min(A,a.samples):0}var Ca=e.isWebGL2,D=e.maxTextures,H=e.maxCubemapSize,
+F=e.maxTextureSize,A=e.maxSamples,C=new WeakMap,G,K=!1;try{K="undefined"!==typeof OffscreenCanvas&&null!==(new OffscreenCanvas(1,1)).getContext("2d")}catch(Nd){}var M=0,N={1E3:10497,1001:33071,1002:33648},fa={1003:9728,1004:9984,1005:9986,1006:9729,1007:9985,1008:9987},P=!1,O=!1;this.allocateTextureUnit=function(){var a=M;a>=D&&console.warn("THREE.WebGLTextures: Trying to use "+a+" texture units while this GPU supports only "+D);M+=1;return a};this.resetTextureUnits=function(){M=0};this.setTexture2D=
+n;this.setTexture2DArray=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?ca(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?ca(e,a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};this.setTextureCube=w;this.setTextureCubeDynamic=z;this.setupRenderTarget=function(b){var e=d.get(b),h=d.get(b.texture);b.addEventListener("dispose",v);h.__webglTexture=a.createTexture();
+g.memory.textures++;var l=!0===b.isWebGLCubeRenderTarget,u=!0===b.isWebGLMultisampleRenderTarget,q=m(b)||Ca;!Ca||1022!==b.texture.format||1015!==b.texture.type&&1016!==b.texture.type||(b.texture.format=1023,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead."));if(l)for(e.__webglFramebuffer=[],u=0;6>u;u++)e.__webglFramebuffer[u]=a.createFramebuffer();else if(e.__webglFramebuffer=a.createFramebuffer(),u)if(Ca){e.__webglMultisampledFramebuffer=
+a.createFramebuffer();e.__webglColorRenderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,e.__webglColorRenderbuffer);u=f.convert(b.texture.format);var r=f.convert(b.texture.type);u=x(b.texture.internalFormat,u,r);r=ia(b);a.renderbufferStorageMultisample(36161,r,u,b.width,b.height);a.bindFramebuffer(36160,e.__webglMultisampledFramebuffer);a.framebufferRenderbuffer(36160,36064,36161,e.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);b.depthBuffer&&(e.__webglDepthRenderbuffer=a.createRenderbuffer(),
+y(e.__webglDepthRenderbuffer,b,!0));a.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(l){c.bindTexture(34067,h.__webglTexture);t(34067,b.texture,q);for(u=0;6>u;u++)B(e.__webglFramebuffer[u],b,36064,34069+u);k(b.texture,q)&&p(34067,b.texture,b.width,b.height);c.bindTexture(34067,null)}else c.bindTexture(3553,h.__webglTexture),t(3553,b.texture,q),B(e.__webglFramebuffer,b,36064,3553),k(b.texture,q)&&p(3553,b.texture,
+b.width,b.height),c.bindTexture(3553,null);if(b.depthBuffer){e=d.get(b);h=!0===b.isWebGLCubeRenderTarget;if(b.depthTexture){if(h)throw Error("target.depthTexture not supported in Cube render targets");if(b&&b.isWebGLCubeRenderTarget)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(36160,e.__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);n(b.depthTexture,0);e=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(36160,36096,3553,e,0);else if(1027===b.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,e,0);else throw Error("Unknown depthTexture format");}else if(h)for(e.__webglDepthbuffer=[],h=0;6>h;h++)a.bindFramebuffer(36160,
+e.__webglFramebuffer[h]),e.__webglDepthbuffer[h]=a.createRenderbuffer(),y(e.__webglDepthbuffer[h],b,!1);else a.bindFramebuffer(36160,e.__webglFramebuffer),e.__webglDepthbuffer=a.createRenderbuffer(),y(e.__webglDepthbuffer,b,!1);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmap=function(a){var b=a.texture,e=m(a)||Ca;if(k(b,e)){e=a.isWebGLCubeRenderTarget?34067:3553;var f=d.get(b).__webglTexture;c.bindTexture(e,f);p(e,b,a.width,a.height);c.bindTexture(e,null)}};this.updateMultisampleRenderTarget=
+function(b){if(b.isWebGLMultisampleRenderTarget)if(Ca){var c=d.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);var e=b.width,f=b.height,g=16384;b.depthBuffer&&(g|=256);b.stencilBuffer&&(g|=1024);a.blitFramebuffer(0,0,e,f,0,0,e,f,g,9728);a.bindFramebuffer(36160,c.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")};this.safeSetTexture2D=function(a,b){a&&a.isWebGLRenderTarget&&
+(!1===P&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),P=!0),a=a.texture);n(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLCubeRenderTarget&&(!1===O&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),O=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?w(a,b):z(a,b)}}function Zh(a,b,c){var d=
+c.isWebGL2;return{convert:function(a){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(d)return 5131;var c=b.get("OES_texture_half_float");return null!==c?c.HALF_FLOAT_OES:null}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(1029===a)return 36244;if(1030===a)return 33319;if(1031===a)return 33320;if(1032===a)return 36248;if(1033===a)return 36249;if(33776===a||33777===a||33778===a||33779===a)if(c=b.get("WEBGL_compressed_texture_s3tc"),null!==c){if(33776===a)return c.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return c.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===a)return c.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return c.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;
+if(35840===a||35841===a||35842===a||35843===a)if(c=b.get("WEBGL_compressed_texture_pvrtc"),null!==c){if(35840===a)return c.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===a)return c.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return c.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return c.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(36196===a)return c=b.get("WEBGL_compressed_texture_etc1"),null!==c?c.COMPRESSED_RGB_ETC1_WEBGL:null;if(37492===a||37496===a)if(c=b.get("WEBGL_compressed_texture_etc"),
+null!==c){if(37492===a)return c.COMPRESSED_RGB8_ETC2;if(37496===a)return c.COMPRESSED_RGBA8_ETC2_EAC}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||37840===a||37841===a||37842===a||37843===a||37844===a||37845===a||37846===a||37847===a||37848===a||37849===a||37850===a||37851===a||37852===a||37853===a)return c=b.get("WEBGL_compressed_texture_astc"),null!==c?a:null;if(36492===a)return c=b.get("EXT_texture_compression_bptc"),
+null!==c?a:null;if(1020===a){if(d)return 34042;c=b.get("WEBGL_depth_texture");return null!==c?c.UNSIGNED_INT_24_8_WEBGL:null}}}}function Qe(a){aa.call(this);this.cameras=a||[]}function Mc(){F.call(this);this.type="Group"}function $h(a,b){function c(a){var b=q.get(a.inputSource);b&&(b.targetRay&&b.targetRay.dispatchEvent({type:a.type}),b.grip&&b.grip.dispatchEvent({type:a.type}))}function d(){q.forEach(function(a,b){a.targetRay&&(a.targetRay.dispatchEvent({type:"disconnected",data:b}),a.targetRay.visible=
+!1);a.grip&&(a.grip.dispatchEvent({type:"disconnected",data:b}),a.grip.visible=!1)});q.clear();a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());y.stop();h.isPresenting=!1;h.dispatchEvent({type:"sessionend"})}function e(a){k=a;y.setContext(l);y.start();h.isPresenting=!0;h.dispatchEvent({type:"sessionstart"})}function f(a){for(var b=l.inputSources,c=0;c<r.length;c++)q.set(b[c],r[c]);for(c=0;c<a.removed.length;c++){b=a.removed[c];var d=q.get(b);d&&(d.targetRay&&d.targetRay.dispatchEvent({type:"disconnected",
+data:b}),d.grip&&d.grip.dispatchEvent({type:"disconnected",data:b}),q.delete(b))}for(c=0;c<a.added.length;c++)if(b=a.added[c],d=q.get(b))d.targetRay&&d.targetRay.dispatchEvent({type:"connected",data:b}),d.grip&&d.grip.dispatchEvent({type:"connected",data:b})}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=1,k=null,p="local-floor",x=null,r=[],q=new Map,v=new aa;v.layers.enable(1);
+v.viewport=new ka;var E=new aa;E.layers.enable(2);E.viewport=new ka;var w=new Qe([v,E]);w.layers.enable(1);w.layers.enable(2);var z=null,t=null;this.isPresenting=this.enabled=!1;this.getController=function(a){var b=r[a];void 0===b&&(b={},r[a]=b);void 0===b.targetRay&&(b.targetRay=new Mc,b.targetRay.matrixAutoUpdate=!1,b.targetRay.visible=!1);return b.targetRay};this.getControllerGrip=function(a){var b=r[a];void 0===b&&(b={},r[a]=b);void 0===b.grip&&(b.grip=new Mc,b.grip.matrixAutoUpdate=!1,b.grip.visible=
+!1);return b.grip};this.setFramebufferScaleFactor=function(a){m=a;1==h.isPresenting&&console.warn("WebXRManager: Cannot change framebuffer scale while presenting VR content")};this.setReferenceSpaceType=function(a){p=a};this.getReferenceSpace=function(){return k};this.getSession=function(){return l};this.setSession=function(a){l=a;null!==l&&(l.addEventListener("select",c),l.addEventListener("selectstart",c),l.addEventListener("selectend",c),l.addEventListener("squeeze",c),l.addEventListener("squeezestart",
+c),l.addEventListener("squeezeend",c),l.addEventListener("end",d),a=b.getContextAttributes(),a=new XRWebGLLayer(l,b,{antialias:a.antialias,alpha:a.alpha,depth:a.depth,stencil:a.stencil,framebufferScaleFactor:m}),l.updateRenderState({baseLayer:a}),l.requestReferenceSpace(p).then(e),l.addEventListener("inputsourceschange",f))};var U=new n,ca=new n;this.getCamera=function(a){w.near=E.near=v.near=a.near;w.far=E.far=v.far=a.far;if(z!==w.near||t!==w.far)l.updateRenderState({depthNear:w.near,depthFar:w.far}),
+z=w.near,t=w.far;var b=a.parent,c=w.cameras;g(w,b);for(var d=0;d<c.length;d++)g(c[d],b);a.matrixWorld.copy(w.matrixWorld);a=a.children;d=0;for(b=a.length;d<b;d++)a[d].updateMatrixWorld(!0);U.setFromMatrixPosition(v.matrixWorld);ca.setFromMatrixPosition(E.matrixWorld);d=U.distanceTo(ca);var e=v.projectionMatrix.elements,f=E.projectionMatrix.elements,h=e[14]/(e[10]-1);a=e[14]/(e[10]+1);b=(e[9]+1)/e[5];c=(e[9]-1)/e[5];var m=(e[8]-1)/e[0],p=(f[8]+1)/f[0];f=h*m;e=h*p;p=d/(-m+p);m=p*-m;v.matrixWorld.decompose(w.position,
+w.quaternion,w.scale);w.translateX(m);w.translateZ(p);w.matrixWorld.compose(w.position,w.quaternion,w.scale);w.matrixWorldInverse.getInverse(w.matrixWorld);h+=p;p=a+p;w.projectionMatrix.makePerspective(f-m,e+(d-m),b*a/p*h,c*a/p*h,h,p);return w};var B=null,y=new Ah;y.setAnimationLoop(function(b,c){x=c.getViewerPose(k);if(null!==x){var d=x.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),m=w.cameras[f];m.matrix.fromArray(g.transform.matrix);
+m.projectionMatrix.fromArray(g.projectionMatrix);m.viewport.set(h.x,h.y,h.width,h.height);0===f&&w.matrix.copy(m.matrix)}}d=l.inputSources;for(f=0;f<r.length;f++)e=r[f],g=d[f],m=h=null,g&&(e.targetRay&&(h=c.getPose(g.targetRaySpace,k),null!==h&&(e.targetRay.matrix.fromArray(h.transform.matrix),e.targetRay.matrix.decompose(e.targetRay.position,e.targetRay.rotation,e.targetRay.scale))),e.grip&&g.gripSpace&&(m=c.getPose(g.gripSpace,k),null!==m&&(e.grip.matrix.fromArray(m.transform.matrix),e.grip.matrix.decompose(e.grip.position,
+e.grip.rotation,e.grip.scale)))),e.targetRay&&(e.targetRay.visible=null!==h),e.grip&&(e.grip.visible=null!==m);B&&B(b,c)});this.setAnimationLoop=function(a){B=a};this.dispose=function(){}}function og(a){var b;function c(){ra=new zj(I);Fa=new xj(I,ra,a);!1===Fa.isWebGL2&&(ra.get("WEBGL_depth_texture"),ra.get("OES_texture_float"),ra.get("OES_texture_half_float"),ra.get("OES_texture_half_float_linear"),ra.get("OES_standard_derivatives"),ra.get("OES_element_index_uint"),ra.get("ANGLE_instanced_arrays"));
+ra.get("OES_texture_float_linear");qa=new Zh(I,ra,Fa);Y=new Ik(I,ra,Fa);Y.scissor(T.copy(ja).multiplyScalar(Q).floor());Y.viewport(Z.copy(R).multiplyScalar(Q).floor());aa=new Cj(I);X=new yk;ea=new Jk(I,ra,Y,X,Fa,qa,aa);oa=new uj(I,Fa);xa=new Aj(I,oa,aa);sa=new Fj(I,xa,oa,aa);ya=new Ej(I);ta=new xk(H,ra,Fa);wa=new Bk;va=new Hk;pa=new vj(H,Y,sa,ca);Aa=new wj(I,ra,aa,Fa);Ba=new Bj(I,ra,aa,Fa);aa.programs=ta.programs;H.capabilities=Fa;H.extensions=ra;H.properties=X;H.renderLists=wa;H.state=Y;H.info=aa}
+function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");G=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");G=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);X.remove(a)}function g(a){var b=X.get(a).program;a.program=void 0;void 0!==b&&ta.releaseProgram(b)}function h(a,b){a.render(function(a){H.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)A.pushLight(a),a.castShadow&&A.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||lg.intersectsSprite(a)){d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md);var e=sa.update(a),f=a.material;f.visible&&C.push(a,e,f,c,Hb.z,null)}}else if(a.isImmediateRenderObject)d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md),C.push(a,null,a.material,c,Hb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.frame!==aa.render.frame&&
+(a.skeleton.update(),a.skeleton.frame=aa.render.frame),!a.frustumCulled||lg.intersectsObject(a))if(d&&Hb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Md),e=sa.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var p=g[h],k=f[p.materialIndex];k&&k.visible&&C.push(a,e,k,c,Hb.z,p)}else f.visible&&C.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){ba=c;for(var p=c.cameras,u=0,q=p.length;u<q;u++){var x=p[u];h.layers.test(x.layers)&&(Y.viewport(Z.copy(x.viewport)),A.setupLights(x),k(h,b,x,l,m,g))}}else ba=null,k(h,b,c,l,m,g)}}function k(a,c,d,e,f,g){a.onBeforeRender(H,c,d,e,f,g);A=va.get(c,ba||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){var l=x(d,c,f,a);Y.setMaterial(f);fa=b=null;
+Pe=!1;h(a,l)}else H.renderBufferDirect(d,c,e,f,a,g);a.onAfterRender(H,c,d,e,f,g);A=va.get(c,ba||d)}function p(a,b,c){var d=X.get(a),e=A.state.lights,h=e.state.version;c=ta.getParameters(a,e.state,A.state.shadowsArray,b,Ua.numPlanes,Ua.numIntersection,c);var l=ta.getProgramCacheKey(c),m=d.program,p=!0;if(void 0===m)a.addEventListener("dispose",f);else if(m.cacheKey!==l)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=h;else if(void 0!==c.shaderID)return;p=!1}p&&(m=ta.acquireProgram(c,l),
+d.program=m,d.uniforms=c.uniforms,d.environment=a.isMeshStandardMaterial?b.environment:null,d.outputEncoding=H.outputEncoding,a.program=m);c=m.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<H.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<H.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=
+Ua.numPlanes,d.numIntersection=Ua.numIntersection,c.clippingPlanes=Ua.uniform;d.fog=b.fog;d.needsLights=a.isMeshLambertMaterial||a.isMeshToonMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=h;d.needsLights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.directionalLightShadows.value=e.state.directionalShadow,c.spotLights.value=e.state.spot,
+c.spotLightShadows.value=e.state.spotShadow,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.pointLightShadows.value=e.state.pointShadow,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 x(a,b,c,d){ea.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=X.get(c),h=A.state.lights;na&&(mg||a!==V)&&Ua.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,g,a===V&&c.id===Oe);c.version===g.__version?void 0===g.program?p(c,b,d):c.fog&&g.fog!==e?p(c,b,d):g.environment!==f?p(c,b,d):g.needsLights&&g.lightsStateVersion!==h.state.version?p(c,b,d):void 0===g.numClippingPlanes||g.numClippingPlanes===
+Ua.numPlanes&&g.numIntersection===Ua.numIntersection?g.outputEncoding!==H.outputEncoding&&p(c,b,d):p(c,b,d):(p(c,b,d),g.__version=c.version);var l=!1,m=!1,k=!1;b=g.program;h=b.getUniforms();var u=g.uniforms;Y.useProgram(b.program)&&(k=m=l=!0);c.id!==Oe&&(Oe=c.id,m=!0);if(l||V!==a){h.setValue(I,"projectionMatrix",a.projectionMatrix);Fa.logarithmicDepthBuffer&&h.setValue(I,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));V!==a&&(V=a,k=m=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshToonMaterial||
+c.isMeshStandardMaterial||c.envMap)l=h.map.cameraPosition,void 0!==l&&l.setValue(I,Hb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial)&&h.setValue(I,"isOrthographic",!0===a.isOrthographicCamera);(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&h.setValue(I,"viewMatrix",
+a.matrixWorldInverse)}if(c.skinning&&(h.setOptional(I,d,"bindMatrix"),h.setOptional(I,d,"bindMatrixInverse"),a=d.skeleton))if(l=a.bones,Fa.floatVertexTextures){if(void 0===a.boneTexture){l=Math.sqrt(4*l.length);l=L.ceilPowerOfTwo(l);l=Math.max(l,4);var x=new Float32Array(l*l*4);x.set(a.boneMatrices);var v=new ac(x,l,l,1023,1015);a.boneMatrices=x;a.boneTexture=v;a.boneTextureSize=l}h.setValue(I,"boneTexture",a.boneTexture,ea);h.setValue(I,"boneTextureSize",a.boneTextureSize)}else h.setOptional(I,a,
+"boneMatrices");if(m||g.receiveShadow!==d.receiveShadow)g.receiveShadow=d.receiveShadow,h.setValue(I,"receiveShadow",d.receiveShadow);if(m){h.setValue(I,"toneMappingExposure",H.toneMappingExposure);h.setValue(I,"toneMappingWhitePoint",H.toneMappingWhitePoint);g.needsLights&&(m=k,u.ambientLightColor.needsUpdate=m,u.lightProbe.needsUpdate=m,u.directionalLights.needsUpdate=m,u.directionalLightShadows.needsUpdate=m,u.pointLights.needsUpdate=m,u.pointLightShadows.needsUpdate=m,u.spotLights.needsUpdate=
+m,u.spotLightShadows.needsUpdate=m,u.rectAreaLights.needsUpdate=m,u.hemisphereLights.needsUpdate=m);e&&c.fog&&(u.fogColor.value.copy(e.color),e.isFog?(u.fogNear.value=e.near,u.fogFar.value=e.far):e.isFogExp2&&(u.fogDensity.value=e.density));if(c.isMeshBasicMaterial)r(u,c);else if(c.isMeshLambertMaterial)r(u,c),c.emissiveMap&&(u.emissiveMap.value=c.emissiveMap);else if(c.isMeshToonMaterial)r(u,c),u.specular.value.copy(c.specular),u.shininess.value=Math.max(c.shininess,1E-4),c.gradientMap&&(u.gradientMap.value=
+c.gradientMap),c.emissiveMap&&(u.emissiveMap.value=c.emissiveMap),c.bumpMap&&(u.bumpMap.value=c.bumpMap,u.bumpScale.value=c.bumpScale,1===c.side&&(u.bumpScale.value*=-1)),c.normalMap&&(u.normalMap.value=c.normalMap,u.normalScale.value.copy(c.normalScale),1===c.side&&u.normalScale.value.negate()),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias);else if(c.isMeshPhongMaterial)r(u,c),u.specular.value.copy(c.specular),
+u.shininess.value=Math.max(c.shininess,1E-4),c.emissiveMap&&(u.emissiveMap.value=c.emissiveMap),c.bumpMap&&(u.bumpMap.value=c.bumpMap,u.bumpScale.value=c.bumpScale,1===c.side&&(u.bumpScale.value*=-1)),c.normalMap&&(u.normalMap.value=c.normalMap,u.normalScale.value.copy(c.normalScale),1===c.side&&u.normalScale.value.negate()),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias);else if(c.isMeshStandardMaterial)r(u,
+c,f),c.isMeshPhysicalMaterial?(q(u,c,f),u.reflectivity.value=c.reflectivity,u.clearcoat.value=c.clearcoat,u.clearcoatRoughness.value=c.clearcoatRoughness,c.sheen&&u.sheen.value.copy(c.sheen),c.clearcoatMap&&(u.clearcoatMap.value=c.clearcoatMap),c.clearcoatRoughnessMap&&(u.clearcoatRoughnessMap.value=c.clearcoatRoughnessMap),c.clearcoatNormalMap&&(u.clearcoatNormalScale.value.copy(c.clearcoatNormalScale),u.clearcoatNormalMap.value=c.clearcoatNormalMap,1===c.side&&u.clearcoatNormalScale.value.negate()),
+u.transparency.value=c.transparency):q(u,c,f);else if(c.isMeshMatcapMaterial)r(u,c),c.matcap&&(u.matcap.value=c.matcap),c.bumpMap&&(u.bumpMap.value=c.bumpMap,u.bumpScale.value=c.bumpScale,1===c.side&&(u.bumpScale.value*=-1)),c.normalMap&&(u.normalMap.value=c.normalMap,u.normalScale.value.copy(c.normalScale),1===c.side&&u.normalScale.value.negate()),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias);
+else if(c.isMeshDepthMaterial)r(u,c),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias);else if(c.isMeshDistanceMaterial)r(u,c),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias),u.referencePosition.value.copy(c.referencePosition),u.nearDistance.value=c.nearDistance,u.farDistance.value=c.farDistance;
+else if(c.isMeshNormalMaterial)r(u,c),c.bumpMap&&(u.bumpMap.value=c.bumpMap,u.bumpScale.value=c.bumpScale,1===c.side&&(u.bumpScale.value*=-1)),c.normalMap&&(u.normalMap.value=c.normalMap,u.normalScale.value.copy(c.normalScale),1===c.side&&u.normalScale.value.negate()),c.displacementMap&&(u.displacementMap.value=c.displacementMap,u.displacementScale.value=c.displacementScale,u.displacementBias.value=c.displacementBias);else if(c.isLineBasicMaterial)u.diffuse.value.copy(c.color),u.opacity.value=c.opacity,
+c.isLineDashedMaterial&&(u.dashSize.value=c.dashSize,u.totalSize.value=c.dashSize+c.gapSize,u.scale.value=c.scale);else if(c.isPointsMaterial){u.diffuse.value.copy(c.color);u.opacity.value=c.opacity;u.size.value=c.size*Q;u.scale.value=.5*J;c.map&&(u.map.value=c.map);c.alphaMap&&(u.alphaMap.value=c.alphaMap);if(c.map)var n=c.map;else c.alphaMap&&(n=c.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),u.uvTransform.value.copy(n.matrix))}else if(c.isSpriteMaterial){u.diffuse.value.copy(c.color);
 u.opacity.value=c.opacity;u.rotation.value=c.rotation;c.map&&(u.map.value=c.map);c.alphaMap&&(u.alphaMap.value=c.alphaMap);if(c.map)var w=c.map;else c.alphaMap&&(w=c.alphaMap);void 0!==w&&(!0===w.matrixAutoUpdate&&w.updateMatrix(),u.uvTransform.value.copy(w.matrix))}else c.isShadowMaterial&&(u.color.value.copy(c.color),u.opacity.value=c.opacity);void 0!==u.ltc_1&&(u.ltc_1.value=D.LTC_1);void 0!==u.ltc_2&&(u.ltc_2.value=D.LTC_2);Eb.upload(I,g.uniformsList,u,ea);c.isShaderMaterial&&(c.uniformsNeedUpdate=
 !1)}c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Eb.upload(I,g.uniformsList,u,ea),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&h.setValue(I,"center",d.center);h.setValue(I,"modelViewMatrix",d.modelViewMatrix);h.setValue(I,"normalMatrix",d.normalMatrix);h.setValue(I,"modelMatrix",d.matrixWorld);return b}function r(a,b,c){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);if(c=b.envMap||c)a.envMap.value=c,a.flipEnvMap.value=c.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=b.refractionRatio,a.maxMipLevel.value=X.get(c).__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 d=b.map;else b.specularMap?d=b.specularMap:b.displacementMap?
@@ -695,8 +696,8 @@ b;c++)if(a=this.bones[c])a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent
 Fe.geometry=this.geometry;Fe.material=this.material;if(void 0!==Fe.material)for(var e=0;e<d;e++)this.getMatrixAt(e,Vi),Wi.multiplyMatrices(c,Vi),Fe.matrixWorld=Wi,Fe.raycast(a,zd),0<zd.length&&(zd[0].instanceId=e,zd[0].object=this,b.push(zd[0]),zd.length=0)},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});la.prototype=Object.create(K.prototype);la.prototype.constructor=la;la.prototype.isLineBasicMaterial=!0;la.prototype.copy=function(a){K.prototype.copy.call(this,
 a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};var Xi=new n,Yi=new n,Zi=new P,Pf=new Vb,Ge=new pb;Ka.prototype=Object.assign(Object.create(F.prototype),{constructor:Ka,isLine:!0,computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,c=[0],d=1,e=b.count;d<e;d++)Xi.fromBufferAttribute(b,d-1),Yi.fromBufferAttribute(b,d),c[d]=c[d-1],c[d]+=Xi.distanceTo(Yi);a.setAttribute("lineDistance",
 new y(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,c[0]=0,d=1,e=b.length;d<e;d++)c[d]=c[d-1],c[d]+=b[d-1].distanceTo(b[d]);return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Line.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Ge.copy(c.boundingSphere);Ge.applyMatrix4(d);Ge.radius+=e;if(!1!==a.ray.intersectsSphere(Ge)){Zi.getInverse(d);
-Pf.copy(a.ray).applyMatrix4(Zi);d=e/((this.scale.x+this.scale.y+this.scale.z)/3);d*=d;var f=new n,g=new n;e=new n;var h=new n,l=this&&this.isLineSegments?2:1;if(c.isBufferGeometry){var m=c.index,k=c.attributes.position.array;if(null!==m){m=m.array;c=0;for(var p=m.length-1;c<p;c+=l){var x=m[c+1];f.fromArray(k,3*m[c]);g.fromArray(k,3*x);x=Pf.distanceSqToSegment(f,g,h,e);x>d||(h.applyMatrix4(this.matrixWorld),x=a.ray.origin.distanceTo(h),x<a.near||x>a.far||b.push({distance:x,point:e.clone().applyMatrix4(this.matrixWorld),
-index:c,face:null,faceIndex:null,object:this}))}}else for(c=0,p=k.length/3-1;c<p;c+=l)f.fromArray(k,3*c),g.fromArray(k,3*c+3),x=Pf.distanceSqToSegment(f,g,h,e),x>d||(h.applyMatrix4(this.matrixWorld),x=a.ray.origin.distanceTo(h),x<a.near||x>a.far||b.push({distance:x,point:e.clone().applyMatrix4(this.matrixWorld),index:c,face:null,faceIndex:null,object:this}))}else if(c.isGeometry)for(f=c.vertices,g=f.length,c=0;c<g-1;c+=l)x=Pf.distanceSqToSegment(f[c],f[c+1],h,e),x>d||(h.applyMatrix4(this.matrixWorld),
+Pf.copy(a.ray).applyMatrix4(Zi);d=e/((this.scale.x+this.scale.y+this.scale.z)/3);d*=d;var f=new n,g=new n;e=new n;var h=new n,l=this&&this.isLineSegments?2:1;if(c.isBufferGeometry){var k=c.index,u=c.attributes.position.array;if(null!==k){k=k.array;c=0;for(var p=k.length-1;c<p;c+=l){var x=k[c+1];f.fromArray(u,3*k[c]);g.fromArray(u,3*x);x=Pf.distanceSqToSegment(f,g,h,e);x>d||(h.applyMatrix4(this.matrixWorld),x=a.ray.origin.distanceTo(h),x<a.near||x>a.far||b.push({distance:x,point:e.clone().applyMatrix4(this.matrixWorld),
+index:c,face:null,faceIndex:null,object:this}))}}else for(c=0,p=u.length/3-1;c<p;c+=l)f.fromArray(u,3*c),g.fromArray(u,3*c+3),x=Pf.distanceSqToSegment(f,g,h,e),x>d||(h.applyMatrix4(this.matrixWorld),x=a.ray.origin.distanceTo(h),x<a.near||x>a.far||b.push({distance:x,point:e.clone().applyMatrix4(this.matrixWorld),index:c,face:null,faceIndex:null,object:this}))}else if(c.isGeometry)for(f=c.vertices,g=f.length,c=0;c<g-1;c+=l)x=Pf.distanceSqToSegment(f[c],f[c+1],h,e),x>d||(h.applyMatrix4(this.matrixWorld),
 x=a.ray.origin.distanceTo(h),x<a.near||x>a.far||b.push({distance:x,point:e.clone().applyMatrix4(this.matrixWorld),index:c,face:null,faceIndex:null,object:this}))}},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});var Qf=new n,Rf=new n;ma.prototype=Object.assign(Object.create(Ka.prototype),{constructor:ma,isLineSegments:!0,computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,c=[],d=0,e=b.count;d<
 e;d+=2)Qf.fromBufferAttribute(b,d),Rf.fromBufferAttribute(b,d+1),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Qf.distanceTo(Rf);a.setAttribute("lineDistance",new y(c,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,c=a.lineDistances,d=0,e=b.length;d<e;d+=2)Qf.copy(b[d]),Rf.copy(b[d+1]),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Qf.distanceTo(Rf);return this}});We.prototype=Object.assign(Object.create(Ka.prototype),
 {constructor:We,isLineLoop:!0});Va.prototype=Object.create(K.prototype);Va.prototype.constructor=Va;Va.prototype.isPointsMaterial=!0;Va.prototype.copy=function(a){K.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;this.morphTargets=a.morphTargets;return this};var $i=new P,rg=new Vb,He=new pb,Sf=new n;Pc.prototype=Object.assign(Object.create(F.prototype),{constructor:Pc,isPoints:!0,raycast:function(a,
@@ -845,11 +846,11 @@ void 0!==a.shadow.camera&&(f.shadow.camera=this.parseObject(a.shadow.camera)));v
 h=0;h<a.length;h++){g=a[h];var l=f.getObjectByProperty("uuid",g.object);void 0!==l&&f.addLevel(l,g.distance)}return f}});var cl={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},aj={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},bj={NearestFilter:1003,NearestMipmapNearestFilter:1004,NearestMipmapLinearFilter:1005,
 LinearFilter:1006,LinearMipmapNearestFilter:1007,LinearMipmapLinearFilter:1008};Ag.prototype=Object.assign(Object.create(W.prototype),{constructor:Ag,setOptions:function(a){this.options=a;return this},load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=vc.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;fetch(a).then(function(a){return a.blob()}).then(function(a){return void 0===
 e.options?createImageBitmap(a):createImageBitmap(a,e.options)}).then(function(c){vc.add(a,c);b&&b(c);e.manager.itemEnd(a)}).catch(function(b){d&&d(b);e.manager.itemError(a);e.manager.itemEnd(a)});e.manager.itemStart(a)}});Object.assign(Bg.prototype,{moveTo:function(a,b){this.currentPath=new $a;this.subPaths.push(this.currentPath);this.currentPath.moveTo(a,b);return this},lineTo:function(a,b){this.currentPath.lineTo(a,b);return this},quadraticCurveTo:function(a,b,c,d){this.currentPath.quadraticCurveTo(a,
-b,c,d);return this},bezierCurveTo:function(a,b,c,d,e,f){this.currentPath.bezierCurveTo(a,b,c,d,e,f);return this},splineThru:function(a){this.currentPath.splineThru(a);return this},toShapes:function(a,b){function c(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c],f=new Kb;f.curves=e.curves;b.push(f)}return b}function d(a,b){for(var c=b.length,d=!1,e=c-1,f=0;f<c;e=f++){var g=b[e],h=b[f],l=h.x-g.x,k=h.y-g.y;if(Math.abs(k)>Number.EPSILON){if(0>k&&(g=b[f],l=-l,h=b[e],k=-k),!(a.y<g.y||a.y>h.y))if(a.y===
-g.y){if(a.x===g.x)return!0}else{e=k*(a.x-g.x)-l*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<=h.x))return!0}return d}var e=sb.isClockWise,f=this.subPaths;if(0===f.length)return[];if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new Kb;h.curves=g.curves;b.push(h);return b}var l=!e(f[0].getPoints());l=a?!l:l;h=[];var k=[],n=[],p=0;k[p]=void 0;n[p]=[];for(var t=0,r=f.length;t<r;t++){g=f[t];var q=g.getPoints();var v=e(q);(v=a?!v:v)?(!l&&k[p]&&
+b,c,d);return this},bezierCurveTo:function(a,b,c,d,e,f){this.currentPath.bezierCurveTo(a,b,c,d,e,f);return this},splineThru:function(a){this.currentPath.splineThru(a);return this},toShapes:function(a,b){function c(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c],f=new Kb;f.curves=e.curves;b.push(f)}return b}function d(a,b){for(var c=b.length,d=!1,e=c-1,f=0;f<c;e=f++){var g=b[e],h=b[f],k=h.x-g.x,l=h.y-g.y;if(Math.abs(l)>Number.EPSILON){if(0>l&&(g=b[f],k=-k,h=b[e],l=-l),!(a.y<g.y||a.y>h.y))if(a.y===
+g.y){if(a.x===g.x)return!0}else{e=l*(a.x-g.x)-k*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<=h.x))return!0}return d}var e=sb.isClockWise,f=this.subPaths;if(0===f.length)return[];if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new Kb;h.curves=g.curves;b.push(h);return b}var l=!e(f[0].getPoints());l=a?!l:l;h=[];var k=[],n=[],p=0;k[p]=void 0;n[p]=[];for(var t=0,r=f.length;t<r;t++){g=f[t];var q=g.getPoints();var v=e(q);(v=a?!v:v)?(!l&&k[p]&&
 p++,k[p]={s:new Kb,p:q},k[p].s.curves=g.curves,l&&p++,n[p]=[]):n[p].push({h:g,p:q[0]})}if(!k[0])return c(f);if(1<k.length){t=!1;a=[];e=0;for(f=k.length;e<f;e++)h[e]=[];e=0;for(f=k.length;e<f;e++)for(g=n[e],v=0;v<g.length;v++){l=g[v];p=!0;for(q=0;q<k.length;q++)d(l.p,k[q].p)&&(e!==q&&a.push({froms:e,tos:q,hole:v}),p?(p=!1,h[q].push(l)):t=!0);p&&h[e].push(l)}0<a.length&&(t||(n=h))}t=0;for(e=k.length;t<e;t++)for(h=k[t].s,b.push(h),a=n[t],f=0,g=a.length;f<g;f++)h.holes.push(a[f].h);return b}});Object.assign(Cg.prototype,
-{isFont:!0,generateShapes:function(a,b){void 0===b&&(b=100);var c=[],d=b;b=this.data;var e=Array.from?Array.from(a):String(a).split("");d/=b.resolution;var f=(b.boundingBox.yMax-b.boundingBox.yMin+b.underlineThickness)*d;a=[];for(var g=0,h=0,k=0;k<e.length;k++){var m=e[k];if("\n"===m)g=0,h-=f;else{var n=m;m=d;var p=g,t=h,r=b,q=r.glyphs[n]||r.glyphs["?"];if(q){n=new Bg;if(q.o){r=q._cachedOutline||(q._cachedOutline=q.o.split(" "));for(var v=0,y=r.length;v<y;)switch(r[v++]){case "m":var w=r[v++]*m+p;
-var z=r[v++]*m+t;n.moveTo(w,z);break;case "l":w=r[v++]*m+p;z=r[v++]*m+t;n.lineTo(w,z);break;case "q":var A=r[v++]*m+p;var C=r[v++]*m+t;var D=r[v++]*m+p;var B=r[v++]*m+t;n.quadraticCurveTo(D,B,A,C);break;case "b":A=r[v++]*m+p,C=r[v++]*m+t,D=r[v++]*m+p,B=r[v++]*m+t,w=r[v++]*m+p,z=r[v++]*m+t,n.bezierCurveTo(D,B,w,z,A,C)}}m={offsetX:q.ha*m,path:n}}else console.error('THREE.Font: character "'+n+'" does not exists in font family '+r.familyName+"."),m=void 0;g+=m.offsetX;a.push(m.path)}}b=0;for(e=a.length;b<
+{isFont:!0,generateShapes:function(a,b){void 0===b&&(b=100);var c=[],d=b;b=this.data;var e=Array.from?Array.from(a):String(a).split("");d/=b.resolution;var f=(b.boundingBox.yMax-b.boundingBox.yMin+b.underlineThickness)*d;a=[];for(var g=0,h=0,l=0;l<e.length;l++){var k=e[l];if("\n"===k)g=0,h-=f;else{var n=k;k=d;var p=g,t=h,r=b,q=r.glyphs[n]||r.glyphs["?"];if(q){n=new Bg;if(q.o){r=q._cachedOutline||(q._cachedOutline=q.o.split(" "));for(var v=0,y=r.length;v<y;)switch(r[v++]){case "m":var w=r[v++]*k+p;
+var z=r[v++]*k+t;n.moveTo(w,z);break;case "l":w=r[v++]*k+p;z=r[v++]*k+t;n.lineTo(w,z);break;case "q":var A=r[v++]*k+p;var C=r[v++]*k+t;var D=r[v++]*k+p;var B=r[v++]*k+t;n.quadraticCurveTo(D,B,A,C);break;case "b":A=r[v++]*k+p,C=r[v++]*k+t,D=r[v++]*k+p,B=r[v++]*k+t,w=r[v++]*k+p,z=r[v++]*k+t,n.bezierCurveTo(D,B,w,z,A,C)}}k={offsetX:q.ha*k,path:n}}else console.error('THREE.Font: character "'+n+'" does not exists in font family '+r.familyName+"."),k=void 0;g+=k.offsetX;a.push(k.path)}}b=0;for(e=a.length;b<
 e;b++)Array.prototype.push.apply(c,a[b].toShapes());return c}});Dg.prototype=Object.assign(Object.create(W.prototype),{constructor:Dg,load:function(a,b,c,d){var e=this,f=new Ra(this.manager);f.setPath(this.path);f.load(a,function(a){try{var c=JSON.parse(a)}catch(l){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new Cg(a)}});var Uf,Ig={getContext:function(){void 0===
 Uf&&(Uf=new (window.AudioContext||window.webkitAudioContext));return Uf},setContext:function(a){Uf=a}};tf.prototype=Object.assign(Object.create(W.prototype),{constructor:tf,load:function(a,b,c,d){var e=new Ra(this.manager);e.setResponseType("arraybuffer");e.setPath(this.path);e.load(a,function(a){a=a.slice(0);Ig.getContext().decodeAudioData(a,function(a){b(a)})},c,d)}});Object.assign(uf.prototype,{isSphericalHarmonics3:!0,set:function(a){for(var b=0;9>b;b++)this.coefficients[b].copy(a[b]);return this},
 zero:function(){for(var a=0;9>a;a++)this.coefficients[a].set(0,0,0);return this},getAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;b.copy(e[0]).multiplyScalar(.282095);b.addScale(e[1],.488603*d);b.addScale(e[2],.488603*a);b.addScale(e[3],.488603*c);b.addScale(e[4],1.092548*c*d);b.addScale(e[5],1.092548*d*a);b.addScale(e[6],.315392*(3*a*a-1));b.addScale(e[7],1.092548*c*a);b.addScale(e[8],.546274*(c*c-d*d));return b},getIrradianceAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;
@@ -1023,8 +1024,8 @@ k.NumberKeyframeTrack=dd;k.Object3D=F;k.ObjectLoader=sf;k.ObjectSpaceNormalMap=1
 k.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");return new Pc(a,b)};k.ParticleSystemMaterial=function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.Path=$a;k.PerspectiveCamera=aa;k.Plane=Ta;k.PlaneBufferGeometry=bc;k.PlaneGeometry=Id;k.PlaneHelper=
 ve;k.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Pc(a,b)};k.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.PointLight=jf;k.PointLightHelper=kd;k.Points=Pc;k.PointsMaterial=Va;k.PolarGridHelper=xf;k.PolyhedronBufferGeometry=Ga;k.PolyhedronGeometry=Wd;k.PositionalAudio=Jg;k.PropertyBinding=ya;k.PropertyMixer=Lg;k.QuadraticBezierCurve=Ya;k.QuadraticBezierCurve3=
 ib;k.Quaternion=Aa;k.QuaternionKeyframeTrack=pe;k.QuaternionLinearInterpolant=af;k.REVISION="115dev";k.RGBADepthPacking=3201;k.RGBAFormat=1023;k.RGBAIntegerFormat=1033;k.RGBA_ASTC_10x10_Format=37819;k.RGBA_ASTC_10x5_Format=37816;k.RGBA_ASTC_10x6_Format=37817;k.RGBA_ASTC_10x8_Format=37818;k.RGBA_ASTC_12x10_Format=37820;k.RGBA_ASTC_12x12_Format=37821;k.RGBA_ASTC_4x4_Format=37808;k.RGBA_ASTC_5x4_Format=37809;k.RGBA_ASTC_5x5_Format=37810;k.RGBA_ASTC_6x5_Format=37811;k.RGBA_ASTC_6x6_Format=37812;k.RGBA_ASTC_8x5_Format=
-37813;k.RGBA_ASTC_8x6_Format=37814;k.RGBA_ASTC_8x8_Format=37815;k.RGBA_ETC2_EAC_Format=37496;k.RGBA_PVRTC_2BPPV1_Format=35843;k.RGBA_PVRTC_4BPPV1_Format=35842;k.RGBA_S3TC_DXT1_Format=33777;k.RGBA_S3TC_DXT3_Format=33778;k.RGBA_S3TC_DXT5_Format=33779;k.RGBDEncoding=3006;k.RGBEEncoding=3002;k.RGBEFormat=1023;k.RGBFormat=1022;k.RGBIntegerFormat=1032;k.RGBM16Encoding=3005;k.RGBM7Encoding=3004;k.RGB_ETC1_Format=36196;k.RGB_ETC2_Format=37492;k.RGB_PVRTC_2BPPV1_Format=35841;k.RGB_PVRTC_4BPPV1_Format=35840;
-k.RGB_S3TC_DXT1_Format=33776;k.RGFormat=1030;k.RGIntegerFormat=1031;k.RawShaderMaterial=ub;k.Ray=Vb;k.Raycaster=Og;k.RectAreaLight=nf;k.RedFormat=1028;k.RedIntegerFormat=1029;k.ReinhardToneMapping=2;k.RepeatWrapping=1E3;k.ReplaceStencilOp=7681;k.ReverseSubtractEquation=102;k.RingBufferGeometry=$c;k.RingGeometry=je;k.SRGB8_ALPHA8_ASTC_10x10_Format=37851;k.SRGB8_ALPHA8_ASTC_10x5_Format=37848;k.SRGB8_ALPHA8_ASTC_10x6_Format=37849;k.SRGB8_ALPHA8_ASTC_10x8_Format=37850;k.SRGB8_ALPHA8_ASTC_12x10_Format=
+37813;k.RGBA_ASTC_8x6_Format=37814;k.RGBA_ASTC_8x8_Format=37815;k.RGBA_BPTC_Format=36492;k.RGBA_ETC2_EAC_Format=37496;k.RGBA_PVRTC_2BPPV1_Format=35843;k.RGBA_PVRTC_4BPPV1_Format=35842;k.RGBA_S3TC_DXT1_Format=33777;k.RGBA_S3TC_DXT3_Format=33778;k.RGBA_S3TC_DXT5_Format=33779;k.RGBDEncoding=3006;k.RGBEEncoding=3002;k.RGBEFormat=1023;k.RGBFormat=1022;k.RGBIntegerFormat=1032;k.RGBM16Encoding=3005;k.RGBM7Encoding=3004;k.RGB_ETC1_Format=36196;k.RGB_ETC2_Format=37492;k.RGB_PVRTC_2BPPV1_Format=35841;k.RGB_PVRTC_4BPPV1_Format=
+35840;k.RGB_S3TC_DXT1_Format=33776;k.RGFormat=1030;k.RGIntegerFormat=1031;k.RawShaderMaterial=ub;k.Ray=Vb;k.Raycaster=Og;k.RectAreaLight=nf;k.RedFormat=1028;k.RedIntegerFormat=1029;k.ReinhardToneMapping=2;k.RepeatWrapping=1E3;k.ReplaceStencilOp=7681;k.ReverseSubtractEquation=102;k.RingBufferGeometry=$c;k.RingGeometry=je;k.SRGB8_ALPHA8_ASTC_10x10_Format=37851;k.SRGB8_ALPHA8_ASTC_10x5_Format=37848;k.SRGB8_ALPHA8_ASTC_10x6_Format=37849;k.SRGB8_ALPHA8_ASTC_10x8_Format=37850;k.SRGB8_ALPHA8_ASTC_12x10_Format=
 37852;k.SRGB8_ALPHA8_ASTC_12x12_Format=37853;k.SRGB8_ALPHA8_ASTC_4x4_Format=37840;k.SRGB8_ALPHA8_ASTC_5x4_Format=37841;k.SRGB8_ALPHA8_ASTC_5x5_Format=37842;k.SRGB8_ALPHA8_ASTC_6x5_Format=37843;k.SRGB8_ALPHA8_ASTC_6x6_Format=37844;k.SRGB8_ALPHA8_ASTC_8x5_Format=37845;k.SRGB8_ALPHA8_ASTC_8x6_Format=37846;k.SRGB8_ALPHA8_ASTC_8x8_Format=37847;k.Scene=ob;k.SceneUtils={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")},
 attach:function(){console.error("THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js")}};k.ShaderChunk=O;k.ShaderLib=eb;k.ShaderMaterial=Ba;k.ShadowMaterial=kc;k.Shape=Kb;k.ShapeBufferGeometry=ic;k.ShapeGeometry=hc;k.ShapePath=Bg;k.ShapeUtils=sb;k.ShortType=1011;k.Skeleton=Ue;k.SkeletonHelper=rc;k.SkinnedMesh=Sd;k.SmoothShading=2;k.Sphere=pb;k.SphereBufferGeometry=gc;k.SphereGeometry=ie;k.Spherical=ri;k.SphericalHarmonics3=uf;k.SphericalReflectionMapping=305;k.Spline=$g;k.SplineCurve=
 Za;k.SplineCurve3=Gi;k.SpotLight=hf;k.SpotLightHelper=jd;k.SpotLightShadow=gf;k.Sprite=Pd;k.SpriteMaterial=Ib;k.SrcAlphaFactor=204;k.SrcAlphaSaturateFactor=210;k.SrcColorFactor=202;k.StaticCopyUsage=35046;k.StaticDrawUsage=35044;k.StaticReadUsage=35045;k.StereoCamera=mi;k.StreamCopyUsage=35042;k.StreamDrawUsage=35040;k.StreamReadUsage=35041;k.StringKeyframeTrack=bf;k.SubtractEquation=101;k.SubtractiveBlending=3;k.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};k.TangentSpaceNormalMap=0;k.TetrahedronBufferGeometry=

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 22 - 0
build/three.module.js


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно