Bläddra i källkod

Updated builds.

Mr.doob 5 år sedan
förälder
incheckning
c1218ac004
3 ändrade filer med 57 tillägg och 125 borttagningar
  1. 0 34
      build/three.js
  2. 57 57
      build/three.min.js
  3. 0 34
      build/three.module.js

+ 0 - 34
build/three.js

@@ -25831,40 +25831,6 @@
 
 			}
 
-			var programAttributes = program.getAttributes();
-
-			if ( material.morphTargets ) {
-
-				material.numSupportedMorphTargets = 0;
-
-				for ( var i = 0; i < _this.maxMorphTargets; i ++ ) {
-
-					if ( programAttributes[ 'morphTarget' + i ] >= 0 ) {
-
-						material.numSupportedMorphTargets ++;
-
-					}
-
-				}
-
-			}
-
-			if ( material.morphNormals ) {
-
-				material.numSupportedMorphNormals = 0;
-
-				for ( var i$1 = 0; i$1 < _this.maxMorphNormals; i$1 ++ ) {
-
-					if ( programAttributes[ 'morphNormal' + i$1 ] >= 0 ) {
-
-						material.numSupportedMorphNormals ++;
-
-					}
-
-				}
-
-			}
-
 			var uniforms = materialProperties.uniforms;
 
 			if ( ! material.isShaderMaterial &&

+ 57 - 57
build/three.min.js

@@ -12,7 +12,7 @@ void 0!==c?c.length/a:0;this.normalized=!0===b;this.usage=35044;this.updateRange
 a,b)}function ea(c,a,b){pa.call(this,new Float32Array(c),a,b)}function He(c,a,b){pa.call(this,new Float64Array(c),a,b)}function vi(c){if(0===c.length)return-Infinity;for(var a=c[0],b=1,d=c.length;b<d;++b)c[b]>a&&(a=c[b]);return a}function ka(){Object.defineProperty(this,"id",{value:kk+=2});this.uuid=xa.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=!1;this.groups=[];this.boundingSphere=this.boundingBox=null;
 this.drawRange={start:0,count:Infinity};this.userData={}}function Qa(c,a){ha.call(this);this.type="Mesh";this.geometry=void 0!==c?c:new ka;this.material=void 0!==a?a:new Kb;this.updateMorphTargets()}function wi(c,a,b,d,e,f,g,h){if(null===(1===a.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,f,g,2!==a.side,h)))return null;Of.copy(h);Of.applyMatrix4(c.matrixWorld);a=b.ray.origin.distanceTo(Of);return a<b.near||a>b.far?null:{distance:a,point:Of.clone(),object:c}}function Pf(c,a,b,d,e,f,g,
 h,k,l,m,n){yc.fromBufferAttribute(e,l);zc.fromBufferAttribute(e,m);Ac.fromBufferAttribute(e,n);e=c.morphTargetInfluences;if(a.morphTargets&&f&&e){Qf.set(0,0,0);Rf.set(0,0,0);Sf.set(0,0,0);for(var p=0,t=f.length;p<t;p++){var q=e[p],v=f[p];0!==q&&(ih.fromBufferAttribute(v,l),jh.fromBufferAttribute(v,m),kh.fromBufferAttribute(v,n),g?(Qf.addScaledVector(ih,q),Rf.addScaledVector(jh,q),Sf.addScaledVector(kh,q)):(Qf.addScaledVector(ih.sub(yc),q),Rf.addScaledVector(jh.sub(zc),q),Sf.addScaledVector(kh.sub(Ac),
-q)))}yc.add(Qf);zc.add(Rf);Ac.add(Sf)}c.isSkinnedMesh&&(c.boneTransform(l,yc),c.boneTransform(m,zc),c.boneTransform(n,Ac));if(c=wi(c,a,b,d,yc,zc,Ac,Ie))h&&(Cd.fromBufferAttribute(h,l),Dd.fromBufferAttribute(h,m),Ed.fromBufferAttribute(h,n),c.uv=Ha.getUV(Ie,yc,zc,Ac,Cd,Dd,Ed,new L)),k&&(Cd.fromBufferAttribute(k,l),Dd.fromBufferAttribute(k,m),Ed.fromBufferAttribute(k,n),c.uv2=Ha.getUV(Ie,yc,zc,Ac,Cd,Dd,Ed,new L)),h=new ad(l,m,n),Ha.getNormal(yc,zc,Ac,h.normal),c.face=h;return c}function sa(){Object.defineProperty(this,
+q)))}yc.add(Qf);zc.add(Rf);Ac.add(Sf)}c.isSkinnedMesh&&(c.boneTransform(l,yc),c.boneTransform(m,zc),c.boneTransform(n,Ac));if(c=wi(c,a,b,d,yc,zc,Ac,Ie))h&&(Cd.fromBufferAttribute(h,l),Dd.fromBufferAttribute(h,m),Ed.fromBufferAttribute(h,n),c.uv=Ga.getUV(Ie,yc,zc,Ac,Cd,Dd,Ed,new L)),k&&(Cd.fromBufferAttribute(k,l),Dd.fromBufferAttribute(k,m),Ed.fromBufferAttribute(k,n),c.uv2=Ga.getUV(Ie,yc,zc,Ac,Cd,Dd,Ed,new L)),h=new ad(l,m,n),Ga.getNormal(yc,zc,Ac,h.normal),c.face=h;return c}function sa(){Object.defineProperty(this,
 "id",{value:lk+=2});this.uuid=xa.generateUUID();this.name="";this.type="Geometry";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function Fd(c,a,b,d,e,f){sa.call(this);
 this.type="BoxGeometry";this.parameters={width:c,height:a,depth:b,widthSegments:d,heightSegments:e,depthSegments:f};this.fromBufferGeometry(new Bc(c,a,b,d,e,f));this.mergeVertices()}function Bc(c,a,b,d,e,f){function g(q,v,u,A,B,D,G,I,E,H,M){var F=D/E,K=G/H,P=D/2,V=G/2,ia=I/2;G=E+1;for(var W=H+1,aa=D=0,Z=new w,ja=0;ja<W;ja++)for(var Aa=ja*K-V,Xa=0;Xa<G;Xa++)Z[q]=(Xa*F-P)*A,Z[v]=Aa*B,Z[u]=ia,l.push(Z.x,Z.y,Z.z),Z[q]=0,Z[v]=0,Z[u]=0<I?1:-1,m.push(Z.x,Z.y,Z.z),n.push(Xa/E),n.push(1-ja/H),D+=1;for(q=0;q<
 H;q++)for(v=0;v<E;v++)u=p+v+G*(q+1),A=p+(v+1)+G*(q+1),B=p+(v+1)+G*q,k.push(p+v+G*q,u,B),k.push(u,A,B),aa+=6;h.addGroup(t,aa,M);t+=aa;p+=D}void 0===c&&(c=1);void 0===a&&(a=1);void 0===b&&(b=1);void 0===d&&(d=1);void 0===e&&(e=1);void 0===f&&(f=1);ka.call(this);this.type="BoxBufferGeometry";this.parameters={width:c,height:a,depth:b,widthSegments:d,heightSegments:e,depthSegments:f};var h=this;d=Math.floor(d);e=Math.floor(e);f=Math.floor(f);var k=[],l=[],m=[],n=[],p=0,t=0;g("z","y","x",-1,-1,b,a,c,f,
@@ -132,7 +132,7 @@ a,b){function d(y,Q,T){var ba=new Uint8Array(4),X=c.createTexture();c.bindTextur
 z[X]),B=Q,I=X;if(T!==D||ba!==G||ta!==E||va!==H)c.blendFuncSeparate(C[T],C[ba],C[ta],C[va]),D=T,G=ba,E=ta,H=va;A=y;M=null}}function h(y){F!==y&&(y?c.frontFace(2304):c.frontFace(2305),F=y)}function k(y){0!==y?(e(2884),y!==K&&(1===y?c.cullFace(1029):2===y?c.cullFace(1028):c.cullFace(1032))):f(2884);K=y}function l(y,Q,T){if(y){if(e(32823),V!==Q||ia!==T)c.polygonOffset(Q,T),V=Q,ia=T}else f(32823)}function m(y){void 0===y&&(y=33984+W-1);ja!==y&&(c.activeTexture(y),ja=y)}b=b.isWebGL2;var n=new function(){var y=
 !1,Q=new ca,T=null,ba=new ca(0,0,0,0);return{setMask:function(X){T===X||y||(c.colorMask(X,X,X,X),T=X)},setLocked:function(X){y=X},setClear:function(X,ta,va,ya,Pa){!0===Pa&&(X*=ya,ta*=ya,va*=ya);Q.set(X,ta,va,ya);!1===ba.equals(Q)&&(c.clearColor(X,ta,va,ya),ba.copy(Q))},reset:function(){y=!1;T=null;ba.set(-1,0,0,0)}}},p=new function(){var y=!1,Q=null,T=null,ba=null;return{setTest:function(X){X?e(2929):f(2929)},setMask:function(X){Q===X||y||(c.depthMask(X),Q=X)},setFunc:function(X){if(T!==X){if(X)switch(X){case 0:c.depthFunc(512);
 break;case 1:c.depthFunc(519);break;case 2:c.depthFunc(513);break;case 3:c.depthFunc(515);break;case 4:c.depthFunc(514);break;case 5:c.depthFunc(518);break;case 6:c.depthFunc(516);break;case 7:c.depthFunc(517);break;default:c.depthFunc(515)}else c.depthFunc(515);T=X}},setLocked:function(X){y=X},setClear:function(X){ba!==X&&(c.clearDepth(X),ba=X)},reset:function(){y=!1;ba=T=Q=null}}},t=new function(){var y=!1,Q=null,T=null,ba=null,X=null,ta=null,va=null,ya=null,Pa=null;return{setTest:function(U){y||
-(U?e(2960):f(2960))},setMask:function(U){Q===U||y||(c.stencilMask(U),Q=U)},setFunc:function(U,ma,wa){if(T!==U||ba!==ma||X!==wa)c.stencilFunc(U,ma,wa),T=U,ba=ma,X=wa},setOp:function(U,ma,wa){if(ta!==U||va!==ma||ya!==wa)c.stencilOp(U,ma,wa),ta=U,va=ma,ya=wa},setLocked:function(U){y=U},setClear:function(U){Pa!==U&&(c.clearStencil(U),Pa=U)},reset:function(){y=!1;Pa=ya=va=ta=X=ba=T=Q=null}}},q={},v=null,u=null,A=null,B=null,D=null,G=null,I=null,E=null,H=null,M=!1,F=null,K=null,P=null,V=null,ia=null,W=
+(U?e(2960):f(2960))},setMask:function(U){Q===U||y||(c.stencilMask(U),Q=U)},setFunc:function(U,la,wa){if(T!==U||ba!==la||X!==wa)c.stencilFunc(U,la,wa),T=U,ba=la,X=wa},setOp:function(U,la,wa){if(ta!==U||va!==la||ya!==wa)c.stencilOp(U,la,wa),ta=U,va=la,ya=wa},setLocked:function(U){y=U},setClear:function(U){Pa!==U&&(c.clearStencil(U),Pa=U)},reset:function(){y=!1;Pa=ya=va=ta=X=ba=T=Q=null}}},q={},v=null,u=null,A=null,B=null,D=null,G=null,I=null,E=null,H=null,M=!1,F=null,K=null,P=null,V=null,ia=null,W=
 c.getParameter(35661),aa=!1,Z=0;Z=c.getParameter(7938);-1!==Z.indexOf("WebGL")?(Z=parseFloat(/^WebGL ([0-9])/.exec(Z)[1]),aa=1<=Z):-1!==Z.indexOf("OpenGL ES")&&(Z=parseFloat(/^OpenGL ES ([0-9])/.exec(Z)[1]),aa=2<=Z);var ja=null,Aa={},Xa=new ca,bb=new ca,fb={};fb[3553]=d(3553,3553,1);fb[34067]=d(34067,34069,6);n.setClear(0,0,0,1);p.setClear(1);t.setClear(0);e(2929);p.setFunc(3);h(!1);k(1);e(2884);g(0);var z={100:32774,101:32778,102:32779};b?(z[103]=32775,z[104]=32776):(a=a.get("EXT_blend_minmax"),
 null!==a&&(z[103]=a.MIN_EXT,z[104]=a.MAX_EXT));var C={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};return{buffers:{color:n,depth:p,stencil:t},enable:e,disable:f,useProgram:function(y){return v!==y?(c.useProgram(y),v=y,!0):!1},setBlending:g,setMaterial:function(y,Q){2===y.side?f(2884):e(2884);var T=1===y.side;Q&&(T=!T);h(T);1===y.blending&&!1===y.transparent?g(0):g(y.blending,y.blendEquation,y.blendSrc,y.blendDst,y.blendEquationAlpha,y.blendSrcAlpha,y.blendDstAlpha,
 y.premultipliedAlpha);p.setFunc(y.depthFunc);p.setTest(y.depthTest);p.setMask(y.depthWrite);n.setMask(y.colorWrite);Q=y.stencilWrite;t.setTest(Q);Q&&(t.setMask(y.stencilWriteMask),t.setFunc(y.stencilFunc,y.stencilRef,y.stencilFuncMask),t.setOp(y.stencilFail,y.stencilZFail,y.stencilZPass));l(y.polygonOffset,y.polygonOffsetFactor,y.polygonOffsetUnits)},setFlipSided:h,setCullFace:k,setLineWidth:function(y){y!==P&&(aa&&c.lineWidth(y),P=y)},setPolygonOffset:l,setScissorTest:function(y){y?e(3089):f(3089)},
@@ -145,7 +145,7 @@ d.remove(z));z.isVideoTexture&&W.delete(z);g.memory.textures--}function v(z){z=z
 C.__webglMultisampledFramebuffer&&c.deleteFramebuffer(C.__webglMultisampledFramebuffer),C.__webglColorRenderbuffer&&c.deleteRenderbuffer(C.__webglColorRenderbuffer),C.__webglDepthRenderbuffer&&c.deleteRenderbuffer(C.__webglDepthRenderbuffer);d.remove(z.texture);d.remove(z)}g.memory.textures--}function u(z,C){var y=d.get(z);if(z.isVideoTexture){var Q=g.render.frame;W.get(z)!==Q&&(W.set(z,Q),z.update())}if(0<z.version&&y.__version!==z.version)if(Q=z.image,void 0===Q)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");
 else if(!1===Q.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{I(y,z,C);return}b.activeTexture(33984+C);b.bindTexture(3553,y.__webglTexture)}function A(z,C){if(6===z.image.length){var y=d.get(z);if(0<z.version&&y.__version!==z.version){G(y,z);b.activeTexture(33984+C);b.bindTexture(34067,y.__webglTexture);c.pixelStorei(37440,z.flipY);var Q=z&&(z.isCompressedTexture||z.image[0].isCompressedTexture),T=z.image[0]&&z.image[0].isDataTexture;C=[];for(var ba=
 0;6>ba;ba++)C[ba]=Q||T?T?z.image[ba].image:z.image[ba]:k(z.image[ba],!1,!0,P);ba=C[0];var X=l(ba)||F,ta=f.convert(z.format),va=f.convert(z.type),ya=p(z.internalFormat,ta,va);D(34067,z,X);if(Q){for(T=0;6>T;T++){var Pa=C[T].mipmaps;for(Q=0;Q<Pa.length;Q++){var U=Pa[Q];1023!==z.format&&1022!==z.format?null!==ta?b.compressedTexImage2D(34069+T,Q,ya,U.width,U.height,0,U.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):b.texImage2D(34069+
-T,Q,ya,U.width,U.height,0,ta,va,U.data)}}y.__maxMipLevel=Pa.length-1}else{Pa=z.mipmaps;for(Q=0;6>Q;Q++)if(T)for(b.texImage2D(34069+Q,0,ya,C[Q].width,C[Q].height,0,ta,va,C[Q].data),U=0;U<Pa.length;U++){var ma=Pa[U].image[Q].image;b.texImage2D(34069+Q,U+1,ya,ma.width,ma.height,0,ta,va,ma.data)}else for(b.texImage2D(34069+Q,0,ya,ta,va,C[Q]),U=0;U<Pa.length;U++)b.texImage2D(34069+Q,U+1,ya,ta,va,Pa[U].image[Q]);y.__maxMipLevel=Pa.length}m(z,X)&&n(34067,z,ba.width,ba.height);y.__version=z.version;if(z.onUpdate)z.onUpdate(z)}else b.activeTexture(33984+
+T,Q,ya,U.width,U.height,0,ta,va,U.data)}}y.__maxMipLevel=Pa.length-1}else{Pa=z.mipmaps;for(Q=0;6>Q;Q++)if(T)for(b.texImage2D(34069+Q,0,ya,C[Q].width,C[Q].height,0,ta,va,C[Q].data),U=0;U<Pa.length;U++){var la=Pa[U].image[Q].image;b.texImage2D(34069+Q,U+1,ya,la.width,la.height,0,ta,va,la.data)}else for(b.texImage2D(34069+Q,0,ya,ta,va,C[Q]),U=0;U<Pa.length;U++)b.texImage2D(34069+Q,U+1,ya,ta,va,Pa[U].image[Q]);y.__maxMipLevel=Pa.length}m(z,X)&&n(34067,z,ba.width,ba.height);y.__version=z.version;if(z.onUpdate)z.onUpdate(z)}else b.activeTexture(33984+
 C),b.bindTexture(34067,y.__webglTexture)}}function B(z,C){b.activeTexture(33984+C);b.bindTexture(34067,d.get(z).__webglTexture)}function D(z,C,y){y?(c.texParameteri(z,10242,Aa[C.wrapS]),c.texParameteri(z,10243,Aa[C.wrapT]),32879!==z&&35866!==z||c.texParameteri(z,32882,Aa[C.wrapR]),c.texParameteri(z,10240,Xa[C.magFilter]),c.texParameteri(z,10241,Xa[C.minFilter])):(c.texParameteri(z,10242,33071),c.texParameteri(z,10243,33071),32879!==z&&35866!==z||c.texParameteri(z,32882,33071),1001===C.wrapS&&1001===
 C.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),c.texParameteri(z,10240,t(C.magFilter)),c.texParameteri(z,10241,t(C.minFilter)),1003!==C.minFilter&&1006!==C.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));!(y=a.get("EXT_texture_filter_anisotropic"))||1015===C.type&&null===a.get("OES_texture_float_linear")||
 1016===C.type&&null===(F||a.get("OES_texture_half_float_linear"))||!(1<C.anisotropy||d.get(C).__currentAnisotropy)||(c.texParameterf(z,y.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(C.anisotropy,e.getMaxAnisotropy())),d.get(C).__currentAnisotropy=C.anisotropy)}function G(z,C){void 0===z.__webglInit&&(z.__webglInit=!0,C.addEventListener("dispose",q),z.__webglTexture=c.createTexture(),g.memory.textures++)}function I(z,C,y){var Q=3553;C.isDataTexture2DArray&&(Q=35866);C.isDataTexture3D&&(Q=32879);G(z,C);b.activeTexture(33984+
@@ -193,43 +193,43 @@ d.scale.value=e.scale);else if(e.isPointsMaterial){d.diffuse.value.copy(e.color)
 (d.alphaMap.value=e.alphaMap);if(e.map)var k=e.map;else e.alphaMap&&(k=e.alphaMap);void 0!==k&&(!0===k.matrixAutoUpdate&&k.updateMatrix(),d.uvTransform.value.copy(k.matrix))}else e.isShadowMaterial?(d.color.value.copy(e.color),d.opacity.value=e.opacity):e.isShaderMaterial&&(e.uniformsNeedUpdate=!1)}}}function Ne(c){function a(x,N){for(var J=0;J<x.length;J++){var O=t.getContext(x[J],N);if(null!==O)return O}return null}function b(){qa=new tk(R);Ea=new qk(R,qa,c);!1===Ea.isWebGL2&&(qa.get("WEBGL_depth_texture"),
 qa.get("OES_texture_float"),qa.get("OES_texture_half_float"),qa.get("OES_texture_half_float_linear"),qa.get("OES_standard_derivatives"),qa.get("OES_element_index_uint"),qa.get("OES_vertex_array_object"),qa.get("ANGLE_instanced_arrays"));qa.get("OES_texture_float_linear");kc=new Vi(R,qa,Ea);Ca=new Cl(R,qa,Ea);Ca.scissor(bb.copy(X).multiplyScalar(y).floor());Ca.viewport(Xa.copy(ba).multiplyScalar(y).floor());Ka=new wk(R);Ra=new sl;kb=new Dl(R,qa,Ca,Ra,Ea,kc,Ka);lc=new sk(F);Oe=new mk(R,Ea);Fb=new ok(R,
 qa,Oe,Ea);ph=new uk(R,Oe,Ka,Fb);Ld=new Ak(R,ph,Oe,Ka);Xi=new zk(R);Qb=new rk(Ra);dd=new rl(F,lc,qa,Ea,Fb,Qb);qh=new El(Ra);Uf=new vl(Ra);Md=new Bl;Hc=new nk(F,lc,Ca,Ld,D);Yi=new pk(R,qa,Ka,Ea);Zi=new vk(R,qa,Ka,Ea);Ka.programs=dd.programs;F.capabilities=Ea;F.extensions=qa;F.properties=Ra;F.renderLists=Uf;F.state=Ca;F.info=Ka}function d(x){x.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");K=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");K=!1;b()}function f(x){x=
-x.target;x.removeEventListener("dispose",f);g(x);Ra.remove(x)}function g(x){x=Ra.get(x).program;void 0!==x&&dd.releaseProgram(x)}function h(x,N){x.render(function(J){F.renderBufferImmediate(J,N)})}function k(x,N,J,O){if(!1!==x.visible){if(x.layers.test(N.layers))if(x.isGroup)J=x.renderOrder;else if(x.isLOD)!0===x.autoUpdate&&x.update(N);else if(x.isLight)M.pushLight(x),x.castShadow&&M.pushShadow(x);else if(x.isSprite){if(!x.frustumCulled||va.intersectsSprite(x)){O&&ma.setFromMatrixPosition(x.matrixWorld).applyMatrix4(U);
-var Y=Ld.update(x),na=x.material;na.visible&&H.push(x,Y,na,J,ma.z,null)}}else if(x.isImmediateRenderObject)O&&ma.setFromMatrixPosition(x.matrixWorld).applyMatrix4(U),H.push(x,null,x.material,J,ma.z,null);else if(x.isMesh||x.isLine||x.isPoints)if(x.isSkinnedMesh&&x.skeleton.frame!==Ka.render.frame&&(x.skeleton.update(),x.skeleton.frame=Ka.render.frame),!x.frustumCulled||va.intersectsObject(x))if(O&&ma.setFromMatrixPosition(x.matrixWorld).applyMatrix4(U),Y=Ld.update(x),na=x.material,Array.isArray(na))for(var la=
-Y.groups,Fa=0,Ga=la.length;Fa<Ga;Fa++){var ib=la[Fa],Ia=na[ib.materialIndex];Ia&&Ia.visible&&H.push(x,Y,Ia,J,ma.z,ib)}else na.visible&&H.push(x,Y,na,J,ma.z,null);x=x.children;Y=0;for(na=x.length;Y<na;Y++)k(x[Y],N,J,O)}}function l(x,N,J){for(var O=!0===N.isScene?N.overrideMaterial:null,Y=0,na=x.length;Y<na;Y++){var la=x[Y],Fa=la.object,Ga=la.geometry,ib=null===O?la.material:O;la=la.group;if(J.isArrayCamera){Aa=J;for(var Ia=J.cameras,ed=0,rh=Ia.length;ed<rh;ed++){var Vf=Ia[ed];Fa.layers.test(Vf.layers)&&
-(Ca.viewport(Xa.copy(Vf.viewport)),M.setupLights(Vf),m(Fa,N,Vf,Ga,ib,la))}}else Aa=null,m(Fa,N,J,Ga,ib,la)}}function m(x,N,J,O,Y,na){x.onBeforeRender(F,N,J,O,Y,na);M=Md.get(N,Aa||J);x.modelViewMatrix.multiplyMatrices(J.matrixWorldInverse,x.matrixWorld);x.normalMatrix.getNormalMatrix(x.modelViewMatrix);if(x.isImmediateRenderObject){var la=p(J,N,Y,x);Ca.setMaterial(Y);Fb.reset();h(x,la)}else F.renderBufferDirect(J,N,O,Y,x,na);x.onAfterRender(F,N,J,O,Y,na);M=Md.get(N,Aa||J)}function n(x,N,J){!0!==N.isScene&&
-(N=wa);var O=Ra.get(x),Y=M.state.lights,na=Y.state.version;J=dd.getParameters(x,Y.state,M.state.shadowsArray,N,J);var la=dd.getProgramCacheKey(J),Fa=O.program,Ga=!0;if(void 0===Fa)x.addEventListener("dispose",f);else if(Fa.cacheKey!==la)g(x);else{if(O.lightsStateVersion===na&&void 0!==J.shaderID){N=x.isMeshStandardMaterial?N.environment:null;O.envMap=lc.get(x.envMap||N);return}Ga=!1}Ga&&(J.uniforms=dd.getUniforms(x),x.onBeforeCompile(J,F),Fa=dd.acquireProgram(J,la),O.program=Fa,O.uniforms=J.uniforms,
-O.outputEncoding=J.outputEncoding);J=Fa.getAttributes();if(x.morphTargets)for(la=x.numSupportedMorphTargets=0;la<F.maxMorphTargets;la++)0<=J["morphTarget"+la]&&x.numSupportedMorphTargets++;if(x.morphNormals)for(la=x.numSupportedMorphNormals=0;la<F.maxMorphNormals;la++)0<=J["morphNormal"+la]&&x.numSupportedMorphNormals++;J=O.uniforms;if(!x.isShaderMaterial&&!x.isRawShaderMaterial||!0===x.clipping)O.numClippingPlanes=Qb.numPlanes,O.numIntersection=Qb.numIntersection,J.clippingPlanes=Qb.uniform;O.environment=
-x.isMeshStandardMaterial?N.environment:null;O.fog=N.fog;O.envMap=lc.get(x.envMap||O.environment);O.needsLights=x.isMeshLambertMaterial||x.isMeshToonMaterial||x.isMeshPhongMaterial||x.isMeshStandardMaterial||x.isShadowMaterial||x.isShaderMaterial&&!0===x.lights;O.lightsStateVersion=na;O.needsLights&&(J.ambientLightColor.value=Y.state.ambient,J.lightProbe.value=Y.state.probe,J.directionalLights.value=Y.state.directional,J.directionalLightShadows.value=Y.state.directionalShadow,J.spotLights.value=Y.state.spot,
-J.spotLightShadows.value=Y.state.spotShadow,J.rectAreaLights.value=Y.state.rectArea,J.ltc_1.value=Y.state.rectAreaLTC1,J.ltc_2.value=Y.state.rectAreaLTC2,J.pointLights.value=Y.state.point,J.pointLightShadows.value=Y.state.pointShadow,J.hemisphereLights.value=Y.state.hemi,J.directionalShadowMap.value=Y.state.directionalShadowMap,J.directionalShadowMatrix.value=Y.state.directionalShadowMatrix,J.spotShadowMap.value=Y.state.spotShadowMap,J.spotShadowMatrix.value=Y.state.spotShadowMatrix,J.pointShadowMap.value=
-Y.state.pointShadowMap,J.pointShadowMatrix.value=Y.state.pointShadowMatrix);x=O.program.getUniforms();x=Dc.seqWithValue(x.seq,J);O.uniformsList=x}function p(x,N,J,O){!0!==N.isScene&&(N=wa);kb.resetTextureUnits();var Y=N.fog,na=J.isMeshStandardMaterial?N.environment:null,la=null===W?F.outputEncoding:W.texture.encoding,Fa=lc.get(J.envMap||na),Ga=Ra.get(J),ib=M.state.lights;!0!==ya||!0!==Pa&&x===ja||Qb.setState(J,x,x===ja&&J.id===Z);J.version===Ga.__version?J.fog&&Ga.fog!==Y?n(J,N,O):Ga.environment!==
-na?n(J,N,O):Ga.needsLights&&Ga.lightsStateVersion!==ib.state.version?n(J,N,O):void 0===Ga.numClippingPlanes||Ga.numClippingPlanes===Qb.numPlanes&&Ga.numIntersection===Qb.numIntersection?Ga.outputEncoding!==la?n(J,N,O):Ga.envMap!==Fa&&n(J,N,O):n(J,N,O):(n(J,N,O),Ga.__version=J.version);var Ia=!1;ib=Fa=!1;N=Ga.program;na=N.getUniforms();la=Ga.uniforms;Ca.useProgram(N.program)&&(ib=Fa=Ia=!0);J.id!==Z&&(Z=J.id,Fa=!0);if(Ia||ja!==x){na.setValue(R,"projectionMatrix",x.projectionMatrix);Ea.logarithmicDepthBuffer&&
-na.setValue(R,"logDepthBufFC",2/(Math.log(x.far+1)/Math.LN2));ja!==x&&(ja=x,ib=Fa=!0);if(J.isShaderMaterial||J.isMeshPhongMaterial||J.isMeshToonMaterial||J.isMeshStandardMaterial||J.envMap)Ia=na.map.cameraPosition,void 0!==Ia&&Ia.setValue(R,ma.setFromMatrixPosition(x.matrixWorld));(J.isMeshPhongMaterial||J.isMeshToonMaterial||J.isMeshLambertMaterial||J.isMeshBasicMaterial||J.isMeshStandardMaterial||J.isShaderMaterial)&&na.setValue(R,"isOrthographic",!0===x.isOrthographicCamera);(J.isMeshPhongMaterial||
-J.isMeshToonMaterial||J.isMeshLambertMaterial||J.isMeshBasicMaterial||J.isMeshStandardMaterial||J.isShaderMaterial||J.isShadowMaterial||J.skinning)&&na.setValue(R,"viewMatrix",x.matrixWorldInverse)}if(J.skinning&&(na.setOptional(R,O,"bindMatrix"),na.setOptional(R,O,"bindMatrixInverse"),x=O.skeleton))if(Ia=x.bones,Ea.floatVertexTextures){if(void 0===x.boneTexture){Ia=Math.sqrt(4*Ia.length);Ia=xa.ceilPowerOfTwo(Ia);Ia=Math.max(Ia,4);var ed=new Float32Array(Ia*Ia*4);ed.set(x.boneMatrices);var rh=new bd(ed,
-Ia,Ia,1023,1015);x.boneMatrices=ed;x.boneTexture=rh;x.boneTextureSize=Ia}na.setValue(R,"boneTexture",x.boneTexture,kb);na.setValue(R,"boneTextureSize",x.boneTextureSize)}else na.setOptional(R,x,"boneMatrices");if(Fa||Ga.receiveShadow!==O.receiveShadow)Ga.receiveShadow=O.receiveShadow,na.setValue(R,"receiveShadow",O.receiveShadow);Fa&&(na.setValue(R,"toneMappingExposure",F.toneMappingExposure),Ga.needsLights&&(x=ib,la.ambientLightColor.needsUpdate=x,la.lightProbe.needsUpdate=x,la.directionalLights.needsUpdate=
-x,la.directionalLightShadows.needsUpdate=x,la.pointLights.needsUpdate=x,la.pointLightShadows.needsUpdate=x,la.spotLights.needsUpdate=x,la.spotLightShadows.needsUpdate=x,la.rectAreaLights.needsUpdate=x,la.hemisphereLights.needsUpdate=x),Y&&J.fog&&qh.refreshFogUniforms(la,Y),qh.refreshMaterialUniforms(la,J,y,C),Dc.upload(R,Ga.uniformsList,la,kb));J.isShaderMaterial&&!0===J.uniformsNeedUpdate&&(Dc.upload(R,Ga.uniformsList,la,kb),J.uniformsNeedUpdate=!1);J.isSpriteMaterial&&na.setValue(R,"center",O.center);
-na.setValue(R,"modelViewMatrix",O.modelViewMatrix);na.setValue(R,"normalMatrix",O.normalMatrix);na.setValue(R,"modelMatrix",O.matrixWorld);return N}c=c||{};var t=void 0!==c.canvas?c.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),q=void 0!==c.context?c.context:null,v=void 0!==c.alpha?c.alpha:!1,u=void 0!==c.depth?c.depth:!0,A=void 0!==c.stencil?c.stencil:!0,B=void 0!==c.antialias?c.antialias:!1,D=void 0!==c.premultipliedAlpha?c.premultipliedAlpha:!0,G=void 0!==c.preserveDrawingBuffer?
-c.preserveDrawingBuffer:!1,I=void 0!==c.powerPreference?c.powerPreference:"default",E=void 0!==c.failIfMajorPerformanceCaveat?c.failIfMajorPerformanceCaveat:!1,H=null,M=null;this.domElement=t;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.outputEncoding=3E3;this.physicallyCorrectLights=!1;this.toneMapping=0;this.toneMappingExposure=1;this.maxMorphTargets=
-8;this.maxMorphNormals=4;var F=this,K=!1,P=null,V=0,ia=0,W=null,aa=null,Z=-1,ja=null,Aa=null,Xa=new ca,bb=new ca,fb=null,z=t.width,C=t.height,y=1,Q=null,T=null,ba=new ca(0,0,z,C),X=new ca(0,0,z,C),ta=!1,va=new xb,ya=!1,Pa=!1,U=new da,ma=new w,wa={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},R=q;try{q={alpha:v,depth:u,stencil:A,antialias:B,premultipliedAlpha:D,preserveDrawingBuffer:G,powerPreference:I,failIfMajorPerformanceCaveat:E};t.addEventListener("webglcontextlost",
-d,!1);t.addEventListener("webglcontextrestored",e,!1);if(null===R&&(v=["webgl2","webgl","experimental-webgl"],!0===F.isWebGL1Renderer&&v.shift(),R=a(v,q),null===R)){if(a(v))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===R.getShaderPrecisionFormat&&(R.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(x){throw console.error("THREE.WebGLRenderer: "+x.message),x;}var qa,Ea,Ca,Ka,Ra,kb,
-lc,Oe,ph,Ld,dd,qh,Uf,Md,Qb,Hc,Xi,Yi,Zi,kc,Fb;b();var Ic=new Wi(F,R);this.xr=Ic;var $i=new Ui(F,Ld,Ea.maxTextureSize);this.shadowMap=$i;this.getContext=function(){return R};this.getContextAttributes=function(){return R.getContextAttributes()};this.forceContextLoss=function(){var x=qa.get("WEBGL_lose_context");x&&x.loseContext()};this.forceContextRestore=function(){var x=qa.get("WEBGL_lose_context");x&&x.restoreContext()};this.getPixelRatio=function(){return y};this.setPixelRatio=function(x){void 0!==
-x&&(y=x,this.setSize(z,C,!1))};this.getSize=function(x){void 0===x&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),x=new L);return x.set(z,C)};this.setSize=function(x,N,J){Ic.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(z=x,C=N,t.width=Math.floor(x*y),t.height=Math.floor(N*y),!1!==J&&(t.style.width=x+"px",t.style.height=N+"px"),this.setViewport(0,0,x,N))};this.getDrawingBufferSize=function(x){void 0===x&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),
-x=new L);return x.set(z*y,C*y).floor()};this.setDrawingBufferSize=function(x,N,J){z=x;C=N;y=J;t.width=Math.floor(x*J);t.height=Math.floor(N*J);this.setViewport(0,0,x,N)};this.getCurrentViewport=function(x){void 0===x&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),x=new ca);return x.copy(Xa)};this.getViewport=function(x){return x.copy(ba)};this.setViewport=function(x,N,J,O){x.isVector4?ba.set(x.x,x.y,x.z,x.w):ba.set(x,N,J,O);Ca.viewport(Xa.copy(ba).multiplyScalar(y).floor())};
-this.getScissor=function(x){return x.copy(X)};this.setScissor=function(x,N,J,O){x.isVector4?X.set(x.x,x.y,x.z,x.w):X.set(x,N,J,O);Ca.scissor(bb.copy(X).multiplyScalar(y).floor())};this.getScissorTest=function(){return ta};this.setScissorTest=function(x){Ca.setScissorTest(ta=x)};this.setOpaqueSort=function(x){Q=x};this.setTransparentSort=function(x){T=x};this.getClearColor=function(){return Hc.getClearColor()};this.setClearColor=function(){Hc.setClearColor.apply(Hc,arguments)};this.getClearAlpha=function(){return Hc.getClearAlpha()};
-this.setClearAlpha=function(){Hc.setClearAlpha.apply(Hc,arguments)};this.clear=function(x,N,J){var O=0;if(void 0===x||x)O|=16384;if(void 0===N||N)O|=256;if(void 0===J||J)O|=1024;R.clear(O)};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(){t.removeEventListener("webglcontextlost",d,!1);t.removeEventListener("webglcontextrestored",e,!1);Uf.dispose();Md.dispose();Ra.dispose();lc.dispose();
-Ld.dispose();Fb.dispose();Ic.dispose();Pe.stop()};this.renderBufferImmediate=function(x,N){Fb.initAttributes();var J=Ra.get(x);x.hasPositions&&!J.position&&(J.position=R.createBuffer());x.hasNormals&&!J.normal&&(J.normal=R.createBuffer());x.hasUvs&&!J.uv&&(J.uv=R.createBuffer());x.hasColors&&!J.color&&(J.color=R.createBuffer());N=N.getAttributes();x.hasPositions&&(R.bindBuffer(34962,J.position),R.bufferData(34962,x.positionArray,35048),Fb.enableAttribute(N.position),R.vertexAttribPointer(N.position,
-3,5126,!1,0,0));x.hasNormals&&(R.bindBuffer(34962,J.normal),R.bufferData(34962,x.normalArray,35048),Fb.enableAttribute(N.normal),R.vertexAttribPointer(N.normal,3,5126,!1,0,0));x.hasUvs&&(R.bindBuffer(34962,J.uv),R.bufferData(34962,x.uvArray,35048),Fb.enableAttribute(N.uv),R.vertexAttribPointer(N.uv,2,5126,!1,0,0));x.hasColors&&(R.bindBuffer(34962,J.color),R.bufferData(34962,x.colorArray,35048),Fb.enableAttribute(N.color),R.vertexAttribPointer(N.color,3,5126,!1,0,0));Fb.disableUnusedAttributes();R.drawArrays(4,
-0,x.count);x.count=0};this.renderBufferDirect=function(x,N,J,O,Y,na){null===N&&(N=wa);var la=Y.isMesh&&0>Y.matrixWorld.determinant();x=p(x,N,O,Y);Ca.setMaterial(O,la);la=J.index;N=J.attributes.position;if(null===la){if(void 0===N||0===N.count)return}else if(0===la.count)return;var Fa=1;!0===O.wireframe&&(la=ph.getWireframeAttribute(J),Fa=2);(O.morphTargets||O.morphNormals)&&Xi.update(Y,J,O,x);Fb.setup(Y,O,x,J,la);x=Yi;if(null!==la){var Ga=Oe.get(la);x=Zi;x.setIndex(Ga)}var ib=J.drawRange.start*Fa,
-Ia=null!==na?na.start*Fa:0;Ga=Math.max(ib,Ia);na=Math.max(0,Math.min(null!==la?la.count:N.count,ib+J.drawRange.count*Fa,Ia+(null!==na?na.count*Fa:Infinity))-1-Ga+1);0!==na&&(Y.isMesh?!0===O.wireframe?(Ca.setLineWidth(O.wireframeLinewidth*(null===W?y:1)),x.setMode(1)):x.setMode(4):Y.isLine?(O=O.linewidth,void 0===O&&(O=1),Ca.setLineWidth(O*(null===W?y:1)),Y.isLineSegments?x.setMode(1):Y.isLineLoop?x.setMode(2):x.setMode(3)):Y.isPoints?x.setMode(0):Y.isSprite&&x.setMode(4),Y.isInstancedMesh?x.renderInstances(Ga,
-na,Y.count):J.isInstancedBufferGeometry?x.renderInstances(Ga,na,Math.min(J.instanceCount,J._maxInstanceCount)):x.render(Ga,na))};this.compile=function(x,N){M=Md.get(x,N);M.init();x.traverse(function(O){O.isLight&&(M.pushLight(O),O.castShadow&&M.pushShadow(O))});M.setupLights(N);var J=new WeakMap;x.traverse(function(O){var Y=O.material;if(Y)if(Array.isArray(Y))for(var na=0;na<Y.length;na++){var la=Y[na];!1===J.has(la)&&(n(la,x,O),J.set(la))}else!1===J.has(Y)&&(n(Y,x,O),J.set(Y))})};var sh=null,Pe=
-new xi;Pe.setAnimationLoop(function(x){Ic.isPresenting||sh&&sh(x)});"undefined"!==typeof window&&Pe.setContext(window);this.setAnimationLoop=function(x){sh=x;Ic.setAnimationLoop(x);null===x?Pe.stop():Pe.start()};this.render=function(x,N,J,O){if(void 0!==J){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");var Y=J}if(void 0!==O){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");
-var na=O}if(void 0!==N&&!0!==N.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!0!==K){Fb.resetDefaultState();Z=-1;ja=null;!0===x.autoUpdate&&x.updateMatrixWorld();null===N.parent&&N.updateMatrixWorld();!0===Ic.enabled&&!0===Ic.isPresenting&&(N=Ic.getCamera(N));if(!0===x.isScene)x.onBeforeRender(F,x,N,Y||W);M=Md.get(x,N);M.init();U.multiplyMatrices(N.projectionMatrix,N.matrixWorldInverse);va.setFromProjectionMatrix(U);Pa=this.localClippingEnabled;
-ya=Qb.init(this.clippingPlanes,Pa,N);H=Uf.get(x,N);H.init();k(x,N,0,F.sortObjects);H.finish();!0===F.sortObjects&&H.sort(Q,T);!0===ya&&Qb.beginShadows();$i.render(M.state.shadowsArray,x,N);M.setupLights(N);!0===ya&&Qb.endShadows();!0===this.info.autoReset&&this.info.reset();void 0!==Y&&this.setRenderTarget(Y);Hc.render(H,x,N,na);J=H.opaque;O=H.transparent;0<J.length&&l(J,x,N);0<O.length&&l(O,x,N);if(!0===x.isScene)x.onAfterRender(F,x,N);null!==W&&(kb.updateRenderTargetMipmap(W),kb.updateMultisampleRenderTarget(W));
-Ca.buffers.depth.setTest(!0);Ca.buffers.depth.setMask(!0);Ca.buffers.color.setMask(!0);Ca.setPolygonOffset(!1);M=H=null}};this.setFramebuffer=function(x){P!==x&&null===W&&R.bindFramebuffer(36160,x);P=x};this.getActiveCubeFace=function(){return V};this.getActiveMipmapLevel=function(){return ia};this.getRenderList=function(){return H};this.setRenderList=function(x){H=x};this.getRenderState=function(){return M};this.setRenderState=function(x){M=x};this.getRenderTarget=function(){return W};this.setRenderTarget=
-function(x,N,J){W=x;V=N;ia=J;x&&void 0===Ra.get(x).__webglFramebuffer&&kb.setupRenderTarget(x);var O=P,Y=!1;x?(O=Ra.get(x).__webglFramebuffer,x.isWebGLCubeRenderTarget?(O=O[N||0],Y=!0):O=x.isWebGLMultisampleRenderTarget?Ra.get(x).__webglMultisampledFramebuffer:O,Xa.copy(x.viewport),bb.copy(x.scissor),fb=x.scissorTest):(Xa.copy(ba).multiplyScalar(y).floor(),bb.copy(X).multiplyScalar(y).floor(),fb=ta);aa!==O&&(R.bindFramebuffer(36160,O),aa=O);Ca.viewport(Xa);Ca.scissor(bb);Ca.setScissorTest(fb);Y&&
-(x=Ra.get(x.texture),R.framebufferTexture2D(36160,36064,34069+(N||0),x.__webglTexture,J||0))};this.readRenderTargetPixels=function(x,N,J,O,Y,na,la){if(x&&x.isWebGLRenderTarget){var Fa=Ra.get(x).__webglFramebuffer;x.isWebGLCubeRenderTarget&&void 0!==la&&(Fa=Fa[la]);if(Fa){la=!1;Fa!==aa&&(R.bindFramebuffer(36160,Fa),la=!0);try{var Ga=x.texture,ib=Ga.format,Ia=Ga.type;1023!==ib&&kc.convert(ib)!==R.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):
-1009===Ia||kc.convert(Ia)===R.getParameter(35738)||1015===Ia&&(Ea.isWebGL2||qa.get("OES_texture_float")||qa.get("WEBGL_color_buffer_float"))||1016===Ia&&(Ea.isWebGL2?qa.get("EXT_color_buffer_float"):qa.get("EXT_color_buffer_half_float"))?36053===R.checkFramebufferStatus(36160)?0<=N&&N<=x.width-O&&0<=J&&J<=x.height-Y&&R.readPixels(N,J,O,Y,kc.convert(ib),kc.convert(Ia),na):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{la&&
-R.bindFramebuffer(36160,aa)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(x,N,J){void 0===J&&(J=0);var O=Math.pow(2,-J),Y=Math.floor(N.image.width*O);O=Math.floor(N.image.height*O);var na=kc.convert(N.format);kb.setTexture2D(N,0);R.copyTexImage2D(3553,J,na,x.x,x.y,Y,O,0);Ca.unbindTexture()};this.copyTextureToTexture=function(x,N,J,O){void 0===O&&(O=0);var Y=N.image.width,na=N.image.height,la=
-kc.convert(J.format),Fa=kc.convert(J.type);kb.setTexture2D(J,0);R.pixelStorei(37440,J.flipY);R.pixelStorei(37441,J.premultiplyAlpha);R.pixelStorei(3317,J.unpackAlignment);N.isDataTexture?R.texSubImage2D(3553,O,x.x,x.y,Y,na,la,Fa,N.image.data):N.isCompressedTexture?R.compressedTexSubImage2D(3553,O,x.x,x.y,N.mipmaps[0].width,N.mipmaps[0].height,la,N.mipmaps[0].data):R.texSubImage2D(3553,O,x.x,x.y,la,Fa,N.image);0===O&&J.generateMipmaps&&R.generateMipmap(3553);Ca.unbindTexture()};this.initTexture=function(x){kb.setTexture2D(x,
+x.target;x.removeEventListener("dispose",f);g(x);Ra.remove(x)}function g(x){x=Ra.get(x).program;void 0!==x&&dd.releaseProgram(x)}function h(x,N){x.render(function(J){F.renderBufferImmediate(J,N)})}function k(x,N,J,O){if(!1!==x.visible){if(x.layers.test(N.layers))if(x.isGroup)J=x.renderOrder;else if(x.isLOD)!0===x.autoUpdate&&x.update(N);else if(x.isLight)M.pushLight(x),x.castShadow&&M.pushShadow(x);else if(x.isSprite){if(!x.frustumCulled||va.intersectsSprite(x)){O&&la.setFromMatrixPosition(x.matrixWorld).applyMatrix4(U);
+var Y=Ld.update(x),ma=x.material;ma.visible&&H.push(x,Y,ma,J,la.z,null)}}else if(x.isImmediateRenderObject)O&&la.setFromMatrixPosition(x.matrixWorld).applyMatrix4(U),H.push(x,null,x.material,J,la.z,null);else if(x.isMesh||x.isLine||x.isPoints)if(x.isSkinnedMesh&&x.skeleton.frame!==Ka.render.frame&&(x.skeleton.update(),x.skeleton.frame=Ka.render.frame),!x.frustumCulled||va.intersectsObject(x))if(O&&la.setFromMatrixPosition(x.matrixWorld).applyMatrix4(U),Y=Ld.update(x),ma=x.material,Array.isArray(ma))for(var na=
+Y.groups,Ha=0,Fa=na.length;Ha<Fa;Ha++){var ib=na[Ha],Ia=ma[ib.materialIndex];Ia&&Ia.visible&&H.push(x,Y,Ia,J,la.z,ib)}else ma.visible&&H.push(x,Y,ma,J,la.z,null);x=x.children;Y=0;for(ma=x.length;Y<ma;Y++)k(x[Y],N,J,O)}}function l(x,N,J){for(var O=!0===N.isScene?N.overrideMaterial:null,Y=0,ma=x.length;Y<ma;Y++){var na=x[Y],Ha=na.object,Fa=na.geometry,ib=null===O?na.material:O;na=na.group;if(J.isArrayCamera){Aa=J;for(var Ia=J.cameras,ed=0,rh=Ia.length;ed<rh;ed++){var Vf=Ia[ed];Ha.layers.test(Vf.layers)&&
+(Ca.viewport(Xa.copy(Vf.viewport)),M.setupLights(Vf),m(Ha,N,Vf,Fa,ib,na))}}else Aa=null,m(Ha,N,J,Fa,ib,na)}}function m(x,N,J,O,Y,ma){x.onBeforeRender(F,N,J,O,Y,ma);M=Md.get(N,Aa||J);x.modelViewMatrix.multiplyMatrices(J.matrixWorldInverse,x.matrixWorld);x.normalMatrix.getNormalMatrix(x.modelViewMatrix);if(x.isImmediateRenderObject){var na=p(J,N,Y,x);Ca.setMaterial(Y);Fb.reset();h(x,na)}else F.renderBufferDirect(J,N,O,Y,x,ma);x.onAfterRender(F,N,J,O,Y,ma);M=Md.get(N,Aa||J)}function n(x,N,J){!0!==N.isScene&&
+(N=wa);var O=Ra.get(x),Y=M.state.lights,ma=Y.state.version;J=dd.getParameters(x,Y.state,M.state.shadowsArray,N,J);var na=dd.getProgramCacheKey(J),Ha=O.program,Fa=!0;if(void 0===Ha)x.addEventListener("dispose",f);else if(Ha.cacheKey!==na)g(x);else{if(O.lightsStateVersion===ma&&void 0!==J.shaderID){N=x.isMeshStandardMaterial?N.environment:null;O.envMap=lc.get(x.envMap||N);return}Fa=!1}Fa&&(J.uniforms=dd.getUniforms(x),x.onBeforeCompile(J,F),Ha=dd.acquireProgram(J,na),O.program=Ha,O.uniforms=J.uniforms,
+O.outputEncoding=J.outputEncoding);J=O.uniforms;if(!x.isShaderMaterial&&!x.isRawShaderMaterial||!0===x.clipping)O.numClippingPlanes=Qb.numPlanes,O.numIntersection=Qb.numIntersection,J.clippingPlanes=Qb.uniform;O.environment=x.isMeshStandardMaterial?N.environment:null;O.fog=N.fog;O.envMap=lc.get(x.envMap||O.environment);O.needsLights=x.isMeshLambertMaterial||x.isMeshToonMaterial||x.isMeshPhongMaterial||x.isMeshStandardMaterial||x.isShadowMaterial||x.isShaderMaterial&&!0===x.lights;O.lightsStateVersion=
+ma;O.needsLights&&(J.ambientLightColor.value=Y.state.ambient,J.lightProbe.value=Y.state.probe,J.directionalLights.value=Y.state.directional,J.directionalLightShadows.value=Y.state.directionalShadow,J.spotLights.value=Y.state.spot,J.spotLightShadows.value=Y.state.spotShadow,J.rectAreaLights.value=Y.state.rectArea,J.ltc_1.value=Y.state.rectAreaLTC1,J.ltc_2.value=Y.state.rectAreaLTC2,J.pointLights.value=Y.state.point,J.pointLightShadows.value=Y.state.pointShadow,J.hemisphereLights.value=Y.state.hemi,
+J.directionalShadowMap.value=Y.state.directionalShadowMap,J.directionalShadowMatrix.value=Y.state.directionalShadowMatrix,J.spotShadowMap.value=Y.state.spotShadowMap,J.spotShadowMatrix.value=Y.state.spotShadowMatrix,J.pointShadowMap.value=Y.state.pointShadowMap,J.pointShadowMatrix.value=Y.state.pointShadowMatrix);x=O.program.getUniforms();x=Dc.seqWithValue(x.seq,J);O.uniformsList=x}function p(x,N,J,O){!0!==N.isScene&&(N=wa);kb.resetTextureUnits();var Y=N.fog,ma=J.isMeshStandardMaterial?N.environment:
+null,na=null===W?F.outputEncoding:W.texture.encoding,Ha=lc.get(J.envMap||ma),Fa=Ra.get(J),ib=M.state.lights;!0!==ya||!0!==Pa&&x===ja||Qb.setState(J,x,x===ja&&J.id===Z);J.version===Fa.__version?J.fog&&Fa.fog!==Y?n(J,N,O):Fa.environment!==ma?n(J,N,O):Fa.needsLights&&Fa.lightsStateVersion!==ib.state.version?n(J,N,O):void 0===Fa.numClippingPlanes||Fa.numClippingPlanes===Qb.numPlanes&&Fa.numIntersection===Qb.numIntersection?Fa.outputEncoding!==na?n(J,N,O):Fa.envMap!==Ha&&n(J,N,O):n(J,N,O):(n(J,N,O),Fa.__version=
+J.version);var Ia=!1;ib=Ha=!1;N=Fa.program;ma=N.getUniforms();na=Fa.uniforms;Ca.useProgram(N.program)&&(ib=Ha=Ia=!0);J.id!==Z&&(Z=J.id,Ha=!0);if(Ia||ja!==x){ma.setValue(R,"projectionMatrix",x.projectionMatrix);Ea.logarithmicDepthBuffer&&ma.setValue(R,"logDepthBufFC",2/(Math.log(x.far+1)/Math.LN2));ja!==x&&(ja=x,ib=Ha=!0);if(J.isShaderMaterial||J.isMeshPhongMaterial||J.isMeshToonMaterial||J.isMeshStandardMaterial||J.envMap)Ia=ma.map.cameraPosition,void 0!==Ia&&Ia.setValue(R,la.setFromMatrixPosition(x.matrixWorld));
+(J.isMeshPhongMaterial||J.isMeshToonMaterial||J.isMeshLambertMaterial||J.isMeshBasicMaterial||J.isMeshStandardMaterial||J.isShaderMaterial)&&ma.setValue(R,"isOrthographic",!0===x.isOrthographicCamera);(J.isMeshPhongMaterial||J.isMeshToonMaterial||J.isMeshLambertMaterial||J.isMeshBasicMaterial||J.isMeshStandardMaterial||J.isShaderMaterial||J.isShadowMaterial||J.skinning)&&ma.setValue(R,"viewMatrix",x.matrixWorldInverse)}if(J.skinning&&(ma.setOptional(R,O,"bindMatrix"),ma.setOptional(R,O,"bindMatrixInverse"),
+x=O.skeleton))if(Ia=x.bones,Ea.floatVertexTextures){if(void 0===x.boneTexture){Ia=Math.sqrt(4*Ia.length);Ia=xa.ceilPowerOfTwo(Ia);Ia=Math.max(Ia,4);var ed=new Float32Array(Ia*Ia*4);ed.set(x.boneMatrices);var rh=new bd(ed,Ia,Ia,1023,1015);x.boneMatrices=ed;x.boneTexture=rh;x.boneTextureSize=Ia}ma.setValue(R,"boneTexture",x.boneTexture,kb);ma.setValue(R,"boneTextureSize",x.boneTextureSize)}else ma.setOptional(R,x,"boneMatrices");if(Ha||Fa.receiveShadow!==O.receiveShadow)Fa.receiveShadow=O.receiveShadow,
+ma.setValue(R,"receiveShadow",O.receiveShadow);Ha&&(ma.setValue(R,"toneMappingExposure",F.toneMappingExposure),Fa.needsLights&&(x=ib,na.ambientLightColor.needsUpdate=x,na.lightProbe.needsUpdate=x,na.directionalLights.needsUpdate=x,na.directionalLightShadows.needsUpdate=x,na.pointLights.needsUpdate=x,na.pointLightShadows.needsUpdate=x,na.spotLights.needsUpdate=x,na.spotLightShadows.needsUpdate=x,na.rectAreaLights.needsUpdate=x,na.hemisphereLights.needsUpdate=x),Y&&J.fog&&qh.refreshFogUniforms(na,Y),
+qh.refreshMaterialUniforms(na,J,y,C),Dc.upload(R,Fa.uniformsList,na,kb));J.isShaderMaterial&&!0===J.uniformsNeedUpdate&&(Dc.upload(R,Fa.uniformsList,na,kb),J.uniformsNeedUpdate=!1);J.isSpriteMaterial&&ma.setValue(R,"center",O.center);ma.setValue(R,"modelViewMatrix",O.modelViewMatrix);ma.setValue(R,"normalMatrix",O.normalMatrix);ma.setValue(R,"modelMatrix",O.matrixWorld);return N}c=c||{};var t=void 0!==c.canvas?c.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),q=void 0!==c.context?
+c.context:null,v=void 0!==c.alpha?c.alpha:!1,u=void 0!==c.depth?c.depth:!0,A=void 0!==c.stencil?c.stencil:!0,B=void 0!==c.antialias?c.antialias:!1,D=void 0!==c.premultipliedAlpha?c.premultipliedAlpha:!0,G=void 0!==c.preserveDrawingBuffer?c.preserveDrawingBuffer:!1,I=void 0!==c.powerPreference?c.powerPreference:"default",E=void 0!==c.failIfMajorPerformanceCaveat?c.failIfMajorPerformanceCaveat:!1,H=null,M=null;this.domElement=t;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=
+this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.outputEncoding=3E3;this.physicallyCorrectLights=!1;this.toneMapping=0;this.toneMappingExposure=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var F=this,K=!1,P=null,V=0,ia=0,W=null,aa=null,Z=-1,ja=null,Aa=null,Xa=new ca,bb=new ca,fb=null,z=t.width,C=t.height,y=1,Q=null,T=null,ba=new ca(0,0,z,C),X=new ca(0,0,z,C),ta=!1,va=new xb,ya=!1,Pa=!1,U=new da,la=new w,wa={background:null,
+fog:null,environment:null,overrideMaterial:null,isScene:!0},R=q;try{q={alpha:v,depth:u,stencil:A,antialias:B,premultipliedAlpha:D,preserveDrawingBuffer:G,powerPreference:I,failIfMajorPerformanceCaveat:E};t.addEventListener("webglcontextlost",d,!1);t.addEventListener("webglcontextrestored",e,!1);if(null===R&&(v=["webgl2","webgl","experimental-webgl"],!0===F.isWebGL1Renderer&&v.shift(),R=a(v,q),null===R)){if(a(v))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");
+}void 0===R.getShaderPrecisionFormat&&(R.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(x){throw console.error("THREE.WebGLRenderer: "+x.message),x;}var qa,Ea,Ca,Ka,Ra,kb,lc,Oe,ph,Ld,dd,qh,Uf,Md,Qb,Hc,Xi,Yi,Zi,kc,Fb;b();var Ic=new Wi(F,R);this.xr=Ic;var $i=new Ui(F,Ld,Ea.maxTextureSize);this.shadowMap=$i;this.getContext=function(){return R};this.getContextAttributes=function(){return R.getContextAttributes()};this.forceContextLoss=function(){var x=qa.get("WEBGL_lose_context");
+x&&x.loseContext()};this.forceContextRestore=function(){var x=qa.get("WEBGL_lose_context");x&&x.restoreContext()};this.getPixelRatio=function(){return y};this.setPixelRatio=function(x){void 0!==x&&(y=x,this.setSize(z,C,!1))};this.getSize=function(x){void 0===x&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),x=new L);return x.set(z,C)};this.setSize=function(x,N,J){Ic.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):
+(z=x,C=N,t.width=Math.floor(x*y),t.height=Math.floor(N*y),!1!==J&&(t.style.width=x+"px",t.style.height=N+"px"),this.setViewport(0,0,x,N))};this.getDrawingBufferSize=function(x){void 0===x&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),x=new L);return x.set(z*y,C*y).floor()};this.setDrawingBufferSize=function(x,N,J){z=x;C=N;y=J;t.width=Math.floor(x*J);t.height=Math.floor(N*J);this.setViewport(0,0,x,N)};this.getCurrentViewport=function(x){void 0===x&&
+(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),x=new ca);return x.copy(Xa)};this.getViewport=function(x){return x.copy(ba)};this.setViewport=function(x,N,J,O){x.isVector4?ba.set(x.x,x.y,x.z,x.w):ba.set(x,N,J,O);Ca.viewport(Xa.copy(ba).multiplyScalar(y).floor())};this.getScissor=function(x){return x.copy(X)};this.setScissor=function(x,N,J,O){x.isVector4?X.set(x.x,x.y,x.z,x.w):X.set(x,N,J,O);Ca.scissor(bb.copy(X).multiplyScalar(y).floor())};this.getScissorTest=
+function(){return ta};this.setScissorTest=function(x){Ca.setScissorTest(ta=x)};this.setOpaqueSort=function(x){Q=x};this.setTransparentSort=function(x){T=x};this.getClearColor=function(){return Hc.getClearColor()};this.setClearColor=function(){Hc.setClearColor.apply(Hc,arguments)};this.getClearAlpha=function(){return Hc.getClearAlpha()};this.setClearAlpha=function(){Hc.setClearAlpha.apply(Hc,arguments)};this.clear=function(x,N,J){var O=0;if(void 0===x||x)O|=16384;if(void 0===N||N)O|=256;if(void 0===
+J||J)O|=1024;R.clear(O)};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(){t.removeEventListener("webglcontextlost",d,!1);t.removeEventListener("webglcontextrestored",e,!1);Uf.dispose();Md.dispose();Ra.dispose();lc.dispose();Ld.dispose();Fb.dispose();Ic.dispose();Pe.stop()};this.renderBufferImmediate=function(x,N){Fb.initAttributes();var J=Ra.get(x);x.hasPositions&&!J.position&&
+(J.position=R.createBuffer());x.hasNormals&&!J.normal&&(J.normal=R.createBuffer());x.hasUvs&&!J.uv&&(J.uv=R.createBuffer());x.hasColors&&!J.color&&(J.color=R.createBuffer());N=N.getAttributes();x.hasPositions&&(R.bindBuffer(34962,J.position),R.bufferData(34962,x.positionArray,35048),Fb.enableAttribute(N.position),R.vertexAttribPointer(N.position,3,5126,!1,0,0));x.hasNormals&&(R.bindBuffer(34962,J.normal),R.bufferData(34962,x.normalArray,35048),Fb.enableAttribute(N.normal),R.vertexAttribPointer(N.normal,
+3,5126,!1,0,0));x.hasUvs&&(R.bindBuffer(34962,J.uv),R.bufferData(34962,x.uvArray,35048),Fb.enableAttribute(N.uv),R.vertexAttribPointer(N.uv,2,5126,!1,0,0));x.hasColors&&(R.bindBuffer(34962,J.color),R.bufferData(34962,x.colorArray,35048),Fb.enableAttribute(N.color),R.vertexAttribPointer(N.color,3,5126,!1,0,0));Fb.disableUnusedAttributes();R.drawArrays(4,0,x.count);x.count=0};this.renderBufferDirect=function(x,N,J,O,Y,ma){null===N&&(N=wa);var na=Y.isMesh&&0>Y.matrixWorld.determinant();x=p(x,N,O,Y);
+Ca.setMaterial(O,na);na=J.index;N=J.attributes.position;if(null===na){if(void 0===N||0===N.count)return}else if(0===na.count)return;var Ha=1;!0===O.wireframe&&(na=ph.getWireframeAttribute(J),Ha=2);(O.morphTargets||O.morphNormals)&&Xi.update(Y,J,O,x);Fb.setup(Y,O,x,J,na);x=Yi;if(null!==na){var Fa=Oe.get(na);x=Zi;x.setIndex(Fa)}var ib=J.drawRange.start*Ha,Ia=null!==ma?ma.start*Ha:0;Fa=Math.max(ib,Ia);ma=Math.max(0,Math.min(null!==na?na.count:N.count,ib+J.drawRange.count*Ha,Ia+(null!==ma?ma.count*Ha:
+Infinity))-1-Fa+1);0!==ma&&(Y.isMesh?!0===O.wireframe?(Ca.setLineWidth(O.wireframeLinewidth*(null===W?y:1)),x.setMode(1)):x.setMode(4):Y.isLine?(O=O.linewidth,void 0===O&&(O=1),Ca.setLineWidth(O*(null===W?y:1)),Y.isLineSegments?x.setMode(1):Y.isLineLoop?x.setMode(2):x.setMode(3)):Y.isPoints?x.setMode(0):Y.isSprite&&x.setMode(4),Y.isInstancedMesh?x.renderInstances(Fa,ma,Y.count):J.isInstancedBufferGeometry?x.renderInstances(Fa,ma,Math.min(J.instanceCount,J._maxInstanceCount)):x.render(Fa,ma))};this.compile=
+function(x,N){M=Md.get(x,N);M.init();x.traverse(function(O){O.isLight&&(M.pushLight(O),O.castShadow&&M.pushShadow(O))});M.setupLights(N);var J=new WeakMap;x.traverse(function(O){var Y=O.material;if(Y)if(Array.isArray(Y))for(var ma=0;ma<Y.length;ma++){var na=Y[ma];!1===J.has(na)&&(n(na,x,O),J.set(na))}else!1===J.has(Y)&&(n(Y,x,O),J.set(Y))})};var sh=null,Pe=new xi;Pe.setAnimationLoop(function(x){Ic.isPresenting||sh&&sh(x)});"undefined"!==typeof window&&Pe.setContext(window);this.setAnimationLoop=function(x){sh=
+x;Ic.setAnimationLoop(x);null===x?Pe.stop():Pe.start()};this.render=function(x,N,J,O){if(void 0!==J){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");var Y=J}if(void 0!==O){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");var ma=O}if(void 0!==N&&!0!==N.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!0!==K){Fb.resetDefaultState();
+Z=-1;ja=null;!0===x.autoUpdate&&x.updateMatrixWorld();null===N.parent&&N.updateMatrixWorld();!0===Ic.enabled&&!0===Ic.isPresenting&&(N=Ic.getCamera(N));if(!0===x.isScene)x.onBeforeRender(F,x,N,Y||W);M=Md.get(x,N);M.init();U.multiplyMatrices(N.projectionMatrix,N.matrixWorldInverse);va.setFromProjectionMatrix(U);Pa=this.localClippingEnabled;ya=Qb.init(this.clippingPlanes,Pa,N);H=Uf.get(x,N);H.init();k(x,N,0,F.sortObjects);H.finish();!0===F.sortObjects&&H.sort(Q,T);!0===ya&&Qb.beginShadows();$i.render(M.state.shadowsArray,
+x,N);M.setupLights(N);!0===ya&&Qb.endShadows();!0===this.info.autoReset&&this.info.reset();void 0!==Y&&this.setRenderTarget(Y);Hc.render(H,x,N,ma);J=H.opaque;O=H.transparent;0<J.length&&l(J,x,N);0<O.length&&l(O,x,N);if(!0===x.isScene)x.onAfterRender(F,x,N);null!==W&&(kb.updateRenderTargetMipmap(W),kb.updateMultisampleRenderTarget(W));Ca.buffers.depth.setTest(!0);Ca.buffers.depth.setMask(!0);Ca.buffers.color.setMask(!0);Ca.setPolygonOffset(!1);M=H=null}};this.setFramebuffer=function(x){P!==x&&null===
+W&&R.bindFramebuffer(36160,x);P=x};this.getActiveCubeFace=function(){return V};this.getActiveMipmapLevel=function(){return ia};this.getRenderList=function(){return H};this.setRenderList=function(x){H=x};this.getRenderState=function(){return M};this.setRenderState=function(x){M=x};this.getRenderTarget=function(){return W};this.setRenderTarget=function(x,N,J){W=x;V=N;ia=J;x&&void 0===Ra.get(x).__webglFramebuffer&&kb.setupRenderTarget(x);var O=P,Y=!1;x?(O=Ra.get(x).__webglFramebuffer,x.isWebGLCubeRenderTarget?
+(O=O[N||0],Y=!0):O=x.isWebGLMultisampleRenderTarget?Ra.get(x).__webglMultisampledFramebuffer:O,Xa.copy(x.viewport),bb.copy(x.scissor),fb=x.scissorTest):(Xa.copy(ba).multiplyScalar(y).floor(),bb.copy(X).multiplyScalar(y).floor(),fb=ta);aa!==O&&(R.bindFramebuffer(36160,O),aa=O);Ca.viewport(Xa);Ca.scissor(bb);Ca.setScissorTest(fb);Y&&(x=Ra.get(x.texture),R.framebufferTexture2D(36160,36064,34069+(N||0),x.__webglTexture,J||0))};this.readRenderTargetPixels=function(x,N,J,O,Y,ma,na){if(x&&x.isWebGLRenderTarget){var Ha=
+Ra.get(x).__webglFramebuffer;x.isWebGLCubeRenderTarget&&void 0!==na&&(Ha=Ha[na]);if(Ha){na=!1;Ha!==aa&&(R.bindFramebuffer(36160,Ha),na=!0);try{var Fa=x.texture,ib=Fa.format,Ia=Fa.type;1023!==ib&&kc.convert(ib)!==R.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===Ia||kc.convert(Ia)===R.getParameter(35738)||1015===Ia&&(Ea.isWebGL2||qa.get("OES_texture_float")||qa.get("WEBGL_color_buffer_float"))||1016===
+Ia&&(Ea.isWebGL2?qa.get("EXT_color_buffer_float"):qa.get("EXT_color_buffer_half_float"))?36053===R.checkFramebufferStatus(36160)?0<=N&&N<=x.width-O&&0<=J&&J<=x.height-Y&&R.readPixels(N,J,O,Y,kc.convert(ib),kc.convert(Ia),ma):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{na&&R.bindFramebuffer(36160,
+aa)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(x,N,J){void 0===J&&(J=0);var O=Math.pow(2,-J),Y=Math.floor(N.image.width*O);O=Math.floor(N.image.height*O);var ma=kc.convert(N.format);kb.setTexture2D(N,0);R.copyTexImage2D(3553,J,ma,x.x,x.y,Y,O,0);Ca.unbindTexture()};this.copyTextureToTexture=function(x,N,J,O){void 0===O&&(O=0);var Y=N.image.width,ma=N.image.height,na=kc.convert(J.format),Ha=
+kc.convert(J.type);kb.setTexture2D(J,0);R.pixelStorei(37440,J.flipY);R.pixelStorei(37441,J.premultiplyAlpha);R.pixelStorei(3317,J.unpackAlignment);N.isDataTexture?R.texSubImage2D(3553,O,x.x,x.y,Y,ma,na,Ha,N.image.data):N.isCompressedTexture?R.compressedTexSubImage2D(3553,O,x.x,x.y,N.mipmaps[0].width,N.mipmaps[0].height,na,N.mipmaps[0].data):R.texSubImage2D(3553,O,x.x,x.y,na,Ha,N.image);0===O&&J.generateMipmaps&&R.generateMipmap(3553);Ca.unbindTexture()};this.initTexture=function(x){kb.setTexture2D(x,
 0);Ca.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function th(c){Ne.call(this,c)}function Jc(){ha.call(this);Object.defineProperty(this,"isScene",{value:!0});this.type="Scene";this.overrideMaterial=this.fog=this.environment=this.background=null;this.autoUpdate=!0;"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Gb(c,a){this.array=c;this.stride=
 a;this.count=void 0!==c?c.length/a:0;this.usage=35044;this.updateRange={offset:0,count:-1};this.version=0;this.uuid=xa.generateUUID()}function Kc(c,a,b,d){this.name="";this.data=c;this.itemSize=a;this.offset=b;this.normalized=!0===d}function Lc(c){ra.call(this);this.type="SpriteMaterial";this.color=new S(16777215);this.alphaMap=this.map=null;this.rotation=0;this.transparent=this.sizeAttenuation=!0;this.setValues(c)}function Qe(c){ha.call(this);this.type="Sprite";if(void 0===Nd){Nd=new ka;var a=new Float32Array([-.5,
 -.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);a=new Gb(a,5);Nd.setIndex([0,1,2,0,2,3]);Nd.setAttribute("position",new Kc(a,3,0,!1));Nd.setAttribute("uv",new Kc(a,2,3,!1))}this.geometry=Nd;this.material=void 0!==c?c:new Lc;this.center=new L(.5,.5)}function Wf(c,a,b,d,e,f){Od.subVectors(c,b).addScalar(.5).multiply(d);void 0!==e?(Re.x=f*Od.x-e*Od.y,Re.y=e*Od.x+f*Od.y):Re.copy(Od);c.copy(a);c.x+=Re.x;c.y+=Re.y;c.applyMatrix4(aj)}function Se(){ha.call(this);this._currentLevel=0;this.type="LOD";Object.defineProperties(this,
@@ -268,15 +268,15 @@ a){return c.x-a.x}function Hl(c,a){var b=a,d=c.x,e=c.y,f=-Infinity;do{if(e<=b.y&
 b.x>h.x)&&(n=b.x===h.x)){n=h;var p=b;n=0>ab(n.prev,n,p.prev)&&0>ab(p.next,n,n.next)}n&&(h=b,l=m)}b=b.next}while(b!==a);return h}function yh(c,a,b,d,e){c=32767*(c-b)*e;a=32767*(a-d)*e;c=(c|c<<8)&16711935;c=(c|c<<4)&252645135;c=(c|c<<2)&858993459;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;return(c|c<<1)&1431655765|((a|a<<1)&1431655765)<<1}function Il(c){var a=c,b=c;do{if(a.x<b.x||a.x===b.x&&a.y<b.y)b=a;a=a.next}while(a!==c);return b}function Yd(c,a,b,d,e,f,g,h){return 0<=(e-g)*(a-
 h)-(c-g)*(f-h)&&0<=(c-g)*(d-h)-(b-g)*(a-h)&&0<=(b-g)*(f-h)-(e-g)*(d-h)}function ab(c,a,b){return(a.y-c.y)*(b.x-a.x)-(a.x-c.x)*(b.y-a.y)}function ag(c,a){return c.x===a.x&&c.y===a.y}function dj(c,a,b,d){var e=bg(ab(c,a,b)),f=bg(ab(c,a,d)),g=bg(ab(b,d,c)),h=bg(ab(b,d,a));return e!==f&&g!==h||0===e&&cg(c,b,a)||0===f&&cg(c,d,a)||0===g&&cg(b,c,d)||0===h&&cg(b,a,d)?!0:!1}function cg(c,a,b){return a.x<=Math.max(c.x,b.x)&&a.x>=Math.min(c.x,b.x)&&a.y<=Math.max(c.y,b.y)&&a.y>=Math.min(c.y,b.y)}function bg(c){return 0<
 c?1:0>c?-1:0}function ff(c,a){return 0>ab(c.prev,c,c.next)?0<=ab(c,a,c.next)&&0<=ab(c,c.prev,a):0>ab(c,a,c.prev)||0>ab(c,c.next,a)}function ej(c,a){var b=new zh(c.i,c.x,c.y),d=new zh(a.i,a.x,a.y),e=c.next,f=a.prev;c.next=a;a.prev=c;b.next=e;e.prev=b;d.next=b;b.prev=d;f.next=d;d.prev=f;return d}function cj(c,a,b,d){c=new zh(c,a,b);d?(c.next=d.next,c.prev=d,d.next.prev=c,d.next=c):(c.prev=c,c.next=c);return c}function df(c){c.next.prev=c.prev;c.prev.next=c.next;c.prevZ&&(c.prevZ.nextZ=c.nextZ);c.nextZ&&
-(c.nextZ.prevZ=c.prevZ)}function zh(c,a,b){this.i=c;this.x=a;this.y=b;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function fj(c){var a=c.length;2<a&&c[a-1].equals(c[0])&&c.pop()}function gj(c,a){for(var b=0;b<a.length;b++)c.push(a[b].x),c.push(a[b].y)}function hd(c,a){sa.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:c,options:a};this.fromBufferGeometry(new bc(c,a));this.mergeVertices()}function bc(c,a){function b(k){function l(U,ma,wa){ma||console.error("THREE.ExtrudeGeometry: vec does not exist");
-return ma.clone().multiplyScalar(wa).add(U)}function m(U,ma,wa){var R=U.x-ma.x;var qa=U.y-ma.y;var Ea=wa.x-U.x;var Ca=wa.y-U.y,Ka=R*R+qa*qa;if(Math.abs(R*Ca-qa*Ea)>Number.EPSILON){var Ra=Math.sqrt(Ka),kb=Math.sqrt(Ea*Ea+Ca*Ca);Ka=ma.x-qa/Ra;ma=ma.y+R/Ra;Ca=((wa.x-Ca/kb-Ka)*Ca-(wa.y+Ea/kb-ma)*Ea)/(R*Ca-qa*Ea);Ea=Ka+R*Ca-U.x;R=ma+qa*Ca-U.y;qa=Ea*Ea+R*R;if(2>=qa)return new L(Ea,R);qa=Math.sqrt(qa/2)}else U=!1,R>Number.EPSILON?Ea>Number.EPSILON&&(U=!0):R<-Number.EPSILON?Ea<-Number.EPSILON&&(U=!0):Math.sign(qa)===
-Math.sign(Ca)&&(U=!0),U?(Ea=-qa,qa=Math.sqrt(Ka)):(Ea=R,R=qa,qa=Math.sqrt(Ka/2));return new L(Ea/qa,R/qa)}function n(U,ma){for(var wa=U.length;0<=--wa;){var R=wa,qa=wa-1;0>qa&&(qa=U.length-1);for(var Ea=0,Ca=B+2*M;Ea<Ca;Ea++){var Ka=fb*Ea,Ra=fb*(Ea+1),kb=ma+qa+Ka,lc=ma+qa+Ra;Ra=ma+R+Ra;q(ma+R+Ka);q(kb);q(Ra);q(kb);q(lc);q(Ra);Ka=e.length/3;Ka=K.generateSideWallUV(d,e,Ka-6,Ka-3,Ka-2,Ka-1);v(Ka[0]);v(Ka[1]);v(Ka[3]);v(Ka[1]);v(Ka[2]);v(Ka[3])}}}function p(U,ma,wa){u.push(U);u.push(ma);u.push(wa)}function t(U,
-ma,wa){q(U);q(ma);q(wa);U=e.length/3;U=K.generateTopUV(d,e,U-3,U-2,U-1);v(U[0]);v(U[1]);v(U[2])}function q(U){e.push(u[3*U]);e.push(u[3*U+1]);e.push(u[3*U+2])}function v(U){f.push(U.x);f.push(U.y)}var u=[],A=void 0!==a.curveSegments?a.curveSegments:12,B=void 0!==a.steps?a.steps:1,D=void 0!==a.depth?a.depth:100,G=void 0!==a.bevelEnabled?a.bevelEnabled:!0,I=void 0!==a.bevelThickness?a.bevelThickness:6,E=void 0!==a.bevelSize?a.bevelSize:I-2,H=void 0!==a.bevelOffset?a.bevelOffset:0,M=void 0!==a.bevelSegments?
+(c.nextZ.prevZ=c.prevZ)}function zh(c,a,b){this.i=c;this.x=a;this.y=b;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function fj(c){var a=c.length;2<a&&c[a-1].equals(c[0])&&c.pop()}function gj(c,a){for(var b=0;b<a.length;b++)c.push(a[b].x),c.push(a[b].y)}function hd(c,a){sa.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:c,options:a};this.fromBufferGeometry(new bc(c,a));this.mergeVertices()}function bc(c,a){function b(k){function l(U,la,wa){la||console.error("THREE.ExtrudeGeometry: vec does not exist");
+return la.clone().multiplyScalar(wa).add(U)}function m(U,la,wa){var R=U.x-la.x;var qa=U.y-la.y;var Ea=wa.x-U.x;var Ca=wa.y-U.y,Ka=R*R+qa*qa;if(Math.abs(R*Ca-qa*Ea)>Number.EPSILON){var Ra=Math.sqrt(Ka),kb=Math.sqrt(Ea*Ea+Ca*Ca);Ka=la.x-qa/Ra;la=la.y+R/Ra;Ca=((wa.x-Ca/kb-Ka)*Ca-(wa.y+Ea/kb-la)*Ea)/(R*Ca-qa*Ea);Ea=Ka+R*Ca-U.x;R=la+qa*Ca-U.y;qa=Ea*Ea+R*R;if(2>=qa)return new L(Ea,R);qa=Math.sqrt(qa/2)}else U=!1,R>Number.EPSILON?Ea>Number.EPSILON&&(U=!0):R<-Number.EPSILON?Ea<-Number.EPSILON&&(U=!0):Math.sign(qa)===
+Math.sign(Ca)&&(U=!0),U?(Ea=-qa,qa=Math.sqrt(Ka)):(Ea=R,R=qa,qa=Math.sqrt(Ka/2));return new L(Ea/qa,R/qa)}function n(U,la){for(var wa=U.length;0<=--wa;){var R=wa,qa=wa-1;0>qa&&(qa=U.length-1);for(var Ea=0,Ca=B+2*M;Ea<Ca;Ea++){var Ka=fb*Ea,Ra=fb*(Ea+1),kb=la+qa+Ka,lc=la+qa+Ra;Ra=la+R+Ra;q(la+R+Ka);q(kb);q(Ra);q(kb);q(lc);q(Ra);Ka=e.length/3;Ka=K.generateSideWallUV(d,e,Ka-6,Ka-3,Ka-2,Ka-1);v(Ka[0]);v(Ka[1]);v(Ka[3]);v(Ka[1]);v(Ka[2]);v(Ka[3])}}}function p(U,la,wa){u.push(U);u.push(la);u.push(wa)}function t(U,
+la,wa){q(U);q(la);q(wa);U=e.length/3;U=K.generateTopUV(d,e,U-3,U-2,U-1);v(U[0]);v(U[1]);v(U[2])}function q(U){e.push(u[3*U]);e.push(u[3*U+1]);e.push(u[3*U+2])}function v(U){f.push(U.x);f.push(U.y)}var u=[],A=void 0!==a.curveSegments?a.curveSegments:12,B=void 0!==a.steps?a.steps:1,D=void 0!==a.depth?a.depth:100,G=void 0!==a.bevelEnabled?a.bevelEnabled:!0,I=void 0!==a.bevelThickness?a.bevelThickness:6,E=void 0!==a.bevelSize?a.bevelSize:I-2,H=void 0!==a.bevelOffset?a.bevelOffset:0,M=void 0!==a.bevelSegments?
 a.bevelSegments:3,F=a.extrudePath,K=void 0!==a.UVGenerator?a.UVGenerator:Jl;void 0!==a.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),D=a.amount);var P=!1;if(F){var V=F.getSpacedPoints(B);P=!0;G=!1;var ia=F.computeFrenetFrames(B,!1);var W=new w;var aa=new w;var Z=new w}G||(H=E=I=M=0);k=k.extractPoints(A);F=k.shape;var ja=k.holes;if(!mc.isClockWise(F))for(F=F.reverse(),k=0,A=ja.length;k<A;k++){var Aa=ja[k];mc.isClockWise(Aa)&&(ja[k]=Aa.reverse())}var Xa=mc.triangulateShape(F,
 ja),bb=F;k=0;for(A=ja.length;k<A;k++)F=F.concat(ja[k]);var fb=F.length,z=Xa.length;k=[];A=0;Aa=bb.length;for(var C=Aa-1,y=A+1;A<Aa;A++,C++,y++)C===Aa&&(C=0),y===Aa&&(y=0),k[A]=m(bb[A],bb[C],bb[y]);A=[];Aa=k.concat();y=0;for(var Q=ja.length;y<Q;y++){var T=ja[y];C=[];for(var ba=0,X=T.length,ta=X-1,va=ba+1;ba<X;ba++,ta++,va++)ta===X&&(ta=0),va===X&&(va=0),C[ba]=m(T[ba],T[ta],T[va]);A.push(C);Aa=Aa.concat(C)}for(y=0;y<M;y++){C=y/M;Q=I*Math.cos(C*Math.PI/2);T=E*Math.sin(C*Math.PI/2)+H;C=0;for(ba=bb.length;C<
 ba;C++)X=l(bb[C],k[C],T),p(X.x,X.y,-Q);ba=0;for(X=ja.length;ba<X;ba++){ta=ja[ba];C=A[ba];va=0;for(var ya=ta.length;va<ya;va++){var Pa=l(ta[va],C[va],T);p(Pa.x,Pa.y,-Q)}}}C=E+H;for(y=0;y<fb;y++)Q=G?l(F[y],Aa[y],C):F[y],P?(aa.copy(ia.normals[0]).multiplyScalar(Q.x),W.copy(ia.binormals[0]).multiplyScalar(Q.y),Z.copy(V[0]).add(aa).add(W),p(Z.x,Z.y,Z.z)):p(Q.x,Q.y,0);for(y=1;y<=B;y++)for(Q=0;Q<fb;Q++)T=G?l(F[Q],Aa[Q],C):F[Q],P?(aa.copy(ia.normals[y]).multiplyScalar(T.x),W.copy(ia.binormals[y]).multiplyScalar(T.y),
-Z.copy(V[y]).add(aa).add(W),p(Z.x,Z.y,Z.z)):p(T.x,T.y,D/B*y);for(ia=M-1;0<=ia;ia--){aa=ia/M;W=I*Math.cos(aa*Math.PI/2);aa=E*Math.sin(aa*Math.PI/2)+H;Z=0;for(F=bb.length;Z<F;Z++)Aa=l(bb[Z],k[Z],aa),p(Aa.x,Aa.y,D+W);Z=0;for(F=ja.length;Z<F;Z++)for(Aa=ja[Z],C=A[Z],y=0,Q=Aa.length;y<Q;y++)T=l(Aa[y],C[y],aa),P?p(T.x,T.y+V[B-1].y,V[B-1].x+W):p(T.x,T.y,D+W)}(function(){var U=e.length/3;if(G){for(var ma=0*fb,wa=0;wa<z;wa++){var R=Xa[wa];t(R[2]+ma,R[1]+ma,R[0]+ma)}ma=fb*(B+2*M);for(wa=0;wa<z;wa++)R=Xa[wa],
-t(R[0]+ma,R[1]+ma,R[2]+ma)}else{for(ma=0;ma<z;ma++)wa=Xa[ma],t(wa[2],wa[1],wa[0]);for(ma=0;ma<z;ma++)wa=Xa[ma],t(wa[0]+fb*B,wa[1]+fb*B,wa[2]+fb*B)}d.addGroup(U,e.length/3-U,0)})();(function(){var U=e.length/3,ma=0;n(bb,ma);ma+=bb.length;for(var wa=0,R=ja.length;wa<R;wa++){var qa=ja[wa];n(qa,ma);ma+=qa.length}d.addGroup(U,e.length/3-U,1)})()}ka.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:c,options:a};c=Array.isArray(c)?c:[c];for(var d=this,e=[],f=[],g=0,h=c.length;g<h;g++)b(c[g]);
+Z.copy(V[y]).add(aa).add(W),p(Z.x,Z.y,Z.z)):p(T.x,T.y,D/B*y);for(ia=M-1;0<=ia;ia--){aa=ia/M;W=I*Math.cos(aa*Math.PI/2);aa=E*Math.sin(aa*Math.PI/2)+H;Z=0;for(F=bb.length;Z<F;Z++)Aa=l(bb[Z],k[Z],aa),p(Aa.x,Aa.y,D+W);Z=0;for(F=ja.length;Z<F;Z++)for(Aa=ja[Z],C=A[Z],y=0,Q=Aa.length;y<Q;y++)T=l(Aa[y],C[y],aa),P?p(T.x,T.y+V[B-1].y,V[B-1].x+W):p(T.x,T.y,D+W)}(function(){var U=e.length/3;if(G){for(var la=0*fb,wa=0;wa<z;wa++){var R=Xa[wa];t(R[2]+la,R[1]+la,R[0]+la)}la=fb*(B+2*M);for(wa=0;wa<z;wa++)R=Xa[wa],
+t(R[0]+la,R[1]+la,R[2]+la)}else{for(la=0;la<z;la++)wa=Xa[la],t(wa[2],wa[1],wa[0]);for(la=0;la<z;la++)wa=Xa[la],t(wa[0]+fb*B,wa[1]+fb*B,wa[2]+fb*B)}d.addGroup(U,e.length/3-U,0)})();(function(){var U=e.length/3,la=0;n(bb,la);la+=bb.length;for(var wa=0,R=ja.length;wa<R;wa++){var qa=ja[wa];n(qa,la);la+=qa.length}d.addGroup(U,e.length/3-U,1)})()}ka.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:c,options:a};c=Array.isArray(c)?c:[c];for(var d=this,e=[],f=[],g=0,h=c.length;g<h;g++)b(c[g]);
 this.setAttribute("position",new ea(e,3));this.setAttribute("uv",new ea(f,2));this.computeVertexNormals()}function hj(c,a,b){b.shapes=[];if(Array.isArray(c))for(var d=0,e=c.length;d<e;d++)b.shapes.push(c[d].uuid);else b.shapes.push(c.uuid);void 0!==a.extrudePath&&(b.options.extrudePath=a.extrudePath.toJSON());return b}function gf(c,a){sa.call(this);this.type="TextGeometry";this.parameters={text:c,parameters:a};this.fromBufferGeometry(new Zd(c,a));this.mergeVertices()}function Zd(c,a){a=a||{};var b=
 a.font;if(!b||!b.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new sa;c=b.generateShapes(c,a.size);a.depth=void 0!==a.height?a.height:50;void 0===a.bevelThickness&&(a.bevelThickness=10);void 0===a.bevelSize&&(a.bevelSize=8);void 0===a.bevelEnabled&&(a.bevelEnabled=!1);bc.call(this,c,a);this.type="TextBufferGeometry"}function hf(c,a,b,d,e,f,g){sa.call(this);this.type="SphereGeometry";this.parameters={radius:c,widthSegments:a,heightSegments:b,phiStart:d,
 phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new id(c,a,b,d,e,f,g));this.mergeVertices()}function id(c,a,b,d,e,f,g){ka.call(this);this.type="SphereBufferGeometry";this.parameters={radius:c,widthSegments:a,heightSegments:b,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};c=c||1;a=Math.max(3,Math.floor(a)||8);b=Math.max(2,Math.floor(b)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;for(var h=Math.min(f+g,Math.PI),k=0,l=[],m=new w,n=new w,p=
@@ -491,13 +491,13 @@ function(a,b,d){b=ci.subVectors(d,b).cross(Tl.subVectors(a,b)).normalize();this.
 function(a){return this.normal.dot(a)+this.constant};Na.prototype.distanceToSphere=function(a){return this.distanceToPoint(a.center)-a.radius};Na.prototype.projectPoint=function(a,b){void 0===b&&(console.warn("THREE.Plane: .projectPoint() target is now required"),b=new w);return b.copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)};Na.prototype.intersectLine=function(a,b){void 0===b&&(console.warn("THREE.Plane: .intersectLine() target is now required"),b=new w);var d=a.delta(ci),e=
 this.normal.dot(d);if(0===e){if(0===this.distanceToPoint(a.start))return b.copy(a.start)}else if(e=-(a.start.dot(this.normal)+this.constant)/e,!(0>e||1<e))return b.copy(d).multiplyScalar(e).add(a.start)};Na.prototype.intersectsLine=function(a){var b=this.distanceToPoint(a.start);a=this.distanceToPoint(a.end);return 0>b&&0<a||0>a&&0<b};Na.prototype.intersectsBox=function(a){return a.intersectsPlane(this)};Na.prototype.intersectsSphere=function(a){return a.intersectsPlane(this)};Na.prototype.coplanarPoint=
 function(a){void 0===a&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),a=new w);return a.copy(this.normal).multiplyScalar(-this.constant)};Na.prototype.applyMatrix4=function(a,b){b=b||Ul.getNormalMatrix(a);a=this.coplanarPoint(ci).applyMatrix4(a);b=this.normal.applyMatrix3(b).normalize();this.constant=-a.dot(b);return this};Na.prototype.translate=function(a){this.constant-=a.dot(this.normal);return this};Na.prototype.equals=function(a){return a.normal.equals(this.normal)&&a.constant===
-this.constant};var Yb=new w,wc=new w,di=new w,xc=new w,ue=new w,ve=new w,Cj=new w,ei=new w,fi=new w,gi=new w,Ha=function(a,b,d){this.a=void 0!==a?a:new w;this.b=void 0!==b?b:new w;this.c=void 0!==d?d:new w};Ha.getNormal=function(a,b,d,e){void 0===e&&(console.warn("THREE.Triangle: .getNormal() target is now required"),e=new w);e.subVectors(d,b);Yb.subVectors(a,b);e.cross(Yb);a=e.lengthSq();return 0<a?e.multiplyScalar(1/Math.sqrt(a)):e.set(0,0,0)};Ha.getBarycoord=function(a,b,d,e,f){Yb.subVectors(e,
-b);wc.subVectors(d,b);di.subVectors(a,b);a=Yb.dot(Yb);b=Yb.dot(wc);d=Yb.dot(di);var g=wc.dot(wc);e=wc.dot(di);var h=a*g-b*b;void 0===f&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),f=new w);if(0===h)return f.set(-2,-1,-1);h=1/h;g=(g*d-b*e)*h;a=(a*e-b*d)*h;return f.set(1-g-a,a,g)};Ha.containsPoint=function(a,b,d,e){this.getBarycoord(a,b,d,e,xc);return 0<=xc.x&&0<=xc.y&&1>=xc.x+xc.y};Ha.getUV=function(a,b,d,e,f,g,h,k){this.getBarycoord(a,b,d,e,xc);k.set(0,0);k.addScaledVector(f,
-xc.x);k.addScaledVector(g,xc.y);k.addScaledVector(h,xc.z);return k};Ha.isFrontFacing=function(a,b,d,e){Yb.subVectors(d,b);wc.subVectors(a,b);return 0>Yb.cross(wc).dot(e)?!0:!1};Ha.prototype.set=function(a,b,d){this.a.copy(a);this.b.copy(b);this.c.copy(d);return this};Ha.prototype.setFromPointsAndIndices=function(a,b,d,e){this.a.copy(a[b]);this.b.copy(a[d]);this.c.copy(a[e]);return this};Ha.prototype.clone=function(){return(new this.constructor).copy(this)};Ha.prototype.copy=function(a){this.a.copy(a.a);
-this.b.copy(a.b);this.c.copy(a.c);return this};Ha.prototype.getArea=function(){Yb.subVectors(this.c,this.b);wc.subVectors(this.a,this.b);return.5*Yb.cross(wc).length()};Ha.prototype.getMidpoint=function(a){void 0===a&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),a=new w);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)};Ha.prototype.getNormal=function(a){return Ha.getNormal(this.a,this.b,this.c,a)};Ha.prototype.getPlane=function(a){void 0===a&&(console.warn("THREE.Triangle: .getPlane() target is now required"),
-a=new Na);return a.setFromCoplanarPoints(this.a,this.b,this.c)};Ha.prototype.getBarycoord=function(a,b){return Ha.getBarycoord(a,this.a,this.b,this.c,b)};Ha.prototype.getUV=function(a,b,d,e,f){return Ha.getUV(a,this.a,this.b,this.c,b,d,e,f)};Ha.prototype.containsPoint=function(a){return Ha.containsPoint(a,this.a,this.b,this.c)};Ha.prototype.isFrontFacing=function(a){return Ha.isFrontFacing(this.a,this.b,this.c,a)};Ha.prototype.intersectsBox=function(a){return a.intersectsTriangle(this)};Ha.prototype.closestPointToPoint=
+this.constant};var Yb=new w,wc=new w,di=new w,xc=new w,ue=new w,ve=new w,Cj=new w,ei=new w,fi=new w,gi=new w,Ga=function(a,b,d){this.a=void 0!==a?a:new w;this.b=void 0!==b?b:new w;this.c=void 0!==d?d:new w};Ga.getNormal=function(a,b,d,e){void 0===e&&(console.warn("THREE.Triangle: .getNormal() target is now required"),e=new w);e.subVectors(d,b);Yb.subVectors(a,b);e.cross(Yb);a=e.lengthSq();return 0<a?e.multiplyScalar(1/Math.sqrt(a)):e.set(0,0,0)};Ga.getBarycoord=function(a,b,d,e,f){Yb.subVectors(e,
+b);wc.subVectors(d,b);di.subVectors(a,b);a=Yb.dot(Yb);b=Yb.dot(wc);d=Yb.dot(di);var g=wc.dot(wc);e=wc.dot(di);var h=a*g-b*b;void 0===f&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),f=new w);if(0===h)return f.set(-2,-1,-1);h=1/h;g=(g*d-b*e)*h;a=(a*e-b*d)*h;return f.set(1-g-a,a,g)};Ga.containsPoint=function(a,b,d,e){this.getBarycoord(a,b,d,e,xc);return 0<=xc.x&&0<=xc.y&&1>=xc.x+xc.y};Ga.getUV=function(a,b,d,e,f,g,h,k){this.getBarycoord(a,b,d,e,xc);k.set(0,0);k.addScaledVector(f,
+xc.x);k.addScaledVector(g,xc.y);k.addScaledVector(h,xc.z);return k};Ga.isFrontFacing=function(a,b,d,e){Yb.subVectors(d,b);wc.subVectors(a,b);return 0>Yb.cross(wc).dot(e)?!0:!1};Ga.prototype.set=function(a,b,d){this.a.copy(a);this.b.copy(b);this.c.copy(d);return this};Ga.prototype.setFromPointsAndIndices=function(a,b,d,e){this.a.copy(a[b]);this.b.copy(a[d]);this.c.copy(a[e]);return this};Ga.prototype.clone=function(){return(new this.constructor).copy(this)};Ga.prototype.copy=function(a){this.a.copy(a.a);
+this.b.copy(a.b);this.c.copy(a.c);return this};Ga.prototype.getArea=function(){Yb.subVectors(this.c,this.b);wc.subVectors(this.a,this.b);return.5*Yb.cross(wc).length()};Ga.prototype.getMidpoint=function(a){void 0===a&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),a=new w);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)};Ga.prototype.getNormal=function(a){return Ga.getNormal(this.a,this.b,this.c,a)};Ga.prototype.getPlane=function(a){void 0===a&&(console.warn("THREE.Triangle: .getPlane() target is now required"),
+a=new Na);return a.setFromCoplanarPoints(this.a,this.b,this.c)};Ga.prototype.getBarycoord=function(a,b){return Ga.getBarycoord(a,this.a,this.b,this.c,b)};Ga.prototype.getUV=function(a,b,d,e,f){return Ga.getUV(a,this.a,this.b,this.c,b,d,e,f)};Ga.prototype.containsPoint=function(a){return Ga.containsPoint(a,this.a,this.b,this.c)};Ga.prototype.isFrontFacing=function(a){return Ga.isFrontFacing(this.a,this.b,this.c,a)};Ga.prototype.intersectsBox=function(a){return a.intersectsTriangle(this)};Ga.prototype.closestPointToPoint=
 function(a,b){void 0===b&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),b=new w);var d=this.a,e=this.b,f=this.c;ue.subVectors(e,d);ve.subVectors(f,d);ei.subVectors(a,d);var g=ue.dot(ei),h=ve.dot(ei);if(0>=g&&0>=h)return b.copy(d);fi.subVectors(a,e);var k=ue.dot(fi),l=ve.dot(fi);if(0<=k&&l<=k)return b.copy(e);var m=g*l-k*h;if(0>=m&&0<=g&&0>=k)return e=g/(g-k),b.copy(d).addScaledVector(ue,e);gi.subVectors(a,f);a=ue.dot(gi);var n=ve.dot(gi);if(0<=n&&a<=n)return b.copy(f);
-g=a*h-g*n;if(0>=g&&0<=h&&0>=n)return m=h/(h-n),b.copy(d).addScaledVector(ve,m);h=k*n-a*l;if(0>=h&&0<=l-k&&0<=a-n)return Cj.subVectors(f,e),m=(l-k)/(l-k+(a-n)),b.copy(e).addScaledVector(Cj,m);f=1/(h+g+m);e=g*f;m*=f;return b.copy(d).addScaledVector(ue,e).addScaledVector(ve,m)};Ha.prototype.equals=function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)};var Dj={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,
+g=a*h-g*n;if(0>=g&&0<=h&&0>=n)return m=h/(h-n),b.copy(d).addScaledVector(ve,m);h=k*n-a*l;if(0>=h&&0<=l-k&&0<=a-n)return Cj.subVectors(f,e),m=(l-k)/(l-k+(a-n)),b.copy(e).addScaledVector(Cj,m);f=1/(h+g+m);e=g*f;m*=f;return b.copy(d).addScaledVector(ue,e).addScaledVector(ve,m)};Ga.prototype.equals=function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)};var Dj={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,
 blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,
 darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,
 lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,
@@ -571,7 +571,7 @@ a.material;this.geometry=a.geometry;return this},updateMorphTargets:function(){v
 raycast:function(a,b){var d=this.geometry,e=this.material,f=this.matrixWorld;if(void 0!==e&&(null===d.boundingSphere&&d.computeBoundingSphere(),ji.copy(d.boundingSphere),ji.applyMatrix4(f),!1!==a.ray.intersectsSphere(ji)&&(Ej.getInverse(f),td.copy(a.ray).applyMatrix4(Ej),null===d.boundingBox||!1!==td.intersectsBox(d.boundingBox))))if(d.isBufferGeometry){var g=d.index,h=d.attributes.position;f=d.morphAttributes.position;var k=d.morphTargetsRelative,l=d.attributes.uv,m=d.attributes.uv2,n=d.groups,p=
 d.drawRange;if(null!==g)if(Array.isArray(e))for(var t=0,q=n.length;t<q;t++)for(var v=n[t],u=e[v.materialIndex],A=Math.max(v.start,p.start),B=Math.min(v.start+v.count,p.start+p.count);A<B;A+=3){d=g.getX(A);var D=g.getX(A+1),G=g.getX(A+2);if(d=Pf(this,u,a,td,h,f,k,l,m,d,D,G))d.faceIndex=Math.floor(A/3),d.face.materialIndex=v.materialIndex,b.push(d)}else for(n=Math.max(0,p.start),p=Math.min(g.count,p.start+p.count);n<p;n+=3){if(d=g.getX(n),t=g.getX(n+1),q=g.getX(n+2),d=Pf(this,e,a,td,h,f,k,l,m,d,t,q))d.faceIndex=
 Math.floor(n/3),b.push(d)}else if(void 0!==h)if(Array.isArray(e))for(g=0,t=n.length;g<t;g++)for(q=n[g],v=e[q.materialIndex],u=Math.max(q.start,p.start),A=Math.min(q.start+q.count,p.start+p.count);u<A;u+=3){if(d=Pf(this,v,a,td,h,f,k,l,m,u,u+1,u+2))d.faceIndex=Math.floor(u/3),d.face.materialIndex=q.materialIndex,b.push(d)}else for(n=Math.max(0,p.start),p=Math.min(h.count,p.start+p.count);n<p;n+=3)if(d=Pf(this,e,a,td,h,f,k,l,m,n,n+1,n+2))d.faceIndex=Math.floor(n/3),b.push(d)}else if(d.isGeometry)for(f=
-Array.isArray(e),k=d.vertices,l=d.faces,d=d.faceVertexUvs[0],0<d.length&&(h=d),m=0,p=l.length;m<p;m++)if(n=l[m],d=f?e[n.materialIndex]:e,void 0!==d&&(g=k[n.a],t=k[n.b],q=k[n.c],d=wi(this,d,a,td,g,t,q,Ie)))h&&h[m]&&(v=h[m],Cd.copy(v[0]),Dd.copy(v[1]),Ed.copy(v[2]),d.uv=Ha.getUV(Ie,g,t,q,Cd,Dd,Ed,new L)),d.face=n,d.faceIndex=m,b.push(d)}});var lk=0,ic=new da,ki=new ha,Kg=new w;sa.prototype=Object.assign(Object.create(wb.prototype),{constructor:sa,isGeometry:!0,applyMatrix4:function(a){for(var b=(new Da).getNormalMatrix(a),
+Array.isArray(e),k=d.vertices,l=d.faces,d=d.faceVertexUvs[0],0<d.length&&(h=d),m=0,p=l.length;m<p;m++)if(n=l[m],d=f?e[n.materialIndex]:e,void 0!==d&&(g=k[n.a],t=k[n.b],q=k[n.c],d=wi(this,d,a,td,g,t,q,Ie)))h&&h[m]&&(v=h[m],Cd.copy(v[0]),Dd.copy(v[1]),Ed.copy(v[2]),d.uv=Ga.getUV(Ie,g,t,q,Cd,Dd,Ed,new L)),d.face=n,d.faceIndex=m,b.push(d)}});var lk=0,ic=new da,ki=new ha,Kg=new w;sa.prototype=Object.assign(Object.create(wb.prototype),{constructor:sa,isGeometry:!0,applyMatrix4:function(a){for(var b=(new Da).getNormalMatrix(a),
 d=0,e=this.vertices.length;d<e;d++)this.vertices[d].applyMatrix4(a);a=0;for(d=this.faces.length;a<d;a++){e=this.faces[a];e.normal.applyMatrix3(b).normalize();for(var f=0,g=e.vertexNormals.length;f<g;f++)e.vertexNormals[f].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},rotateX:function(a){ic.makeRotationX(a);this.applyMatrix4(ic);return this},rotateY:function(a){ic.makeRotationY(a);
 this.applyMatrix4(ic);return this},rotateZ:function(a){ic.makeRotationZ(a);this.applyMatrix4(ic);return this},translate:function(a,b,d){ic.makeTranslation(a,b,d);this.applyMatrix4(ic);return this},scale:function(a,b,d){ic.makeScale(a,b,d);this.applyMatrix4(ic);return this},lookAt:function(a){ki.lookAt(a);ki.updateMatrix();this.applyMatrix4(ki.matrix);return this},fromBufferGeometry:function(a){function b(q,v,u,A){var B=void 0===k?[]:[d.colors[q].clone(),d.colors[v].clone(),d.colors[u].clone()],D=
 void 0===h?[]:[(new w).fromBufferAttribute(h,q),(new w).fromBufferAttribute(h,v),(new w).fromBufferAttribute(h,u)];A=new ad(q,v,u,D,B,A);d.faces.push(A);void 0!==l&&d.faceVertexUvs[0].push([(new L).fromBufferAttribute(l,q),(new L).fromBufferAttribute(l,v),(new L).fromBufferAttribute(l,u)]);void 0!==m&&d.faceVertexUvs[1].push([(new L).fromBufferAttribute(m,q),(new L).fromBufferAttribute(m,v),(new L).fromBufferAttribute(m,u)])}var d=this,e=null!==a.index?a.index:void 0,f=a.attributes;if(void 0===f.position)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),
@@ -715,7 +715,7 @@ a=[];for(var b=0;b<this.count;b++)for(var d=b*this.data.stride+this.offset,e=0;e
 a=[];for(var b=0;b<this.count;b++)for(var d=b*this.data.stride+this.offset,e=0;e<this.itemSize;e++)a.push(this.data.array[d+e]);return{itemSize:this.itemSize,type:this.array.constructor.name,array:a,normalized:this.normalized}}void 0===a.interleavedBuffers&&(a.interleavedBuffers={});void 0===a.interleavedBuffers[this.data.uuid]&&(a.interleavedBuffers[this.data.uuid]=this.data.toJSON(a));return{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}});
 Lc.prototype=Object.create(ra.prototype);Lc.prototype.constructor=Lc;Lc.prototype.isSpriteMaterial=!0;Lc.prototype.copy=function(a){ra.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.rotation=a.rotation;this.sizeAttenuation=a.sizeAttenuation;return this};var Nd,If=new w,ye=new w,ze=new w,Od=new L,Re=new L,aj=new da,Mg=new w,Jf=new w,Ng=new w,Fj=new L,li=new L,Gj=new L;Qe.prototype=Object.assign(Object.create(ha.prototype),{constructor:Qe,isSprite:!0,
 raycast:function(a,b){null===a.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.');ye.setFromMatrixScale(this.matrixWorld);aj.copy(a.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(a.camera.matrixWorldInverse,this.matrixWorld);ze.setFromMatrixPosition(this.modelViewMatrix);a.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&ye.multiplyScalar(-ze.z);var d=this.material.rotation;if(0!==d){var e=Math.cos(d);var f=Math.sin(d)}d=
-this.center;Wf(Mg.set(-.5,-.5,0),ze,d,ye,f,e);Wf(Jf.set(.5,-.5,0),ze,d,ye,f,e);Wf(Ng.set(.5,.5,0),ze,d,ye,f,e);Fj.set(0,0);li.set(1,0);Gj.set(1,1);var g=a.ray.intersectTriangle(Mg,Jf,Ng,!1,If);if(null===g&&(Wf(Jf.set(-.5,.5,0),ze,d,ye,f,e),li.set(0,1),g=a.ray.intersectTriangle(Mg,Ng,Jf,!1,If),null===g))return;f=a.ray.origin.distanceTo(If);f<a.near||f>a.far||b.push({distance:f,point:If.clone(),uv:Ha.getUV(If,Mg,Jf,Ng,Fj,li,Gj,new L),face:null,object:this})},copy:function(a){ha.prototype.copy.call(this,
+this.center;Wf(Mg.set(-.5,-.5,0),ze,d,ye,f,e);Wf(Jf.set(.5,-.5,0),ze,d,ye,f,e);Wf(Ng.set(.5,.5,0),ze,d,ye,f,e);Fj.set(0,0);li.set(1,0);Gj.set(1,1);var g=a.ray.intersectTriangle(Mg,Jf,Ng,!1,If);if(null===g&&(Wf(Jf.set(-.5,.5,0),ze,d,ye,f,e),li.set(0,1),g=a.ray.intersectTriangle(Mg,Ng,Jf,!1,If),null===g))return;f=a.ray.origin.distanceTo(If);f<a.near||f>a.far||b.push({distance:f,point:If.clone(),uv:Ga.getUV(If,Mg,Jf,Ng,Fj,li,Gj,new L),face:null,object:this})},copy:function(a){ha.prototype.copy.call(this,
 a);void 0!==a.center&&this.center.copy(a.center);this.material=a.material;return this}});var Og=new w,Hj=new w;Se.prototype=Object.assign(Object.create(ha.prototype),{constructor:Se,isLOD:!0,copy:function(a){ha.prototype.copy.call(this,a,!1);for(var b=a.levels,d=0,e=b.length;d<e;d++){var f=b[d];this.addLevel(f.object.clone(),f.distance)}this.autoUpdate=a.autoUpdate;return this},addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);var d=this.levels,e;for(e=0;e<d.length&&!(b<d[e].distance);e++);d.splice(e,
 0,{distance:b,object:a});this.add(a);return this},getCurrentLevel:function(){return this._currentLevel},getObjectForDistance:function(a){var b=this.levels;if(0<b.length){var d;var e=1;for(d=b.length;e<d&&!(a<b[e].distance);e++);return b[e-1].object}return null},raycast:function(a,b){if(0<this.levels.length){Og.setFromMatrixPosition(this.matrixWorld);var d=a.ray.origin.distanceTo(Og);this.getObjectForDistance(d).raycast(a,b)}},update:function(a){var b=this.levels;if(1<b.length){Og.setFromMatrixPosition(a.matrixWorld);
 Hj.setFromMatrixPosition(this.matrixWorld);a=Og.distanceTo(Hj)/a.zoom;b[0].object.visible=!0;var d;var e=1;for(d=b.length;e<d;e++)if(a>=b[e].distance)b[e-1].object.visible=!1,b[e].object.visible=!0;else break;for(this._currentLevel=e-1;e<d;e++)b[e].object.visible=!1}},toJSON:function(a){a=ha.prototype.toJSON.call(this,a);!1===this.autoUpdate&&(a.object.autoUpdate=!1);a.object.levels=[];for(var b=this.levels,d=0,e=b.length;d<e;d++){var f=b[d];a.object.levels.push({object:f.object.uuid,distance:f.distance})}return a}});
@@ -1014,8 +1014,8 @@ return a.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THRE
 rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},
 applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(a,b,d,e,f,g){console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.");return this.makePerspective(a,b,e,d,f,g)}});Na.prototype.isIntersectionLine=function(a){console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(a)};ua.prototype.multiplyVector3=
 function(a){console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");return a.applyQuaternion(this)};Object.assign(Ta.prototype,{isIntersectionBox:function(a){console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionPlane:function(a){console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().");return this.intersectsPlane(a)},isIntersectionSphere:function(a){console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().");
-return this.intersectsSphere(a)}});Object.assign(Ha.prototype,{area:function(){console.warn("THREE.Triangle: .area() has been renamed to .getArea().");return this.getArea()},barycoordFromPoint:function(a,b){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return this.getBarycoord(a,b)},midpoint:function(a){console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint().");return this.getMidpoint(a)},normal:function(a){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");
-return this.getNormal(a)},plane:function(a){console.warn("THREE.Triangle: .plane() has been renamed to .getPlane().");return this.getPlane(a)}});Object.assign(Ha,{barycoordFromPoint:function(a,b,d,e,f){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return Ha.getBarycoord(a,b,d,e,f)},normal:function(a,b,d,e){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");return Ha.getNormal(a,b,d,e)}});Object.assign(Pc.prototype,{extractAllPoints:function(a){console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.");
+return this.intersectsSphere(a)}});Object.assign(Ga.prototype,{area:function(){console.warn("THREE.Triangle: .area() has been renamed to .getArea().");return this.getArea()},barycoordFromPoint:function(a,b){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return this.getBarycoord(a,b)},midpoint:function(a){console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint().");return this.getMidpoint(a)},normal:function(a){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");
+return this.getNormal(a)},plane:function(a){console.warn("THREE.Triangle: .plane() has been renamed to .getPlane().");return this.getPlane(a)}});Object.assign(Ga,{barycoordFromPoint:function(a,b,d,e,f){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return Ga.getBarycoord(a,b,d,e,f)},normal:function(a,b,d,e){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");return Ga.getNormal(a,b,d,e)}});Object.assign(Pc.prototype,{extractAllPoints:function(a){console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.");
 return this.extractPoints(a)},extrude:function(a){console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.");return new hd(this,a)},makeGeometry:function(a){console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.");return new jd(this,a)}});Object.assign(L.prototype,{fromAttribute:function(a,b,d){console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,d)},distanceToManhattan:function(a){console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");
 return this.manhattanDistanceTo(a)},lengthManhattan:function(){console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(w.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},
 getPositionFromMatrix:function(a){console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().");return this.setFromMatrixPosition(a)},getScaleFromMatrix:function(a){console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().");return this.setFromMatrixScale(a)},getColumnFromMatrix:function(a,b){console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().");return this.setFromMatrixColumn(b,
@@ -1085,7 +1085,7 @@ oc;r.Ray=Ta;r.Raycaster=Sh;r.RectAreaLight=rg;r.RedFormat=1028;r.RedIntegerForma
 37841;r.SRGB8_ALPHA8_ASTC_5x5_Format=37842;r.SRGB8_ALPHA8_ASTC_6x5_Format=37843;r.SRGB8_ALPHA8_ASTC_6x6_Format=37844;r.SRGB8_ALPHA8_ASTC_8x5_Format=37845;r.SRGB8_ALPHA8_ASTC_8x6_Format=37846;r.SRGB8_ALPHA8_ASTC_8x8_Format=37847;r.Scene=Jc;r.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")}};
 r.ShaderChunk=Ba;r.ShaderLib=Pb;r.ShaderMaterial=sb;r.ShadowMaterial=md;r.Shape=Pc;r.ShapeBufferGeometry=kd;r.ShapeGeometry=jd;r.ShapePath=Ih;r.ShapeUtils=mc;r.ShortType=1011;r.Skeleton=Yf;r.SkeletonHelper=ke;r.SkinnedMesh=Xf;r.SmoothShading=2;r.Sphere=Wa;r.SphereBufferGeometry=id;r.SphereGeometry=hf;r.Spherical=Ad;r.SphericalHarmonics3=pb;r.Spline=Xh;r.SplineCurve=Vb;r.SplineCurve3=uj;r.SpotLight=ng;r.SpotLightHelper=je;r.Sprite=Qe;r.SpriteMaterial=Lc;r.SrcAlphaFactor=204;r.SrcAlphaSaturateFactor=
 210;r.SrcColorFactor=202;r.StaticCopyUsage=35046;r.StaticDrawUsage=35044;r.StaticReadUsage=35045;r.StereoCamera=lj;r.StreamCopyUsage=35042;r.StreamDrawUsage=35040;r.StreamReadUsage=35041;r.StringKeyframeTrack=ig;r.SubtractEquation=101;r.SubtractiveBlending=3;r.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};r.TangentSpaceNormalMap=0;r.TetrahedronBufferGeometry=Td;r.TetrahedronGeometry=Xe;r.TextBufferGeometry=Zd;r.TextGeometry=gf;r.Texture=Oa;r.TextureLoader=lg;r.TorusBufferGeometry=Xd;r.TorusGeometry=
-cf;r.TorusKnotBufferGeometry=Wd;r.TorusKnotGeometry=bf;r.Triangle=Ha;r.TriangleFanDrawMode=2;r.TriangleStripDrawMode=1;r.TrianglesDrawMode=0;r.TubeBufferGeometry=gd;r.TubeGeometry=af;r.UVMapping=300;r.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new Zc(a,b)};r.Uint16BufferAttribute=Zc;r.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");
+cf;r.TorusKnotBufferGeometry=Wd;r.TorusKnotGeometry=bf;r.Triangle=Ga;r.TriangleFanDrawMode=2;r.TriangleStripDrawMode=1;r.TrianglesDrawMode=0;r.TubeBufferGeometry=gd;r.TubeGeometry=af;r.UVMapping=300;r.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new Zc(a,b)};r.Uint16BufferAttribute=Zc;r.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");
 return new $c(a,b)};r.Uint32BufferAttribute=$c;r.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new De(a,b)};r.Uint8BufferAttribute=De;r.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");return new Ee(a,b)};r.Uint8ClampedBufferAttribute=Ee;r.Uniform=Yg;r.UniformsLib=fa;r.UniformsUtils=Ri;r.UnsignedByteType=1009;
 r.UnsignedInt248Type=1020;r.UnsignedIntType=1014;r.UnsignedShort4444Type=1017;r.UnsignedShort5551Type=1018;r.UnsignedShort565Type=1019;r.UnsignedShortType=1012;r.VSMShadowMap=3;r.Vector2=L;r.Vector3=w;r.Vector4=ca;r.VectorKeyframeTrack=ee;r.Vertex=function(a,b,d){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new w(a,b,d)};r.VertexColors=2;r.VideoTexture=xh;r.WebGL1Renderer=th;r.WebGLCubeRenderTarget=Cc;r.WebGLMultisampleRenderTarget=dh;r.WebGLRenderTarget=Db;r.WebGLRenderTargetCube=
 function(a,b,d){console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).");return new Cc(a,d)};r.WebGLRenderer=Ne;r.WebGLUtils=Vi;r.WireframeGeometry=Rd;r.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new Za(new Rd(a.geometry),new Ya({color:void 0!==b?b:16777215}))};r.WrapAroundEnding=2402;r.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");

+ 0 - 34
build/three.module.js

@@ -25893,40 +25893,6 @@ function WebGLRenderer( parameters ) {
 
 		}
 
-		const programAttributes = program.getAttributes();
-
-		if ( material.morphTargets ) {
-
-			material.numSupportedMorphTargets = 0;
-
-			for ( let i = 0; i < _this.maxMorphTargets; i ++ ) {
-
-				if ( programAttributes[ 'morphTarget' + i ] >= 0 ) {
-
-					material.numSupportedMorphTargets ++;
-
-				}
-
-			}
-
-		}
-
-		if ( material.morphNormals ) {
-
-			material.numSupportedMorphNormals = 0;
-
-			for ( let i = 0; i < _this.maxMorphNormals; i ++ ) {
-
-				if ( programAttributes[ 'morphNormal' + i ] >= 0 ) {
-
-					material.numSupportedMorphNormals ++;
-
-				}
-
-			}
-
-		}
-
 		const uniforms = materialProperties.uniforms;
 
 		if ( ! material.isShaderMaterial &&