فهرست منبع

Updated builds.

Mr.doob 8 سال پیش
والد
کامیت
786fdfca97
3فایلهای تغییر یافته به همراه144 افزوده شده و 108 حذف شده
  1. 19 1
      build/three.js
  2. 106 106
      build/three.min.js
  3. 19 1
      build/three.module.js

+ 19 - 1
build/three.js

@@ -1089,7 +1089,17 @@
 					canvas.width = image.width;
 					canvas.width = image.width;
 					canvas.height = image.height;
 					canvas.height = image.height;
 
 
-					canvas.getContext( '2d' ).drawImage( image, 0, 0, image.width, image.height );
+					var context = canvas.getContext( '2d' );
+
+					if ( image instanceof ImageData ) {
+
+						context.putImageData( image, 0, 0 );
+
+					} else {
+
+						context.drawImage( image, 0, 0, image.width, image.height );
+
+					}
 
 
 				}
 				}
 
 
@@ -20415,6 +20425,12 @@
 
 
 		};
 		};
 
 
+		this.dispose = function() {
+
+			window.removeEventListener( 'vrdisplaypresentchange', onVRDisplayPresentChange );
+
+		};
+
 	}
 	}
 
 
 	/**
 	/**
@@ -21100,6 +21116,8 @@
 
 
 			renderLists.dispose();
 			renderLists.dispose();
 
 
+			vr.dispose();
+
 		};
 		};
 
 
 		// Events
 		// Events

+ 106 - 106
build/three.min.js

@@ -1,5 +1,5 @@
 // threejs.org/license
 // threejs.org/license
-(function(m,oa){"object"===typeof exports&&"undefined"!==typeof module?oa(exports):"function"===typeof define&&define.amd?define(["exports"],oa):oa(m.THREE=m.THREE||{})})(this,function(m){function oa(){}function E(a,b){this.x=a||0;this.y=b||0}function T(a,b,c,d,e,f,g,h,k,l){Object.defineProperty(this,"id",{value:mf++});this.uuid=N.generateUUID();this.name="";this.image=void 0!==a?a:T.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==b?b:T.DEFAULT_MAPPING;this.wrapS=void 0!==c?c:1001;this.wrapT=
+(function(m,pa){"object"===typeof exports&&"undefined"!==typeof module?pa(exports):"function"===typeof define&&define.amd?define(["exports"],pa):pa(m.THREE=m.THREE||{})})(this,function(m){function pa(){}function E(a,b){this.x=a||0;this.y=b||0}function T(a,b,c,d,e,f,g,h,k,l){Object.defineProperty(this,"id",{value:mf++});this.uuid=N.generateUUID();this.name="";this.image=void 0!==a?a:T.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==b?b:T.DEFAULT_MAPPING;this.wrapS=void 0!==c?c:1001;this.wrapT=
 void 0!==d?d:1001;this.magFilter=void 0!==e?e:1006;this.minFilter=void 0!==f?f:1008;this.anisotropy=void 0!==k?k:1;this.format=void 0!==g?g:1023;this.type=void 0!==h?h:1009;this.offset=new E(0,0);this.repeat=new E(1,1);this.generateMipmaps=!0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this.encoding=void 0!==l?l:3E3;this.version=0;this.onUpdate=null}function ca(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1}function zb(a,b,c){this.uuid=N.generateUUID();this.width=
 void 0!==d?d:1001;this.magFilter=void 0!==e?e:1006;this.minFilter=void 0!==f?f:1008;this.anisotropy=void 0!==k?k:1;this.format=void 0!==g?g:1023;this.type=void 0!==h?h:1009;this.offset=new E(0,0);this.repeat=new E(1,1);this.generateMipmaps=!0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this.encoding=void 0!==l?l:3E3;this.version=0;this.onUpdate=null}function ca(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1}function zb(a,b,c){this.uuid=N.generateUUID();this.width=
 a;this.height=b;this.scissor=new ca(0,0,a,b);this.scissorTest=!1;this.viewport=new ca(0,0,a,b);c=c||{};void 0===c.minFilter&&(c.minFilter=1006);this.texture=new T(void 0,void 0,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,c.encoding);this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.depthTexture=void 0!==c.depthTexture?c.depthTexture:null}function Ab(a,b,c){zb.call(this,a,b,c);this.activeMipMapLevel=
 a;this.height=b;this.scissor=new ca(0,0,a,b);this.scissorTest=!1;this.viewport=new ca(0,0,a,b);c=c||{};void 0===c.minFilter&&(c.minFilter=1006);this.texture=new T(void 0,void 0,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,c.encoding);this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.depthTexture=void 0!==c.depthTexture?c.depthTexture:null}function Ab(a,b,c){zb.call(this,a,b,c);this.activeMipMapLevel=
 this.activeCubeFace=0}function ka(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._w=void 0!==d?d:1}function n(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0}function O(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function ab(a,b,c,d,e,f,g,h,k,l,p,q){T.call(this,null,f,g,h,k,l,d,e,p,q);this.image={data:a,width:b,height:c};this.magFilter=void 0!==k?k:1003;this.minFilter=void 0!==
 this.activeCubeFace=0}function ka(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._w=void 0!==d?d:1}function n(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0}function O(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function ab(a,b,c,d,e,f,g,h,k,l,p,q){T.call(this,null,f,g,h,k,l,d,e,p,q);this.image={data:a,width:b,height:c};this.magFilter=void 0!==k?k:1003;this.minFilter=void 0!==
@@ -10,29 +10,29 @@ b)}function xf(a){switch(a){case 5126:return nf;case 35664:return pf;case 35665:
 b){a.uniform3fv(this.addr,Bb(b,this.size,3))}function Cf(a,b){a.uniform4fv(this.addr,Bb(b,this.size,4))}function Df(a,b){a.uniformMatrix2fv(this.addr,!1,Bb(b,this.size,4))}function Ef(a,b){a.uniformMatrix3fv(this.addr,!1,Bb(b,this.size,9))}function Ff(a,b){a.uniformMatrix4fv(this.addr,!1,Bb(b,this.size,16))}function Gf(a,b,c){var d=b.length,e=Be(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.setTexture2D(b[a]||Fe,e[a])}function Hf(a,b,c){var d=b.length,e=Be(c,d);a.uniform1iv(this.addr,e);for(a=
 b){a.uniform3fv(this.addr,Bb(b,this.size,3))}function Cf(a,b){a.uniform4fv(this.addr,Bb(b,this.size,4))}function Df(a,b){a.uniformMatrix2fv(this.addr,!1,Bb(b,this.size,4))}function Ef(a,b){a.uniformMatrix3fv(this.addr,!1,Bb(b,this.size,9))}function Ff(a,b){a.uniformMatrix4fv(this.addr,!1,Bb(b,this.size,16))}function Gf(a,b,c){var d=b.length,e=Be(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.setTexture2D(b[a]||Fe,e[a])}function Hf(a,b,c){var d=b.length,e=Be(c,d);a.uniform1iv(this.addr,e);for(a=
 0;a!==d;++a)c.setTextureCube(b[a]||Ge,e[a])}function If(a){switch(a){case 5126:return yf;case 35664:return Af;case 35665:return Bf;case 35666:return Cf;case 35674:return Df;case 35675:return Ef;case 35676:return Ff;case 35678:return Gf;case 35680:return Hf;case 5124:case 35670:return zf;case 35667:case 35671:return He;case 35668:case 35672:return Ie;case 35669:case 35673:return Je}}function Jf(a,b,c){this.id=a;this.addr=c;this.setValue=xf(b.type)}function Kf(a,b,c){this.id=a;this.addr=c;this.size=
 0;a!==d;++a)c.setTextureCube(b[a]||Ge,e[a])}function If(a){switch(a){case 5126:return yf;case 35664:return Af;case 35665:return Bf;case 35666:return Cf;case 35674:return Df;case 35675:return Ef;case 35676:return Ff;case 35678:return Gf;case 35680:return Hf;case 5124:case 35670:return zf;case 35667:case 35671:return He;case 35668:case 35672:return Ie;case 35669:case 35673:return Je}}function Jf(a,b,c){this.id=a;this.addr=c;this.setValue=xf(b.type)}function Kf(a,b,c){this.id=a;this.addr=c;this.size=
 b.size;this.setValue=If(b.type)}function Ke(a){this.id=a;this.seq=[];this.map={}}function bb(a,b,c){this.seq=[];this.map={};this.renderer=c;c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(var d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),g=this,h=e.name,k=h.length;for(Sd.lastIndex=0;;){var l=Sd.exec(h),p=Sd.lastIndex,q=l[1],r=l[3];"]"===l[2]&&(q|=0);if(void 0===r||"["===r&&p+2===k){h=g;e=void 0===r?new Jf(q,e,f):new Kf(q,e,f);h.seq.push(e);h.map[e.id]=e;break}else r=
 b.size;this.setValue=If(b.type)}function Ke(a){this.id=a;this.seq=[];this.map={}}function bb(a,b,c){this.seq=[];this.map={};this.renderer=c;c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(var d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),g=this,h=e.name,k=h.length;for(Sd.lastIndex=0;;){var l=Sd.exec(h),p=Sd.lastIndex,q=l[1],r=l[3];"]"===l[2]&&(q|=0);if(void 0===r||"["===r&&p+2===k){h=g;e=void 0===r?new Jf(q,e,f):new Kf(q,e,f);h.seq.push(e);h.map[e.id]=e;break}else r=
-g.map[q],void 0===r&&(r=new Ke(q),q=g,g=r,q.seq.push(g),q.map[g.id]=g),g=r}}}function x(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function hd(a,b){this.min=void 0!==a?a:new E(Infinity,Infinity);this.max=void 0!==b?b:new E(-Infinity,-Infinity)}function Lf(a,b,c,d){var e,f,g,h,k,l,p,q,r,t,m,w,v,y,B,G;this.render=function(u,H,pa,Y){if(0!==u.length){H=new n;var D=Y.w/Y.z,nc=.5*Y.z,id=.5*Y.w,ja=16/Y.w,ia=new E(ja*D,ja),Q=new n(1,1,0),K=new E(1,1),S=new hd;S.min.set(Y.x,Y.y);S.max.set(Y.x+
+g.map[q],void 0===r&&(r=new Ke(q),q=g,g=r,q.seq.push(g),q.map[g.id]=g),g=r}}}function x(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function hd(a,b){this.min=void 0!==a?a:new E(Infinity,Infinity);this.max=void 0!==b?b:new E(-Infinity,-Infinity)}function Lf(a,b,c,d){var e,f,g,h,k,l,p,q,r,t,m,w,v,y,B,G;this.render=function(u,H,qa,Y){if(0!==u.length){H=new n;var D=Y.w/Y.z,nc=.5*Y.z,id=.5*Y.w,ja=16/Y.w,ia=new E(ja*D,ja),Q=new n(1,1,0),K=new E(1,1),S=new hd;S.min.set(Y.x,Y.y);S.max.set(Y.x+
 (Y.z-16),Y.y+(Y.w-16));if(void 0===y){var ja=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),P=new Uint16Array([0,1,2,0,2,3]);m=b.createBuffer();w=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,m);b.bufferData(b.ARRAY_BUFFER,ja,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,w);b.bufferData(b.ELEMENT_ARRAY_BUFFER,P,b.STATIC_DRAW);B=b.createTexture();G=b.createTexture();c.bindTexture(b.TEXTURE_2D,B);b.texImage2D(b.TEXTURE_2D,0,b.RGB,16,16,0,b.RGB,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,
 (Y.z-16),Y.y+(Y.w-16));if(void 0===y){var ja=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),P=new Uint16Array([0,1,2,0,2,3]);m=b.createBuffer();w=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,m);b.bufferData(b.ARRAY_BUFFER,ja,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,w);b.bufferData(b.ELEMENT_ARRAY_BUFFER,P,b.STATIC_DRAW);B=b.createTexture();G=b.createTexture();c.bindTexture(b.TEXTURE_2D,B);b.texImage2D(b.TEXTURE_2D,0,b.RGB,16,16,0,b.RGB,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,
 b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);c.bindTexture(b.TEXTURE_2D,G);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,16,16,0,b.RGBA,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);
 b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);c.bindTexture(b.TEXTURE_2D,G);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,16,16,0,b.RGBA,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);
 b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);var ja=v={vertexShader:"uniform lowp int renderType;\nuniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform sampler2D occlusionMap;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nvUV = uv;\nvec2 pos = position;\nif ( renderType == 2 ) {\nvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\nvVisibility =        visibility.r / 9.0;\nvVisibility *= 1.0 - visibility.g / 9.0;\nvVisibility *=       visibility.b / 9.0;\nvVisibility *= 1.0 - visibility.a / 9.0;\npos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\npos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n}\ngl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",
 b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);var ja=v={vertexShader:"uniform lowp int renderType;\nuniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform sampler2D occlusionMap;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nvUV = uv;\nvec2 pos = position;\nif ( renderType == 2 ) {\nvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\nvVisibility =        visibility.r / 9.0;\nvVisibility *= 1.0 - visibility.g / 9.0;\nvVisibility *=       visibility.b / 9.0;\nvVisibility *= 1.0 - visibility.a / 9.0;\npos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\npos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n}\ngl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",
 fragmentShader:"uniform lowp int renderType;\nuniform sampler2D map;\nuniform float opacity;\nuniform vec3 color;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nif ( renderType == 0 ) {\ngl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\n} else if ( renderType == 1 ) {\ngl_FragColor = texture2D( map, vUV );\n} else {\nvec4 texture = texture2D( map, vUV );\ntexture.a *= opacity * vVisibility;\ngl_FragColor = texture;\ngl_FragColor.rgb *= color;\n}\n}"},P=b.createProgram(),z=b.createShader(b.FRAGMENT_SHADER),
 fragmentShader:"uniform lowp int renderType;\nuniform sampler2D map;\nuniform float opacity;\nuniform vec3 color;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nif ( renderType == 0 ) {\ngl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\n} else if ( renderType == 1 ) {\ngl_FragColor = texture2D( map, vUV );\n} else {\nvec4 texture = texture2D( map, vUV );\ntexture.a *= opacity * vVisibility;\ngl_FragColor = texture;\ngl_FragColor.rgb *= color;\n}\n}"},P=b.createProgram(),z=b.createShader(b.FRAGMENT_SHADER),
 Ba=b.createShader(b.VERTEX_SHADER),A="precision "+d.precision+" float;\n";b.shaderSource(z,A+ja.fragmentShader);b.shaderSource(Ba,A+ja.vertexShader);b.compileShader(z);b.compileShader(Ba);b.attachShader(P,z);b.attachShader(P,Ba);b.linkProgram(P);y=P;r=b.getAttribLocation(y,"position");t=b.getAttribLocation(y,"uv");e=b.getUniformLocation(y,"renderType");f=b.getUniformLocation(y,"map");g=b.getUniformLocation(y,"occlusionMap");h=b.getUniformLocation(y,"opacity");k=b.getUniformLocation(y,"color");l=b.getUniformLocation(y,
 Ba=b.createShader(b.VERTEX_SHADER),A="precision "+d.precision+" float;\n";b.shaderSource(z,A+ja.fragmentShader);b.shaderSource(Ba,A+ja.vertexShader);b.compileShader(z);b.compileShader(Ba);b.attachShader(P,z);b.attachShader(P,Ba);b.linkProgram(P);y=P;r=b.getAttribLocation(y,"position");t=b.getAttribLocation(y,"uv");e=b.getUniformLocation(y,"renderType");f=b.getUniformLocation(y,"map");g=b.getUniformLocation(y,"occlusionMap");h=b.getUniformLocation(y,"opacity");k=b.getUniformLocation(y,"color");l=b.getUniformLocation(y,
 "scale");p=b.getUniformLocation(y,"rotation");q=b.getUniformLocation(y,"screenPosition")}c.useProgram(y);c.initAttributes();c.enableAttribute(r);c.enableAttribute(t);c.disableUnusedAttributes();b.uniform1i(g,0);b.uniform1i(f,1);b.bindBuffer(b.ARRAY_BUFFER,m);b.vertexAttribPointer(r,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(t,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,w);c.disable(b.CULL_FACE);c.buffers.depth.setMask(!1);P=0;for(z=u.length;P<z;P++)if(ja=16/Y.w,ia.set(ja*D,ja),Ba=u[P],H.set(Ba.matrixWorld.elements[12],
 "scale");p=b.getUniformLocation(y,"rotation");q=b.getUniformLocation(y,"screenPosition")}c.useProgram(y);c.initAttributes();c.enableAttribute(r);c.enableAttribute(t);c.disableUnusedAttributes();b.uniform1i(g,0);b.uniform1i(f,1);b.bindBuffer(b.ARRAY_BUFFER,m);b.vertexAttribPointer(r,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(t,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,w);c.disable(b.CULL_FACE);c.buffers.depth.setMask(!1);P=0;for(z=u.length;P<z;P++)if(ja=16/Y.w,ia.set(ja*D,ja),Ba=u[P],H.set(Ba.matrixWorld.elements[12],
-Ba.matrixWorld.elements[13],Ba.matrixWorld.elements[14]),H.applyMatrix4(pa.matrixWorldInverse),H.applyMatrix4(pa.projectionMatrix),Q.copy(H),K.x=Y.x+Q.x*nc+nc-8,K.y=Y.y+Q.y*id+id-8,!0===S.containsPoint(K)){c.activeTexture(b.TEXTURE0);c.bindTexture(b.TEXTURE_2D,null);c.activeTexture(b.TEXTURE1);c.bindTexture(b.TEXTURE_2D,B);b.copyTexImage2D(b.TEXTURE_2D,0,b.RGB,K.x,K.y,16,16,0);b.uniform1i(e,0);b.uniform2f(l,ia.x,ia.y);b.uniform3f(q,Q.x,Q.y,Q.z);c.disable(b.BLEND);c.enable(b.DEPTH_TEST);b.drawElements(b.TRIANGLES,
+Ba.matrixWorld.elements[13],Ba.matrixWorld.elements[14]),H.applyMatrix4(qa.matrixWorldInverse),H.applyMatrix4(qa.projectionMatrix),Q.copy(H),K.x=Y.x+Q.x*nc+nc-8,K.y=Y.y+Q.y*id+id-8,!0===S.containsPoint(K)){c.activeTexture(b.TEXTURE0);c.bindTexture(b.TEXTURE_2D,null);c.activeTexture(b.TEXTURE1);c.bindTexture(b.TEXTURE_2D,B);b.copyTexImage2D(b.TEXTURE_2D,0,b.RGB,K.x,K.y,16,16,0);b.uniform1i(e,0);b.uniform2f(l,ia.x,ia.y);b.uniform3f(q,Q.x,Q.y,Q.z);c.disable(b.BLEND);c.enable(b.DEPTH_TEST);b.drawElements(b.TRIANGLES,
 6,b.UNSIGNED_SHORT,0);c.activeTexture(b.TEXTURE0);c.bindTexture(b.TEXTURE_2D,G);b.copyTexImage2D(b.TEXTURE_2D,0,b.RGBA,K.x,K.y,16,16,0);b.uniform1i(e,1);c.disable(b.DEPTH_TEST);c.activeTexture(b.TEXTURE1);c.bindTexture(b.TEXTURE_2D,B);b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0);Ba.positionScreen.copy(Q);Ba.customUpdateCallback?Ba.customUpdateCallback(Ba):Ba.updateLensFlares();b.uniform1i(e,2);c.enable(b.BLEND);for(var A=0,F=Ba.lensFlares.length;A<F;A++){var x=Ba.lensFlares[A];.001<x.opacity&&
 6,b.UNSIGNED_SHORT,0);c.activeTexture(b.TEXTURE0);c.bindTexture(b.TEXTURE_2D,G);b.copyTexImage2D(b.TEXTURE_2D,0,b.RGBA,K.x,K.y,16,16,0);b.uniform1i(e,1);c.disable(b.DEPTH_TEST);c.activeTexture(b.TEXTURE1);c.bindTexture(b.TEXTURE_2D,B);b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0);Ba.positionScreen.copy(Q);Ba.customUpdateCallback?Ba.customUpdateCallback(Ba):Ba.updateLensFlares();b.uniform1i(e,2);c.enable(b.BLEND);for(var A=0,F=Ba.lensFlares.length;A<F;A++){var x=Ba.lensFlares[A];.001<x.opacity&&
 .001<x.scale&&(Q.x=x.x,Q.y=x.y,Q.z=x.z,ja=x.size*x.scale/Y.w,ia.x=ja*D,ia.y=ja,b.uniform3f(q,Q.x,Q.y,Q.z),b.uniform2f(l,ia.x,ia.y),b.uniform1f(p,x.rotation),b.uniform1f(h,x.opacity),b.uniform3f(k,x.color.r,x.color.g,x.color.b),c.setBlending(x.blending,x.blendEquation,x.blendSrc,x.blendDst),a.setTexture2D(x.texture,1),b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0))}}c.enable(b.CULL_FACE);c.enable(b.DEPTH_TEST);c.buffers.depth.setMask(!0);c.reset()}}}function oc(a,b,c,d,e,f,g,h,k){T.call(this,a,b,
 .001<x.scale&&(Q.x=x.x,Q.y=x.y,Q.z=x.z,ja=x.size*x.scale/Y.w,ia.x=ja*D,ia.y=ja,b.uniform3f(q,Q.x,Q.y,Q.z),b.uniform2f(l,ia.x,ia.y),b.uniform1f(p,x.rotation),b.uniform1f(h,x.opacity),b.uniform3f(k,x.color.r,x.color.g,x.color.b),c.setBlending(x.blending,x.blendEquation,x.blendSrc,x.blendDst),a.setTexture2D(x.texture,1),b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0))}}c.enable(b.CULL_FACE);c.enable(b.DEPTH_TEST);c.buffers.depth.setMask(!0);c.reset()}}}function oc(a,b,c,d,e,f,g,h,k){T.call(this,a,b,
-c,d,e,f,g,h,k);this.needsUpdate=!0}function Mf(a,b,c,d){var e,f,g,h,k,l,p,q,r,t,m,w,v,y,B,G,D;function H(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:b.id-a.id}var pa,Y,ma,nc,id=new n,ja=new ka,ia=new n;this.render=function(u,n,S){if(0!==u.length){if(void 0===ma){var P=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),K=new Uint16Array([0,1,2,0,2,3]);pa=b.createBuffer();Y=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,pa);b.bufferData(b.ARRAY_BUFFER,
+c,d,e,f,g,h,k);this.needsUpdate=!0}function Mf(a,b,c,d){var e,f,g,h,k,l,p,q,r,t,m,w,v,y,B,G,D;function H(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:b.id-a.id}var qa,Y,ma,nc,id=new n,ja=new ka,ia=new n;this.render=function(u,n,S){if(0!==u.length){if(void 0===ma){var P=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),K=new Uint16Array([0,1,2,0,2,3]);qa=b.createBuffer();Y=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,qa);b.bufferData(b.ARRAY_BUFFER,
 P,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,Y);b.bufferData(b.ELEMENT_ARRAY_BUFFER,K,b.STATIC_DRAW);P=b.createProgram();K=b.createShader(b.VERTEX_SHADER);var Q=b.createShader(b.FRAGMENT_SHADER);b.shaderSource(K,["precision "+d.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvoid main() {\nvUV = uvOffset + uv * uvScale;\nvec2 alignedPosition = position * scale;\nvec2 rotatedPosition;\nrotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\nrotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\nvec4 finalPosition;\nfinalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\nfinalPosition.xy += rotatedPosition;\nfinalPosition = projectionMatrix * finalPosition;\ngl_Position = finalPosition;\n}"].join("\n"));
 P,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,Y);b.bufferData(b.ELEMENT_ARRAY_BUFFER,K,b.STATIC_DRAW);P=b.createProgram();K=b.createShader(b.VERTEX_SHADER);var Q=b.createShader(b.FRAGMENT_SHADER);b.shaderSource(K,["precision "+d.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvoid main() {\nvUV = uvOffset + uv * uvScale;\nvec2 alignedPosition = position * scale;\nvec2 rotatedPosition;\nrotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\nrotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\nvec4 finalPosition;\nfinalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\nfinalPosition.xy += rotatedPosition;\nfinalPosition = projectionMatrix * finalPosition;\ngl_Position = finalPosition;\n}"].join("\n"));
 b.shaderSource(Q,["precision "+d.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform vec3 color;\nuniform sampler2D map;\nuniform float opacity;\nuniform int fogType;\nuniform vec3 fogColor;\nuniform float fogDensity;\nuniform float fogNear;\nuniform float fogFar;\nuniform float alphaTest;\nvarying vec2 vUV;\nvoid main() {\nvec4 texture = texture2D( map, vUV );\nif ( texture.a < alphaTest ) discard;\ngl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\nif ( fogType > 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"].join("\n"));
 b.shaderSource(Q,["precision "+d.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform vec3 color;\nuniform sampler2D map;\nuniform float opacity;\nuniform int fogType;\nuniform vec3 fogColor;\nuniform float fogDensity;\nuniform float fogNear;\nuniform float fogFar;\nuniform float alphaTest;\nvarying vec2 vUV;\nvoid main() {\nvec4 texture = texture2D( map, vUV );\nif ( texture.a < alphaTest ) discard;\ngl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\nif ( fogType > 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"].join("\n"));
 b.compileShader(K);b.compileShader(Q);b.attachShader(P,K);b.attachShader(P,Q);b.linkProgram(P);ma=P;G=b.getAttribLocation(ma,"position");D=b.getAttribLocation(ma,"uv");e=b.getUniformLocation(ma,"uvOffset");f=b.getUniformLocation(ma,"uvScale");g=b.getUniformLocation(ma,"rotation");h=b.getUniformLocation(ma,"scale");k=b.getUniformLocation(ma,"color");l=b.getUniformLocation(ma,"map");p=b.getUniformLocation(ma,"opacity");q=b.getUniformLocation(ma,"modelViewMatrix");r=b.getUniformLocation(ma,"projectionMatrix");
 b.compileShader(K);b.compileShader(Q);b.attachShader(P,K);b.attachShader(P,Q);b.linkProgram(P);ma=P;G=b.getAttribLocation(ma,"position");D=b.getAttribLocation(ma,"uv");e=b.getUniformLocation(ma,"uvOffset");f=b.getUniformLocation(ma,"uvScale");g=b.getUniformLocation(ma,"rotation");h=b.getUniformLocation(ma,"scale");k=b.getUniformLocation(ma,"color");l=b.getUniformLocation(ma,"map");p=b.getUniformLocation(ma,"opacity");q=b.getUniformLocation(ma,"modelViewMatrix");r=b.getUniformLocation(ma,"projectionMatrix");
 t=b.getUniformLocation(ma,"fogType");m=b.getUniformLocation(ma,"fogDensity");w=b.getUniformLocation(ma,"fogNear");v=b.getUniformLocation(ma,"fogFar");y=b.getUniformLocation(ma,"fogColor");B=b.getUniformLocation(ma,"alphaTest");P=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");P.width=8;P.height=8;K=P.getContext("2d");K.fillStyle="white";K.fillRect(0,0,8,8);nc=new oc(P)}c.useProgram(ma);c.initAttributes();c.enableAttribute(G);c.enableAttribute(D);c.disableUnusedAttributes();c.disable(b.CULL_FACE);
 t=b.getUniformLocation(ma,"fogType");m=b.getUniformLocation(ma,"fogDensity");w=b.getUniformLocation(ma,"fogNear");v=b.getUniformLocation(ma,"fogFar");y=b.getUniformLocation(ma,"fogColor");B=b.getUniformLocation(ma,"alphaTest");P=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");P.width=8;P.height=8;K=P.getContext("2d");K.fillStyle="white";K.fillRect(0,0,8,8);nc=new oc(P)}c.useProgram(ma);c.initAttributes();c.enableAttribute(G);c.enableAttribute(D);c.disableUnusedAttributes();c.disable(b.CULL_FACE);
-c.enable(b.BLEND);b.bindBuffer(b.ARRAY_BUFFER,pa);b.vertexAttribPointer(G,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(D,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,Y);b.uniformMatrix4fv(r,!1,S.projectionMatrix.elements);c.activeTexture(b.TEXTURE0);b.uniform1i(l,0);K=P=0;(Q=n.fog)?(b.uniform3f(y,Q.color.r,Q.color.g,Q.color.b),Q.isFog?(b.uniform1f(w,Q.near),b.uniform1f(v,Q.far),b.uniform1i(t,1),K=P=1):Q.isFogExp2&&(b.uniform1f(m,Q.density),b.uniform1i(t,2),K=P=2)):(b.uniform1i(t,0),K=P=0);for(var z=
+c.enable(b.BLEND);b.bindBuffer(b.ARRAY_BUFFER,qa);b.vertexAttribPointer(G,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(D,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,Y);b.uniformMatrix4fv(r,!1,S.projectionMatrix.elements);c.activeTexture(b.TEXTURE0);b.uniform1i(l,0);K=P=0;(Q=n.fog)?(b.uniform3f(y,Q.color.r,Q.color.g,Q.color.b),Q.isFog?(b.uniform1f(w,Q.near),b.uniform1f(v,Q.far),b.uniform1i(t,1),K=P=1):Q.isFogExp2&&(b.uniform1f(m,Q.density),b.uniform1i(t,2),K=P=2)):(b.uniform1i(t,0),K=P=0);for(var z=
 0,A=u.length;z<A;z++)Q=u[z],Q.modelViewMatrix.multiplyMatrices(S.matrixWorldInverse,Q.matrixWorld),Q.z=-Q.modelViewMatrix.elements[14];u.sort(H);for(var E=[],z=0,A=u.length;z<A;z++){Q=u[z];var x=Q.material;if(!1!==x.visible){Q.onBeforeRender(a,n,S,void 0,x,void 0);b.uniform1f(B,x.alphaTest);b.uniformMatrix4fv(q,!1,Q.modelViewMatrix.elements);Q.matrixWorld.decompose(id,ja,ia);E[0]=ia.x;E[1]=ia.y;var I=0;n.fog&&x.fog&&(I=K);P!==I&&(b.uniform1i(t,I),P=I);null!==x.map?(b.uniform2f(e,x.map.offset.x,x.map.offset.y),
 0,A=u.length;z<A;z++)Q=u[z],Q.modelViewMatrix.multiplyMatrices(S.matrixWorldInverse,Q.matrixWorld),Q.z=-Q.modelViewMatrix.elements[14];u.sort(H);for(var E=[],z=0,A=u.length;z<A;z++){Q=u[z];var x=Q.material;if(!1!==x.visible){Q.onBeforeRender(a,n,S,void 0,x,void 0);b.uniform1f(B,x.alphaTest);b.uniformMatrix4fv(q,!1,Q.modelViewMatrix.elements);Q.matrixWorld.decompose(id,ja,ia);E[0]=ia.x;E[1]=ia.y;var I=0;n.fog&&x.fog&&(I=K);P!==I&&(b.uniform1i(t,I),P=I);null!==x.map?(b.uniform2f(e,x.map.offset.x,x.map.offset.y),
 b.uniform2f(f,x.map.repeat.x,x.map.repeat.y)):(b.uniform2f(e,0,0),b.uniform2f(f,1,1));b.uniform1f(p,x.opacity);b.uniform3f(k,x.color.r,x.color.g,x.color.b);b.uniform1f(g,x.rotation);b.uniform2fv(h,E);c.setBlending(x.blending,x.blendEquation,x.blendSrc,x.blendDst,x.blendEquationAlpha,x.blendSrcAlpha,x.blendDstAlpha,x.premultipliedAlpha);c.buffers.depth.setTest(x.depthTest);c.buffers.depth.setMask(x.depthWrite);x.map?a.setTexture2D(x.map,0):a.setTexture2D(nc,0);b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,
 b.uniform2f(f,x.map.repeat.x,x.map.repeat.y)):(b.uniform2f(e,0,0),b.uniform2f(f,1,1));b.uniform1f(p,x.opacity);b.uniform3f(k,x.color.r,x.color.g,x.color.b);b.uniform1f(g,x.rotation);b.uniform2fv(h,E);c.setBlending(x.blending,x.blendEquation,x.blendSrc,x.blendDst,x.blendEquationAlpha,x.blendSrcAlpha,x.blendDstAlpha,x.premultipliedAlpha);c.buffers.depth.setTest(x.depthTest);c.buffers.depth.setMask(x.depthWrite);x.map?a.setTexture2D(x.map,0):a.setTexture2D(nc,0);b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,
 0);Q.onAfterRender(a,n,S,void 0,x,void 0)}}c.enable(b.CULL_FACE);c.reset()}}}function L(){Object.defineProperty(this,"id",{value:Nf++});this.uuid=N.generateUUID();this.name="";this.type="Material";this.lights=this.fog=!0;this.blending=1;this.side=0;this.flatShading=!1;this.vertexColors=0;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=100;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;
 0);Q.onAfterRender(a,n,S,void 0,x,void 0)}}c.enable(b.CULL_FACE);c.reset()}}}function L(){Object.defineProperty(this,"id",{value:Nf++});this.uuid=N.generateUUID();this.name="";this.type="Material";this.lights=this.fog=!0;this.blending=1;this.side=0;this.flatShading=!1;this.vertexColors=0;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=100;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;
 this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=!1;this.alphaTest=0;this.premultipliedAlpha=!1;this.overdraw=0;this.needsUpdate=this.visible=!0}function sa(a){L.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";this.fragmentShader=
 this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=!1;this.alphaTest=0;this.premultipliedAlpha=!1;this.overdraw=0;this.needsUpdate=this.visible=!0}function sa(a){L.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";this.fragmentShader=
 "void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),
 "void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),
 this.setValues(a))}function Va(a){L.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.lights=this.fog=!1;this.setValues(a)}function Wa(a){L.call(this);this.type="MeshDistanceMaterial";this.referencePosition=new n;this.nearDistance=1;this.farDistance=1E3;this.morphTargets=this.skinning=!1;this.displacementMap=
 this.setValues(a))}function Va(a){L.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.lights=this.fog=!1;this.setValues(a)}function Wa(a){L.call(this);this.type="MeshDistanceMaterial";this.referencePosition=new n;this.nearDistance=1;this.farDistance=1E3;this.morphTargets=this.skinning=!1;this.displacementMap=
-this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.lights=this.fog=!1;this.setValues(a)}function Pa(a,b){this.min=void 0!==a?a:new n(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new n(-Infinity,-Infinity,-Infinity)}function Ca(a,b){this.center=void 0!==a?a:new n;this.radius=void 0!==b?b:0}function qa(){this.elements=[1,0,0,0,1,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function za(a,
+this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.lights=this.fog=!1;this.setValues(a)}function Pa(a,b){this.min=void 0!==a?a:new n(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new n(-Infinity,-Infinity,-Infinity)}function Ca(a,b){this.center=void 0!==a?a:new n;this.radius=void 0!==b?b:0}function na(){this.elements=[1,0,0,0,1,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function za(a,
 b){this.normal=void 0!==a?a:new n(1,0,0);this.constant=void 0!==b?b:0}function jd(a,b,c,d,e,f){this.planes=[void 0!==a?a:new za,void 0!==b?b:new za,void 0!==c?c:new za,void 0!==d?d:new za,void 0!==e?e:new za,void 0!==f?f:new za]}function Le(a,b,c){function d(b,c,d,e,f,g){var h=b.geometry;var k=q;var l=b.customDepthMaterial;d&&(k=r,l=b.customDistanceMaterial);l?k=l:(l=!1,c.morphTargets&&(h&&h.isBufferGeometry?l=h.morphAttributes&&h.morphAttributes.position&&0<h.morphAttributes.position.length:h&&h.isGeometry&&
 b){this.normal=void 0!==a?a:new n(1,0,0);this.constant=void 0!==b?b:0}function jd(a,b,c,d,e,f){this.planes=[void 0!==a?a:new za,void 0!==b?b:new za,void 0!==c?c:new za,void 0!==d?d:new za,void 0!==e?e:new za,void 0!==f?f:new za]}function Le(a,b,c){function d(b,c,d,e,f,g){var h=b.geometry;var k=q;var l=b.customDepthMaterial;d&&(k=r,l=b.customDistanceMaterial);l?k=l:(l=!1,c.morphTargets&&(h&&h.isBufferGeometry?l=h.morphAttributes&&h.morphAttributes.position&&0<h.morphAttributes.position.length:h&&h.isGeometry&&
 (l=h.morphTargets&&0<h.morphTargets.length)),b.isSkinnedMesh&&!1===c.skinning&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b),b=b.isSkinnedMesh&&c.skinning,h=0,l&&(h|=1),b&&(h|=2),k=k[h]);a.localClippingEnabled&&!0===c.clipShadows&&0!==c.clippingPlanes.length&&(h=k.uuid,l=c.uuid,b=t[h],void 0===b&&(b={},t[h]=b),h=b[l],void 0===h&&(h=k.clone(),b[l]=h),k=h);k.visible=c.visible;k.wireframe=c.wireframe;l=c.side;D.renderSingleSided&&2==l&&(l=0);D.renderReverseSided&&
 (l=h.morphTargets&&0<h.morphTargets.length)),b.isSkinnedMesh&&!1===c.skinning&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b),b=b.isSkinnedMesh&&c.skinning,h=0,l&&(h|=1),b&&(h|=2),k=k[h]);a.localClippingEnabled&&!0===c.clipShadows&&0!==c.clippingPlanes.length&&(h=k.uuid,l=c.uuid,b=t[h],void 0===b&&(b={},t[h]=b),h=b[l],void 0===h&&(h=k.clone(),b[l]=h),k=h);k.visible=c.visible;k.wireframe=c.wireframe;l=c.side;D.renderSingleSided&&2==l&&(l=0);D.renderReverseSided&&
 (0===l?l=1:1===l&&(l=0));k.side=l;k.clipShadows=c.clipShadows;k.clippingPlanes=c.clippingPlanes;k.clipIntersection=c.clipIntersection;k.wireframeLinewidth=c.wireframeLinewidth;k.linewidth=c.linewidth;d&&k.isMeshDistanceMaterial&&(k.referencePosition.copy(e),k.nearDistance=f,k.farDistance=g);return k}function e(c,g,h,k){var l;if(!1!==c.visible){if(c.layers.test(g.layers)&&(c.isMesh||c.isLine||c.isPoints)&&c.castShadow&&(!c.frustumCulled||f.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(h.matrixWorldInverse,
 (0===l?l=1:1===l&&(l=0));k.side=l;k.clipShadows=c.clipShadows;k.clippingPlanes=c.clippingPlanes;k.clipIntersection=c.clipIntersection;k.wireframeLinewidth=c.wireframeLinewidth;k.linewidth=c.linewidth;d&&k.isMeshDistanceMaterial&&(k.referencePosition.copy(e),k.nearDistance=f,k.farDistance=g);return k}function e(c,g,h,k){var l;if(!1!==c.visible){if(c.layers.test(g.layers)&&(c.isMesh||c.isLine||c.isPoints)&&c.castShadow&&(!c.frustumCulled||f.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(h.matrixWorldInverse,
@@ -44,21 +44,21 @@ a.clear();for(u=0;u<r;u++)G&&(l.copy(n.position),l.add(m[u]),n.up.copy(w[u]),n.l
 (c=c.data);var e=b[c.uuid];if(void 0===e){var e=c.uuid,f=c.array,g=c.dynamic?a.DYNAMIC_DRAW:a.STATIC_DRAW,h=a.createBuffer();a.bindBuffer(d,h);a.bufferData(d,f,g);c.onUploadCallback();d=a.FLOAT;f instanceof Float32Array?d=a.FLOAT:f instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):f instanceof Uint16Array?d=a.UNSIGNED_SHORT:f instanceof Int16Array?d=a.SHORT:f instanceof Uint32Array?d=a.UNSIGNED_INT:f instanceof Int32Array?d=a.INT:f instanceof
 (c=c.data);var e=b[c.uuid];if(void 0===e){var e=c.uuid,f=c.array,g=c.dynamic?a.DYNAMIC_DRAW:a.STATIC_DRAW,h=a.createBuffer();a.bindBuffer(d,h);a.bufferData(d,f,g);c.onUploadCallback();d=a.FLOAT;f instanceof Float32Array?d=a.FLOAT:f instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):f instanceof Uint16Array?d=a.UNSIGNED_SHORT:f instanceof Int16Array?d=a.SHORT:f instanceof Uint32Array?d=a.UNSIGNED_INT:f instanceof Int32Array?d=a.INT:f instanceof
 Int8Array?d=a.BYTE:f instanceof Uint8Array&&(d=a.UNSIGNED_BYTE);b[e]={buffer:h,type:d,bytesPerElement:f.BYTES_PER_ELEMENT,version:c.version}}else e.version<c.version&&(f=c,h=f.array,g=f.updateRange,a.bindBuffer(d,e.buffer),!1===f.dynamic?a.bufferData(d,h,a.STATIC_DRAW):-1===g.count?a.bufferSubData(d,0,h):0===g.count?console.error("THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually."):
 Int8Array?d=a.BYTE:f instanceof Uint8Array&&(d=a.UNSIGNED_BYTE);b[e]={buffer:h,type:d,bytesPerElement:f.BYTES_PER_ELEMENT,version:c.version}}else e.version<c.version&&(f=c,h=f.array,g=f.updateRange,a.bindBuffer(d,e.buffer),!1===f.dynamic?a.bufferData(d,h,a.STATIC_DRAW):-1===g.count?a.bufferSubData(d,0,h):0===g.count?console.error("THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually."):
 (a.bufferSubData(d,g.offset*h.BYTES_PER_ELEMENT,h.subarray(g.offset,g.offset+g.count)),g.count=-1),e.version=c.version)}}}function Xa(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||Xa.DefaultOrder}function Td(){this.mask=1}function A(){Object.defineProperty(this,"id",{value:Pf++});this.uuid=N.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=A.DefaultUp.clone();var a=new n,b=new Xa,c=new ka,d=new n(1,1,1);b.onChange(function(){c.setFromEuler(b,
 (a.bufferSubData(d,g.offset*h.BYTES_PER_ELEMENT,h.subarray(g.offset,g.offset+g.count)),g.count=-1),e.version=c.version)}}}function Xa(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||Xa.DefaultOrder}function Td(){this.mask=1}function A(){Object.defineProperty(this,"id",{value:Pf++});this.uuid=N.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=A.DefaultUp.clone();var a=new n,b=new Xa,c=new ka,d=new n(1,1,1);b.onChange(function(){c.setFromEuler(b,
-!1)});c.onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{enumerable:!0,value:a},rotation:{enumerable:!0,value:b},quaternion:{enumerable:!0,value:c},scale:{enumerable:!0,value:d},modelViewMatrix:{value:new O},normalMatrix:{value:new qa}});this.matrix=new O;this.matrixWorld=new O;this.matrixAutoUpdate=A.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new Td;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=
+!1)});c.onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{enumerable:!0,value:a},rotation:{enumerable:!0,value:b},quaternion:{enumerable:!0,value:c},scale:{enumerable:!0,value:d},modelViewMatrix:{value:new O},normalMatrix:{value:new na}});this.matrix=new O;this.matrixWorld=new O;this.matrixAutoUpdate=A.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new Td;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=
 0;this.userData={}}function Ma(){A.call(this);this.type="Camera";this.matrixWorldInverse=new O;this.projectionMatrix=new O}function Cb(a,b,c,d,e,f){Ma.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=a;this.right=b;this.top=c;this.bottom=d;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function X(a,b,c,d){Ma.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:
 0;this.userData={}}function Ma(){A.call(this);this.type="Camera";this.matrixWorldInverse=new O;this.projectionMatrix=new O}function Cb(a,b,c,d,e,f){Ma.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=a;this.right=b;this.top=c;this.bottom=d;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function X(a,b,c,d){Ma.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:
 2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Qa(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d&&d.isVector3?d:new n;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new x;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function J(){Object.defineProperty(this,"id",{value:Ud++});this.uuid=N.generateUUID();this.name="";this.type="Geometry";this.vertices=[];this.colors=
 2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Qa(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d&&d.isVector3?d:new n;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new x;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function J(){Object.defineProperty(this,"id",{value:Ud++});this.uuid=N.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 M(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.uuid=N.generateUUID();this.name=
 [];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 M(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.uuid=N.generateUUID();this.name=
 "";this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};this.version=0}function pc(a,b){M.call(this,new Int8Array(a),b)}function qc(a,b){M.call(this,new Uint8Array(a),b)}function rc(a,b){M.call(this,new Uint8ClampedArray(a),b)}function sc(a,b){M.call(this,new Int16Array(a),b)}function cb(a,b){M.call(this,new Uint16Array(a),b)}function tc(a,b){M.call(this,new Int32Array(a),b)}function db(a,
 "";this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};this.version=0}function pc(a,b){M.call(this,new Int8Array(a),b)}function qc(a,b){M.call(this,new Uint8Array(a),b)}function rc(a,b){M.call(this,new Uint8ClampedArray(a),b)}function sc(a,b){M.call(this,new Int16Array(a),b)}function cb(a,b){M.call(this,new Uint16Array(a),b)}function tc(a,b){M.call(this,new Int32Array(a),b)}function db(a,
 b){M.call(this,new Uint32Array(a),b)}function z(a,b){M.call(this,new Float32Array(a),b)}function uc(a,b){M.call(this,new Float64Array(a),b)}function Me(){this.indices=[];this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function Vd(a){if(0===a.length)return-Infinity;
 b){M.call(this,new Uint32Array(a),b)}function z(a,b){M.call(this,new Float32Array(a),b)}function uc(a,b){M.call(this,new Float64Array(a),b)}function Me(){this.indices=[];this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function Vd(a){if(0===a.length)return-Infinity;
 for(var b=a[0],c=1,d=a.length;c<d;++c)a[c]>b&&(b=a[c]);return b}function F(){Object.defineProperty(this,"id",{value:Ud++});this.uuid=N.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity}}function Db(a,b,c,d,e,f){J.call(this);this.type="BoxGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};this.fromBufferGeometry(new eb(a,
 for(var b=a[0],c=1,d=a.length;c<d;++c)a[c]>b&&(b=a[c]);return b}function F(){Object.defineProperty(this,"id",{value:Ud++});this.uuid=N.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity}}function Db(a,b,c,d,e,f){J.call(this);this.type="BoxGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};this.fromBufferGeometry(new eb(a,
-b,c,d,e,f));this.mergeVertices()}function eb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,m,pa,Y,ma){var B=f/pa,u=g/Y,v=f/2,w=g/2,G=m/2;g=pa+1;var D=Y+1,y=f=0,H,x,z=new n;for(x=0;x<D;x++){var A=x*u-w;for(H=0;H<g;H++)z[a]=(H*B-v)*d,z[b]=A*e,z[c]=G,l.push(z.x,z.y,z.z),z[a]=0,z[b]=0,z[c]=0<m?1:-1,p.push(z.x,z.y,z.z),q.push(H/pa),q.push(1-x/Y),f+=1}for(x=0;x<Y;x++)for(H=0;H<pa;H++)a=r+H+g*(x+1),b=r+(H+1)+g*(x+1),c=r+(H+1)+g*x,k.push(r+H+g*x,a,c),k.push(a,b,c),y+=6;h.addGroup(t,y,ma);t+=y;r+=f}F.call(this);this.type=
+b,c,d,e,f));this.mergeVertices()}function eb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,m,qa,Y,ma){var B=f/qa,u=g/Y,v=f/2,w=g/2,G=m/2;g=qa+1;var D=Y+1,y=f=0,H,x,z=new n;for(x=0;x<D;x++){var A=x*u-w;for(H=0;H<g;H++)z[a]=(H*B-v)*d,z[b]=A*e,z[c]=G,l.push(z.x,z.y,z.z),z[a]=0,z[b]=0,z[c]=0<m?1:-1,p.push(z.x,z.y,z.z),q.push(H/qa),q.push(1-x/Y),f+=1}for(x=0;x<Y;x++)for(H=0;H<qa;H++)a=r+H+g*(x+1),b=r+(H+1)+g*(x+1),c=r+(H+1)+g*x,k.push(r+H+g*x,a,c),k.push(a,b,c),y+=6;h.addGroup(t,y,ma);t+=y;r+=f}F.call(this);this.type=
 "BoxBufferGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};var h=this;d=Math.floor(d)||1;e=Math.floor(e)||1;f=Math.floor(f)||1;var k=[],l=[],p=[],q=[],r=0,t=0;g("z","y","x",-1,-1,c,b,a,f,e,0);g("z","y","x",1,-1,c,b,-a,f,e,1);g("x","z","y",1,1,a,c,b,d,f,2);g("x","z","y",1,-1,a,c,-b,d,f,3);g("x","y","z",1,-1,a,b,c,d,e,4);g("x","y","z",-1,-1,a,b,-c,d,e,5);this.setIndex(k);this.addAttribute("position",new z(l,3));this.addAttribute("normal",new z(p,
 "BoxBufferGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};var h=this;d=Math.floor(d)||1;e=Math.floor(e)||1;f=Math.floor(f)||1;var k=[],l=[],p=[],q=[],r=0,t=0;g("z","y","x",-1,-1,c,b,a,f,e,0);g("z","y","x",1,-1,c,b,-a,f,e,1);g("x","z","y",1,1,a,c,b,d,f,2);g("x","z","y",1,-1,a,c,-b,d,f,3);g("x","y","z",1,-1,a,b,c,d,e,4);g("x","y","z",-1,-1,a,b,-c,d,e,5);this.setIndex(k);this.addAttribute("position",new z(l,3));this.addAttribute("normal",new z(p,
 3));this.addAttribute("uv",new z(q,2))}function vc(a,b,c,d){J.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new fb(a,b,c,d));this.mergeVertices()}function fb(a,b,c,d){F.call(this);this.type="PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||1;var g=c+1,h=d+1,k=a/c,l=b/d,p=[],q=[],r=[],t=[];for(a=0;a<h;a++){var m=a*l-f;for(b=0;b<
 3));this.addAttribute("uv",new z(q,2))}function vc(a,b,c,d){J.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new fb(a,b,c,d));this.mergeVertices()}function fb(a,b,c,d){F.call(this);this.type="PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||1;var g=c+1,h=d+1,k=a/c,l=b/d,p=[],q=[],r=[],t=[];for(a=0;a<h;a++){var m=a*l-f;for(b=0;b<
 g;b++)q.push(b*k-e,-m,0),r.push(0,0,1),t.push(b/c),t.push(1-a/d)}for(a=0;a<d;a++)for(b=0;b<c;b++)e=b+g*(a+1),f=b+1+g*(a+1),h=b+1+g*a,p.push(b+g*a,e,h),p.push(e,f,h);this.setIndex(p);this.addAttribute("position",new z(q,3));this.addAttribute("normal",new z(r,3));this.addAttribute("uv",new z(t,2))}function ua(a){L.call(this);this.type="MeshBasicMaterial";this.color=new x(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.envMap=this.alphaMap=this.specularMap=
 g;b++)q.push(b*k-e,-m,0),r.push(0,0,1),t.push(b/c),t.push(1-a/d)}for(a=0;a<d;a++)for(b=0;b<c;b++)e=b+g*(a+1),f=b+1+g*(a+1),h=b+1+g*a,p.push(b+g*a,e,h),p.push(e,f,h);this.setIndex(p);this.addAttribute("position",new z(q,3));this.addAttribute("normal",new z(r,3));this.addAttribute("uv",new z(t,2))}function ua(a){L.call(this);this.type="MeshBasicMaterial";this.color=new x(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.envMap=this.alphaMap=this.specularMap=
-null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.lights=this.morphTargets=this.skinning=!1;this.setValues(a)}function gb(a,b){this.origin=void 0!==a?a:new n;this.direction=void 0!==b?b:new n}function Eb(a,b){this.start=void 0!==a?a:new n;this.end=void 0!==b?b:new n}function Ra(a,b,c){this.a=void 0!==a?a:new n;this.b=void 0!==b?b:new n;this.c=void 0!==c?c:new n}function na(a,b){A.call(this);
+null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.lights=this.morphTargets=this.skinning=!1;this.setValues(a)}function gb(a,b){this.origin=void 0!==a?a:new n;this.direction=void 0!==b?b:new n}function Eb(a,b){this.start=void 0!==a?a:new n;this.end=void 0!==b?b:new n}function Ra(a,b,c){this.a=void 0!==a?a:new n;this.b=void 0!==b?b:new n;this.c=void 0!==c?c:new n}function oa(a,b){A.call(this);
 this.type="Mesh";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new ua({color:16777215*Math.random()});this.drawMode=0;this.updateMorphTargets()}function Qf(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new x(0),g=0,h,k,l,p;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,t){b=b.background;null===b?e(f,g):b&&b.isColor&&
 this.type="Mesh";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new ua({color:16777215*Math.random()});this.drawMode=0;this.updateMorphTargets()}function Qf(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new x(0),g=0,h,k,l,p;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,t){b=b.background;null===b?e(f,g):b&&b.isColor&&
-(e(b,1),t=!0);(a.autoClear||t)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);b&&b.isCubeTexture?(void 0===l&&(l=new X,p=new na(new eb(5,5,5),new sa({uniforms:hb.cube.uniforms,vertexShader:hb.cube.vertexShader,fragmentShader:hb.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}))),l.projectionMatrix.copy(d.projectionMatrix),l.matrixWorld.extractRotation(d.matrixWorld),l.matrixWorldInverse.getInverse(l.matrixWorld),p.material.uniforms.tCube.value=b,p.modelViewMatrix.multiplyMatrices(l.matrixWorldInverse,
-p.matrixWorld),c.update(p.geometry),a.renderBufferDirect(l,null,p.geometry,p.material,p,null)):b&&b.isTexture&&(void 0===h&&(h=new Cb(-1,1,1,-1,0,1),k=new na(new fb(2,2),new ua({depthTest:!1,depthWrite:!1,fog:!1}))),k.material.map=b,c.update(k.geometry),a.renderBufferDirect(h,null,k.geometry,k.material,k,null))}}}function Rf(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.program&&b.program&&a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-
+(e(b,1),t=!0);(a.autoClear||t)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);b&&b.isCubeTexture?(void 0===l&&(l=new X,p=new oa(new eb(5,5,5),new sa({uniforms:hb.cube.uniforms,vertexShader:hb.cube.vertexShader,fragmentShader:hb.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}))),l.projectionMatrix.copy(d.projectionMatrix),l.matrixWorld.extractRotation(d.matrixWorld),l.matrixWorldInverse.getInverse(l.matrixWorld),p.material.uniforms.tCube.value=b,p.modelViewMatrix.multiplyMatrices(l.matrixWorldInverse,
+p.matrixWorld),c.update(p.geometry),a.renderBufferDirect(l,null,p.geometry,p.material,p,null)):b&&b.isTexture&&(void 0===h&&(h=new Cb(-1,1,1,-1,0,1),k=new oa(new fb(2,2),new ua({depthTest:!1,depthWrite:!1,fog:!1}))),k.material.map=b,c.update(k.geometry),a.renderBufferDirect(h,null,k.geometry,k.material,k,null))}}}function Rf(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.program&&b.program&&a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-
 b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function Sf(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function Tf(){var a=[],b=-1,c=[],d=-1;return{opaque:a,transparent:c,init:function(){d=b=-1},push:function(e,f,g,h,k){if(g.transparent){var l=c;var p=++d}else l=a,p=++b;(p=l[p])?(p.id=e.id,p.object=e,p.geometry=f,p.material=g,p.program=g.program,p.renderOrder=e.renderOrder,p.z=h,p.group=k):(p={id:e.id,object:e,geometry:f,material:g,program:g.program,
 b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function Sf(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function Tf(){var a=[],b=-1,c=[],d=-1;return{opaque:a,transparent:c,init:function(){d=b=-1},push:function(e,f,g,h,k){if(g.transparent){var l=c;var p=++d}else l=a,p=++b;(p=l[p])?(p.id=e.id,p.object=e,p.geometry=f,p.material=g,p.program=g.program,p.renderOrder=e.renderOrder,p.z=h,p.group=k):(p={id:e.id,object:e,geometry:f,material:g,program:g.program,
 renderOrder:e.renderOrder,z:h,group:k},l.push(p))},finish:function(){a.length=b+1;c.length=d+1},sort:function(){a.sort(Rf);c.sort(Sf)}}}function Uf(){var a={};return{get:function(b,c){b=b.id+","+c.id;c=a[b];void 0===c&&(c=new Tf,a[b]=c);return c},dispose:function(){a={}}}}function Vf(a,b,c){var d,e,f;this.setMode=function(a){d=a};this.setIndex=function(a){e=a.type;f=a.bytesPerElement};this.render=function(b,h){a.drawElements(d,h,e,b*f);c.calls++;c.vertices+=h;d===a.TRIANGLES?c.faces+=h/3:d===a.POINTS&&
 renderOrder:e.renderOrder,z:h,group:k},l.push(p))},finish:function(){a.length=b+1;c.length=d+1},sort:function(){a.sort(Rf);c.sort(Sf)}}}function Uf(){var a={};return{get:function(b,c){b=b.id+","+c.id;c=a[b];void 0===c&&(c=new Tf,a[b]=c);return c},dispose:function(){a={}}}}function Vf(a,b,c){var d,e,f;this.setMode=function(a){d=a};this.setIndex=function(a){e=a.type;f=a.bytesPerElement};this.render=function(b,h){a.drawElements(d,h,e,b*f);c.calls++;c.vertices+=h;d===a.TRIANGLES?c.faces+=h/3:d===a.POINTS&&
 (c.points+=h)};this.renderInstances=function(g,h,k){var l=b.get("ANGLE_instanced_arrays");null===l?console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."):(l.drawElementsInstancedANGLE(d,k,e,h*f,g.maxInstancedCount),c.calls++,c.vertices+=k*g.maxInstancedCount,d===a.TRIANGLES?c.faces+=g.maxInstancedCount*k/3:d===a.POINTS&&(c.points+=g.maxInstancedCount*k))}}function Wf(a,b,c){var d;this.setMode=function(a){d=
 (c.points+=h)};this.renderInstances=function(g,h,k){var l=b.get("ANGLE_instanced_arrays");null===l?console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."):(l.drawElementsInstancedANGLE(d,k,e,h*f,g.maxInstancedCount),c.calls++,c.vertices+=k*g.maxInstancedCount,d===a.TRIANGLES?c.faces+=g.maxInstancedCount*k/3:d===a.POINTS&&(c.points+=g.maxInstancedCount*k))}}function Wf(a,b,c){var d;this.setMode=function(a){d=
@@ -67,9 +67,9 @@ f,g,e.maxInstancedCount);c.calls++;c.vertices+=g*e.maxInstancedCount;d===a.TRIAN
 e[b.id];if(f)return f;b.addEventListener("dispose",d);b.isBufferGeometry?f=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new F).setFromObject(a)),f=b._bufferGeometry);e[b.id]=f;c.geometries++;return f},update:function(c){var d=c.index,e=c.attributes;null!==d&&b.update(d,a.ELEMENT_ARRAY_BUFFER);for(var f in e)b.update(e[f],a.ARRAY_BUFFER);c=c.morphAttributes;for(f in c)for(var d=c[f],e=0,g=d.length;e<g;e++)b.update(d[e],a.ARRAY_BUFFER)},getWireframeAttribute:function(c){var d=f[c.id];
 e[b.id];if(f)return f;b.addEventListener("dispose",d);b.isBufferGeometry?f=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new F).setFromObject(a)),f=b._bufferGeometry);e[b.id]=f;c.geometries++;return f},update:function(c){var d=c.index,e=c.attributes;null!==d&&b.update(d,a.ELEMENT_ARRAY_BUFFER);for(var f in e)b.update(e[f],a.ARRAY_BUFFER);c=c.morphAttributes;for(f in c)for(var d=c[f],e=0,g=d.length;e<g;e++)b.update(d[e],a.ARRAY_BUFFER)},getWireframeAttribute:function(c){var d=f[c.id];
 if(d)return d;d=[];var e=c.index;var g=c.attributes;if(null!==e){var p=e.array;for(var q=0,r=p.length;q<r;q+=3){var t=p[q+0];g=p[q+1];e=p[q+2];d.push(t,g,g,e,e,t)}}else for(p=g.position.array,q=0,r=p.length/3-1;q<r;q+=3)t=q+0,g=q+1,e=q+2,d.push(t,g,g,e,e,t);d=new (65535<Vd(d)?db:cb)(d,1);b.update(d,a.ELEMENT_ARRAY_BUFFER);return f[c.id]=d}}}function Yf(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={direction:new n,color:new x,shadow:!1,
 if(d)return d;d=[];var e=c.index;var g=c.attributes;if(null!==e){var p=e.array;for(var q=0,r=p.length;q<r;q+=3){var t=p[q+0];g=p[q+1];e=p[q+2];d.push(t,g,g,e,e,t)}}else for(p=g.position.array,q=0,r=p.length/3-1;q<r;q+=3)t=q+0,g=q+1,e=q+2,d.push(t,g,g,e,e,t);d=new (65535<Vd(d)?db:cb)(d,1);b.update(d,a.ELEMENT_ARRAY_BUFFER);return f[c.id]=d}}}function Yf(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={direction:new n,color:new x,shadow:!1,
 shadowBias:0,shadowRadius:1,shadowMapSize:new E};break;case "SpotLight":c={position:new n,direction:new n,color:new x,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E};break;case "PointLight":c={position:new n,color:new x,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E,shadowCameraNear:1,shadowCameraFar:1E3};break;case "HemisphereLight":c={direction:new n,skyColor:new x,groundColor:new x};break;case "RectAreaLight":c=
 shadowBias:0,shadowRadius:1,shadowMapSize:new E};break;case "SpotLight":c={position:new n,direction:new n,color:new x,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E};break;case "PointLight":c={position:new n,color:new x,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E,shadowCameraNear:1,shadowCameraFar:1E3};break;case "HemisphereLight":c={direction:new n,skyColor:new x,groundColor:new x};break;case "RectAreaLight":c=
-{color:new x,position:new n,halfWidth:new n,halfHeight:new n}}return a[b.id]=c}}}function Zf(){var a=new Yf,b={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},c=new n,d=new O,e=new O;return{setup:function(f,g,h){for(var k,l=0,p=0,q=0,r=0,t=0,m=0,w=0,v=0,n=h.matrixWorldInverse,B=0,G=f.length;B<G;B++){var D=f[B];k=D.color;var H=D.intensity,pa=D.distance,
+{color:new x,position:new n,halfWidth:new n,halfHeight:new n}}return a[b.id]=c}}}function Zf(){var a=new Yf,b={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},c=new n,d=new O,e=new O;return{setup:function(f,g,h){for(var k,l=0,p=0,q=0,r=0,t=0,m=0,w=0,v=0,n=h.matrixWorldInverse,B=0,G=f.length;B<G;B++){var D=f[B];k=D.color;var H=D.intensity,qa=D.distance,
 Y=D.shadow&&D.shadow.map?D.shadow.map.texture:null;if(D.isAmbientLight)l+=k.r*H,p+=k.g*H,q+=k.b*H;else if(D.isDirectionalLight){h=a.get(D);h.color.copy(D.color).multiplyScalar(D.intensity);h.direction.setFromMatrixPosition(D.matrixWorld);c.setFromMatrixPosition(D.target.matrixWorld);h.direction.sub(c);h.direction.transformDirection(n);if(h.shadow=D.castShadow)k=D.shadow,h.shadowBias=k.bias,h.shadowRadius=k.radius,h.shadowMapSize=k.mapSize;b.directionalShadowMap[r]=Y;b.directionalShadowMatrix[r]=D.shadow.matrix;
 Y=D.shadow&&D.shadow.map?D.shadow.map.texture:null;if(D.isAmbientLight)l+=k.r*H,p+=k.g*H,q+=k.b*H;else if(D.isDirectionalLight){h=a.get(D);h.color.copy(D.color).multiplyScalar(D.intensity);h.direction.setFromMatrixPosition(D.matrixWorld);c.setFromMatrixPosition(D.target.matrixWorld);h.direction.sub(c);h.direction.transformDirection(n);if(h.shadow=D.castShadow)k=D.shadow,h.shadowBias=k.bias,h.shadowRadius=k.radius,h.shadowMapSize=k.mapSize;b.directionalShadowMap[r]=Y;b.directionalShadowMatrix[r]=D.shadow.matrix;
-b.directional[r]=h;r++}else if(D.isSpotLight){h=a.get(D);h.position.setFromMatrixPosition(D.matrixWorld);h.position.applyMatrix4(n);h.color.copy(k).multiplyScalar(H);h.distance=pa;h.direction.setFromMatrixPosition(D.matrixWorld);c.setFromMatrixPosition(D.target.matrixWorld);h.direction.sub(c);h.direction.transformDirection(n);h.coneCos=Math.cos(D.angle);h.penumbraCos=Math.cos(D.angle*(1-D.penumbra));h.decay=0===D.distance?0:D.decay;if(h.shadow=D.castShadow)k=D.shadow,h.shadowBias=k.bias,h.shadowRadius=
+b.directional[r]=h;r++}else if(D.isSpotLight){h=a.get(D);h.position.setFromMatrixPosition(D.matrixWorld);h.position.applyMatrix4(n);h.color.copy(k).multiplyScalar(H);h.distance=qa;h.direction.setFromMatrixPosition(D.matrixWorld);c.setFromMatrixPosition(D.target.matrixWorld);h.direction.sub(c);h.direction.transformDirection(n);h.coneCos=Math.cos(D.angle);h.penumbraCos=Math.cos(D.angle*(1-D.penumbra));h.decay=0===D.distance?0:D.decay;if(h.shadow=D.castShadow)k=D.shadow,h.shadowBias=k.bias,h.shadowRadius=
 k.radius,h.shadowMapSize=k.mapSize;b.spotShadowMap[m]=Y;b.spotShadowMatrix[m]=D.shadow.matrix;b.spot[m]=h;m++}else if(D.isRectAreaLight)h=a.get(D),h.color.copy(k).multiplyScalar(H/(D.width*D.height)),h.position.setFromMatrixPosition(D.matrixWorld),h.position.applyMatrix4(n),e.identity(),d.copy(D.matrixWorld),d.premultiply(n),e.extractRotation(d),h.halfWidth.set(.5*D.width,0,0),h.halfHeight.set(0,.5*D.height,0),h.halfWidth.applyMatrix4(e),h.halfHeight.applyMatrix4(e),b.rectArea[w]=h,w++;else if(D.isPointLight){h=
 k.radius,h.shadowMapSize=k.mapSize;b.spotShadowMap[m]=Y;b.spotShadowMatrix[m]=D.shadow.matrix;b.spot[m]=h;m++}else if(D.isRectAreaLight)h=a.get(D),h.color.copy(k).multiplyScalar(H/(D.width*D.height)),h.position.setFromMatrixPosition(D.matrixWorld),h.position.applyMatrix4(n),e.identity(),d.copy(D.matrixWorld),d.premultiply(n),e.extractRotation(d),h.halfWidth.set(.5*D.width,0,0),h.halfHeight.set(0,.5*D.height,0),h.halfWidth.applyMatrix4(e),h.halfHeight.applyMatrix4(e),b.rectArea[w]=h,w++;else if(D.isPointLight){h=
 a.get(D);h.position.setFromMatrixPosition(D.matrixWorld);h.position.applyMatrix4(n);h.color.copy(D.color).multiplyScalar(D.intensity);h.distance=D.distance;h.decay=0===D.distance?0:D.decay;if(h.shadow=D.castShadow)k=D.shadow,h.shadowBias=k.bias,h.shadowRadius=k.radius,h.shadowMapSize=k.mapSize,h.shadowCameraNear=k.camera.near,h.shadowCameraFar=k.camera.far;b.pointShadowMap[t]=Y;b.pointShadowMatrix[t]=D.shadow.matrix;b.point[t]=h;t++}else D.isHemisphereLight&&(h=a.get(D),h.direction.setFromMatrixPosition(D.matrixWorld),
 a.get(D);h.position.setFromMatrixPosition(D.matrixWorld);h.position.applyMatrix4(n);h.color.copy(D.color).multiplyScalar(D.intensity);h.distance=D.distance;h.decay=0===D.distance?0:D.decay;if(h.shadow=D.castShadow)k=D.shadow,h.shadowBias=k.bias,h.shadowRadius=k.radius,h.shadowMapSize=k.mapSize,h.shadowCameraNear=k.camera.near,h.shadowCameraFar=k.camera.far;b.pointShadowMap[t]=Y;b.pointShadowMatrix[t]=D.shadow.matrix;b.point[t]=h;t++}else D.isHemisphereLight&&(h=a.get(D),h.direction.setFromMatrixPosition(D.matrixWorld),
 h.direction.transformDirection(n),h.direction.normalize(),h.skyColor.copy(D.color).multiplyScalar(H),h.groundColor.copy(D.groundColor).multiplyScalar(H),b.hemi[v]=h,v++)}b.ambient[0]=l;b.ambient[1]=p;b.ambient[2]=q;b.directional.length=r;b.spot.length=m;b.rectArea.length=w;b.point.length=t;b.hemi.length=v;b.hash=r+","+t+","+m+","+w+","+v+","+g.length},state:b}}function $f(a,b){var c={};return{update:function(d){var e=b.frame,f=d.geometry,g=a.get(d,f);c[g.id]!==e&&(f.isGeometry&&g.updateFromObject(d),
 h.direction.transformDirection(n),h.direction.normalize(),h.skyColor.copy(D.color).multiplyScalar(H),h.groundColor.copy(D.groundColor).multiplyScalar(H),b.hemi[v]=h,v++)}b.ambient[0]=l;b.ambient[1]=p;b.ambient[2]=q;b.directional.length=r;b.spot.length=m;b.rectArea.length=w;b.point.length=t;b.hemi.length=v;b.hash=r+","+t+","+m+","+w+","+v+","+g.length},state:b}}function $f(a,b){var c={};return{update:function(d){var e=b.frame,f=d.geometry,g=a.get(d,f);c[g.id]!==e&&(f.isGeometry&&g.updateFromObject(d),
@@ -122,11 +122,11 @@ b.depthTexture.format)a.framebufferTexture2D(a.FRAMEBUFFER,a.DEPTH_STENCIL_ATTAC
 this.updateRenderTargetMipmap=function(b){var e=b.texture,f=k(b);l(e,f)&&(b=b.isWebGLRenderTargetCube?a.TEXTURE_CUBE_MAP:a.TEXTURE_2D,e=d.get(e).__webglTexture,c.bindTexture(b,e),a.generateMipmap(b),c.bindTexture(b,null))}}function jg(){var a={};return{get:function(b){b=b.uuid;var c=a[b];void 0===c&&(c={},a[b]=c);return c},remove:function(b){delete a[b.uuid]},clear:function(){a={}}}}function kg(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,
 this.updateRenderTargetMipmap=function(b){var e=b.texture,f=k(b);l(e,f)&&(b=b.isWebGLRenderTargetCube?a.TEXTURE_CUBE_MAP:a.TEXTURE_2D,e=d.get(e).__webglTexture,c.bindTexture(b,e),a.generateMipmap(b),c.bindTexture(b,null))}}function jg(){var a={};return{get:function(b){b=b.uuid;var c=a[b];void 0===c&&(c={},a[b]=c);return c},remove:function(b){delete a[b.uuid]},clear:function(){a={}}}}function kg(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,
 a.TEXTURE_MIN_FILTER,a.NEAREST);a.texParameteri(b,a.TEXTURE_MAG_FILTER,a.NEAREST);for(b=0;b<d;b++)a.texImage2D(c+b,0,a.RGBA,1,1,0,a.RGBA,a.UNSIGNED_BYTE,e);return f}function e(b){!0!==B[b]&&(a.enable(b),B[b]=!0)}function f(b){!1!==B[b]&&(a.disable(b),B[b]=!1)}function g(b,d,g,h,k,l,q,p){0!==b?e(a.BLEND):f(a.BLEND);if(5!==b){if(b!==H||p!==E)switch(b){case 2:p?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ONE,a.ONE,a.ONE,a.ONE)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.SRC_ALPHA,
 a.TEXTURE_MIN_FILTER,a.NEAREST);a.texParameteri(b,a.TEXTURE_MAG_FILTER,a.NEAREST);for(b=0;b<d;b++)a.texImage2D(c+b,0,a.RGBA,1,1,0,a.RGBA,a.UNSIGNED_BYTE,e);return f}function e(b){!0!==B[b]&&(a.enable(b),B[b]=!0)}function f(b){!1!==B[b]&&(a.disable(b),B[b]=!1)}function g(b,d,g,h,k,l,q,p){0!==b?e(a.BLEND):f(a.BLEND);if(5!==b){if(b!==H||p!==E)switch(b){case 2:p?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ONE,a.ONE,a.ONE,a.ONE)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.SRC_ALPHA,
 a.ONE));break;case 3:p?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ZERO,a.ZERO,a.ONE_MINUS_SRC_COLOR,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.ZERO,a.ONE_MINUS_SRC_COLOR));break;case 4:p?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ZERO,a.SRC_COLOR,a.ZERO,a.SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.ZERO,a.SRC_COLOR));break;default:p?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,
 a.ONE));break;case 3:p?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ZERO,a.ZERO,a.ONE_MINUS_SRC_COLOR,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.ZERO,a.ONE_MINUS_SRC_COLOR));break;case 4:p?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ZERO,a.SRC_COLOR,a.ZERO,a.SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.ZERO,a.SRC_COLOR));break;default:p?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,
-a.ONE,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA))}ja=A=z=x=Y=pa=null}else{k=k||d;l=l||g;q=q||h;if(d!==pa||k!==z)a.blendEquationSeparate(c(d),c(k)),pa=d,z=k;if(g!==Y||h!==x||l!==A||q!==ja)a.blendFuncSeparate(c(g),c(h),c(l),c(q)),Y=g,x=h,A=l,ja=q}H=b;E=p}function h(b){Q!==b&&(b?a.frontFace(a.CW):a.frontFace(a.CCW),Q=b)}function k(b){0!==b?(e(a.CULL_FACE),b!==K&&(1===b?a.cullFace(a.BACK):2===
+a.ONE,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA))}ja=A=z=x=Y=qa=null}else{k=k||d;l=l||g;q=q||h;if(d!==qa||k!==z)a.blendEquationSeparate(c(d),c(k)),qa=d,z=k;if(g!==Y||h!==x||l!==A||q!==ja)a.blendFuncSeparate(c(g),c(h),c(l),c(q)),Y=g,x=h,A=l,ja=q}H=b;E=p}function h(b){Q!==b&&(b?a.frontFace(a.CW):a.frontFace(a.CCW),Q=b)}function k(b){0!==b?(e(a.CULL_FACE),b!==K&&(1===b?a.cullFace(a.BACK):2===
 b?a.cullFace(a.FRONT):a.cullFace(a.FRONT_AND_BACK))):f(a.CULL_FACE);K=b}function l(b,c,d){if(b){if(e(a.POLYGON_OFFSET_FILL),P!==c||F!==d)a.polygonOffset(c,d),P=c,F=d}else f(a.POLYGON_OFFSET_FILL)}function p(b){void 0===b&&(b=a.TEXTURE0+J-1);N!==b&&(a.activeTexture(b),N=b)}var q=new function(){var b=!1,c=new ca,d=null,e=new ca(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===
 b?a.cullFace(a.FRONT):a.cullFace(a.FRONT_AND_BACK))):f(a.CULL_FACE);K=b}function l(b,c,d){if(b){if(e(a.POLYGON_OFFSET_FILL),P!==c||F!==d)a.polygonOffset(c,d),P=c,F=d}else f(a.POLYGON_OFFSET_FILL)}function p(b){void 0===b&&(b=a.TEXTURE0+J-1);N!==b&&(a.activeTexture(b),N=b)}var q=new function(){var b=!1,c=new ca,d=null,e=new ca(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===
 e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,0,0,0)}}},r=new function(){var b=!1,c=null,d=null,g=null;return{setTest:function(b){b?e(a.DEPTH_TEST):f(a.DEPTH_TEST)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(a.NEVER);break;case 1:a.depthFunc(a.ALWAYS);break;case 2:a.depthFunc(a.LESS);break;case 3:a.depthFunc(a.LEQUAL);break;case 4:a.depthFunc(a.EQUAL);break;case 5:a.depthFunc(a.GEQUAL);
 e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,0,0,0)}}},r=new function(){var b=!1,c=null,d=null,g=null;return{setTest:function(b){b?e(a.DEPTH_TEST):f(a.DEPTH_TEST)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(a.NEVER);break;case 1:a.depthFunc(a.ALWAYS);break;case 2:a.depthFunc(a.LESS);break;case 3:a.depthFunc(a.LEQUAL);break;case 4:a.depthFunc(a.EQUAL);break;case 5:a.depthFunc(a.GEQUAL);
 break;case 6:a.depthFunc(a.GREATER);break;case 7:a.depthFunc(a.NOTEQUAL);break;default:a.depthFunc(a.LEQUAL)}else a.depthFunc(a.LEQUAL);d=b}},setLocked:function(a){b=a},setClear:function(b){g!==b&&(a.clearDepth(b),g=b)},reset:function(){b=!1;g=d=c=null}}},t=new function(){var b=!1,c=null,d=null,g=null,h=null,k=null,l=null,q=null,p=null;return{setTest:function(b){b?e(a.STENCIL_TEST):f(a.STENCIL_TEST)},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,e){if(d!==b||g!==c||h!==
 break;case 6:a.depthFunc(a.GREATER);break;case 7:a.depthFunc(a.NOTEQUAL);break;default:a.depthFunc(a.LEQUAL)}else a.depthFunc(a.LEQUAL);d=b}},setLocked:function(a){b=a},setClear:function(b){g!==b&&(a.clearDepth(b),g=b)},reset:function(){b=!1;g=d=c=null}}},t=new function(){var b=!1,c=null,d=null,g=null,h=null,k=null,l=null,q=null,p=null;return{setTest:function(b){b?e(a.STENCIL_TEST):f(a.STENCIL_TEST)},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,e){if(d!==b||g!==c||h!==
-e)a.stencilFunc(b,c,e),d=b,g=c,h=e},setOp:function(b,c,d){if(k!==b||l!==c||q!==d)a.stencilOp(b,c,d),k=b,l=c,q=d},setLocked:function(a){b=a},setClear:function(b){p!==b&&(a.clearStencil(b),p=b)},reset:function(){b=!1;p=q=l=k=h=g=d=c=null}}},m=a.getParameter(a.MAX_VERTEX_ATTRIBS),n=new Uint8Array(m),v=new Uint8Array(m),y=new Uint8Array(m),B={},G=null,D=null,H=null,pa=null,Y=null,x=null,z=null,A=null,ja=null,E=!1,Q=null,K=null,S=null,P=null,F=null,O=null,J=a.getParameter(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS),
+e)a.stencilFunc(b,c,e),d=b,g=c,h=e},setOp:function(b,c,d){if(k!==b||l!==c||q!==d)a.stencilOp(b,c,d),k=b,l=c,q=d},setLocked:function(a){b=a},setClear:function(b){p!==b&&(a.clearStencil(b),p=b)},reset:function(){b=!1;p=q=l=k=h=g=d=c=null}}},m=a.getParameter(a.MAX_VERTEX_ATTRIBS),n=new Uint8Array(m),v=new Uint8Array(m),y=new Uint8Array(m),B={},G=null,D=null,H=null,qa=null,Y=null,x=null,z=null,A=null,ja=null,E=!1,Q=null,K=null,S=null,P=null,F=null,O=null,J=a.getParameter(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS),
 m=parseFloat(/^WebGL\ ([0-9])/.exec(a.getParameter(a.VERSION))[1]),R=1<=parseFloat(m),N=null,M={},I=new ca,L=new ca,V={};V[a.TEXTURE_2D]=d(a.TEXTURE_2D,a.TEXTURE_2D,1);V[a.TEXTURE_CUBE_MAP]=d(a.TEXTURE_CUBE_MAP,a.TEXTURE_CUBE_MAP_POSITIVE_X,6);q.setClear(0,0,0,1);r.setClear(1);t.setClear(0);e(a.DEPTH_TEST);r.setFunc(3);h(!1);k(1);e(a.CULL_FACE);e(a.BLEND);g(1);return{buffers:{color:q,depth:r,stencil:t},initAttributes:function(){for(var a=0,b=n.length;a<b;a++)n[a]=0},enableAttribute:function(c){n[c]=
 m=parseFloat(/^WebGL\ ([0-9])/.exec(a.getParameter(a.VERSION))[1]),R=1<=parseFloat(m),N=null,M={},I=new ca,L=new ca,V={};V[a.TEXTURE_2D]=d(a.TEXTURE_2D,a.TEXTURE_2D,1);V[a.TEXTURE_CUBE_MAP]=d(a.TEXTURE_CUBE_MAP,a.TEXTURE_CUBE_MAP_POSITIVE_X,6);q.setClear(0,0,0,1);r.setClear(1);t.setClear(0);e(a.DEPTH_TEST);r.setFunc(3);h(!1);k(1);e(a.CULL_FACE);e(a.BLEND);g(1);return{buffers:{color:q,depth:r,stencil:t},initAttributes:function(){for(var a=0,b=n.length;a<b;a++)n[a]=0},enableAttribute:function(c){n[c]=
 1;0===v[c]&&(a.enableVertexAttribArray(c),v[c]=1);0!==y[c]&&(b.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(c,0),y[c]=0)},enableAttributeAndDivisor:function(c,d){n[c]=1;0===v[c]&&(a.enableVertexAttribArray(c),v[c]=1);y[c]!==d&&(b.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(c,d),y[c]=d)},disableUnusedAttributes:function(){for(var b=0,c=v.length;b!==c;++b)v[b]!==n[b]&&(a.disableVertexAttribArray(b),v[b]=0)},enable:e,disable:f,getCompressedTextureFormats:function(){if(null===G&&
 1;0===v[c]&&(a.enableVertexAttribArray(c),v[c]=1);0!==y[c]&&(b.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(c,0),y[c]=0)},enableAttributeAndDivisor:function(c,d){n[c]=1;0===v[c]&&(a.enableVertexAttribArray(c),v[c]=1);y[c]!==d&&(b.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(c,d),y[c]=d)},disableUnusedAttributes:function(){for(var b=0,c=v.length;b!==c;++b)v[b]!==n[b]&&(a.disableVertexAttribArray(b),v[b]=0)},enable:e,disable:f,getCompressedTextureFormats:function(){if(null===G&&
 (G=[],b.get("WEBGL_compressed_texture_pvrtc")||b.get("WEBGL_compressed_texture_s3tc")||b.get("WEBGL_compressed_texture_etc1")))for(var c=a.getParameter(a.COMPRESSED_TEXTURE_FORMATS),d=0;d<c.length;d++)G.push(c[d]);return G},useProgram:function(b){return D!==b?(a.useProgram(b),D=b,!0):!1},setBlending:g,setMaterial:function(b){2===b.side?f(a.CULL_FACE):e(a.CULL_FACE);h(1===b.side);!0===b.transparent?g(b.blending,b.blendEquation,b.blendSrc,b.blendDst,b.blendEquationAlpha,b.blendSrcAlpha,b.blendDstAlpha,
 (G=[],b.get("WEBGL_compressed_texture_pvrtc")||b.get("WEBGL_compressed_texture_s3tc")||b.get("WEBGL_compressed_texture_etc1")))for(var c=a.getParameter(a.COMPRESSED_TEXTURE_FORMATS),d=0;d<c.length;d++)G.push(c[d]);return G},useProgram:function(b){return D!==b?(a.useProgram(b),D=b,!0):!1},setBlending:g,setMaterial:function(b){2===b.side?f(a.CULL_FACE):e(a.CULL_FACE);h(1===b.side);!0===b.transparent?g(b.blending,b.blendEquation,b.blendSrc,b.blendDst,b.blendEquationAlpha,b.blendSrcAlpha,b.blendDstAlpha,
@@ -135,59 +135,59 @@ M[N]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||V[b]),d.type=b,d.texture
 0;b<v.length;b++)1===v[b]&&(a.disableVertexAttribArray(b),v[b]=0);B={};N=G=null;M={};K=Q=H=D=null;q.reset();r.reset();t.reset()}}}function lg(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(a.VERTEX_SHADER,a.HIGH_FLOAT).precision&&0<a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.HIGH_FLOAT).precision)return"highp";b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(a.VERTEX_SHADER,a.MEDIUM_FLOAT).precision&&0<a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.MEDIUM_FLOAT).precision?
 0;b<v.length;b++)1===v[b]&&(a.disableVertexAttribArray(b),v[b]=0);B={};N=G=null;M={};K=Q=H=D=null;q.reset();r.reset();t.reset()}}}function lg(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(a.VERTEX_SHADER,a.HIGH_FLOAT).precision&&0<a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.HIGH_FLOAT).precision)return"highp";b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(a.VERTEX_SHADER,a.MEDIUM_FLOAT).precision&&0<a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.MEDIUM_FLOAT).precision?
 "mediump":"lowp"}var e,f=void 0!==c.precision?c.precision:"highp",g=d(f);g!==f&&(console.warn("THREE.WebGLRenderer:",f,"not supported, using",g,"instead."),f=g);c=!0===c.logarithmicDepthBuffer&&!!b.get("EXT_frag_depth");var g=a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS),h=a.getParameter(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS),k=a.getParameter(a.MAX_TEXTURE_SIZE),l=a.getParameter(a.MAX_CUBE_MAP_TEXTURE_SIZE),p=a.getParameter(a.MAX_VERTEX_ATTRIBS),q=a.getParameter(a.MAX_VERTEX_UNIFORM_VECTORS),r=a.getParameter(a.MAX_VARYING_VECTORS),
 "mediump":"lowp"}var e,f=void 0!==c.precision?c.precision:"highp",g=d(f);g!==f&&(console.warn("THREE.WebGLRenderer:",f,"not supported, using",g,"instead."),f=g);c=!0===c.logarithmicDepthBuffer&&!!b.get("EXT_frag_depth");var g=a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS),h=a.getParameter(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS),k=a.getParameter(a.MAX_TEXTURE_SIZE),l=a.getParameter(a.MAX_CUBE_MAP_TEXTURE_SIZE),p=a.getParameter(a.MAX_VERTEX_ATTRIBS),q=a.getParameter(a.MAX_VERTEX_UNIFORM_VECTORS),r=a.getParameter(a.MAX_VARYING_VECTORS),
 t=a.getParameter(a.MAX_FRAGMENT_UNIFORM_VECTORS),m=0<h,n=!!b.get("OES_texture_float");return{getMaxAnisotropy:function(){if(void 0!==e)return e;var c=b.get("EXT_texture_filter_anisotropic");return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:d,precision:f,logarithmicDepthBuffer:c,maxTextures:g,maxVertexTextures:h,maxTextureSize:k,maxCubemapSize:l,maxAttributes:p,maxVertexUniforms:q,maxVaryings:r,maxFragmentUniforms:t,vertexTextures:m,floatFragmentTextures:n,floatVertexTextures:m&&
 t=a.getParameter(a.MAX_FRAGMENT_UNIFORM_VECTORS),m=0<h,n=!!b.get("OES_texture_float");return{getMaxAnisotropy:function(){if(void 0!==e)return e;var c=b.get("EXT_texture_filter_anisotropic");return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:d,precision:f,logarithmicDepthBuffer:c,maxTextures:g,maxVertexTextures:h,maxTextureSize:k,maxCubemapSize:l,maxAttributes:p,maxVertexUniforms:q,maxVaryings:r,maxFragmentUniforms:t,vertexTextures:m,floatFragmentTextures:n,floatVertexTextures:m&&
-n}}function nd(a){X.call(this);this.cameras=a||[]}function mg(a){var b=this,c=null,d=null;"VRFrameData"in window&&(d=new window.VRFrameData);var e=new O,f=new O,g=new O,h=new X;h.bounds=new ca(0,0,.5,1);h.layers.enable(1);var k=new X;k.bounds=new ca(.5,0,.5,1);k.layers.enable(2);var l=new nd([h,k]);l.layers.enable(1);l.layers.enable(2);var p,q;window.addEventListener("vrdisplaypresentchange",function(){if(c.isPresenting){var d=c.getEyeParameters("left"),e=d.renderWidth,d=d.renderHeight;q=a.getPixelRatio();
-p=a.getSize();a.setDrawingBufferSize(2*e,d,1)}else b.enabled&&a.setDrawingBufferSize(p.width,p.height,q)},!1);this.standing=this.enabled=!1;this.getDevice=function(){return c};this.setDevice=function(a){void 0!==a&&(c=a)};this.getCamera=function(a){if(null===c)return a;c.depthNear=a.near;c.depthFar=a.far;c.getFrameData(d);var b=d.pose;null!==b.position?a.position.fromArray(b.position):a.position.set(0,0,0);null!==b.orientation&&a.quaternion.fromArray(b.orientation);a.updateMatrixWorld();b=c.stageParameters;
-this.standing&&b&&(f.fromArray(b.sittingToStandingTransform),g.getInverse(f),a.matrixWorld.multiply(f),a.matrixWorldInverse.multiply(g));if(!1===c.isPresenting)return a;l.matrixWorld.copy(a.matrixWorld);l.matrixWorldInverse.copy(a.matrixWorldInverse);h.matrixWorldInverse.fromArray(d.leftViewMatrix);k.matrixWorldInverse.fromArray(d.rightViewMatrix);this.standing&&b&&(h.matrixWorldInverse.multiply(g),k.matrixWorldInverse.multiply(g));a=a.parent;null!==a&&(e.getInverse(a.matrixWorld),h.matrixWorldInverse.multiply(e),
-k.matrixWorldInverse.multiply(e));h.matrixWorld.getInverse(h.matrixWorldInverse);k.matrixWorld.getInverse(k.matrixWorldInverse);h.projectionMatrix.fromArray(d.leftProjectionMatrix);k.projectionMatrix.fromArray(d.rightProjectionMatrix);l.projectionMatrix.copy(h.projectionMatrix);a=c.getLayers();a.length&&(a=a[0],null!==a.leftBounds&&4===a.leftBounds.length&&h.bounds.fromArray(a.leftBounds),null!==a.rightBounds&&4===a.rightBounds.length&&k.bounds.fromArray(a.rightBounds));return l};this.getStandingMatrix=
-function(){return f};this.submitFrame=function(){c&&c.isPresenting&&c.submitFrame()}}function ng(a){var b={};return{get:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=a.getExtension("EXT_texture_filter_anisotropic")||a.getExtension("MOZ_EXT_texture_filter_anisotropic")||a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");
-break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;case "WEBGL_compressed_texture_etc1":d=a.getExtension("WEBGL_compressed_texture_etc1");break;default:d=a.getExtension(c)}null===d&&console.warn("THREE.WebGLRenderer: "+
-c+" extension not supported.");return b[c]=d}}}function og(){function a(){l.value!==d&&(l.value=d,l.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,b,d,e){var f=null!==a?a.length:0,g=null;if(0!==f){g=l.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;k.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,k),h.normal.toArray(g,d),g[d+3]=h.constant}l.value=g;l.needsUpdate=!0}c.numPlanes=f;return g}var c=this,d=null,
-e=0,f=!1,g=!1,h=new za,k=new qa,l={value:null,needsUpdate:!1};this.uniform=l;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};this.endShadows=function(){g=!1;a()};this.setState=function(c,h,k,t,m,n){if(!f||null===c||0===c.length||g&&!k)g?b(null):a();else{k=g?0:e;var q=4*k,p=m.clippingState||null;l.value=p;p=b(c,t,q,n);for(c=0;c!==q;++c)p[c]=d[c];m.clippingState=p;this.numIntersection=
-h?this.numPlanes:0;this.numPlanes+=k}}}function $d(a){function b(){ha=new ng(C);ha.get("WEBGL_depth_texture");ha.get("OES_texture_float");ha.get("OES_texture_float_linear");ha.get("OES_texture_half_float");ha.get("OES_texture_half_float_linear");ha.get("OES_standard_derivatives");ha.get("ANGLE_instanced_arrays");ha.get("OES_element_index_uint")&&(F.MaxIndex=4294967296);ba=new lg(C,ha,a);aa=new kg(C,ha,w);aa.scissor(I.copy(kd).multiplyScalar(va));aa.viewport(T.copy(ga).multiplyScalar(va));W=new jg;
-la=new ig(C,ha,aa,W,ba,w,na);sa=new Of(C);ta=new Xf(C,sa,na);xa=new $f(ta,ea);oa=new hg(K,ha,ba);wa=new Zf;ua=new Uf;ra=new Qf(K,aa,ta,pa);ya=new Wf(C,ha,ea);za=new Vf(C,ha,ea);Aa=new Lf(K,C,aa,ba);Ca=new Mf(K,C,aa,ba);K.info.programs=oa.programs;K.context=C;K.capabilities=ba;K.extensions=ha;K.properties=W;K.renderLists=ua;K.state=aa}function c(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");S=!0}function d(a){console.log("THREE.WebGLRenderer: Context Restored.");S=!1;b()}
-function e(a){a=a.target;a.removeEventListener("dispose",e);f(a);W.remove(a)}function f(a){var b=W.get(a).program;a.program=void 0;void 0!==b&&oa.releaseProgram(b)}function g(a,b,c){a.render(function(a){K.renderBufferImmediate(a,b,c)})}function h(a,b){return Math.abs(b[0])-Math.abs(a[0])}function k(a,b,c){if(a.visible){if(a.layers.test(b.layers))if(a.isLight)x.push(a),a.castShadow&&z.push(a);else if(a.isSprite)a.frustumCulled&&!ka.intersectsSprite(a)||ia.push(a);else if(a.isLensFlare)Q.push(a);else if(a.isImmediateRenderObject)c&&
-Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(md),A.push(a,null,a.material,Fb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||ka.intersectsObject(a)){c&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(md);var d=xa.update(a),e=a.material;if(Array.isArray(e))for(var f=d.groups,g=0,h=f.length;g<h;g++){var l=f[g],q=e[l.materialIndex];q&&q.visible&&A.push(a,d,q,Fb.z,l)}else e.visible&&A.push(a,d,e,Fb.z,null)}a=a.children;g=0;for(h=a.length;g<
-h;g++)k(a[g],b,c)}}function l(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,k=g.geometry,l=void 0===d?g.material:d,g=g.group;if(c.isArrayCamera){U=c;for(var q=c.cameras,r=0,t=q.length;r<t;r++){var m=q[r];if(h.layers.test(m.layers)){var u=m.bounds,n=u.x*Z,v=u.y*X,od=u.z*Z,u=u.w*X;aa.viewport(T.set(n,v,od,u).multiplyScalar(va));aa.scissor(I.set(n,v,od,u).multiplyScalar(va));aa.setScissorTest(!0);p(h,b,m,k,l,g)}}}else U=null,p(h,b,c,k,l,g)}}function p(a,b,c,d,e,f){a.onBeforeRender(K,
-b,c,d,e,f);a.modelViewMatrix.multiplyMatrices(c.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){aa.setMaterial(e);var h=r(c,b.fog,e,a);L="";g(a,h,e)}else K.renderBufferDirect(c,b.fog,d,e,a,f);a.onAfterRender(K,b,c,d,e,f)}function q(a,b,c){var d=W.get(a);c=oa.getParameters(a,wa.state,z,b,Fa.numPlanes,Fa.numIntersection,c);var g=oa.getProgramCode(a,c),h=d.program,k=!0;if(void 0===h)a.addEventListener("dispose",e);else if(h.code!==g)f(a);
-else{if(void 0!==c.shaderID)return;k=!1}k&&(c.shaderID?(h=hb[c.shaderID],d.shader={name:a.type,uniforms:Da.clone(h.uniforms),vertexShader:h.vertexShader,fragmentShader:h.fragmentShader}):d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader),h=oa.acquireProgram(a,d.shader,c,g),d.program=h,a.program=h);c=h.getAttributes();if(a.morphTargets)for(g=a.numSupportedMorphTargets=0;g<K.maxMorphTargets;g++)0<=c["morphTarget"+g]&&a.numSupportedMorphTargets++;
-if(a.morphNormals)for(g=a.numSupportedMorphNormals=0;g<K.maxMorphNormals;g++)0<=c["morphNormal"+g]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Fa.numPlanes,d.numIntersection=Fa.numIntersection,c.clippingPlanes=Fa.uniform;d.fog=b;d.lightsHash=wa.state.hash;a.lights&&(c.ambientLightColor.value=wa.state.ambient,c.directionalLights.value=wa.state.directional,c.spotLights.value=wa.state.spot,c.rectAreaLights.value=
-wa.state.rectArea,c.pointLights.value=wa.state.point,c.hemisphereLights.value=wa.state.hemi,c.directionalShadowMap.value=wa.state.directionalShadowMap,c.directionalShadowMatrix.value=wa.state.directionalShadowMatrix,c.spotShadowMap.value=wa.state.spotShadowMap,c.spotShadowMatrix.value=wa.state.spotShadowMatrix,c.pointShadowMap.value=wa.state.pointShadowMap,c.pointShadowMatrix.value=wa.state.pointShadowMatrix);a=d.program.getUniforms();a=bb.seqWithValue(a.seq,c);d.uniformsList=a}function r(a,b,c,d){fa=
-0;var e=W.get(c);ld&&(Zd||a!==V)&&Fa.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===V&&c.id===M);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:c.lights&&e.lightsHash!==wa.state.hash?c.needsUpdate=!0:void 0===e.numClippingPlanes||e.numClippingPlanes===Fa.numPlanes&&e.numIntersection===Fa.numIntersection||(c.needsUpdate=!0));c.needsUpdate&&(q(c,b,d),c.needsUpdate=!1);var f=!1,g=!1,h=!1,k=e.program,l=k.getUniforms(),p=e.shader.uniforms;
-aa.useProgram(k.program)&&(h=g=f=!0);c.id!==M&&(M=c.id,g=!0);if(f||a!==V){l.setValue(C,"projectionMatrix",a.projectionMatrix);ba.logarithmicDepthBuffer&&l.setValue(C,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));V!==(U||a)&&(V=U||a,h=g=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)f=l.map.cameraPosition,void 0!==f&&f.setValue(C,Fb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||
-c.isShaderMaterial||c.skinning)&&l.setValue(C,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(l.setOptional(C,d,"bindMatrix"),l.setOptional(C,d,"bindMatrixInverse"),a=d.skeleton))if(f=a.bones,ba.floatVertexTextures){if(void 0===a.boneTexture){var f=Math.sqrt(4*f.length),f=N.nextPowerOfTwo(Math.ceil(f)),f=Math.max(f,4),r=new Float32Array(f*f*4);r.set(a.boneMatrices);var u=new ab(r,f,f,1023,1015);a.boneMatrices=r;a.boneTexture=u;a.boneTextureSize=f}l.setValue(C,"boneTexture",a.boneTexture);l.setValue(C,
-"boneTextureSize",a.boneTextureSize)}else l.setOptional(C,a,"boneMatrices");if(g){l.setValue(C,"toneMappingExposure",K.toneMappingExposure);l.setValue(C,"toneMappingWhitePoint",K.toneMappingWhitePoint);c.lights&&(g=h,p.ambientLightColor.needsUpdate=g,p.directionalLights.needsUpdate=g,p.pointLights.needsUpdate=g,p.spotLights.needsUpdate=g,p.rectAreaLights.needsUpdate=g,p.hemisphereLights.needsUpdate=g);b&&c.fog&&(p.fogColor.value=b.color,b.isFog?(p.fogNear.value=b.near,p.fogFar.value=b.far):b.isFogExp2&&
-(p.fogDensity.value=b.density));if(c.isMeshBasicMaterial||c.isMeshLambertMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.isMeshNormalMaterial||c.isMeshDepthMaterial||c.isMeshDistanceMaterial){p.opacity.value=c.opacity;p.diffuse.value=c.color;c.emissive&&p.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);p.map.value=c.map;p.specularMap.value=c.specularMap;p.alphaMap.value=c.alphaMap;c.lightMap&&(p.lightMap.value=c.lightMap,p.lightMapIntensity.value=c.lightMapIntensity);
-c.aoMap&&(p.aoMap.value=c.aoMap,p.aoMapIntensity.value=c.aoMapIntensity);if(c.map)var n=c.map;else c.specularMap?n=c.specularMap:c.displacementMap?n=c.displacementMap:c.normalMap?n=c.normalMap:c.bumpMap?n=c.bumpMap:c.roughnessMap?n=c.roughnessMap:c.metalnessMap?n=c.metalnessMap:c.alphaMap?n=c.alphaMap:c.emissiveMap&&(n=c.emissiveMap);void 0!==n&&(n.isWebGLRenderTarget&&(n=n.texture),b=n.offset,n=n.repeat,p.offsetRepeat.value.set(b.x,b.y,n.x,n.y));p.envMap.value=c.envMap;p.flipEnvMap.value=c.envMap&&
-c.envMap.isCubeTexture?-1:1;p.reflectivity.value=c.reflectivity;p.refractionRatio.value=c.refractionRatio}c.isLineBasicMaterial?(p.diffuse.value=c.color,p.opacity.value=c.opacity):c.isLineDashedMaterial?(p.diffuse.value=c.color,p.opacity.value=c.opacity,p.dashSize.value=c.dashSize,p.totalSize.value=c.dashSize+c.gapSize,p.scale.value=c.scale):c.isPointsMaterial?(p.diffuse.value=c.color,p.opacity.value=c.opacity,p.size.value=c.size*va,p.scale.value=.5*X,p.map.value=c.map,null!==c.map&&(n=c.map.offset,
-c=c.map.repeat,p.offsetRepeat.value.set(n.x,n.y,c.x,c.y))):c.isMeshLambertMaterial?c.emissiveMap&&(p.emissiveMap.value=c.emissiveMap):c.isMeshToonMaterial?(t(p,c),c.gradientMap&&(p.gradientMap.value=c.gradientMap)):c.isMeshPhongMaterial?t(p,c):c.isMeshPhysicalMaterial?(p.clearCoat.value=c.clearCoat,p.clearCoatRoughness.value=c.clearCoatRoughness,m(p,c)):c.isMeshStandardMaterial?m(p,c):c.isMeshDepthMaterial?c.displacementMap&&(p.displacementMap.value=c.displacementMap,p.displacementScale.value=c.displacementScale,
-p.displacementBias.value=c.displacementBias):c.isMeshDistanceMaterial?(c.displacementMap&&(p.displacementMap.value=c.displacementMap,p.displacementScale.value=c.displacementScale,p.displacementBias.value=c.displacementBias),p.referencePosition.value.copy(c.referencePosition),p.nearDistance.value=c.nearDistance,p.farDistance.value=c.farDistance):c.isMeshNormalMaterial&&(c.bumpMap&&(p.bumpMap.value=c.bumpMap,p.bumpScale.value=c.bumpScale),c.normalMap&&(p.normalMap.value=c.normalMap,p.normalScale.value.copy(c.normalScale)),
-c.displacementMap&&(p.displacementMap.value=c.displacementMap,p.displacementScale.value=c.displacementScale,p.displacementBias.value=c.displacementBias));void 0!==p.ltcMat&&(p.ltcMat.value=R.LTC_MAT_TEXTURE);void 0!==p.ltcMag&&(p.ltcMag.value=R.LTC_MAG_TEXTURE);bb.upload(C,e.uniformsList,p,K)}l.setValue(C,"modelViewMatrix",d.modelViewMatrix);l.setValue(C,"normalMatrix",d.normalMatrix);l.setValue(C,"modelMatrix",d.matrixWorld);return k}function t(a,b){a.specular.value=b.specular;a.shininess.value=
-Math.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale);b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale));b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias)}function m(a,b){a.roughness.value=b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);
-b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale);b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale));b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias);b.envMap&&(a.envMapIntensity.value=b.envMapIntensity)}function w(a){if(1E3===a)return C.REPEAT;
-if(1001===a)return C.CLAMP_TO_EDGE;if(1002===a)return C.MIRRORED_REPEAT;if(1003===a)return C.NEAREST;if(1004===a)return C.NEAREST_MIPMAP_NEAREST;if(1005===a)return C.NEAREST_MIPMAP_LINEAR;if(1006===a)return C.LINEAR;if(1007===a)return C.LINEAR_MIPMAP_NEAREST;if(1008===a)return C.LINEAR_MIPMAP_LINEAR;if(1009===a)return C.UNSIGNED_BYTE;if(1017===a)return C.UNSIGNED_SHORT_4_4_4_4;if(1018===a)return C.UNSIGNED_SHORT_5_5_5_1;if(1019===a)return C.UNSIGNED_SHORT_5_6_5;if(1010===a)return C.BYTE;if(1011===
-a)return C.SHORT;if(1012===a)return C.UNSIGNED_SHORT;if(1013===a)return C.INT;if(1014===a)return C.UNSIGNED_INT;if(1015===a)return C.FLOAT;if(1016===a){var b=ha.get("OES_texture_half_float");if(null!==b)return b.HALF_FLOAT_OES}if(1021===a)return C.ALPHA;if(1022===a)return C.RGB;if(1023===a)return C.RGBA;if(1024===a)return C.LUMINANCE;if(1025===a)return C.LUMINANCE_ALPHA;if(1026===a)return C.DEPTH_COMPONENT;if(1027===a)return C.DEPTH_STENCIL;if(100===a)return C.FUNC_ADD;if(101===a)return C.FUNC_SUBTRACT;
-if(102===a)return C.FUNC_REVERSE_SUBTRACT;if(200===a)return C.ZERO;if(201===a)return C.ONE;if(202===a)return C.SRC_COLOR;if(203===a)return C.ONE_MINUS_SRC_COLOR;if(204===a)return C.SRC_ALPHA;if(205===a)return C.ONE_MINUS_SRC_ALPHA;if(206===a)return C.DST_ALPHA;if(207===a)return C.ONE_MINUS_DST_ALPHA;if(208===a)return C.DST_COLOR;if(209===a)return C.ONE_MINUS_DST_COLOR;if(210===a)return C.SRC_ALPHA_SATURATE;if(2001===a||2002===a||2003===a||2004===a)if(b=ha.get("WEBGL_compressed_texture_s3tc"),null!==
-b){if(2001===a)return b.COMPRESSED_RGB_S3TC_DXT1_EXT;if(2002===a)return b.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(2003===a)return b.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(2004===a)return b.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(2100===a||2101===a||2102===a||2103===a)if(b=ha.get("WEBGL_compressed_texture_pvrtc"),null!==b){if(2100===a)return b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(2101===a)return b.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(2102===a)return b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(2103===a)return b.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(2151===
-a&&(b=ha.get("WEBGL_compressed_texture_etc1"),null!==b))return b.COMPRESSED_RGB_ETC1_WEBGL;if(103===a||104===a)if(b=ha.get("EXT_blend_minmax"),null!==b){if(103===a)return b.MIN_EXT;if(104===a)return b.MAX_EXT}return 1020===a&&(b=ha.get("WEBGL_depth_texture"),null!==b)?b.UNSIGNED_INT_24_8_WEBGL:0}console.log("THREE.WebGLRenderer","87dev");a=a||{};var v=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),y=void 0!==a.context?a.context:null,B=void 0!==a.alpha?
-a.alpha:!1,G=void 0!==a.depth?a.depth:!0,D=void 0!==a.stencil?a.stencil:!0,H=void 0!==a.antialias?a.antialias:!1,pa=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,Y=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,x=[],z=[],A=null,E=new Float32Array(8),ia=[],Q=[];this.domElement=v;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=
-this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var K=this,S=!1,P=null,J=null,M=-1,L="",V=null,U=null,T=new ca,I=new ca,da=null,fa=0,Z=v.width,X=v.height,va=1,ga=new ca(0,0,Z,X),kd=new ca(0,0,Z,X),Re=!1,ka=new jd,Fa=new og,ld=!1,Zd=!1,md=new O,Fb=new n,na={geometries:0,textures:0},ea={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:ea,memory:na,programs:null};try{B={alpha:B,depth:G,
-stencil:D,antialias:H,premultipliedAlpha:pa,preserveDrawingBuffer:Y};var C=y||v.getContext("webgl",B)||v.getContext("experimental-webgl",B);if(null===C){if(null!==v.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";}void 0===C.getShaderPrecisionFormat&&(C.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}});v.addEventListener("webglcontextlost",c,!1);v.addEventListener("webglcontextrestored",d,!1)}catch(od){console.error("THREE.WebGLRenderer: "+
-od)}var ha,ba,aa,W,la,sa,ta,xa,wa,oa,ua,ra,ya,za,Aa,Ca;b();var qa=new mg(K);this.vr=qa;var Ea=new Le(K,xa,ba.maxTextureSize);this.shadowMap=Ea;this.getContext=function(){return C};this.getContextAttributes=function(){return C.getContextAttributes()};this.forceContextLoss=function(){var a=ha.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=ha.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return va};this.setPixelRatio=function(a){void 0!==
-a&&(va=a,this.setSize(Z,X,!1))};this.getSize=function(){return{width:Z,height:X}};this.setSize=function(a,b,c){var d=qa.getDevice();d&&d.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(Z=a,X=b,v.width=a*va,v.height=b*va,!1!==c&&(v.style.width=a+"px",v.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(){return{width:Z*va,height:X*va}};this.setDrawingBufferSize=function(a,b,c){Z=a;X=b;va=c;v.width=a*c;v.height=b*c;
-this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){ga.set(a,X-b-d,c,d);aa.viewport(T.copy(ga).multiplyScalar(va))};this.setScissor=function(a,b,c,d){kd.set(a,X-b-d,c,d);aa.scissor(I.copy(kd).multiplyScalar(va))};this.setScissorTest=function(a){aa.setScissorTest(Re=a)};this.getClearColor=ra.getClearColor;this.setClearColor=ra.setClearColor;this.getClearAlpha=ra.getClearAlpha;this.setClearAlpha=ra.setClearAlpha;this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=C.COLOR_BUFFER_BIT;if(void 0===
-b||b)d|=C.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=C.STENCIL_BUFFER_BIT;C.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.dispose=function(){v.removeEventListener("webglcontextlost",c,!1);v.removeEventListener("webglcontextrestored",d,!1);ua.dispose()};this.renderBufferImmediate=function(a,b,c){aa.initAttributes();
-var d=W.get(a);a.hasPositions&&!d.position&&(d.position=C.createBuffer());a.hasNormals&&!d.normal&&(d.normal=C.createBuffer());a.hasUvs&&!d.uv&&(d.uv=C.createBuffer());a.hasColors&&!d.color&&(d.color=C.createBuffer());b=b.getAttributes();a.hasPositions&&(C.bindBuffer(C.ARRAY_BUFFER,d.position),C.bufferData(C.ARRAY_BUFFER,a.positionArray,C.DYNAMIC_DRAW),aa.enableAttribute(b.position),C.vertexAttribPointer(b.position,3,C.FLOAT,!1,0,0));if(a.hasNormals){C.bindBuffer(C.ARRAY_BUFFER,d.normal);if(!c.isMeshPhongMaterial&&
-!c.isMeshStandardMaterial&&!c.isMeshNormalMaterial&&!0===c.flatShading)for(var e=0,f=3*a.count;e<f;e+=9){var g=a.normalArray,h=(g[e+0]+g[e+3]+g[e+6])/3,k=(g[e+1]+g[e+4]+g[e+7])/3,l=(g[e+2]+g[e+5]+g[e+8])/3;g[e+0]=h;g[e+1]=k;g[e+2]=l;g[e+3]=h;g[e+4]=k;g[e+5]=l;g[e+6]=h;g[e+7]=k;g[e+8]=l}C.bufferData(C.ARRAY_BUFFER,a.normalArray,C.DYNAMIC_DRAW);aa.enableAttribute(b.normal);C.vertexAttribPointer(b.normal,3,C.FLOAT,!1,0,0)}a.hasUvs&&c.map&&(C.bindBuffer(C.ARRAY_BUFFER,d.uv),C.bufferData(C.ARRAY_BUFFER,
-a.uvArray,C.DYNAMIC_DRAW),aa.enableAttribute(b.uv),C.vertexAttribPointer(b.uv,2,C.FLOAT,!1,0,0));a.hasColors&&0!==c.vertexColors&&(C.bindBuffer(C.ARRAY_BUFFER,d.color),C.bufferData(C.ARRAY_BUFFER,a.colorArray,C.DYNAMIC_DRAW),aa.enableAttribute(b.color),C.vertexAttribPointer(b.color,3,C.FLOAT,!1,0,0));aa.disableUnusedAttributes();C.drawArrays(C.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,e,f){aa.setMaterial(d);var g=r(a,b,d,e);a=c.id+"_"+g.id+"_"+(!0===d.wireframe);var k=
-!1;a!==L&&(L=a,k=!0);var l=e.morphTargetInfluences;if(void 0!==l){var p=[];a=0;for(var q=l.length;a<q;a++)b=l[a],p.push([b,a]);p.sort(h);8<p.length&&(p.length=8);k=c.morphAttributes;a=0;for(q=p.length;a<q;a++)b=p[a],E[a]=b[0],0!==b[0]?(b=b[1],!0===d.morphTargets&&k.position&&c.addAttribute("morphTarget"+a,k.position[b]),!0===d.morphNormals&&k.normal&&c.addAttribute("morphNormal"+a,k.normal[b])):(!0===d.morphTargets&&c.removeAttribute("morphTarget"+a),!0===d.morphNormals&&c.removeAttribute("morphNormal"+
-a));a=p.length;for(b=E.length;a<b;a++)E[a]=0;g.getUniforms().setValue(C,"morphTargetInfluences",E);k=!0}b=c.index;q=c.attributes.position;p=1;!0===d.wireframe&&(b=ta.getWireframeAttribute(c),p=2);a=ya;if(null!==b){var t=sa.get(b);a=za;a.setIndex(t)}if(k){k=void 0;if(c&&c.isInstancedBufferGeometry&&null===ha.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{void 0===
-k&&(k=0);aa.initAttributes();var l=c.attributes,g=g.getAttributes(),m=d.defaultAttributeValues;for(x in g){var n=g[x];if(0<=n){var u=l[x];if(void 0!==u){var v=u.normalized,w=u.itemSize,B=sa.get(u);if(void 0!==B){var y=B.buffer,D=B.type,B=B.bytesPerElement;if(u.isInterleavedBufferAttribute){var G=u.data,H=G.stride,u=u.offset;G&&G.isInstancedInterleavedBuffer?(aa.enableAttributeAndDivisor(n,G.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=G.meshPerAttribute*G.count)):aa.enableAttribute(n);
-C.bindBuffer(C.ARRAY_BUFFER,y);C.vertexAttribPointer(n,w,D,v,H*B,(k*H+u)*B)}else u.isInstancedBufferAttribute?(aa.enableAttributeAndDivisor(n,u.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=u.meshPerAttribute*u.count)):aa.enableAttribute(n),C.bindBuffer(C.ARRAY_BUFFER,y),C.vertexAttribPointer(n,w,D,v,0,k*w*B)}}else if(void 0!==m&&(v=m[x],void 0!==v))switch(v.length){case 2:C.vertexAttrib2fv(n,v);break;case 3:C.vertexAttrib3fv(n,v);break;case 4:C.vertexAttrib4fv(n,v);break;default:C.vertexAttrib1fv(n,
-v)}}}aa.disableUnusedAttributes()}null!==b&&C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,t.buffer)}t=0;null!==b?t=b.count:void 0!==q&&(t=q.count);b=c.drawRange.start*p;q=null!==f?f.start*p:0;var x=Math.max(b,q);f=Math.max(0,Math.min(t,b+c.drawRange.count*p,q+(null!==f?f.count*p:Infinity))-1-x+1);if(0!==f){if(e.isMesh)if(!0===d.wireframe)aa.setLineWidth(d.wireframeLinewidth*(null===P?va:1)),a.setMode(C.LINES);else switch(e.drawMode){case 0:a.setMode(C.TRIANGLES);break;case 1:a.setMode(C.TRIANGLE_STRIP);break;
-case 2:a.setMode(C.TRIANGLE_FAN)}else e.isLine?(d=d.linewidth,void 0===d&&(d=1),aa.setLineWidth(d*(null===P?va:1)),e.isLineSegments?a.setMode(C.LINES):e.isLineLoop?a.setMode(C.LINE_LOOP):a.setMode(C.LINE_STRIP)):e.isPoints&&a.setMode(C.POINTS);c&&c.isInstancedBufferGeometry?0<c.maxInstancedCount&&a.renderInstances(c,x,f):a.render(x,f)}};this.compile=function(a,b){x.length=0;z.length=0;a.traverse(function(a){a.isLight&&(x.push(a),a.castShadow&&z.push(a))});wa.setup(x,z,b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=
-0;c<b.material.length;c++)q(b.material[c],a.fog,b);else q(b.material,a.fog,b)})};this.animate=function(a){function b(){a();(qa.getDevice()||window).requestAnimationFrame(b)}(qa.getDevice()||window).requestAnimationFrame(b)};this.render=function(a,b,c,d){if(!b||!b.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!S){L="";M=-1;V=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();qa.enabled&&(b=qa.getCamera(b));
+n}}function nd(a){X.call(this);this.cameras=a||[]}function mg(a){function b(){if(d.isPresenting){var b=d.getEyeParameters("left"),e=b.renderWidth,b=b.renderHeight;r=a.getPixelRatio();q=a.getSize();a.setDrawingBufferSize(2*e,b,1)}else c.enabled&&a.setDrawingBufferSize(q.width,q.height,r)}var c=this,d=null,e=null;"VRFrameData"in window&&(e=new window.VRFrameData);var f=new O,g=new O,h=new O,k=new X;k.bounds=new ca(0,0,.5,1);k.layers.enable(1);var l=new X;l.bounds=new ca(.5,0,.5,1);l.layers.enable(2);
+var p=new nd([k,l]);p.layers.enable(1);p.layers.enable(2);var q,r;window.addEventListener("vrdisplaypresentchange",b,!1);this.standing=this.enabled=!1;this.getDevice=function(){return d};this.setDevice=function(a){void 0!==a&&(d=a)};this.getCamera=function(a){if(null===d)return a;d.depthNear=a.near;d.depthFar=a.far;d.getFrameData(e);var b=e.pose;null!==b.position?a.position.fromArray(b.position):a.position.set(0,0,0);null!==b.orientation&&a.quaternion.fromArray(b.orientation);a.updateMatrixWorld();
+b=d.stageParameters;this.standing&&b&&(g.fromArray(b.sittingToStandingTransform),h.getInverse(g),a.matrixWorld.multiply(g),a.matrixWorldInverse.multiply(h));if(!1===d.isPresenting)return a;p.matrixWorld.copy(a.matrixWorld);p.matrixWorldInverse.copy(a.matrixWorldInverse);k.matrixWorldInverse.fromArray(e.leftViewMatrix);l.matrixWorldInverse.fromArray(e.rightViewMatrix);this.standing&&b&&(k.matrixWorldInverse.multiply(h),l.matrixWorldInverse.multiply(h));a=a.parent;null!==a&&(f.getInverse(a.matrixWorld),
+k.matrixWorldInverse.multiply(f),l.matrixWorldInverse.multiply(f));k.matrixWorld.getInverse(k.matrixWorldInverse);l.matrixWorld.getInverse(l.matrixWorldInverse);k.projectionMatrix.fromArray(e.leftProjectionMatrix);l.projectionMatrix.fromArray(e.rightProjectionMatrix);p.projectionMatrix.copy(k.projectionMatrix);a=d.getLayers();a.length&&(a=a[0],null!==a.leftBounds&&4===a.leftBounds.length&&k.bounds.fromArray(a.leftBounds),null!==a.rightBounds&&4===a.rightBounds.length&&l.bounds.fromArray(a.rightBounds));
+return p};this.getStandingMatrix=function(){return g};this.submitFrame=function(){d&&d.isPresenting&&d.submitFrame()};this.dispose=function(){window.removeEventListener("vrdisplaypresentchange",b)}}function ng(a){var b={};return{get:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=a.getExtension("EXT_texture_filter_anisotropic")||
+a.getExtension("MOZ_EXT_texture_filter_anisotropic")||a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;case "WEBGL_compressed_texture_etc1":d=
+a.getExtension("WEBGL_compressed_texture_etc1");break;default:d=a.getExtension(c)}null===d&&console.warn("THREE.WebGLRenderer: "+c+" extension not supported.");return b[c]=d}}}function og(){function a(){l.value!==d&&(l.value=d,l.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,b,d,e){var f=null!==a?a.length:0,g=null;if(0!==f){g=l.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;k.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,
+k),h.normal.toArray(g,d),g[d+3]=h.constant}l.value=g;l.needsUpdate=!0}c.numPlanes=f;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new za,k=new na,l={value:null,needsUpdate:!1};this.uniform=l;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};this.endShadows=function(){g=!1;a()};this.setState=function(c,h,k,t,m,n){if(!f||null===c||0===c.length||g&&!k)g?b(null):a();else{k=g?0:e;var q=
+4*k,p=m.clippingState||null;l.value=p;p=b(c,t,q,n);for(c=0;c!==q;++c)p[c]=d[c];m.clippingState=p;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=k}}}function $d(a){function b(){ha=new ng(C);ha.get("WEBGL_depth_texture");ha.get("OES_texture_float");ha.get("OES_texture_float_linear");ha.get("OES_texture_half_float");ha.get("OES_texture_half_float_linear");ha.get("OES_standard_derivatives");ha.get("ANGLE_instanced_arrays");ha.get("OES_element_index_uint")&&(F.MaxIndex=4294967296);ba=new lg(C,
+ha,a);aa=new kg(C,ha,w);aa.scissor(I.copy(kd).multiplyScalar(va));aa.viewport(T.copy(ga).multiplyScalar(va));W=new jg;la=new ig(C,ha,aa,W,ba,w,oa);sa=new Of(C);ta=new Xf(C,sa,oa);xa=new $f(ta,ea);pa=new hg(K,ha,ba);wa=new Zf;ua=new Uf;ra=new Qf(K,aa,ta,qa);ya=new Wf(C,ha,ea);za=new Vf(C,ha,ea);Aa=new Lf(K,C,aa,ba);Ca=new Mf(K,C,aa,ba);K.info.programs=pa.programs;K.context=C;K.capabilities=ba;K.extensions=ha;K.properties=W;K.renderLists=ua;K.state=aa}function c(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");
+S=!0}function d(a){console.log("THREE.WebGLRenderer: Context Restored.");S=!1;b()}function e(a){a=a.target;a.removeEventListener("dispose",e);f(a);W.remove(a)}function f(a){var b=W.get(a).program;a.program=void 0;void 0!==b&&pa.releaseProgram(b)}function g(a,b,c){a.render(function(a){K.renderBufferImmediate(a,b,c)})}function h(a,b){return Math.abs(b[0])-Math.abs(a[0])}function k(a,b,c){if(a.visible){if(a.layers.test(b.layers))if(a.isLight)x.push(a),a.castShadow&&z.push(a);else if(a.isSprite)a.frustumCulled&&
+!ka.intersectsSprite(a)||ia.push(a);else if(a.isLensFlare)Q.push(a);else if(a.isImmediateRenderObject)c&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(md),A.push(a,null,a.material,Fb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||ka.intersectsObject(a)){c&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(md);var d=xa.update(a),e=a.material;if(Array.isArray(e))for(var f=d.groups,g=0,h=f.length;g<h;g++){var l=f[g],q=e[l.materialIndex];
+q&&q.visible&&A.push(a,d,q,Fb.z,l)}else e.visible&&A.push(a,d,e,Fb.z,null)}a=a.children;g=0;for(h=a.length;g<h;g++)k(a[g],b,c)}}function l(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,k=g.geometry,l=void 0===d?g.material:d,g=g.group;if(c.isArrayCamera){U=c;for(var q=c.cameras,r=0,t=q.length;r<t;r++){var m=q[r];if(h.layers.test(m.layers)){var u=m.bounds,n=u.x*Z,v=u.y*X,od=u.z*Z,u=u.w*X;aa.viewport(T.set(n,v,od,u).multiplyScalar(va));aa.scissor(I.set(n,v,od,u).multiplyScalar(va));
+aa.setScissorTest(!0);p(h,b,m,k,l,g)}}}else U=null,p(h,b,c,k,l,g)}}function p(a,b,c,d,e,f){a.onBeforeRender(K,b,c,d,e,f);a.modelViewMatrix.multiplyMatrices(c.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){aa.setMaterial(e);var h=r(c,b.fog,e,a);L="";g(a,h,e)}else K.renderBufferDirect(c,b.fog,d,e,a,f);a.onAfterRender(K,b,c,d,e,f)}function q(a,b,c){var d=W.get(a);c=pa.getParameters(a,wa.state,z,b,Fa.numPlanes,Fa.numIntersection,c);var g=
+pa.getProgramCode(a,c),h=d.program,k=!0;if(void 0===h)a.addEventListener("dispose",e);else if(h.code!==g)f(a);else{if(void 0!==c.shaderID)return;k=!1}k&&(c.shaderID?(h=hb[c.shaderID],d.shader={name:a.type,uniforms:Da.clone(h.uniforms),vertexShader:h.vertexShader,fragmentShader:h.fragmentShader}):d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader),h=pa.acquireProgram(a,d.shader,c,g),d.program=h,a.program=h);c=h.getAttributes();
+if(a.morphTargets)for(g=a.numSupportedMorphTargets=0;g<K.maxMorphTargets;g++)0<=c["morphTarget"+g]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(g=a.numSupportedMorphNormals=0;g<K.maxMorphNormals;g++)0<=c["morphNormal"+g]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Fa.numPlanes,d.numIntersection=Fa.numIntersection,c.clippingPlanes=Fa.uniform;d.fog=b;d.lightsHash=wa.state.hash;a.lights&&(c.ambientLightColor.value=
+wa.state.ambient,c.directionalLights.value=wa.state.directional,c.spotLights.value=wa.state.spot,c.rectAreaLights.value=wa.state.rectArea,c.pointLights.value=wa.state.point,c.hemisphereLights.value=wa.state.hemi,c.directionalShadowMap.value=wa.state.directionalShadowMap,c.directionalShadowMatrix.value=wa.state.directionalShadowMatrix,c.spotShadowMap.value=wa.state.spotShadowMap,c.spotShadowMatrix.value=wa.state.spotShadowMatrix,c.pointShadowMap.value=wa.state.pointShadowMap,c.pointShadowMatrix.value=
+wa.state.pointShadowMatrix);a=d.program.getUniforms();a=bb.seqWithValue(a.seq,c);d.uniformsList=a}function r(a,b,c,d){fa=0;var e=W.get(c);ld&&(Zd||a!==V)&&Fa.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===V&&c.id===M);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:c.lights&&e.lightsHash!==wa.state.hash?c.needsUpdate=!0:void 0===e.numClippingPlanes||e.numClippingPlanes===Fa.numPlanes&&e.numIntersection===Fa.numIntersection||(c.needsUpdate=
+!0));c.needsUpdate&&(q(c,b,d),c.needsUpdate=!1);var f=!1,g=!1,h=!1,k=e.program,l=k.getUniforms(),p=e.shader.uniforms;aa.useProgram(k.program)&&(h=g=f=!0);c.id!==M&&(M=c.id,g=!0);if(f||a!==V){l.setValue(C,"projectionMatrix",a.projectionMatrix);ba.logarithmicDepthBuffer&&l.setValue(C,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));V!==(U||a)&&(V=U||a,h=g=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)f=l.map.cameraPosition,void 0!==f&&f.setValue(C,Fb.setFromMatrixPosition(a.matrixWorld));
+(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&l.setValue(C,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(l.setOptional(C,d,"bindMatrix"),l.setOptional(C,d,"bindMatrixInverse"),a=d.skeleton))if(f=a.bones,ba.floatVertexTextures){if(void 0===a.boneTexture){var f=Math.sqrt(4*f.length),f=N.nextPowerOfTwo(Math.ceil(f)),f=Math.max(f,4),r=new Float32Array(f*f*4);r.set(a.boneMatrices);var u=new ab(r,f,f,1023,1015);a.boneMatrices=
+r;a.boneTexture=u;a.boneTextureSize=f}l.setValue(C,"boneTexture",a.boneTexture);l.setValue(C,"boneTextureSize",a.boneTextureSize)}else l.setOptional(C,a,"boneMatrices");if(g){l.setValue(C,"toneMappingExposure",K.toneMappingExposure);l.setValue(C,"toneMappingWhitePoint",K.toneMappingWhitePoint);c.lights&&(g=h,p.ambientLightColor.needsUpdate=g,p.directionalLights.needsUpdate=g,p.pointLights.needsUpdate=g,p.spotLights.needsUpdate=g,p.rectAreaLights.needsUpdate=g,p.hemisphereLights.needsUpdate=g);b&&
+c.fog&&(p.fogColor.value=b.color,b.isFog?(p.fogNear.value=b.near,p.fogFar.value=b.far):b.isFogExp2&&(p.fogDensity.value=b.density));if(c.isMeshBasicMaterial||c.isMeshLambertMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.isMeshNormalMaterial||c.isMeshDepthMaterial||c.isMeshDistanceMaterial){p.opacity.value=c.opacity;p.diffuse.value=c.color;c.emissive&&p.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);p.map.value=c.map;p.specularMap.value=c.specularMap;p.alphaMap.value=
+c.alphaMap;c.lightMap&&(p.lightMap.value=c.lightMap,p.lightMapIntensity.value=c.lightMapIntensity);c.aoMap&&(p.aoMap.value=c.aoMap,p.aoMapIntensity.value=c.aoMapIntensity);if(c.map)var n=c.map;else c.specularMap?n=c.specularMap:c.displacementMap?n=c.displacementMap:c.normalMap?n=c.normalMap:c.bumpMap?n=c.bumpMap:c.roughnessMap?n=c.roughnessMap:c.metalnessMap?n=c.metalnessMap:c.alphaMap?n=c.alphaMap:c.emissiveMap&&(n=c.emissiveMap);void 0!==n&&(n.isWebGLRenderTarget&&(n=n.texture),b=n.offset,n=n.repeat,
+p.offsetRepeat.value.set(b.x,b.y,n.x,n.y));p.envMap.value=c.envMap;p.flipEnvMap.value=c.envMap&&c.envMap.isCubeTexture?-1:1;p.reflectivity.value=c.reflectivity;p.refractionRatio.value=c.refractionRatio}c.isLineBasicMaterial?(p.diffuse.value=c.color,p.opacity.value=c.opacity):c.isLineDashedMaterial?(p.diffuse.value=c.color,p.opacity.value=c.opacity,p.dashSize.value=c.dashSize,p.totalSize.value=c.dashSize+c.gapSize,p.scale.value=c.scale):c.isPointsMaterial?(p.diffuse.value=c.color,p.opacity.value=c.opacity,
+p.size.value=c.size*va,p.scale.value=.5*X,p.map.value=c.map,null!==c.map&&(n=c.map.offset,c=c.map.repeat,p.offsetRepeat.value.set(n.x,n.y,c.x,c.y))):c.isMeshLambertMaterial?c.emissiveMap&&(p.emissiveMap.value=c.emissiveMap):c.isMeshToonMaterial?(t(p,c),c.gradientMap&&(p.gradientMap.value=c.gradientMap)):c.isMeshPhongMaterial?t(p,c):c.isMeshPhysicalMaterial?(p.clearCoat.value=c.clearCoat,p.clearCoatRoughness.value=c.clearCoatRoughness,m(p,c)):c.isMeshStandardMaterial?m(p,c):c.isMeshDepthMaterial?c.displacementMap&&
+(p.displacementMap.value=c.displacementMap,p.displacementScale.value=c.displacementScale,p.displacementBias.value=c.displacementBias):c.isMeshDistanceMaterial?(c.displacementMap&&(p.displacementMap.value=c.displacementMap,p.displacementScale.value=c.displacementScale,p.displacementBias.value=c.displacementBias),p.referencePosition.value.copy(c.referencePosition),p.nearDistance.value=c.nearDistance,p.farDistance.value=c.farDistance):c.isMeshNormalMaterial&&(c.bumpMap&&(p.bumpMap.value=c.bumpMap,p.bumpScale.value=
+c.bumpScale),c.normalMap&&(p.normalMap.value=c.normalMap,p.normalScale.value.copy(c.normalScale)),c.displacementMap&&(p.displacementMap.value=c.displacementMap,p.displacementScale.value=c.displacementScale,p.displacementBias.value=c.displacementBias));void 0!==p.ltcMat&&(p.ltcMat.value=R.LTC_MAT_TEXTURE);void 0!==p.ltcMag&&(p.ltcMag.value=R.LTC_MAG_TEXTURE);bb.upload(C,e.uniformsList,p,K)}l.setValue(C,"modelViewMatrix",d.modelViewMatrix);l.setValue(C,"normalMatrix",d.normalMatrix);l.setValue(C,"modelMatrix",
+d.matrixWorld);return k}function t(a,b){a.specular.value=b.specular;a.shininess.value=Math.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale);b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale));b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias)}function m(a,b){a.roughness.value=
+b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale);b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale));b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias);
+b.envMap&&(a.envMapIntensity.value=b.envMapIntensity)}function w(a){if(1E3===a)return C.REPEAT;if(1001===a)return C.CLAMP_TO_EDGE;if(1002===a)return C.MIRRORED_REPEAT;if(1003===a)return C.NEAREST;if(1004===a)return C.NEAREST_MIPMAP_NEAREST;if(1005===a)return C.NEAREST_MIPMAP_LINEAR;if(1006===a)return C.LINEAR;if(1007===a)return C.LINEAR_MIPMAP_NEAREST;if(1008===a)return C.LINEAR_MIPMAP_LINEAR;if(1009===a)return C.UNSIGNED_BYTE;if(1017===a)return C.UNSIGNED_SHORT_4_4_4_4;if(1018===a)return C.UNSIGNED_SHORT_5_5_5_1;
+if(1019===a)return C.UNSIGNED_SHORT_5_6_5;if(1010===a)return C.BYTE;if(1011===a)return C.SHORT;if(1012===a)return C.UNSIGNED_SHORT;if(1013===a)return C.INT;if(1014===a)return C.UNSIGNED_INT;if(1015===a)return C.FLOAT;if(1016===a){var b=ha.get("OES_texture_half_float");if(null!==b)return b.HALF_FLOAT_OES}if(1021===a)return C.ALPHA;if(1022===a)return C.RGB;if(1023===a)return C.RGBA;if(1024===a)return C.LUMINANCE;if(1025===a)return C.LUMINANCE_ALPHA;if(1026===a)return C.DEPTH_COMPONENT;if(1027===a)return C.DEPTH_STENCIL;
+if(100===a)return C.FUNC_ADD;if(101===a)return C.FUNC_SUBTRACT;if(102===a)return C.FUNC_REVERSE_SUBTRACT;if(200===a)return C.ZERO;if(201===a)return C.ONE;if(202===a)return C.SRC_COLOR;if(203===a)return C.ONE_MINUS_SRC_COLOR;if(204===a)return C.SRC_ALPHA;if(205===a)return C.ONE_MINUS_SRC_ALPHA;if(206===a)return C.DST_ALPHA;if(207===a)return C.ONE_MINUS_DST_ALPHA;if(208===a)return C.DST_COLOR;if(209===a)return C.ONE_MINUS_DST_COLOR;if(210===a)return C.SRC_ALPHA_SATURATE;if(2001===a||2002===a||2003===
+a||2004===a)if(b=ha.get("WEBGL_compressed_texture_s3tc"),null!==b){if(2001===a)return b.COMPRESSED_RGB_S3TC_DXT1_EXT;if(2002===a)return b.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(2003===a)return b.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(2004===a)return b.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(2100===a||2101===a||2102===a||2103===a)if(b=ha.get("WEBGL_compressed_texture_pvrtc"),null!==b){if(2100===a)return b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(2101===a)return b.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(2102===a)return b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
+if(2103===a)return b.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(2151===a&&(b=ha.get("WEBGL_compressed_texture_etc1"),null!==b))return b.COMPRESSED_RGB_ETC1_WEBGL;if(103===a||104===a)if(b=ha.get("EXT_blend_minmax"),null!==b){if(103===a)return b.MIN_EXT;if(104===a)return b.MAX_EXT}return 1020===a&&(b=ha.get("WEBGL_depth_texture"),null!==b)?b.UNSIGNED_INT_24_8_WEBGL:0}console.log("THREE.WebGLRenderer","87dev");a=a||{};var v=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml",
+"canvas"),y=void 0!==a.context?a.context:null,B=void 0!==a.alpha?a.alpha:!1,G=void 0!==a.depth?a.depth:!0,D=void 0!==a.stencil?a.stencil:!0,H=void 0!==a.antialias?a.antialias:!1,qa=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,Y=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,x=[],z=[],A=null,E=new Float32Array(8),ia=[],Q=[];this.domElement=v;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];
+this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var K=this,S=!1,P=null,J=null,M=-1,L="",V=null,U=null,T=new ca,I=new ca,da=null,fa=0,Z=v.width,X=v.height,va=1,ga=new ca(0,0,Z,X),kd=new ca(0,0,Z,X),Re=!1,ka=new jd,Fa=new og,ld=!1,Zd=!1,md=new O,Fb=new n,oa={geometries:0,textures:0},ea={frame:0,calls:0,vertices:0,faces:0,
+points:0};this.info={render:ea,memory:oa,programs:null};try{B={alpha:B,depth:G,stencil:D,antialias:H,premultipliedAlpha:qa,preserveDrawingBuffer:Y};var C=y||v.getContext("webgl",B)||v.getContext("experimental-webgl",B);if(null===C){if(null!==v.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";}void 0===C.getShaderPrecisionFormat&&(C.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}});v.addEventListener("webglcontextlost",
+c,!1);v.addEventListener("webglcontextrestored",d,!1)}catch(od){console.error("THREE.WebGLRenderer: "+od)}var ha,ba,aa,W,la,sa,ta,xa,wa,pa,ua,ra,ya,za,Aa,Ca;b();var na=new mg(K);this.vr=na;var Ea=new Le(K,xa,ba.maxTextureSize);this.shadowMap=Ea;this.getContext=function(){return C};this.getContextAttributes=function(){return C.getContextAttributes()};this.forceContextLoss=function(){var a=ha.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=ha.get("WEBGL_lose_context");
+a&&a.restoreContext()};this.getPixelRatio=function(){return va};this.setPixelRatio=function(a){void 0!==a&&(va=a,this.setSize(Z,X,!1))};this.getSize=function(){return{width:Z,height:X}};this.setSize=function(a,b,c){var d=na.getDevice();d&&d.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(Z=a,X=b,v.width=a*va,v.height=b*va,!1!==c&&(v.style.width=a+"px",v.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(){return{width:Z*
+va,height:X*va}};this.setDrawingBufferSize=function(a,b,c){Z=a;X=b;va=c;v.width=a*c;v.height=b*c;this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){ga.set(a,X-b-d,c,d);aa.viewport(T.copy(ga).multiplyScalar(va))};this.setScissor=function(a,b,c,d){kd.set(a,X-b-d,c,d);aa.scissor(I.copy(kd).multiplyScalar(va))};this.setScissorTest=function(a){aa.setScissorTest(Re=a)};this.getClearColor=ra.getClearColor;this.setClearColor=ra.setClearColor;this.getClearAlpha=ra.getClearAlpha;this.setClearAlpha=
+ra.setClearAlpha;this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=C.COLOR_BUFFER_BIT;if(void 0===b||b)d|=C.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=C.STENCIL_BUFFER_BIT;C.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.dispose=function(){v.removeEventListener("webglcontextlost",c,!1);v.removeEventListener("webglcontextrestored",
+d,!1);ua.dispose();na.dispose()};this.renderBufferImmediate=function(a,b,c){aa.initAttributes();var d=W.get(a);a.hasPositions&&!d.position&&(d.position=C.createBuffer());a.hasNormals&&!d.normal&&(d.normal=C.createBuffer());a.hasUvs&&!d.uv&&(d.uv=C.createBuffer());a.hasColors&&!d.color&&(d.color=C.createBuffer());b=b.getAttributes();a.hasPositions&&(C.bindBuffer(C.ARRAY_BUFFER,d.position),C.bufferData(C.ARRAY_BUFFER,a.positionArray,C.DYNAMIC_DRAW),aa.enableAttribute(b.position),C.vertexAttribPointer(b.position,
+3,C.FLOAT,!1,0,0));if(a.hasNormals){C.bindBuffer(C.ARRAY_BUFFER,d.normal);if(!c.isMeshPhongMaterial&&!c.isMeshStandardMaterial&&!c.isMeshNormalMaterial&&!0===c.flatShading)for(var e=0,f=3*a.count;e<f;e+=9){var g=a.normalArray,h=(g[e+0]+g[e+3]+g[e+6])/3,k=(g[e+1]+g[e+4]+g[e+7])/3,l=(g[e+2]+g[e+5]+g[e+8])/3;g[e+0]=h;g[e+1]=k;g[e+2]=l;g[e+3]=h;g[e+4]=k;g[e+5]=l;g[e+6]=h;g[e+7]=k;g[e+8]=l}C.bufferData(C.ARRAY_BUFFER,a.normalArray,C.DYNAMIC_DRAW);aa.enableAttribute(b.normal);C.vertexAttribPointer(b.normal,
+3,C.FLOAT,!1,0,0)}a.hasUvs&&c.map&&(C.bindBuffer(C.ARRAY_BUFFER,d.uv),C.bufferData(C.ARRAY_BUFFER,a.uvArray,C.DYNAMIC_DRAW),aa.enableAttribute(b.uv),C.vertexAttribPointer(b.uv,2,C.FLOAT,!1,0,0));a.hasColors&&0!==c.vertexColors&&(C.bindBuffer(C.ARRAY_BUFFER,d.color),C.bufferData(C.ARRAY_BUFFER,a.colorArray,C.DYNAMIC_DRAW),aa.enableAttribute(b.color),C.vertexAttribPointer(b.color,3,C.FLOAT,!1,0,0));aa.disableUnusedAttributes();C.drawArrays(C.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,
+b,c,d,e,f){aa.setMaterial(d);var g=r(a,b,d,e);a=c.id+"_"+g.id+"_"+(!0===d.wireframe);var k=!1;a!==L&&(L=a,k=!0);var l=e.morphTargetInfluences;if(void 0!==l){var p=[];a=0;for(var q=l.length;a<q;a++)b=l[a],p.push([b,a]);p.sort(h);8<p.length&&(p.length=8);k=c.morphAttributes;a=0;for(q=p.length;a<q;a++)b=p[a],E[a]=b[0],0!==b[0]?(b=b[1],!0===d.morphTargets&&k.position&&c.addAttribute("morphTarget"+a,k.position[b]),!0===d.morphNormals&&k.normal&&c.addAttribute("morphNormal"+a,k.normal[b])):(!0===d.morphTargets&&
+c.removeAttribute("morphTarget"+a),!0===d.morphNormals&&c.removeAttribute("morphNormal"+a));a=p.length;for(b=E.length;a<b;a++)E[a]=0;g.getUniforms().setValue(C,"morphTargetInfluences",E);k=!0}b=c.index;q=c.attributes.position;p=1;!0===d.wireframe&&(b=ta.getWireframeAttribute(c),p=2);a=ya;if(null!==b){var t=sa.get(b);a=za;a.setIndex(t)}if(k){k=void 0;if(c&&c.isInstancedBufferGeometry&&null===ha.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");
+else{void 0===k&&(k=0);aa.initAttributes();var l=c.attributes,g=g.getAttributes(),m=d.defaultAttributeValues;for(x in g){var n=g[x];if(0<=n){var u=l[x];if(void 0!==u){var v=u.normalized,w=u.itemSize,B=sa.get(u);if(void 0!==B){var y=B.buffer,D=B.type,B=B.bytesPerElement;if(u.isInterleavedBufferAttribute){var G=u.data,H=G.stride,u=u.offset;G&&G.isInstancedInterleavedBuffer?(aa.enableAttributeAndDivisor(n,G.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=G.meshPerAttribute*G.count)):
+aa.enableAttribute(n);C.bindBuffer(C.ARRAY_BUFFER,y);C.vertexAttribPointer(n,w,D,v,H*B,(k*H+u)*B)}else u.isInstancedBufferAttribute?(aa.enableAttributeAndDivisor(n,u.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=u.meshPerAttribute*u.count)):aa.enableAttribute(n),C.bindBuffer(C.ARRAY_BUFFER,y),C.vertexAttribPointer(n,w,D,v,0,k*w*B)}}else if(void 0!==m&&(v=m[x],void 0!==v))switch(v.length){case 2:C.vertexAttrib2fv(n,v);break;case 3:C.vertexAttrib3fv(n,v);break;case 4:C.vertexAttrib4fv(n,
+v);break;default:C.vertexAttrib1fv(n,v)}}}aa.disableUnusedAttributes()}null!==b&&C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,t.buffer)}t=0;null!==b?t=b.count:void 0!==q&&(t=q.count);b=c.drawRange.start*p;q=null!==f?f.start*p:0;var x=Math.max(b,q);f=Math.max(0,Math.min(t,b+c.drawRange.count*p,q+(null!==f?f.count*p:Infinity))-1-x+1);if(0!==f){if(e.isMesh)if(!0===d.wireframe)aa.setLineWidth(d.wireframeLinewidth*(null===P?va:1)),a.setMode(C.LINES);else switch(e.drawMode){case 0:a.setMode(C.TRIANGLES);break;case 1:a.setMode(C.TRIANGLE_STRIP);
+break;case 2:a.setMode(C.TRIANGLE_FAN)}else e.isLine?(d=d.linewidth,void 0===d&&(d=1),aa.setLineWidth(d*(null===P?va:1)),e.isLineSegments?a.setMode(C.LINES):e.isLineLoop?a.setMode(C.LINE_LOOP):a.setMode(C.LINE_STRIP)):e.isPoints&&a.setMode(C.POINTS);c&&c.isInstancedBufferGeometry?0<c.maxInstancedCount&&a.renderInstances(c,x,f):a.render(x,f)}};this.compile=function(a,b){x.length=0;z.length=0;a.traverse(function(a){a.isLight&&(x.push(a),a.castShadow&&z.push(a))});wa.setup(x,z,b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=
+0;c<b.material.length;c++)q(b.material[c],a.fog,b);else q(b.material,a.fog,b)})};this.animate=function(a){function b(){a();(na.getDevice()||window).requestAnimationFrame(b)}(na.getDevice()||window).requestAnimationFrame(b)};this.render=function(a,b,c,d){if(!b||!b.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!S){L="";M=-1;V=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();na.enabled&&(b=na.getCamera(b));
 md.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);ka.setFromMatrix(md);x.length=0;z.length=0;ia.length=0;Q.length=0;Zd=this.localClippingEnabled;ld=Fa.init(this.clippingPlanes,Zd,b);A=ua.get(a,b);A.init();k(a,b,K.sortObjects);A.finish();!0===K.sortObjects&&A.sort();ld&&Fa.beginShadows();Ea.render(z,a,b);wa.setup(x,z,b);ld&&Fa.endShadows();ea.frame++;ea.calls=0;ea.vertices=0;ea.faces=0;ea.points=0;void 0===c&&(c=null);this.setRenderTarget(c);ra.render(a,b,d);d=A.opaque;var e=A.transparent;
 md.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);ka.setFromMatrix(md);x.length=0;z.length=0;ia.length=0;Q.length=0;Zd=this.localClippingEnabled;ld=Fa.init(this.clippingPlanes,Zd,b);A=ua.get(a,b);A.init();k(a,b,K.sortObjects);A.finish();!0===K.sortObjects&&A.sort();ld&&Fa.beginShadows();Ea.render(z,a,b);wa.setup(x,z,b);ld&&Fa.endShadows();ea.frame++;ea.calls=0;ea.vertices=0;ea.faces=0;ea.points=0;void 0===c&&(c=null);this.setRenderTarget(c);ra.render(a,b,d);d=A.opaque;var e=A.transparent;
-if(a.overrideMaterial){var f=a.overrideMaterial;d.length&&l(d,a,b,f);e.length&&l(e,a,b,f)}else d.length&&l(d,a,b),e.length&&l(e,a,b);Ca.render(ia,a,b);Aa.render(Q,a,b,T);c&&la.updateRenderTargetMipmap(c);aa.buffers.depth.setTest(!0);aa.buffers.depth.setMask(!0);aa.buffers.color.setMask(!0);qa.enabled&&qa.submitFrame()}};this.setFaceCulling=function(a,b){aa.setCullFace(a);aa.setFlipSided(0===b)};this.allocTextureUnit=function(){var a=fa;a>=ba.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+
+if(a.overrideMaterial){var f=a.overrideMaterial;d.length&&l(d,a,b,f);e.length&&l(e,a,b,f)}else d.length&&l(d,a,b),e.length&&l(e,a,b);Ca.render(ia,a,b);Aa.render(Q,a,b,T);c&&la.updateRenderTargetMipmap(c);aa.buffers.depth.setTest(!0);aa.buffers.depth.setMask(!0);aa.buffers.color.setMask(!0);na.enabled&&na.submitFrame()}};this.setFaceCulling=function(a,b){aa.setCullFace(a);aa.setFlipSided(0===b)};this.allocTextureUnit=function(){var a=fa;a>=ba.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+
 a+" texture units while this GPU supports only "+ba.maxTextures);fa+=1;return a};this.setTexture2D=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTarget&&(a||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);la.setTexture2D(b,c)}}();this.setTexture=function(){var a=!1;return function(b,c){a||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),a=!0);la.setTexture2D(b,
 a+" texture units while this GPU supports only "+ba.maxTextures);fa+=1;return a};this.setTexture2D=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTarget&&(a||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);la.setTexture2D(b,c)}}();this.setTexture=function(){var a=!1;return function(b,c){a||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),a=!0);la.setTexture2D(b,
 c)}}();this.setTextureCube=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTargetCube&&(a||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);b&&b.isCubeTexture||Array.isArray(b.image)&&6===b.image.length?la.setTextureCube(b,c):la.setTextureCubeDynamic(b,c)}}();this.getRenderTarget=function(){return P};this.setRenderTarget=function(a){(P=a)&&void 0===W.get(a).__webglFramebuffer&&la.setupRenderTarget(a);
 c)}}();this.setTextureCube=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTargetCube&&(a||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);b&&b.isCubeTexture||Array.isArray(b.image)&&6===b.image.length?la.setTextureCube(b,c):la.setTextureCubeDynamic(b,c)}}();this.getRenderTarget=function(){return P};this.setRenderTarget=function(a){(P=a)&&void 0===W.get(a).__webglFramebuffer&&la.setupRenderTarget(a);
 var b=null,c=!1;a?(b=W.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube&&(b=b[a.activeCubeFace],c=!0),T.copy(a.viewport),I.copy(a.scissor),da=a.scissorTest):(T.copy(ga).multiplyScalar(va),I.copy(kd).multiplyScalar(va),da=Re);J!==b&&(C.bindFramebuffer(C.FRAMEBUFFER,b),J=b);aa.viewport(T);aa.scissor(I);aa.setScissorTest(da);c&&(c=W.get(a.texture),C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,c.__webglTexture,a.activeMipMapLevel))};this.readRenderTargetPixels=
 var b=null,c=!1;a?(b=W.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube&&(b=b[a.activeCubeFace],c=!0),T.copy(a.viewport),I.copy(a.scissor),da=a.scissorTest):(T.copy(ga).multiplyScalar(va),I.copy(kd).multiplyScalar(va),da=Re);J!==b&&(C.bindFramebuffer(C.FRAMEBUFFER,b),J=b);aa.viewport(T);aa.scissor(I);aa.setScissorTest(da);c&&(c=W.get(a.texture),C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,c.__webglTexture,a.activeMipMapLevel))};this.readRenderTargetPixels=
@@ -195,7 +195,7 @@ function(a,b,c,d,e,f){if(a&&a.isWebGLRenderTarget){var g=W.get(a).__webglFramebu
 1016===p&&ha.get("EXT_color_buffer_half_float")?C.checkFramebufferStatus(C.FRAMEBUFFER)===C.FRAMEBUFFER_COMPLETE?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&C.readPixels(b,c,d,e,w(l),w(p),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{h&&C.bindFramebuffer(C.FRAMEBUFFER,J)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}}
 1016===p&&ha.get("EXT_color_buffer_half_float")?C.checkFramebufferStatus(C.FRAMEBUFFER)===C.FRAMEBUFFER_COMPLETE?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&C.readPixels(b,c,d,e,w(l),w(p),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{h&&C.bindFramebuffer(C.FRAMEBUFFER,J)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}}
 function Gb(a,b){this.name="";this.color=new x(a);this.density=void 0!==b?b:2.5E-4}function Hb(a,b,c){this.name="";this.color=new x(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function pd(){A.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function ae(a,b,c,d,e){A.call(this);this.lensFlares=[];this.positionScreen=new n;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)}function Ya(a){L.call(this);this.type="SpriteMaterial";
 function Gb(a,b){this.name="";this.color=new x(a);this.density=void 0!==b?b:2.5E-4}function Hb(a,b,c){this.name="";this.color=new x(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function pd(){A.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function ae(a,b,c,d,e){A.call(this);this.lensFlares=[];this.positionScreen=new n;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)}function Ya(a){L.call(this);this.type="SpriteMaterial";
 this.color=new x(16777215);this.map=null;this.rotation=0;this.lights=this.fog=!1;this.setValues(a)}function xc(a){A.call(this);this.type="Sprite";this.material=void 0!==a?a:new Ya}function yc(){A.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function zc(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),
 this.color=new x(16777215);this.map=null;this.rotation=0;this.lights=this.fog=!1;this.setValues(a)}function xc(a){A.call(this);this.type="Sprite";this.material=void 0!==a?a:new Ya}function yc(){A.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function zc(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),
-this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new O)}function qd(){A.call(this);this.type="Bone"}function rd(a,b){na.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new O;this.bindMatrixInverse=new O;a=this.initBones();a=new zc(a);this.bind(a,this.matrixWorld);this.normalizeSkinWeights()}function fa(a){L.call(this);this.type="LineBasicMaterial";this.color=new x(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;
+this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new O)}function qd(){A.call(this);this.type="Bone"}function rd(a,b){oa.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new O;this.bindMatrixInverse=new O;a=this.initBones();a=new zc(a);this.bind(a,this.matrixWorld);this.normalizeSkinWeights()}function fa(a){L.call(this);this.type="LineBasicMaterial";this.color=new x(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;
 this.setValues(a)}function ta(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new U(a,b);A.call(this);this.type="Line";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new fa({color:16777215*Math.random()})}function U(a,b){ta.call(this,a,b);this.type="LineSegments"}function sd(a,b){ta.call(this,a,b);this.type="LineLoop"}function Ea(a){L.call(this);this.type="PointsMaterial";this.color=new x(16777215);
 this.setValues(a)}function ta(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new U(a,b);A.call(this);this.type="Line";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new fa({color:16777215*Math.random()})}function U(a,b){ta.call(this,a,b);this.type="LineSegments"}function sd(a,b){ta.call(this,a,b);this.type="LineLoop"}function Ea(a){L.call(this);this.type="PointsMaterial";this.color=new x(16777215);
 this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=!1;this.setValues(a)}function Ib(a,b){A.call(this);this.type="Points";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new Ea({color:16777215*Math.random()})}function Ac(){A.call(this);this.type="Group"}function td(a,b,c,d,e,f,g,h,k){function l(){requestAnimationFrame(l);a.readyState>=a.HAVE_CURRENT_DATA&&(p.needsUpdate=!0)}T.call(this,a,b,c,d,e,f,g,h,k);this.generateMipmaps=!1;var p=this;l()}function Jb(a,b,c,d,e,f,g,h,k,l,
 this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=!1;this.setValues(a)}function Ib(a,b){A.call(this);this.type="Points";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new Ea({color:16777215*Math.random()})}function Ac(){A.call(this);this.type="Group"}function td(a,b,c,d,e,f,g,h,k){function l(){requestAnimationFrame(l);a.readyState>=a.HAVE_CURRENT_DATA&&(p.needsUpdate=!0)}T.call(this,a,b,c,d,e,f,g,h,k);this.generateMipmaps=!1;var p=this;l()}function Jb(a,b,c,d,e,f,g,h,k,l,
 p,q){T.call(this,null,f,g,h,k,l,d,e,p,q);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Bc(a,b,c,d,e,f,g,h,k,l){l=void 0!==l?l:1026;if(1026!==l&&1027!==l)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===l&&(c=1012);void 0===c&&1027===l&&(c=1020);T.call(this,null,d,e,f,g,h,l,c,k);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=
 p,q){T.call(this,null,f,g,h,k,l,d,e,p,q);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Bc(a,b,c,d,e,f,g,h,k,l){l=void 0!==l?l:1026;if(1026!==l&&1027!==l)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===l&&(c=1012);void 0===c&&1027===l&&(c=1020);T.call(this,null,d,e,f,g,h,l,c,k);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=
@@ -262,12 +262,12 @@ function Ze(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks
 this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function $e(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Ld(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function oe(){F.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function pe(a,b,c,d){this.uuid=N.generateUUID();
 this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function $e(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Ld(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function oe(){F.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function pe(a,b,c,d){this.uuid=N.generateUUID();
 this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function gc(a,b){this.uuid=N.generateUUID();this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};this.version=0}function qe(a,b,c){gc.call(this,a,b);this.meshPerAttribute=c||1}function re(a,b,c){M.call(this,a,b);this.meshPerAttribute=c||1}function af(a,b,c,d){this.ray=new gb(a,b);this.near=c||0;this.far=d||Infinity;this.params={Mesh:{},Line:{},
 this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function gc(a,b){this.uuid=N.generateUUID();this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};this.version=0}function qe(a,b,c){gc.call(this,a,b);this.meshPerAttribute=c||1}function re(a,b,c){M.call(this,a,b);this.meshPerAttribute=c||1}function af(a,b,c,d){this.ray=new gb(a,b);this.near=c||0;this.far=d||Infinity;this.params={Mesh:{},Line:{},
 LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function bf(a,b){return a.distance-b.distance}function se(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=a.length;d<e;d++)se(a[d],b,c,!0)}}function cf(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function df(a,
 LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function bf(a,b){return a.distance-b.distance}function se(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=a.length;d<e;d++)se(a[d],b,c,!0)}}function cf(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function df(a,
-b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==b?b:0;this.theta=void 0!==c?c:0;return this}function ef(a,b,c){this.radius=void 0!==a?a:1;this.theta=void 0!==b?b:0;this.y=void 0!==c?c:0;return this}function ea(a,b){na.call(this,a,b);this.animationsMap={};this.animationsList=[];a=this.geometry.morphTargets.length;this.createAnimation("__default",0,a-1,a/1);this.setAnimationWeight("__default",1)}function Xc(a){A.call(this);this.material=a;this.render=function(a){}}function Yc(a,b,c,d){this.object=
+b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==b?b:0;this.theta=void 0!==c?c:0;return this}function ef(a,b,c){this.radius=void 0!==a?a:1;this.theta=void 0!==b?b:0;this.y=void 0!==c?c:0;return this}function ea(a,b){oa.call(this,a,b);this.animationsMap={};this.animationsList=[];a=this.geometry.morphTargets.length;this.createAnimation("__default",0,a-1,a/1);this.setAnimationWeight("__default",1)}function Xc(a){A.call(this);this.material=a;this.render=function(a){}}function Yc(a,b,c,d){this.object=
 a;this.size=void 0!==b?b:1;a=void 0!==c?c:16711680;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=3*c.faces.length:c&&c.isBufferGeometry&&(b=c.attributes.normal.count);c=new F;b=new z(6*b,3);c.addAttribute("position",b);U.call(this,c,new fa({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function hc(a,b){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new F;b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,
 a;this.size=void 0!==b?b:1;a=void 0!==c?c:16711680;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=3*c.faces.length:c&&c.isBufferGeometry&&(b=c.attributes.normal.count);c=new F;b=new z(6*b,3);c.addAttribute("position",b);U.call(this,c,new fa({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function hc(a,b){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new F;b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,
 0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var c=0,d=1;32>c;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.addAttribute("position",new z(b,3));b=new fa({fog:!1});this.cone=new U(a,b);this.add(this.cone);this.update()}function ff(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,ff(a.children[c]));return b}function ic(a){for(var b=ff(a),c=new F,d=[],e=[],f=new x(0,0,1),g=new x(0,1,0),h=0;h<b.length;h++){var k=
 0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var c=0,d=1;32>c;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.addAttribute("position",new z(b,3));b=new fa({fog:!1});this.cone=new U(a,b);this.add(this.cone);this.update()}function ff(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,ff(a.children[c]));return b}function ic(a){for(var b=ff(a),c=new F,d=[],e=[],f=new x(0,0,1),g=new x(0,1,0),h=0;h<b.length;h++){var k=
-b[h];k.parent&&k.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,f.g,f.b),e.push(g.r,g.g,g.b))}c.addAttribute("position",new z(d,3));c.addAttribute("color",new z(e,3));d=new fa({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});U.call(this,c,d);this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.onBeforeRender()}function jc(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new jb(b,4,2);b=new ua({wireframe:!0,fog:!1});na.call(this,a,b);
+b[h];k.parent&&k.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,f.g,f.b),e.push(g.r,g.g,g.b))}c.addAttribute("position",new z(d,3));c.addAttribute("color",new z(e,3));d=new fa({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});U.call(this,c,d);this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.onBeforeRender()}function jc(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new jb(b,4,2);b=new ua({wireframe:!0,fog:!1});oa.call(this,a,b);
 this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function kc(a,b){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new fa({fog:!1});b=new F;b.addAttribute("position",new M(new Float32Array(15),3));this.line=new ta(b,a);this.add(this.line);this.update()}function lc(a,b,c){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new ib(b);
 this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function kc(a,b){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new fa({fog:!1});b=new F;b.addAttribute("position",new M(new Float32Array(15),3));this.line=new ta(b,a);this.add(this.line);this.update()}function lc(a,b,c){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new ib(b);
-a.rotateY(.5*Math.PI);this.material=new ua({wireframe:!0,fog:!1});void 0===this.color&&(this.material.vertexColors=2);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.addAttribute("color",new M(b,3));this.add(new na(a,this.material));this.update()}function Zc(a,b,c,d){a=a||10;b=b||10;c=new x(void 0!==c?c:4473924);d=new x(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],k=0,l=0,p=-g;k<=b;k++,p+=f){a.push(-g,0,p,g,0,p);a.push(p,0,-g,p,0,g);var q=k===e?c:d;q.toArray(h,l);l+=
+a.rotateY(.5*Math.PI);this.material=new ua({wireframe:!0,fog:!1});void 0===this.color&&(this.material.vertexColors=2);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.addAttribute("color",new M(b,3));this.add(new oa(a,this.material));this.update()}function Zc(a,b,c,d){a=a||10;b=b||10;c=new x(void 0!==c?c:4473924);d=new x(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],k=0,l=0,p=-g;k<=b;k++,p+=f){a.push(-g,0,p,g,0,p);a.push(p,0,-g,p,0,g);var q=k===e?c:d;q.toArray(h,l);l+=
 3;q.toArray(h,l);l+=3;q.toArray(h,l);l+=3;q.toArray(h,l);l+=3}b=new F;b.addAttribute("position",new z(a,3));b.addAttribute("color",new z(h,3));c=new fa({vertexColors:2});U.call(this,b,c)}function Md(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new x(void 0!==e?e:4473924);f=new x(void 0!==f?f:8947848);var g=[],h=[],k;for(k=0;k<=b;k++){var l=k/b*2*Math.PI;var p=Math.sin(l)*a;l=Math.cos(l)*a;g.push(0,0,0);g.push(p,0,l);var q=k&1?e:f;h.push(q.r,q.g,q.b);h.push(q.r,q.g,q.b)}for(k=0;k<=c;k++){q=k&1?e:
 3;q.toArray(h,l);l+=3;q.toArray(h,l);l+=3;q.toArray(h,l);l+=3}b=new F;b.addAttribute("position",new z(a,3));b.addAttribute("color",new z(h,3));c=new fa({vertexColors:2});U.call(this,b,c)}function Md(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new x(void 0!==e?e:4473924);f=new x(void 0!==f?f:8947848);var g=[],h=[],k;for(k=0;k<=b;k++){var l=k/b*2*Math.PI;var p=Math.sin(l)*a;l=Math.cos(l)*a;g.push(0,0,0);g.push(p,0,l);var q=k&1?e:f;h.push(q.r,q.g,q.b);h.push(q.r,q.g,q.b)}for(k=0;k<=c;k++){q=k&1?e:
 f;var r=a-a/c*k;for(b=0;b<d;b++)l=b/d*2*Math.PI,p=Math.sin(l)*r,l=Math.cos(l)*r,g.push(p,0,l),h.push(q.r,q.g,q.b),l=(b+1)/d*2*Math.PI,p=Math.sin(l)*r,l=Math.cos(l)*r,g.push(p,0,l),h.push(q.r,q.g,q.b)}a=new F;a.addAttribute("position",new z(g,3));a.addAttribute("color",new z(h,3));g=new fa({vertexColors:2});U.call(this,a,g)}function $c(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=c.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.");
 f;var r=a-a/c*k;for(b=0;b<d;b++)l=b/d*2*Math.PI,p=Math.sin(l)*r,l=Math.cos(l)*r,g.push(p,0,l),h.push(q.r,q.g,q.b),l=(b+1)/d*2*Math.PI,p=Math.sin(l)*r,l=Math.cos(l)*r,g.push(p,0,l),h.push(q.r,q.g,q.b)}a=new F;a.addAttribute("position",new z(g,3));a.addAttribute("color",new z(h,3));g=new fa({vertexColors:2});U.call(this,a,g)}function $c(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=c.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.");
 c=new F;b=new z(6*b,3);c.addAttribute("position",b);U.call(this,c,new fa({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function mc(a,b,c){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;void 0===b&&(b=1);a=new F;a.addAttribute("position",new z([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new fa({fog:!1});this.lightPlane=new ta(a,b);this.add(this.lightPlane);a=new F;a.addAttribute("position",new z([0,0,0,0,0,1],
 c=new F;b=new z(6*b,3);c.addAttribute("position",b);U.call(this,c,new fa({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function mc(a,b,c){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;void 0===b&&(b=1);a=new F;a.addAttribute("position",new z([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new fa({fog:!1});this.lightPlane=new ta(a,b);this.add(this.lightPlane);a=new F;a.addAttribute("position",new z([0,0,0,0,0,1],
@@ -275,12 +275,12 @@ c=new F;b=new z(6*b,3);c.addAttribute("position",b);U.call(this,c,new fa({color:
 k);b("n2","f2",k);b("n3","f3",k);b("n4","f4",k);b("p","n1",l);b("p","n2",l);b("p","n3",l);b("p","n4",l);b("u1","u2",p);b("u2","u3",p);b("u3","u1",p);b("c","t",q);b("p","c",r);b("cn1","cn2",r);b("cn3","cn4",r);b("cf1","cf2",r);b("cf3","cf4",r);d.addAttribute("position",new z(f,3));d.addAttribute("color",new z(g,3));U.call(this,d,e);this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}
 k);b("n2","f2",k);b("n3","f3",k);b("n4","f4",k);b("p","n1",l);b("p","n2",l);b("p","n3",l);b("p","n4",l);b("u1","u2",p);b("u2","u3",p);b("u3","u1",p);b("c","t",q);b("p","c",r);b("cn1","cn2",r);b("cn3","cn4",r);b("cf1","cf2",r);b("cf3","cf4",r);d.addAttribute("position",new z(f,3));d.addAttribute("color",new z(g,3));U.call(this,d,e);this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}
 function xb(a,b){this.object=a;void 0===b&&(b=16776960);a=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new Float32Array(24),d=new F;d.setIndex(new M(a,1));d.addAttribute("position",new M(c,3));U.call(this,d,new fa({color:b}));this.matrixAutoUpdate=!1;this.update()}function bd(a,b){this.type="Box3Helper";this.box=a;a=void 0!==b?b:16776960;b=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new F;c.setIndex(new M(b,1));c.addAttribute("position",new z([1,
 function xb(a,b){this.object=a;void 0===b&&(b=16776960);a=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new Float32Array(24),d=new F;d.setIndex(new M(a,1));d.addAttribute("position",new M(c,3));U.call(this,d,new fa({color:b}));this.matrixAutoUpdate=!1;this.update()}function bd(a,b){this.type="Box3Helper";this.box=a;a=void 0!==b?b:16776960;b=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new F;c.setIndex(new M(b,1));c.addAttribute("position",new z([1,
 1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));U.call(this,c,new fa({color:a}));this.geometry.computeBoundingSphere();this.onBeforeRender()}function cd(a,b,c){this.type="PlaneHelper";this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new F;b.addAttribute("position",new z([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3));b.computeBoundingSphere();ta.call(this,b,new fa({color:a}));b=new F;b.addAttribute("position",new z([1,1,1,-1,1,1,-1,-1,1,1,1,
 1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));U.call(this,c,new fa({color:a}));this.geometry.computeBoundingSphere();this.onBeforeRender()}function cd(a,b,c){this.type="PlaneHelper";this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new F;b.addAttribute("position",new z([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3));b.computeBoundingSphere();ta.call(this,b,new fa({color:a}));b=new F;b.addAttribute("position",new z([1,1,1,-1,1,1,-1,-1,1,1,1,
-1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new na(b,new ua({color:a,opacity:.2,transparent:!0,depthWrite:!1})));this.onBeforeRender()}function yb(a,b,c,d,e,f){A.call(this);void 0===d&&(d=16776960);void 0===c&&(c=1);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===Nd&&(Nd=new F,Nd.addAttribute("position",new z([0,0,0,0,1,0],3)),te=new Sa(0,.5,1,5,1),te.translate(0,-.5,0));this.position.copy(b);this.line=new ta(Nd,new fa({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);
-this.cone=new na(te,new ua({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function Od(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new F;a.addAttribute("position",new z(b,3));a.addAttribute("color",new z([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new fa({vertexColors:2});U.call(this,a,b)}function ue(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,k){e=k*(g-e);h=k*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,
+1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new oa(b,new ua({color:a,opacity:.2,transparent:!0,depthWrite:!1})));this.onBeforeRender()}function yb(a,b,c,d,e,f){A.call(this);void 0===d&&(d=16776960);void 0===c&&(c=1);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===Nd&&(Nd=new F,Nd.addAttribute("position",new z([0,0,0,0,1,0],3)),te=new Sa(0,.5,1,5,1),te.translate(0,-.5,0));this.position.copy(b);this.line=new ta(Nd,new fa({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);
+this.cone=new oa(te,new ua({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function Od(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new F;a.addAttribute("position",new z(b,3));a.addAttribute("color",new z([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new fa({vertexColors:2});U.call(this,a,b)}function ue(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,k){e=k*(g-e);h=k*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,
 f,g,h,k,l,p){e=((f-e)/k-(g-e)/(k+l)+(g-f)/l)*l;h=((g-f)/l-(h-f)/(l+p)+(h-g)/p)*l;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function Ka(a){this.arcLengthDivisions=200;2>a.length&&console.warn("THREE.CatmullRomCurve3: Points array needs at least two entries.");this.points=a||[];this.closed=!1}function dd(a,b,c,d){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c;this.v3=d}function ed(a,b,c){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=
 f,g,h,k,l,p){e=((f-e)/k-(g-e)/(k+l)+(g-f)/l)*l;h=((g-f)/l-(h-f)/(l+p)+(h-g)/p)*l;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function Ka(a){this.arcLengthDivisions=200;2>a.length&&console.warn("THREE.CatmullRomCurve3: Points array needs at least two entries.");this.points=a||[];this.closed=!1}function dd(a,b,c,d){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c;this.v3=d}function ed(a,b,c){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=
 c}function fd(a,b){this.arcLengthDivisions=200;this.v1=a;this.v2=b}function Pd(a,b,c,d,e,f){Ta.call(this,a,b,c,c,d,e,f)}function gf(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");Ka.call(this,a);this.type="catmullrom";this.closed=!0}function hf(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");Ka.call(this,a);this.type="catmullrom"}function ve(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");
 c}function fd(a,b){this.arcLengthDivisions=200;this.v1=a;this.v2=b}function Pd(a,b,c,d,e,f){Ta.call(this,a,b,c,c,d,e,f)}function gf(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");Ka.call(this,a);this.type="catmullrom";this.closed=!0}function hf(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");Ka.call(this,a);this.type="catmullrom"}function ve(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");
 Ka.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));void 0===Number.isInteger&&(Number.isInteger=function(a){return"number"===typeof a&&isFinite(a)&&Math.floor(a)===a});void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0<a?1:+a});void 0===Function.prototype.name&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}});void 0===Object.assign&&function(){Object.assign=function(a){if(void 0===
 Ka.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));void 0===Number.isInteger&&(Number.isInteger=function(a){return"number"===typeof a&&isFinite(a)&&Math.floor(a)===a});void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0<a?1:+a});void 0===Function.prototype.name&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}});void 0===Object.assign&&function(){Object.assign=function(a){if(void 0===
-a||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(void 0!==d&&null!==d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b[e]=d[e])}return b}}();Object.assign(oa.prototype,{addEventListener:function(a,b){void 0===this._listeners&&(this._listeners={});var c=this._listeners;void 0===c[a]&&(c[a]=[]);-1===c[a].indexOf(b)&&c[a].push(b)},hasEventListener:function(a,b){if(void 0===this._listeners)return!1;
+a||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(void 0!==d&&null!==d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b[e]=d[e])}return b}}();Object.assign(pa.prototype,{addEventListener:function(a,b){void 0===this._listeners&&(this._listeners={});var c=this._listeners;void 0===c[a]&&(c[a]=[]);-1===c[a].indexOf(b)&&c[a].push(b)},hasEventListener:function(a,b){if(void 0===this._listeners)return!1;
 var c=this._listeners;return void 0!==c[a]&&-1!==c[a].indexOf(b)},removeEventListener:function(a,b){void 0!==this._listeners&&(a=this._listeners[a],void 0!==a&&(b=a.indexOf(b),-1!==b&&a.splice(b,1)))},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;for(var b=b.slice(0),c=0,d=b.length;c<d;c++)b[c].call(this,a)}}}});var N={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),
 var c=this._listeners;return void 0!==c[a]&&-1!==c[a].indexOf(b)},removeEventListener:function(a,b){void 0!==this._listeners&&(a=this._listeners[a],void 0!==a&&(b=a.indexOf(b),-1!==b&&a.splice(b,1)))},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;for(var b=b.slice(0),c=0,d=b.length;c<d;c++)b[c].call(this,a)}}}});var N={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),
 b=Array(36),c=0,d;return function(){for(var e=0;36>e;e++)8===e||13===e||18===e||23===e?b[e]="-":14===e?b[e]="4":(2>=c&&(c=33554432+16777216*Math.random()|0),d=c&15,c>>=4,b[e]=a[19===e?d&3|8:d]);return b.join("")}}(),clamp:function(a,b,c){return Math.max(b,Math.min(c,a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*
 b=Array(36),c=0,d;return function(){for(var e=0;36>e;e++)8===e||13===e||18===e||23===e?b[e]="-":14===e?b[e]="4":(2>=c&&(c=33554432+16777216*Math.random()|0),d=c&15,c>>=4,b[e]=a[19===e?d&3|8:d]);return b.join("")}}(),clamp:function(a,b,c){return Math.max(b,Math.min(c,a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*
 a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},degToRad:function(a){return a*N.DEG2RAD},radToDeg:function(a){return a*N.RAD2DEG},isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},nearestPowerOfTwo:function(a){return Math.pow(2,Math.round(Math.log(a)/Math.LN2))},
 a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},degToRad:function(a){return a*N.DEG2RAD},radToDeg:function(a){return a*N.RAD2DEG},isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},nearestPowerOfTwo:function(a){return Math.pow(2,Math.round(Math.log(a)/Math.LN2))},
@@ -292,14 +292,14 @@ Math.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(){var a=new
 return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x=-this.x;this.y=-this.y;return this},dot:function(a){return this.x*a.x+this.y*a.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||
 return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x=-this.x;this.y=-this.y;return this},dot:function(a){return this.x*a.x+this.y*a.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||
 1)},angle:function(){var a=Math.atan2(this.y,this.x);0>a&&(a+=2*Math.PI);return a},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x;a=this.y-a.y;return b*b+a*a},distanceToManhattan:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,
 1)},angle:function(){var a=Math.atan2(this.y,this.x);0>a&&(a+=2*Math.PI);return a},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x;a=this.y-a.y;return b*b+a*a},distanceToManhattan:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,
 a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=
 a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=
-this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this}});var mf=0;T.DEFAULT_IMAGE=void 0;T.DEFAULT_MAPPING=300;Object.defineProperty(T.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(T.prototype,oa.prototype,{constructor:T,isTexture:!0,clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.image=a.image;this.mipmaps=a.mipmaps.slice(0);this.mapping=a.mapping;this.wrapS=a.wrapS;this.wrapT=a.wrapT;this.magFilter=
+this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this}});var mf=0;T.DEFAULT_IMAGE=void 0;T.DEFAULT_MAPPING=300;Object.defineProperty(T.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(T.prototype,pa.prototype,{constructor:T,isTexture:!0,clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.image=a.image;this.mipmaps=a.mipmaps.slice(0);this.mapping=a.mapping;this.wrapS=a.wrapS;this.wrapT=a.wrapT;this.magFilter=
 a.magFilter;this.minFilter=a.minFilter;this.anisotropy=a.anisotropy;this.format=a.format;this.type=a.type;this.offset.copy(a.offset);this.repeat.copy(a.repeat);this.generateMipmaps=a.generateMipmaps;this.premultiplyAlpha=a.premultiplyAlpha;this.flipY=a.flipY;this.unpackAlignment=a.unpackAlignment;this.encoding=a.encoding;return this},toJSON:function(a){if(void 0!==a.textures[this.uuid])return a.textures[this.uuid];var b={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,
 a.magFilter;this.minFilter=a.minFilter;this.anisotropy=a.anisotropy;this.format=a.format;this.type=a.type;this.offset.copy(a.offset);this.repeat.copy(a.repeat);this.generateMipmaps=a.generateMipmaps;this.premultiplyAlpha=a.premultiplyAlpha;this.flipY=a.flipY;this.unpackAlignment=a.unpackAlignment;this.encoding=a.encoding;return this},toJSON:function(a){if(void 0!==a.textures[this.uuid])return a.textures[this.uuid];var b={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,
-name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var c=this.image;void 0===c.uuid&&(c.uuid=N.generateUUID());if(void 0===a.images[c.uuid]){var d=a.images,e=c.uuid,f=c.uuid;if(void 0!==c.toDataURL)var g=c;else g=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),g.width=c.width,
-g.height=c.height,g.getContext("2d").drawImage(c,0,0,c.width,c.height);g=2048<g.width||2048<g.height?g.toDataURL("image/jpeg",.6):g.toDataURL("image/png");d[e]={uuid:f,url:g}}b.image=c.uuid}return a.textures[this.uuid]=b},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(a){if(300===this.mapping){a.multiply(this.repeat);a.add(this.offset);if(0>a.x||1<a.x)switch(this.wrapS){case 1E3:a.x-=Math.floor(a.x);break;case 1001:a.x=0>a.x?0:1;break;case 1002:a.x=1===Math.abs(Math.floor(a.x)%
-2)?Math.ceil(a.x)-a.x:a.x-Math.floor(a.x)}if(0>a.y||1<a.y)switch(this.wrapT){case 1E3:a.y-=Math.floor(a.y);break;case 1001:a.y=0>a.y?0:1;break;case 1002:a.y=1===Math.abs(Math.floor(a.y)%2)?Math.ceil(a.y)-a.y:a.y-Math.floor(a.y)}this.flipY&&(a.y=1-a.y)}}});Object.assign(ca.prototype,{isVector4:!0,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setScalar:function(a){this.w=this.z=this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},
-setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z,
-this.w)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;this.w+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},addScaledVector:function(a,
-b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;this.w+=a.w*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;this.w-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*=
+name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var c=this.image;void 0===c.uuid&&(c.uuid=N.generateUUID());if(void 0===a.images[c.uuid]){var d=a.images,e=c.uuid,f=c.uuid;if(void 0!==c.toDataURL)var g=c;else{g=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");g.width=c.width;
+g.height=c.height;var h=g.getContext("2d");c instanceof ImageData?h.putImageData(c,0,0):h.drawImage(c,0,0,c.width,c.height)}g=2048<g.width||2048<g.height?g.toDataURL("image/jpeg",.6):g.toDataURL("image/png");d[e]={uuid:f,url:g}}b.image=c.uuid}return a.textures[this.uuid]=b},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(a){if(300===this.mapping){a.multiply(this.repeat);a.add(this.offset);if(0>a.x||1<a.x)switch(this.wrapS){case 1E3:a.x-=Math.floor(a.x);break;case 1001:a.x=
+0>a.x?0:1;break;case 1002:a.x=1===Math.abs(Math.floor(a.x)%2)?Math.ceil(a.x)-a.x:a.x-Math.floor(a.x)}if(0>a.y||1<a.y)switch(this.wrapT){case 1E3:a.y-=Math.floor(a.y);break;case 1001:a.y=0>a.y?0:1;break;case 1002:a.y=1===Math.abs(Math.floor(a.y)%2)?Math.ceil(a.y)-a.y:a.y-Math.floor(a.y)}this.flipY&&(a.y=1-a.y)}}});Object.assign(ca.prototype,{isVector4:!0,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setScalar:function(a){this.w=this.z=this.y=this.x=a;return this},setX:function(a){this.x=
+a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,
+this.y,this.z,this.w)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;this.w+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},
+addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;this.w+=a.w*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;this.w-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*=
 a;this.y*=a;this.z*=a;this.w*=a;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,e=this.w;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]*e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4>b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,this.y=a.y/b,this.z=a.z/
 a;this.y*=a;this.z*=a;this.w*=a;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,e=this.w;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]*e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4>b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,this.y=a.y/b,this.z=a.z/
 b);return this},setAxisAngleFromRotationMatrix:function(a){a=a.elements;var b=a[0];var c=a[4];var d=a[8],e=a[1],f=a[5],g=a[9];var h=a[2];var k=a[6];var l=a[10];if(.01>Math.abs(c-e)&&.01>Math.abs(d-h)&&.01>Math.abs(g-k)){if(.1>Math.abs(c+e)&&.1>Math.abs(d+h)&&.1>Math.abs(g+k)&&.1>Math.abs(b+f+l-3))return this.set(1,0,0,0),this;a=Math.PI;b=(b+1)/2;f=(f+1)/2;l=(l+1)/2;c=(c+e)/4;d=(d+h)/4;g=(g+k)/4;b>f&&b>l?.01>b?(k=0,c=h=.707106781):(k=Math.sqrt(b),h=c/k,c=d/k):f>l?.01>f?(k=.707106781,h=0,c=.707106781):
 b);return this},setAxisAngleFromRotationMatrix:function(a){a=a.elements;var b=a[0];var c=a[4];var d=a[8],e=a[1],f=a[5],g=a[9];var h=a[2];var k=a[6];var l=a[10];if(.01>Math.abs(c-e)&&.01>Math.abs(d-h)&&.01>Math.abs(g-k)){if(.1>Math.abs(c+e)&&.1>Math.abs(d+h)&&.1>Math.abs(g+k)&&.1>Math.abs(b+f+l-3))return this.set(1,0,0,0),this;a=Math.PI;b=(b+1)/2;f=(f+1)/2;l=(l+1)/2;c=(c+e)/4;d=(d+h)/4;g=(g+k)/4;b>f&&b>l?.01>b?(k=0,c=h=.707106781):(k=Math.sqrt(b),h=c/k,c=d/k):f>l?.01>f?(k=.707106781,h=0,c=.707106781):
 (h=Math.sqrt(f),k=c/h,c=g/h):.01>l?(h=k=.707106781,c=0):(c=Math.sqrt(l),k=d/c,h=g/c);this.set(k,h,c,a);return this}a=Math.sqrt((k-g)*(k-g)+(d-h)*(d-h)+(e-c)*(e-c));.001>Math.abs(a)&&(a=1);this.x=(k-g)/a;this.y=(d-h)/a;this.z=(e-c)/a;this.w=Math.acos((b+f+l-1)/2);return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);this.w=Math.min(this.w,a.w);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,
 (h=Math.sqrt(f),k=c/h,c=g/h):.01>l?(h=k=.707106781,c=0):(c=Math.sqrt(l),k=d/c,h=g/c);this.set(k,h,c,a);return this}a=Math.sqrt((k-g)*(k-g)+(d-h)*(d-h)+(e-c)*(e-c));.001>Math.abs(a)&&(a=1);this.x=(k-g)/a;this.y=(d-h)/a;this.z=(e-c)/a;this.w=Math.acos((b+f+l-1)/2);return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);this.w=Math.min(this.w,a.w);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,
@@ -307,7 +307,7 @@ a.z);this.w=Math.max(this.w,a.w);return this},clamp:function(a,b){this.x=Math.ma
 c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):
 c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):
 Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},lengthManhattan:function(){return Math.abs(this.x)+
 Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},lengthManhattan:function(){return Math.abs(this.x)+
 Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a,b){void 0===
 Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a,b){void 0===
-b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this}});Object.assign(zb.prototype,oa.prototype,{isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==
+b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this}});Object.assign(zb.prototype,pa.prototype,{isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==
 a||this.height!==b)this.width=a,this.height=b,this.dispose();this.viewport.set(0,0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height=a.height;this.viewport.copy(a.viewport);this.texture=a.texture.clone();this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Ab.prototype=Object.create(zb.prototype);
 a||this.height!==b)this.width=a,this.height=b,this.dispose();this.viewport.set(0,0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height=a.height;this.viewport.copy(a.viewport);this.texture=a.texture.clone();this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Ab.prototype=Object.create(zb.prototype);
 Ab.prototype.constructor=Ab;Ab.prototype.isWebGLRenderTargetCube=!0;Object.assign(ka,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,b,c,d,e,f,g){var h=c[d+0],k=c[d+1],l=c[d+2];c=c[d+3];d=e[f+0];var p=e[f+1],q=e[f+2];e=e[f+3];if(c!==e||h!==d||k!==p||l!==q){f=1-g;var r=h*d+k*p+l*q+c*e,m=0<=r?1:-1,n=1-r*r;n>Number.EPSILON&&(n=Math.sqrt(n),r=Math.atan2(n,r*m),f=Math.sin(f*r)/n,g=Math.sin(g*r)/n);m*=g;h=h*f+d*m;k=k*f+p*m;l=l*f+q*m;c=c*f+e*m;f===1-g&&(g=1/Math.sqrt(h*h+k*k+l*
 Ab.prototype.constructor=Ab;Ab.prototype.isWebGLRenderTargetCube=!0;Object.assign(ka,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,b,c,d,e,f,g){var h=c[d+0],k=c[d+1],l=c[d+2];c=c[d+3];d=e[f+0];var p=e[f+1],q=e[f+2];e=e[f+3];if(c!==e||h!==d||k!==p||l!==q){f=1-g;var r=h*d+k*p+l*q+c*e,m=0<=r?1:-1,n=1-r*r;n>Number.EPSILON&&(n=Math.sqrt(n),r=Math.atan2(n,r*m),f=Math.sin(f*r)/n,g=Math.sin(g*r)/n);m*=g;h=h*f+d*m;k=k*f+p*m;l=l*f+q*m;c=c*f+e*m;f===1-g&&(g=1/Math.sqrt(h*h+k*k+l*
 l+c*c),h*=g,k*=g,l*=g,c*=g)}a[b]=h;a[b+1]=k;a[b+2]=l;a[b+3]=c}});Object.defineProperties(ka.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this.onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w=a;this.onChangeCallback()}}});Object.assign(ka.prototype,{set:function(a,b,c,d){this._x=
 l+c*c),h*=g,k*=g,l*=g,c*=g)}a[b]=h;a[b+1]=k;a[b+2]=l;a[b+3]=c}});Object.defineProperties(ka.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this.onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w=a;this.onChangeCallback()}}});Object.assign(ka.prototype,{set:function(a,b,c,d){this._x=
@@ -438,7 +438,7 @@ b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){this
 this.max.x=this.max.y=-Infinity;return this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(a){a=a||new E;return this.isEmpty()?a.set(0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){a=a||new E;return this.isEmpty()?a.set(0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);
 this.max.x=this.max.y=-Infinity;return this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(a){a=a||new E;return this.isEmpty()?a.set(0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){a=a||new E;return this.isEmpty()?a.set(0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);
 this.max.addScalar(a);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y},getParameter:function(a,b){return(b||new E).set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y?!1:!0},
 this.max.addScalar(a);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y},getParameter:function(a,b){return(b||new E).set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y?!1:!0},
 clampPoint:function(a,b){return(b||new E).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new E;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});oc.prototype=Object.create(T.prototype);
 clampPoint:function(a,b){return(b||new E).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new E;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});oc.prototype=Object.create(T.prototype);
-oc.prototype.constructor=oc;var Nf=0;Object.assign(L.prototype,oa.prototype,{isMaterial:!0,onBeforeCompile:function(){},setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if("shading"===b)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===c?!0:!1;else{var d=this[b];void 0===d?console.warn("THREE."+this.type+": '"+b+"' is not a property of this material."):
+oc.prototype.constructor=oc;var Nf=0;Object.assign(L.prototype,pa.prototype,{isMaterial:!0,onBeforeCompile:function(){},setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if("shading"===b)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===c?!0:!1;else{var d=this[b];void 0===d?console.warn("THREE."+this.type+": '"+b+"' is not a property of this material."):
 d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):this[b]="overdraw"===b?Number(c):c}}},toJSON:function(a){function b(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var c=void 0===a;c&&(a={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==this.name&&(d.name=this.name);this.color&&this.color.isColor&&(d.color=this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);
 d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):this[b]="overdraw"===b?Number(c):c}}},toJSON:function(a){function b(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var c=void 0===a;c&&(a={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==this.name&&(d.name=this.name);this.color&&this.color.isColor&&(d.color=this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);
 void 0!==this.metalness&&(d.metalness=this.metalness);this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());void 0!==this.shininess&&(d.shininess=this.shininess);void 0!==this.clearCoat&&(d.clearCoat=this.clearCoat);void 0!==this.clearCoatRoughness&&(d.clearCoatRoughness=this.clearCoatRoughness);this.map&&this.map.isTexture&&(d.map=this.map.toJSON(a).uuid);this.alphaMap&&this.alphaMap.isTexture&&(d.alphaMap=
 void 0!==this.metalness&&(d.metalness=this.metalness);this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());void 0!==this.shininess&&(d.shininess=this.shininess);void 0!==this.clearCoat&&(d.clearCoat=this.clearCoat);void 0!==this.clearCoatRoughness&&(d.clearCoatRoughness=this.clearCoatRoughness);this.map&&this.map.isTexture&&(d.map=this.map.toJSON(a).uuid);this.alphaMap&&this.alphaMap.isTexture&&(d.alphaMap=
 this.alphaMap.toJSON(a).uuid);this.lightMap&&this.lightMap.isTexture&&(d.lightMap=this.lightMap.toJSON(a).uuid);this.bumpMap&&this.bumpMap.isTexture&&(d.bumpMap=this.bumpMap.toJSON(a).uuid,d.bumpScale=this.bumpScale);this.normalMap&&this.normalMap.isTexture&&(d.normalMap=this.normalMap.toJSON(a).uuid,d.normalScale=this.normalScale.toArray());this.displacementMap&&this.displacementMap.isTexture&&(d.displacementMap=this.displacementMap.toJSON(a).uuid,d.displacementScale=this.displacementScale,d.displacementBias=
 this.alphaMap.toJSON(a).uuid);this.lightMap&&this.lightMap.isTexture&&(d.lightMap=this.lightMap.toJSON(a).uuid);this.bumpMap&&this.bumpMap.isTexture&&(d.bumpMap=this.bumpMap.toJSON(a).uuid,d.bumpScale=this.bumpScale);this.normalMap&&this.normalMap.isTexture&&(d.normalMap=this.normalMap.toJSON(a).uuid,d.normalScale=this.normalScale.toArray());this.displacementMap&&this.displacementMap.isTexture&&(d.displacementMap=this.displacementMap.toJSON(a).uuid,d.displacementScale=this.displacementScale,d.displacementBias=
@@ -463,7 +463,7 @@ this.min.y,this.min.z).applyMatrix4(b);a[1].set(this.min.x,this.min.y,this.max.z
 this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Ca.prototype,{set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new Pa;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).getCenter(d);for(var e=c=0,f=b.length;e<f;e++)c=Math.max(c,d.distanceToSquared(b[e]));this.radius=Math.sqrt(c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);
 this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Ca.prototype,{set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new Pa;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).getCenter(d);for(var e=c=0,f=b.length;e<f;e++)c=Math.max(c,d.distanceToSquared(b[e]));this.radius=Math.sqrt(c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);
 this.radius=a.radius;return this},empty:function(){return 0>=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<=b*b},intersectsBox:function(a){return a.intersectsSphere(this)},intersectsPlane:function(a){return Math.abs(this.center.dot(a.normal)-a.constant)<=this.radius},
 this.radius=a.radius;return this},empty:function(){return 0>=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<=b*b},intersectsBox:function(a){return a.intersectsSphere(this)},intersectsPlane:function(a){return Math.abs(this.center.dot(a.normal)-a.constant)<=this.radius},
 clampPoint:function(a,b){var c=this.center.distanceToSquared(a);b=b||new n;b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));return b},getBoundingBox:function(a){a=a||new Pa;a.set(this.center,this.center);a.expandByScalar(this.radius);return a},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&
 clampPoint:function(a,b){var c=this.center.distanceToSquared(a);b=b||new n;b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));return b},getBoundingBox:function(a){a=a||new Pa;a.set(this.center,this.center);a.expandByScalar(this.radius);return a},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&
-a.radius===this.radius}});Object.assign(qa.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,k){var l=this.elements;l[0]=a;l[1]=d;l[2]=g;l[3]=b;l[4]=e;l[5]=h;l[6]=c;l[7]=f;l[8]=k;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return this},setFromMatrix4:function(a){a=
+a.radius===this.radius}});Object.assign(na.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,k){var l=this.elements;l[0]=a;l[1]=d;l[2]=g;l[3]=b;l[4]=e;l[5]=h;l[6]=c;l[7]=f;l[8]=k;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return this},setFromMatrix4:function(a){a=
 a.elements;this.set(a[0],a[4],a[8],a[1],a[5],a[9],a[2],a[6],a[10]);return this},applyToBufferAttribute:function(){var a=new n;return function(b){for(var c=0,d=b.count;c<d;c++)a.x=b.getX(c),a.y=b.getY(c),a.z=b.getZ(c),a.applyMatrix3(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),multiply:function(a){return this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[3],f=c[6],g=c[1],
 a.elements;this.set(a[0],a[4],a[8],a[1],a[5],a[9],a[2],a[6],a[10]);return this},applyToBufferAttribute:function(){var a=new n;return function(b){for(var c=0,d=b.count;c<d;c++)a.x=b.getX(c),a.y=b.getY(c),a.z=b.getZ(c),a.applyMatrix3(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),multiply:function(a){return this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[3],f=c[6],g=c[1],
 h=c[4],k=c[7],l=c[2],p=c[5],c=c[8],q=d[0],m=d[3],n=d[6],u=d[1],w=d[4],v=d[7],y=d[2],B=d[5],d=d[8];b[0]=a*q+e*u+f*y;b[3]=a*m+e*w+f*B;b[6]=a*n+e*v+f*d;b[1]=g*q+h*u+k*y;b[4]=g*m+h*w+k*B;b[7]=g*n+h*v+k*d;b[2]=l*q+p*u+c*y;b[5]=l*m+p*w+c*B;b[8]=l*n+p*v+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],k=a[7],a=a[8];
 h=c[4],k=c[7],l=c[2],p=c[5],c=c[8],q=d[0],m=d[3],n=d[6],u=d[1],w=d[4],v=d[7],y=d[2],B=d[5],d=d[8];b[0]=a*q+e*u+f*y;b[3]=a*m+e*w+f*B;b[6]=a*n+e*v+f*d;b[1]=g*q+h*u+k*y;b[4]=g*m+h*w+k*B;b[7]=g*n+h*v+k*d;b[2]=l*q+p*u+c*y;b[5]=l*m+p*w+c*B;b[8]=l*n+p*v+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],k=a[7],a=a[8];
 return b*f*a-b*g*k-c*e*a+c*g*h+d*e*k-d*f*h},getInverse:function(a,b){a&&a.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");var c=a.elements;a=this.elements;var d=c[0],e=c[1],f=c[2],g=c[3],h=c[4],k=c[5],l=c[6],p=c[7],c=c[8],q=c*h-k*p,m=k*l-c*g,n=p*g-h*l,u=d*q+e*m+f*n;if(0===u){if(!0===b)throw Error("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");console.warn("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");return this.identity()}b=
 return b*f*a-b*g*k-c*e*a+c*g*h+d*e*k-d*f*h},getInverse:function(a,b){a&&a.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");var c=a.elements;a=this.elements;var d=c[0],e=c[1],f=c[2],g=c[3],h=c[4],k=c[5],l=c[6],p=c[7],c=c[8],q=c*h-k*p,m=k*l-c*g,n=p*g-h*l,u=d*q+e*m+f*n;if(0===u){if(!0===b)throw Error("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");console.warn("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");return this.identity()}b=
@@ -472,7 +472,7 @@ return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;9>c
 setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a=new n,b=new n;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;
 setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a=new n,b=new n;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;
 return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){return(b||new n).copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)},intersectLine:function(){var a=new n;return function(b,
 return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){return(b||new n).copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)},intersectLine:function(){var a=new n;return function(b,
 c){c=c||new n;var d=b.delta(a),e=this.normal.dot(d);if(0===e){if(0===this.distanceToPoint(b.start))return c.copy(b.start)}else if(e=-(b.start.dot(this.normal)+this.constant)/e,!(0>e||1<e))return c.copy(d).multiplyScalar(e).add(b.start)}}(),intersectsLine:function(a){var b=this.distanceToPoint(a.start);a=this.distanceToPoint(a.end);return 0>b&&0<a||0>a&&0<b},intersectsBox:function(a){return a.intersectsPlane(this)},intersectsSphere:function(a){return a.intersectsPlane(this)},coplanarPoint:function(a){return(a||
 c){c=c||new n;var d=b.delta(a),e=this.normal.dot(d);if(0===e){if(0===this.distanceToPoint(b.start))return c.copy(b.start)}else if(e=-(b.start.dot(this.normal)+this.constant)/e,!(0>e||1<e))return c.copy(d).multiplyScalar(e).add(b.start)}}(),intersectsLine:function(a){var b=this.distanceToPoint(a.start);a=this.distanceToPoint(a.end);return 0>b&&0<a||0>a&&0<b},intersectsBox:function(a){return a.intersectsPlane(this)},intersectsSphere:function(a){return a.intersectsPlane(this)},coplanarPoint:function(a){return(a||
-new n).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var a=new n,b=new qa;return function(c,d){d=d||b.getNormalMatrix(c);c=this.coplanarPoint(a).applyMatrix4(c);d=this.normal.applyMatrix3(d).normalize();this.constant=-c.dot(d);return this}}(),translate:function(a){this.constant-=a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&a.constant===this.constant}});Object.assign(jd.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);
+new n).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var a=new n,b=new na;return function(c,d){d=d||b.getNormalMatrix(c);c=this.coplanarPoint(a).applyMatrix4(c);d=this.normal.applyMatrix3(d).normalize();this.constant=-c.dot(d);return this}}(),translate:function(a){this.constant-=a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&a.constant===this.constant}});Object.assign(jd.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);
 g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],k=c[6],l=c[7],p=c[8],q=c[9],m=c[10],n=c[11],u=c[12],w=c[13],v=c[14],c=c[15];b[0].setComponents(f-a,l-g,n-p,c-u).normalize();b[1].setComponents(f+a,l+g,n+p,c+u).normalize();b[2].setComponents(f+
 g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],k=c[6],l=c[7],p=c[8],q=c[9],m=c[10],n=c[11],u=c[12],w=c[13],v=c[14],c=c[15];b[0].setComponents(f-a,l-g,n-p,c-u).normalize();b[1].setComponents(f+a,l+g,n+p,c+u).normalize();b[2].setComponents(f+
 d,l+h,n+q,c+w).normalize();b[3].setComponents(f-d,l-h,n-q,c-w).normalize();b[4].setComponents(f-e,l-k,n-m,c-v).normalize();b[5].setComponents(f+e,l+k,n+m,c+v).normalize();return this},intersectsObject:function(){var a=new Ca;return function(b){var c=b.geometry;null===c.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere).applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSprite:function(){var a=new Ca;return function(b){a.center.set(0,0,0);a.radius=.7071067811865476;
 d,l+h,n+q,c+w).normalize();b[3].setComponents(f-d,l-h,n-q,c-w).normalize();b[4].setComponents(f-e,l-k,n-m,c-v).normalize();b[5].setComponents(f+e,l+k,n+m,c+v).normalize();return this},intersectsObject:function(){var a=new Ca;return function(b){var c=b.geometry;null===c.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere).applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSprite:function(){var a=new Ca;return function(b){a.center.set(0,0,0);a.radius=.7071067811865476;
 a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var b=this.planes,c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(){var a=new n,b=new n;return function(c){for(var d=this.planes,e=0;6>e;e++){var f=d[e];a.x=0<f.normal.x?c.min.x:c.max.x;b.x=0<f.normal.x?c.max.x:c.min.x;a.y=0<f.normal.y?c.min.y:c.max.y;b.y=0<f.normal.y?c.max.y:c.min.y;a.z=0<f.normal.z?c.min.z:c.max.z;b.z=0<f.normal.z?c.max.z:
 a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var b=this.planes,c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(){var a=new n,b=new n;return function(c){for(var d=this.planes,e=0;6>e;e++){var f=d[e];a.x=0<f.normal.x?c.min.x:c.max.x;b.x=0<f.normal.x?c.max.x:c.min.x;a.y=0<f.normal.y?c.min.y:c.max.y;b.y=0<f.normal.y?c.max.y:c.min.y;a.z=0<f.normal.z?c.min.z:c.max.z;b.z=0<f.normal.z?c.max.z:
@@ -482,7 +482,7 @@ setFromRotationMatrix:function(a,b,c){var d=N.clamp,e=a.elements;a=e[0];var f=e[
 (this._y=Math.atan2(-p,e),this._z=Math.atan2(-f,k)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(p,-1,1)),.99999>Math.abs(p)?(this._x=Math.atan2(q,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,k))):"YZX"===b?(this._z=Math.asin(d(h,-1,1)),.99999>Math.abs(h)?(this._x=Math.atan2(-l,k),this._y=Math.atan2(-p,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(this._z=Math.asin(-d(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(q,k),this._y=Math.atan2(g,a)):(this._x=
 (this._y=Math.atan2(-p,e),this._z=Math.atan2(-f,k)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(p,-1,1)),.99999>Math.abs(p)?(this._x=Math.atan2(q,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,k))):"YZX"===b?(this._z=Math.asin(d(h,-1,1)),.99999>Math.abs(h)?(this._x=Math.atan2(-l,k),this._y=Math.atan2(-p,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(this._z=Math.asin(-d(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(q,k),this._y=Math.atan2(g,a)):(this._x=
 Math.atan2(-l,e),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;if(!1!==c)this.onChangeCallback();return this},setFromQuaternion:function(){var a=new O;return function(b,c,d){a.makeRotationFromQuaternion(b);return this.setFromRotationMatrix(a,c,d)}}(),setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(){var a=new ka;return function(b){a.setFromEuler(this);return this.setFromQuaternion(a,b)}}(),equals:function(a){return a._x===
 Math.atan2(-l,e),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;if(!1!==c)this.onChangeCallback();return this},setFromQuaternion:function(){var a=new O;return function(b,c,d){a.makeRotationFromQuaternion(b);return this.setFromRotationMatrix(a,c,d)}}(),setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(){var a=new ka;return function(b){a.setFromEuler(this);return this.setFromQuaternion(a,b)}}(),equals:function(a){return a._x===
 this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):new n(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});
 this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):new n(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});
-Object.assign(Td.prototype,{set:function(a){this.mask=1<<a|0},enable:function(a){this.mask=this.mask|1<<a|0},toggle:function(a){this.mask^=1<<a|0},disable:function(a){this.mask&=~(1<<a|0)},test:function(a){return 0!==(this.mask&a.mask)}});var Pf=0;A.DefaultUp=new n(0,1,0);A.DefaultMatrixAutoUpdate=!0;Object.assign(A.prototype,oa.prototype,{isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(a){this.matrix.multiplyMatrices(a,this.matrix);this.matrix.decompose(this.position,
+Object.assign(Td.prototype,{set:function(a){this.mask=1<<a|0},enable:function(a){this.mask=this.mask|1<<a|0},toggle:function(a){this.mask^=1<<a|0},disable:function(a){this.mask&=~(1<<a|0)},test:function(a){return 0!==(this.mask&a.mask)}});var Pf=0;A.DefaultUp=new n(0,1,0);A.DefaultMatrixAutoUpdate=!0;Object.assign(A.prototype,pa.prototype,{isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(a){this.matrix.multiplyMatrices(a,this.matrix);this.matrix.decompose(this.position,
 this.quaternion,this.scale)},applyQuaternion:function(a){this.quaternion.premultiply(a);return this},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(){var a=new ka;return function(b,c){a.setFromAxisAngle(b,c);this.quaternion.multiply(a);return this}}(),
 this.quaternion,this.scale)},applyQuaternion:function(a){this.quaternion.premultiply(a);return this},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(){var a=new ka;return function(b,c){a.setFromAxisAngle(b,c);this.quaternion.multiply(a);return this}}(),
 rotateX:function(){var a=new n(1,0,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateY:function(){var a=new n(0,1,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateZ:function(){var a=new n(0,0,1);return function(b){return this.rotateOnAxis(a,b)}}(),translateOnAxis:function(){var a=new n;return function(b,c){a.copy(b).applyQuaternion(this.quaternion);this.position.add(a.multiplyScalar(c));return this}}(),translateX:function(){var a=new n(1,0,0);return function(b){return this.translateOnAxis(a,
 rotateX:function(){var a=new n(1,0,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateY:function(){var a=new n(0,1,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateZ:function(){var a=new n(0,0,1);return function(b){return this.rotateOnAxis(a,b)}}(),translateOnAxis:function(){var a=new n;return function(b,c){a.copy(b).applyQuaternion(this.quaternion);this.position.add(a.multiplyScalar(c));return this}}(),translateX:function(){var a=new n(1,0,0);return function(b){return this.translateOnAxis(a,
 b)}}(),translateY:function(){var a=new n(0,1,0);return function(b){return this.translateOnAxis(a,b)}}(),translateZ:function(){var a=new n(0,0,1);return function(b){return this.translateOnAxis(a,b)}}(),localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var a=new O;return function(b){return b.applyMatrix4(a.getInverse(this.matrixWorld))}}(),lookAt:function(){var a=new O;return function(b){this.isCamera?a.lookAt(this.position,b,this.up):a.lookAt(b,this.position,
 b)}}(),translateY:function(){var a=new n(0,1,0);return function(b){return this.translateOnAxis(a,b)}}(),translateZ:function(){var a=new n(0,0,1);return function(b){return this.translateOnAxis(a,b)}}(),localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var a=new O;return function(b){return b.applyMatrix4(a.getInverse(this.matrixWorld))}}(),lookAt:function(){var a=new O;return function(b){this.isCamera?a.lookAt(this.position,b,this.up):a.lookAt(b,this.position,
@@ -503,7 +503,7 @@ a.near;this.far=a.far;this.focus=a.focus;this.aspect=a.aspect;this.view=null===a
 getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;this.view={fullWidth:a,fullHeight:b,offsetX:c,offsetY:d,width:e,height:f};this.updateProjectionMatrix()},clearViewOffset:function(){this.view=null;this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*N.DEG2RAD*this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=
 getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;this.view={fullWidth:a,fullHeight:b,offsetX:c,offsetY:d,width:e,height:f};this.updateProjectionMatrix()},clearViewOffset:function(){this.view=null;this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*N.DEG2RAD*this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=
 this.view;if(null!==f)var g=f.fullWidth,h=f.fullHeight,e=e+f.offsetX*d/g,b=b-f.offsetY*c/h,d=f.width/g*d,c=f.height/h*c;f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far)},toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=
 this.view;if(null!==f)var g=f.fullWidth,h=f.fullHeight,e=e+f.offsetX*d/g,b=b-f.offsetY*c/h,d=f.width/g*d,c=f.height/h*c;f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far)},toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=
 this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Object.assign(Qa.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a=a.a;this.b=a.b;this.c=a.c;this.normal.copy(a.normal);this.color.copy(a.color);this.materialIndex=a.materialIndex;for(var b=0,c=a.vertexNormals.length;b<c;b++)this.vertexNormals[b]=a.vertexNormals[b].clone();b=0;for(c=a.vertexColors.length;b<c;b++)this.vertexColors[b]=a.vertexColors[b].clone();return this}});var Ud=0;Object.assign(J.prototype,
 this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Object.assign(Qa.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a=a.a;this.b=a.b;this.c=a.c;this.normal.copy(a.normal);this.color.copy(a.color);this.materialIndex=a.materialIndex;for(var b=0,c=a.vertexNormals.length;b<c;b++)this.vertexNormals[b]=a.vertexNormals[b].clone();b=0;for(c=a.vertexColors.length;b<c;b++)this.vertexColors[b]=a.vertexColors[b].clone();return this}});var Ud=0;Object.assign(J.prototype,
-oa.prototype,{isGeometry:!0,applyMatrix:function(a){for(var b=(new qa).getNormalMatrix(a),c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);c=0;for(d=this.faces.length;c<d;c++){a=this.faces[c];a.normal.applyMatrix3(b).normalize();for(var e=0,f=a.vertexNormals.length;e<f;e++)a.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},
+pa.prototype,{isGeometry:!0,applyMatrix:function(a){for(var b=(new na).getNormalMatrix(a),c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);c=0;for(d=this.faces.length;c<d;c++){a=this.faces[c];a.normal.applyMatrix3(b).normalize();for(var e=0,f=a.vertexNormals.length;e<f;e++)a.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},
 rotateX:function(){var a=new O;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new O;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new O;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new O;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new O;return function(b,c,d){a.makeScale(b,c,d);
 rotateX:function(){var a=new O;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new O;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new O;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new O;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new O;return function(b,c,d){a.makeScale(b,c,d);
 this.applyMatrix(a);return this}}(),lookAt:function(){var a=new A;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0!==g?[p[a].clone(),p[b].clone(),p[d].clone()]:[],r=void 0!==h?[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()]:[];e=new Qa(a,b,d,f,r,e);c.faces.push(e);void 0!==k&&c.faceVertexUvs[0].push([q[a].clone(),q[b].clone(),q[d].clone()]);void 0!==l&&c.faceVertexUvs[1].push([m[a].clone(),
 this.applyMatrix(a);return this}}(),lookAt:function(){var a=new A;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0!==g?[p[a].clone(),p[b].clone(),p[d].clone()]:[],r=void 0!==h?[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()]:[];e=new Qa(a,b,d,f,r,e);c.faces.push(e);void 0!==k&&c.faceVertexUvs[0].push([q[a].clone(),q[b].clone(),q[d].clone()]);void 0!==l&&c.faceVertexUvs[1].push([m[a].clone(),
 m[b].clone(),m[d].clone()])}var c=this,d=null!==a.index?a.index.array:void 0,e=a.attributes,f=e.position.array,g=void 0!==e.normal?e.normal.array:void 0,h=void 0!==e.color?e.color.array:void 0,k=void 0!==e.uv?e.uv.array:void 0,l=void 0!==e.uv2?e.uv2.array:void 0;void 0!==l&&(this.faceVertexUvs[1]=[]);for(var p=[],q=[],m=[],t=e=0;e<f.length;e+=3,t+=2)c.vertices.push(new n(f[e],f[e+1],f[e+2])),void 0!==g&&p.push(new n(g[e],g[e+1],g[e+2])),void 0!==h&&c.colors.push(new x(h[e],h[e+1],h[e+2])),void 0!==
 m[b].clone(),m[d].clone()])}var c=this,d=null!==a.index?a.index.array:void 0,e=a.attributes,f=e.position.array,g=void 0!==e.normal?e.normal.array:void 0,h=void 0!==e.color?e.color.array:void 0,k=void 0!==e.uv?e.uv.array:void 0,l=void 0!==e.uv2?e.uv2.array:void 0;void 0!==l&&(this.faceVertexUvs[1]=[]);for(var p=[],q=[],m=[],t=e=0;e<f.length;e+=3,t+=2)c.vertices.push(new n(f[e],f[e+1],f[e+2])),void 0!==g&&p.push(new n(g[e],g[e+1],g[e+2])),void 0!==h&&c.colors.push(new x(h[e],h[e+1],h[e+2])),void 0!==
@@ -515,7 +515,7 @@ a;b++){var c=this.faces[b];var d=c.vertexNormals;3===d.length?(d[0].copy(c.norma
 var e=0;for(a=d.vertexNormals.length;e<a;e++)d.__originalVertexNormals[e]?d.__originalVertexNormals[e].copy(d.vertexNormals[e]):d.__originalVertexNormals[e]=d.vertexNormals[e].clone()}var f=new J;f.faces=this.faces;e=0;for(a=this.morphTargets.length;e<a;e++){if(!this.morphNormals[e]){this.morphNormals[e]={};this.morphNormals[e].faceNormals=[];this.morphNormals[e].vertexNormals=[];d=this.morphNormals[e].faceNormals;var g=this.morphNormals[e].vertexNormals;c=0;for(b=this.faces.length;c<b;c++){var h=
 var e=0;for(a=d.vertexNormals.length;e<a;e++)d.__originalVertexNormals[e]?d.__originalVertexNormals[e].copy(d.vertexNormals[e]):d.__originalVertexNormals[e]=d.vertexNormals[e].clone()}var f=new J;f.faces=this.faces;e=0;for(a=this.morphTargets.length;e<a;e++){if(!this.morphNormals[e]){this.morphNormals[e]={};this.morphNormals[e].faceNormals=[];this.morphNormals[e].vertexNormals=[];d=this.morphNormals[e].faceNormals;var g=this.morphNormals[e].vertexNormals;c=0;for(b=this.faces.length;c<b;c++){var h=
 new n;var k={a:new n,b:new n,c:new n};d.push(h);g.push(k)}}g=this.morphNormals[e];f.vertices=this.morphTargets[e].vertices;f.computeFaceNormals();f.computeVertexNormals();c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],h=g.faceNormals[c],k=g.vertexNormals[c],h.copy(d.normal),k.a.copy(d.vertexNormals[0]),k.b.copy(d.vertexNormals[1]),k.c.copy(d.vertexNormals[2])}c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],d.normal=d.__originalFaceNormal,d.vertexNormals=d.__originalVertexNormals},computeLineDistances:function(){for(var a=
 new n;var k={a:new n,b:new n,c:new n};d.push(h);g.push(k)}}g=this.morphNormals[e];f.vertices=this.morphTargets[e].vertices;f.computeFaceNormals();f.computeVertexNormals();c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],h=g.faceNormals[c],k=g.vertexNormals[c],h.copy(d.normal),k.a.copy(d.vertexNormals[0]),k.b.copy(d.vertexNormals[1]),k.c.copy(d.vertexNormals[2])}c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],d.normal=d.__originalFaceNormal,d.vertexNormals=d.__originalVertexNormals},computeLineDistances:function(){for(var a=
 0,b=this.vertices,c=0,d=b.length;c<d;c++)0<c&&(a+=b[c].distanceTo(b[c-1])),this.lineDistances[c]=a},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Pa);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Ca);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,k=a.faces,l=this.faceVertexUvs[0],
 0,b=this.vertices,c=0,d=b.length;c<d;c++)0<c&&(a+=b[c].distanceTo(b[c-1])),this.lineDistances[c]=a},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Pa);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Ca);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,k=a.faces,l=this.faceVertexUvs[0],
-p=a.faceVertexUvs[0],q=this.colors,m=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new qa).getNormalMatrix(b));a=0;for(var n=g.length;a<n;a++){var u=g[a].clone();void 0!==b&&u.applyMatrix4(b);f.push(u)}a=0;for(n=m.length;a<n;a++)q.push(m[a].clone());a=0;for(n=k.length;a<n;a++){var g=k[a],w=g.vertexNormals,m=g.vertexColors,q=new Qa(g.a+e,g.b+e,g.c+e);q.normal.copy(g.normal);void 0!==d&&q.normal.applyMatrix3(d).normalize();b=0;for(f=w.length;b<f;b++)u=w[b].clone(),void 0!==d&&u.applyMatrix3(d).normalize(),
+p=a.faceVertexUvs[0],q=this.colors,m=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new na).getNormalMatrix(b));a=0;for(var n=g.length;a<n;a++){var u=g[a].clone();void 0!==b&&u.applyMatrix4(b);f.push(u)}a=0;for(n=m.length;a<n;a++)q.push(m[a].clone());a=0;for(n=k.length;a<n;a++){var g=k[a],w=g.vertexNormals,m=g.vertexColors,q=new Qa(g.a+e,g.b+e,g.c+e);q.normal.copy(g.normal);void 0!==d&&q.normal.applyMatrix3(d).normalize();b=0;for(f=w.length;b<f;b++)u=w[b].clone(),void 0!==d&&u.applyMatrix3(d).normalize(),
 q.vertexNormals.push(u);q.color.copy(g.color);b=0;for(f=m.length;b<f;b++)u=m[b],q.vertexColors.push(u.clone());q.materialIndex=g.materialIndex+c;h.push(q)}a=0;for(n=p.length;a<n;a++)if(c=p[a],d=[],void 0!==c){b=0;for(f=c.length;b<f;b++)d.push(c[b].clone());l.push(d)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",
 q.vertexNormals.push(u);q.color.copy(g.color);b=0;for(f=m.length;b<f;b++)u=m[b],q.vertexColors.push(u.clone());q.materialIndex=g.materialIndex+c;h.push(q)}a=0;for(n=p.length;a<n;a++)if(c=p[a],d=[],void 0!==c){b=0;for(f=c.length;b<f;b++)d.push(c[b].clone());l.push(d)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",
 a)},mergeVertices:function(){var a={},b=[],c=[],d=Math.pow(10,4),e;var f=0;for(e=this.vertices.length;f<e;f++){var g=this.vertices[f];g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=c[a[g]]}a=[];f=0;for(e=this.faces.length;f<e;f++)for(d=this.faces[f],d.a=c[d.a],d.b=c[d.b],d.c=c[d.c],d=[d.a,d.b,d.c],g=0;3>g;g++)if(d[g]===d[(g+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(d=a[f],this.faces.splice(d,1),c=0,e=
 a)},mergeVertices:function(){var a={},b=[],c=[],d=Math.pow(10,4),e;var f=0;for(e=this.vertices.length;f<e;f++){var g=this.vertices[f];g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=c[a[g]]}a=[];f=0;for(e=this.faces.length;f<e;f++)for(d=this.faces[f],d.a=c[d.a],d.b=c[d.b],d.c=c[d.c],d=[d.a,d.b,d.c],g=0;3>g;g++)if(d[g]===d[(g+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(d=a[f],this.faces.splice(d,1),c=0,e=
 this.faceVertexUvs.length;c<e;c++)this.faceVertexUvs[c].splice(d,1);f=this.vertices.length-b.length;this.vertices=b;return f},sortFacesByMaterialIndex:function(){for(var a=this.faces,b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-b.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,g;d&&d.length===b&&(f=[]);e&&e.length===b&&(g=[]);for(c=0;c<b;c++){var h=a[c]._id;f&&f.push(d[h]);g&&g.push(e[h])}f&&(this.faceVertexUvs[0]=f);g&&(this.faceVertexUvs[1]=
 this.faceVertexUvs.length;c<e;c++)this.faceVertexUvs[c].splice(d,1);f=this.vertices.length-b.length;this.vertices=b;return f},sortFacesByMaterialIndex:function(){for(var a=this.faces,b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-b.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,g;d&&d.length===b&&(f=[]);e&&e.length===b&&(g=[]);for(c=0;c<b;c++){var h=a[c]._id;f&&f.push(d[h]);g&&g.push(e[h])}f&&(this.faceVertexUvs[0]=f);g&&(this.faceVertexUvs[1]=
@@ -536,9 +536,9 @@ pc;qc.prototype=Object.create(M.prototype);qc.prototype.constructor=qc;rc.protot
 uc.prototype.constructor=uc;Object.assign(Me.prototype,{computeGroups:function(a){var b=[],c=void 0;a=a.faces;for(var d=0;d<a.length;d++){var e=a[d];if(e.materialIndex!==c){c=e.materialIndex;void 0!==f&&(f.count=3*d-f.start,b.push(f));var f={start:3*d,materialIndex:c}}}void 0!==f&&(f.count=3*d-f.start,b.push(f));this.groups=b},fromGeometry:function(a){var b=a.faces,c=a.vertices,d=a.faceVertexUvs,e=d[0]&&0<d[0].length,f=d[1]&&0<d[1].length,g=a.morphTargets,h=g.length;if(0<h){var k=[];for(var l=0;l<
 uc.prototype.constructor=uc;Object.assign(Me.prototype,{computeGroups:function(a){var b=[],c=void 0;a=a.faces;for(var d=0;d<a.length;d++){var e=a[d];if(e.materialIndex!==c){c=e.materialIndex;void 0!==f&&(f.count=3*d-f.start,b.push(f));var f={start:3*d,materialIndex:c}}}void 0!==f&&(f.count=3*d-f.start,b.push(f));this.groups=b},fromGeometry:function(a){var b=a.faces,c=a.vertices,d=a.faceVertexUvs,e=d[0]&&0<d[0].length,f=d[1]&&0<d[1].length,g=a.morphTargets,h=g.length;if(0<h){var k=[];for(var l=0;l<
 h;l++)k[l]=[];this.morphTargets.position=k}var p=a.morphNormals,q=p.length;if(0<q){var m=[];for(l=0;l<q;l++)m[l]=[];this.morphTargets.normal=m}for(var n=a.skinIndices,u=a.skinWeights,w=n.length===c.length,v=u.length===c.length,l=0;l<b.length;l++){var y=b[l];this.vertices.push(c[y.a],c[y.b],c[y.c]);var B=y.vertexNormals;3===B.length?this.normals.push(B[0],B[1],B[2]):(B=y.normal,this.normals.push(B,B,B));B=y.vertexColors;3===B.length?this.colors.push(B[0],B[1],B[2]):(B=y.color,this.colors.push(B,B,
 h;l++)k[l]=[];this.morphTargets.position=k}var p=a.morphNormals,q=p.length;if(0<q){var m=[];for(l=0;l<q;l++)m[l]=[];this.morphTargets.normal=m}for(var n=a.skinIndices,u=a.skinWeights,w=n.length===c.length,v=u.length===c.length,l=0;l<b.length;l++){var y=b[l];this.vertices.push(c[y.a],c[y.b],c[y.c]);var B=y.vertexNormals;3===B.length?this.normals.push(B[0],B[1],B[2]):(B=y.normal,this.normals.push(B,B,B));B=y.vertexColors;3===B.length?this.colors.push(B[0],B[1],B[2]):(B=y.color,this.colors.push(B,B,
 B));!0===e&&(B=d[0][l],void 0!==B?this.uvs.push(B[0],B[1],B[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",l),this.uvs.push(new E,new E,new E)));!0===f&&(B=d[1][l],void 0!==B?this.uvs2.push(B[0],B[1],B[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",l),this.uvs2.push(new E,new E,new E)));for(B=0;B<h;B++){var G=g[B].vertices;k[B].push(G[y.a],G[y.b],G[y.c])}for(B=0;B<q;B++)G=p[B].vertexNormals[l],m[B].push(G.a,G.b,G.c);w&&this.skinIndices.push(n[y.a],
 B));!0===e&&(B=d[0][l],void 0!==B?this.uvs.push(B[0],B[1],B[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",l),this.uvs.push(new E,new E,new E)));!0===f&&(B=d[1][l],void 0!==B?this.uvs2.push(B[0],B[1],B[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",l),this.uvs2.push(new E,new E,new E)));for(B=0;B<h;B++){var G=g[B].vertices;k[B].push(G[y.a],G[y.b],G[y.c])}for(B=0;B<q;B++)G=p[B].vertexNormals[l],m[B].push(G.a,G.b,G.c);w&&this.skinIndices.push(n[y.a],
-n[y.b],n[y.c]);v&&this.skinWeights.push(u[y.a],u[y.b],u[y.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this}});F.MaxIndex=65535;Object.assign(F.prototype,oa.prototype,{isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<Vd(a)?db:cb)(a,1):this.index=
+n[y.b],n[y.c]);v&&this.skinWeights.push(u[y.a],u[y.b],u[y.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this}});F.MaxIndex=65535;Object.assign(F.prototype,pa.prototype,{isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<Vd(a)?db:cb)(a,1):this.index=
 a},addAttribute:function(a,b,c){if(b&&b.isBufferAttribute||b&&b.isInterleavedBufferAttribute)if("index"===a)console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(b);else return this.attributes[a]=b,this;else console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.addAttribute(a,new M(b,c))},getAttribute:function(a){return this.attributes[a]},removeAttribute:function(a){delete this.attributes[a];return this},addGroup:function(a,
 a},addAttribute:function(a,b,c){if(b&&b.isBufferAttribute||b&&b.isInterleavedBufferAttribute)if("index"===a)console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(b);else return this.attributes[a]=b,this;else console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.addAttribute(a,new M(b,c))},getAttribute:function(a){return this.attributes[a]},removeAttribute:function(a){delete this.attributes[a];return this},addGroup:function(a,
-b,c){this.groups.push({start:a,count:b,materialIndex:void 0!==c?c:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(a,b){this.drawRange.start=a;this.drawRange.count=b},applyMatrix:function(a){var b=this.attributes.position;void 0!==b&&(a.applyToBufferAttribute(b),b.needsUpdate=!0);b=this.attributes.normal;void 0!==b&&((new qa).getNormalMatrix(a).applyToBufferAttribute(b),b.needsUpdate=!0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();
+b,c){this.groups.push({start:a,count:b,materialIndex:void 0!==c?c:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(a,b){this.drawRange.start=a;this.drawRange.count=b},applyMatrix:function(a){var b=this.attributes.position;void 0!==b&&(a.applyToBufferAttribute(b),b.needsUpdate=!0);b=this.attributes.normal;void 0!==b&&((new na).getNormalMatrix(a).applyToBufferAttribute(b),b.needsUpdate=!0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();
 return this},rotateX:function(){var a=new O;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new O;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new O;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new O;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new O;return function(b,c,d){a.makeScale(b,
 return this},rotateX:function(){var a=new O;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new O;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new O;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new O;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new O;return function(b,c,d){a.makeScale(b,
 c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var a=new A;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),center:function(){this.computeBoundingBox();var a=this.boundingBox.getCenter().negate();this.translate(a.x,a.y,a.z);return a},setFromObject:function(a){var b=a.geometry;if(a.isPoints||a.isLine){a=new z(3*b.vertices.length,3);var c=new z(3*b.colors.length,3);this.addAttribute("position",a.copyVector3sArray(b.vertices));this.addAttribute("color",c.copyColorsArray(b.colors));
 c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var a=new A;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),center:function(){this.computeBoundingBox();var a=this.boundingBox.getCenter().negate();this.translate(a.x,a.y,a.z);return a},setFromObject:function(a){var b=a.geometry;if(a.isPoints||a.isLine){a=new z(3*b.vertices.length,3);var c=new z(3*b.colors.length,3);this.addAttribute("position",a.copyVector3sArray(b.vertices));this.addAttribute("color",c.copyColorsArray(b.colors));
 b.lineDistances&&b.lineDistances.length===b.vertices.length&&(a=new z(b.lineDistances.length,1),this.addAttribute("lineDistance",a.copyArray(b.lineDistances)));null!==b.boundingSphere&&(this.boundingSphere=b.boundingSphere.clone());null!==b.boundingBox&&(this.boundingBox=b.boundingBox.clone())}else a.isMesh&&b&&b.isGeometry&&this.fromGeometry(b);return this},updateFromObject:function(a){var b=a.geometry;if(a.isMesh){var c=b.__directGeometry;!0===b.elementsNeedUpdate&&(c=void 0,b.elementsNeedUpdate=
 b.lineDistances&&b.lineDistances.length===b.vertices.length&&(a=new z(b.lineDistances.length,1),this.addAttribute("lineDistance",a.copyArray(b.lineDistances)));null!==b.boundingSphere&&(this.boundingSphere=b.boundingSphere.clone());null!==b.boundingBox&&(this.boundingBox=b.boundingBox.clone())}else a.isMesh&&b&&b.isGeometry&&this.fromGeometry(b);return this},updateFromObject:function(a){var b=a.geometry;if(a.isMesh){var c=b.__directGeometry;!0===b.elementsNeedUpdate&&(c=void 0,b.elementsNeedUpdate=
@@ -571,8 +571,8 @@ this.start);b.subVectors(this.end,this.start);c=b.dot(b);c=b.dot(a)/c;d&&(c=N.cl
 e.subVectors(d,c);a.subVectors(b,c);e.cross(a);b=e.lengthSq();return 0<b?e.multiplyScalar(1/Math.sqrt(b)):e.set(0,0,0)}}(),barycoordFromPoint:function(){var a=new n,b=new n,c=new n;return function(d,e,f,g,h){a.subVectors(g,e);b.subVectors(f,e);c.subVectors(d,e);d=a.dot(a);e=a.dot(b);f=a.dot(c);var k=b.dot(b);g=b.dot(c);var l=d*k-e*e;h=h||new n;if(0===l)return h.set(-2,-1,-1);l=1/l;k=(k*f-e*g)*l;d=(d*g-e*f)*l;return h.set(1-k-d,d,k)}}(),containsPoint:function(){var a=new n;return function(b,c,d,e){b=
 e.subVectors(d,c);a.subVectors(b,c);e.cross(a);b=e.lengthSq();return 0<b?e.multiplyScalar(1/Math.sqrt(b)):e.set(0,0,0)}}(),barycoordFromPoint:function(){var a=new n,b=new n,c=new n;return function(d,e,f,g,h){a.subVectors(g,e);b.subVectors(f,e);c.subVectors(d,e);d=a.dot(a);e=a.dot(b);f=a.dot(c);var k=b.dot(b);g=b.dot(c);var l=d*k-e*e;h=h||new n;if(0===l)return h.set(-2,-1,-1);l=1/l;k=(k*f-e*g)*l;d=(d*g-e*f)*l;return h.set(1-k-d,d,k)}}(),containsPoint:function(){var a=new n;return function(b,c,d,e){b=
 Ra.barycoordFromPoint(b,c,d,e,a);return 0<=b.x&&0<=b.y&&1>=b.x+b.y}}()});Object.assign(Ra.prototype,{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},area:function(){var a=new n,b=new n;return function(){a.subVectors(this.c,
 Ra.barycoordFromPoint(b,c,d,e,a);return 0<=b.x&&0<=b.y&&1>=b.x+b.y}}()});Object.assign(Ra.prototype,{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},area:function(){var a=new n,b=new n;return function(){a.subVectors(this.c,
 this.b);b.subVectors(this.a,this.b);return.5*a.cross(b).length()}}(),midpoint:function(a){return(a||new n).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(a){return Ra.normal(this.a,this.b,this.c,a)},plane:function(a){return(a||new za).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(a,b){return Ra.barycoordFromPoint(a,this.a,this.b,this.c,b)},containsPoint:function(a){return Ra.containsPoint(a,this.a,this.b,this.c)},closestPointToPoint:function(){var a=
 this.b);b.subVectors(this.a,this.b);return.5*a.cross(b).length()}}(),midpoint:function(a){return(a||new n).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(a){return Ra.normal(this.a,this.b,this.c,a)},plane:function(a){return(a||new za).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(a,b){return Ra.barycoordFromPoint(a,this.a,this.b,this.c,b)},containsPoint:function(a){return Ra.containsPoint(a,this.a,this.b,this.c)},closestPointToPoint:function(){var a=
-new za,b=[new Eb,new Eb,new Eb],c=new n,d=new n;return function(e,f){f=f||new n;var g=Infinity;a.setFromCoplanarPoints(this.a,this.b,this.c);a.projectPoint(e,c);if(!0===this.containsPoint(c))f.copy(c);else for(b[0].set(this.a,this.b),b[1].set(this.b,this.c),b[2].set(this.c,this.a),e=0;e<b.length;e++){b[e].closestPointToPoint(c,!0,d);var h=c.distanceToSquared(d);h<g&&(g=h,f.copy(d))}return f}}(),equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}});na.prototype=Object.assign(Object.create(A.prototype),
-{constructor:na,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){A.prototype.copy.call(this,a);this.drawMode=a.drawMode;return this},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length){var c=a[b[0]];if(void 0!==c)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++){var d=c[a].name||String(a);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=a}}}else if(c=
+new za,b=[new Eb,new Eb,new Eb],c=new n,d=new n;return function(e,f){f=f||new n;var g=Infinity;a.setFromCoplanarPoints(this.a,this.b,this.c);a.projectPoint(e,c);if(!0===this.containsPoint(c))f.copy(c);else for(b[0].set(this.a,this.b),b[1].set(this.b,this.c),b[2].set(this.c,this.a),e=0;e<b.length;e++){b[e].closestPointToPoint(c,!0,d);var h=c.distanceToSquared(d);h<g&&(g=h,f.copy(d))}return f}}(),equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}});oa.prototype=Object.assign(Object.create(A.prototype),
+{constructor:oa,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){A.prototype.copy.call(this,a);this.drawMode=a.drawMode;return this},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length){var c=a[b[0]];if(void 0!==c)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++){var d=c[a].name||String(a);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=a}}}else if(c=
 a.morphTargets,void 0!==c&&0<c.length)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++)d=c[a].name||String(a),this.morphTargetInfluences.push(0),this.morphTargetDictionary[d]=a},raycast:function(){function a(a,b,c,d,e,f,g){Ra.barycoordFromPoint(a,b,c,d,w);e.multiplyScalar(w.x);f.multiplyScalar(w.y);g.multiplyScalar(w.z);e.add(f).add(g);return e.clone()}function b(a,b,c,d,e,f,g,h){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,f,g,
 a.morphTargets,void 0!==c&&0<c.length)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++)d=c[a].name||String(a),this.morphTargetInfluences.push(0),this.morphTargetDictionary[d]=a},raycast:function(){function a(a,b,c,d,e,f,g){Ra.barycoordFromPoint(a,b,c,d,w);e.multiplyScalar(w.x);f.multiplyScalar(w.y);g.multiplyScalar(w.z);e.add(f).add(g);return e.clone()}function b(a,b,c,d,e,f,g,h){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,f,g,
 2!==b.side,h)))return null;y.copy(h);y.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(y);return b<c.near||b>c.far?null:{distance:b,point:y.clone(),object:a}}function c(c,d,e,f,l,p,q,r){g.fromBufferAttribute(f,p);h.fromBufferAttribute(f,q);k.fromBufferAttribute(f,r);if(c=b(c,c.material,d,e,g,h,k,v))l&&(m.fromBufferAttribute(l,p),t.fromBufferAttribute(l,q),u.fromBufferAttribute(l,r),c.uv=a(v,g,h,k,m,t,u)),c.face=new Qa(p,q,r,Ra.normal(g,h,k)),c.faceIndex=p;return c}var d=new O,e=new gb,f=new Ca,
 2!==b.side,h)))return null;y.copy(h);y.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(y);return b<c.near||b>c.far?null:{distance:b,point:y.clone(),object:a}}function c(c,d,e,f,l,p,q,r){g.fromBufferAttribute(f,p);h.fromBufferAttribute(f,q);k.fromBufferAttribute(f,r);if(c=b(c,c.material,d,e,g,h,k,v))l&&(m.fromBufferAttribute(l,p),t.fromBufferAttribute(l,q),u.fromBufferAttribute(l,r),c.uv=a(v,g,h,k,m,t,u)),c.face=new Qa(p,q,r,Ra.normal(g,h,k)),c.faceIndex=p;return c}var d=new O,e=new gb,f=new Ca,
 g=new n,h=new n,k=new n,l=new n,p=new n,q=new n,m=new E,t=new E,u=new E,w=new n,v=new n,y=new n;return function(r,n){var w=this.geometry,y=this.material,B=this.matrixWorld;if(void 0!==y&&(null===w.boundingSphere&&w.computeBoundingSphere(),f.copy(w.boundingSphere),f.applyMatrix4(B),!1!==r.ray.intersectsSphere(f)&&(d.getInverse(B),e.copy(r.ray).applyMatrix4(d),null===w.boundingBox||!1!==e.intersectsBox(w.boundingBox)))){var x;if(w.isBufferGeometry){var y=w.index,G=w.attributes.position,B=w.attributes.uv,
 g=new n,h=new n,k=new n,l=new n,p=new n,q=new n,m=new E,t=new E,u=new E,w=new n,v=new n,y=new n;return function(r,n){var w=this.geometry,y=this.material,B=this.matrixWorld;if(void 0!==y&&(null===w.boundingSphere&&w.computeBoundingSphere(),f.copy(w.boundingSphere),f.applyMatrix4(B),!1!==r.ray.intersectsSphere(f)&&(d.getInverse(B),e.copy(r.ray).applyMatrix4(d),null===w.boundingBox||!1!==e.intersectsBox(w.boundingBox)))){var x;if(w.isBufferGeometry){var y=w.index,G=w.attributes.position,B=w.attributes.uv,
@@ -587,10 +587,10 @@ Object.create(L.prototype);Ya.prototype.constructor=Ya;Ya.prototype.isSpriteMate
 for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a)},getObjectForDistance:function(a){for(var b=this.levels,c=1,d=b.length;c<d&&!(a<b[c].distance);c++);return b[c-1].object},raycast:function(){var a=new n;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.origin.distanceTo(a);this.getObjectForDistance(d).raycast(b,c)}}(),update:function(){var a=new n,b=new n;return function(c){var d=this.levels;if(1<d.length){a.setFromMatrixPosition(c.matrixWorld);
 for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a)},getObjectForDistance:function(a){for(var b=this.levels,c=1,d=b.length;c<d&&!(a<b[c].distance);c++);return b[c-1].object},raycast:function(){var a=new n;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.origin.distanceTo(a);this.getObjectForDistance(d).raycast(b,c)}}(),update:function(){var a=new n,b=new n;return function(c){var d=this.levels;if(1<d.length){a.setFromMatrixPosition(c.matrixWorld);
 b.setFromMatrixPosition(this.matrixWorld);c=a.distanceTo(b);d[0].object.visible=!0;for(var e=1,f=d.length;e<f;e++)if(c>=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=!0;else break;for(;e<f;e++)d[e].object.visible=!1}}}(),toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.levels=[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Object.assign(zc.prototype,{calculateInverses:function(){this.boneInverses=
 b.setFromMatrixPosition(this.matrixWorld);c=a.distanceTo(b);d[0].object.visible=!0;for(var e=1,f=d.length;e<f;e++)if(c>=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=!0;else break;for(;e<f;e++)d[e].object.visible=!1}}}(),toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.levels=[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Object.assign(zc.prototype,{calculateInverses:function(){this.boneInverses=
 [];for(var a=0,b=this.bones.length;a<b;a++){var c=new O;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){var a,b;var c=0;for(b=this.bones.length;c<b;c++)(a=this.bones[c])&&a.matrixWorld.getInverse(this.boneInverses[c]);c=0;for(b=this.bones.length;c<b;c++)if(a=this.bones[c])a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)},
 [];for(var a=0,b=this.bones.length;a<b;a++){var c=new O;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){var a,b;var c=0;for(b=this.bones.length;c<b;c++)(a=this.bones[c])&&a.matrixWorld.getInverse(this.boneInverses[c]);c=0;for(b=this.bones.length;c<b;c++)if(a=this.bones[c])a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)},
-update:function(){var a=new O,b=new O;return function(){for(var c=this.bones,d=this.boneInverses,e=this.boneMatrices,f=this.boneTexture,g=0,h=c.length;g<h;g++)a.multiplyMatrices(c[g]?c[g].matrixWorld:b,d[g]),a.toArray(e,16*g);void 0!==f&&(f.needsUpdate=!0)}}(),clone:function(){return new zc(this.bones,this.boneInverses)}});qd.prototype=Object.assign(Object.create(A.prototype),{constructor:qd,isBone:!0});rd.prototype=Object.assign(Object.create(na.prototype),{constructor:rd,isSkinnedMesh:!0,initBones:function(){var a=
+update:function(){var a=new O,b=new O;return function(){for(var c=this.bones,d=this.boneInverses,e=this.boneMatrices,f=this.boneTexture,g=0,h=c.length;g<h;g++)a.multiplyMatrices(c[g]?c[g].matrixWorld:b,d[g]),a.toArray(e,16*g);void 0!==f&&(f.needsUpdate=!0)}}(),clone:function(){return new zc(this.bones,this.boneInverses)}});qd.prototype=Object.assign(Object.create(A.prototype),{constructor:qd,isBone:!0});rd.prototype=Object.assign(Object.create(oa.prototype),{constructor:rd,isSkinnedMesh:!0,initBones:function(){var a=
 [],b;if(this.geometry&&void 0!==this.geometry.bones){var c=0;for(b=this.geometry.bones.length;c<b;c++){var d=this.geometry.bones[c];var e=new qd;a.push(e);e.name=d.name;e.position.fromArray(d.pos);e.quaternion.fromArray(d.rotq);void 0!==d.scl&&e.scale.fromArray(d.scl)}c=0;for(b=this.geometry.bones.length;c<b;c++)d=this.geometry.bones[c],-1!==d.parent&&null!==d.parent&&void 0!==a[d.parent]?a[d.parent].add(a[c]):this.add(a[c])}this.updateMatrixWorld(!0);return a},bind:function(a,b){this.skeleton=a;
 [],b;if(this.geometry&&void 0!==this.geometry.bones){var c=0;for(b=this.geometry.bones.length;c<b;c++){var d=this.geometry.bones[c];var e=new qd;a.push(e);e.name=d.name;e.position.fromArray(d.pos);e.quaternion.fromArray(d.rotq);void 0!==d.scl&&e.scale.fromArray(d.scl)}c=0;for(b=this.geometry.bones.length;c<b;c++)d=this.geometry.bones[c],-1!==d.parent&&null!==d.parent&&void 0!==a[d.parent]?a[d.parent].add(a[c]):this.add(a[c])}this.updateMatrixWorld(!0);return a},bind:function(a,b){this.skeleton=a;
 void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),b=this.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){var a;if(this.geometry&&this.geometry.isGeometry)for(a=0;a<this.geometry.skinWeights.length;a++){var b=this.geometry.skinWeights[a];var c=1/b.lengthManhattan();Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry){var b=new ca,
 void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),b=this.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){var a;if(this.geometry&&this.geometry.isGeometry)for(a=0;a<this.geometry.skinWeights.length;a++){var b=this.geometry.skinWeights[a];var c=1/b.lengthManhattan();Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry){var b=new ca,
-d=this.geometry.attributes.skinWeight;for(a=0;a<d.count;a++)b.x=d.getX(a),b.y=d.getY(a),b.z=d.getZ(a),b.w=d.getW(a),c=1/b.lengthManhattan(),Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0),d.setXYZW(a,b.x,b.y,b.z,b.w)}},updateMatrixWorld:function(a){na.prototype.updateMatrixWorld.call(this,a);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+
+d=this.geometry.attributes.skinWeight;for(a=0;a<d.count;a++)b.x=d.getX(a),b.y=d.getY(a),b.z=d.getZ(a),b.w=d.getW(a),c=1/b.lengthManhattan(),Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0),d.setXYZW(a,b.x,b.y,b.z,b.w)}},updateMatrixWorld:function(a){oa.prototype.updateMatrixWorld.call(this,a);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+
 this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});fa.prototype=Object.create(L.prototype);fa.prototype.constructor=fa;fa.prototype.isLineBasicMaterial=!0;fa.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};ta.prototype=Object.assign(Object.create(A.prototype),{constructor:ta,isLine:!0,raycast:function(){var a=new O,b=new gb,
 this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});fa.prototype=Object.create(L.prototype);fa.prototype.constructor=fa;fa.prototype.isLineBasicMaterial=!0;fa.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};ta.prototype=Object.assign(Object.create(A.prototype),{constructor:ta,isLine:!0,raycast:function(){var a=new O,b=new gb,
 c=new Ca;return function(d,e){var f=d.linePrecision,f=f*f,g=this.geometry,h=this.matrixWorld;null===g.boundingSphere&&g.computeBoundingSphere();c.copy(g.boundingSphere);c.applyMatrix4(h);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(h);b.copy(d.ray).applyMatrix4(a);var k=new n,l=new n,h=new n,p=new n,q=this&&this.isLineSegments?2:1;if(g.isBufferGeometry){var m=g.index;var t=g.attributes.position.array;if(null!==m)for(var u=m.array,g=0,w=u.length-1;g<w;g+=q)m=u[g+1],k.fromArray(t,3*u[g]),l.fromArray(t,
 c=new Ca;return function(d,e){var f=d.linePrecision,f=f*f,g=this.geometry,h=this.matrixWorld;null===g.boundingSphere&&g.computeBoundingSphere();c.copy(g.boundingSphere);c.applyMatrix4(h);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(h);b.copy(d.ray).applyMatrix4(a);var k=new n,l=new n,h=new n,p=new n,q=this&&this.isLineSegments?2:1;if(g.isBufferGeometry){var m=g.index;var t=g.attributes.position.array;if(null!==m)for(var u=m.array,g=0,w=u.length-1;g<w;g+=q)m=u[g+1],k.fromArray(t,3*u[g]),l.fromArray(t,
 3*m),m=b.distanceSqToSegment(k,l,p,h),m>f||(p.applyMatrix4(this.matrixWorld),m=d.ray.origin.distanceTo(p),m<d.near||m>d.far||e.push({distance:m,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}));else for(g=0,w=t.length/3-1;g<w;g+=q)k.fromArray(t,3*g),l.fromArray(t,3*g+3),m=b.distanceSqToSegment(k,l,p,h),m>f||(p.applyMatrix4(this.matrixWorld),m=d.ray.origin.distanceTo(p),m<d.near||m>d.far||e.push({distance:m,point:h.clone().applyMatrix4(this.matrixWorld),
 3*m),m=b.distanceSqToSegment(k,l,p,h),m>f||(p.applyMatrix4(this.matrixWorld),m=d.ray.origin.distanceTo(p),m<d.near||m>d.far||e.push({distance:m,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}));else for(g=0,w=t.length/3-1;g<w;g+=q)k.fromArray(t,3*g),l.fromArray(t,3*g+3),m=b.distanceSqToSegment(k,l,p,h),m>f||(p.applyMatrix4(this.matrixWorld),m=d.ray.origin.distanceTo(p),m<d.near||m>d.far||e.push({distance:m,point:h.clone().applyMatrix4(this.matrixWorld),
@@ -638,7 +638,7 @@ b(f);e.manager.itemEnd(a)},0),f;var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(
 g}window.setTimeout(function(){b&&b(p);e.manager.itemEnd(a)},0)}catch(t){window.setTimeout(function(){d&&d(t);e.manager.itemEnd(a);e.manager.itemError(a)},0)}}else{var n=new XMLHttpRequest;n.open("GET",a,!0);n.addEventListener("load",function(c){var f=c.target.response;gd.add(a,f);200===this.status?(b&&b(f),e.manager.itemEnd(a)):0===this.status?(console.warn("THREE.FileLoader: HTTP Status 0 received."),b&&b(f),e.manager.itemEnd(a)):(d&&d(c),e.manager.itemEnd(a),e.manager.itemError(a))},!1);void 0!==
 g}window.setTimeout(function(){b&&b(p);e.manager.itemEnd(a)},0)}catch(t){window.setTimeout(function(){d&&d(t);e.manager.itemEnd(a);e.manager.itemError(a)},0)}}else{var n=new XMLHttpRequest;n.open("GET",a,!0);n.addEventListener("load",function(c){var f=c.target.response;gd.add(a,f);200===this.status?(b&&b(f),e.manager.itemEnd(a)):0===this.status?(console.warn("THREE.FileLoader: HTTP Status 0 received."),b&&b(f),e.manager.itemEnd(a)):(d&&d(c),e.manager.itemEnd(a),e.manager.itemError(a))},!1);void 0!==
 c&&n.addEventListener("progress",function(a){c(a)},!1);n.addEventListener("error",function(b){d&&d(b);e.manager.itemEnd(a);e.manager.itemError(a)},!1);void 0!==this.responseType&&(n.responseType=this.responseType);void 0!==this.withCredentials&&(n.withCredentials=this.withCredentials);n.overrideMimeType&&n.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(h in this.requestHeader)n.setRequestHeader(h,this.requestHeader[h]);n.send(null)}e.manager.itemStart(a);return n},setPath:function(a){this.path=
 c&&n.addEventListener("progress",function(a){c(a)},!1);n.addEventListener("error",function(b){d&&d(b);e.manager.itemEnd(a);e.manager.itemError(a)},!1);void 0!==this.responseType&&(n.responseType=this.responseType);void 0!==this.withCredentials&&(n.withCredentials=this.withCredentials);n.overrideMimeType&&n.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(h in this.requestHeader)n.setRequestHeader(h,this.requestHeader[h]);n.send(null)}e.manager.itemStart(a);return n},setPath:function(a){this.path=
 a;return this},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});Object.assign(Se.prototype,{load:function(a,b,c,d){function e(e){l.load(a[e],function(a){a=g._parser(a,!0);h[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};f+=1;6===f&&(1===a.mipmapCount&&(k.minFilter=1006),k.format=a.format,
 a;return this},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});Object.assign(Se.prototype,{load:function(a,b,c,d){function e(e){l.load(a[e],function(a){a=g._parser(a,!0);h[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};f+=1;6===f&&(1===a.mipmapCount&&(k.minFilter=1006),k.format=a.format,
-k.needsUpdate=!0,b&&b(k))},c,d)}var f,g=this,h=[],k=new Jb;k.image=h;var l=new Ja(this.manager);l.setPath(this.path);l.setResponseType("arraybuffer");if(Array.isArray(a))for(var m=f=0,q=a.length;m<q;++m)e(m);else l.load(a,function(a){a=g._parser(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){h[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)h[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),h[d].format=a.format,h[d].width=a.width,h[d].height=a.height}else k.image.width=a.width,
+k.needsUpdate=!0,b&&b(k))},c,d)}var f,g=this,h=[],k=new Jb;k.image=h;var l=new Ja(this.manager);l.setPath(this.path);l.setResponseType("arraybuffer");if(Array.isArray(a))for(var p=f=0,m=a.length;p<m;++p)e(p);else l.load(a,function(a){a=g._parser(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){h[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)h[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),h[d].format=a.format,h[d].width=a.width,h[d].height=a.height}else k.image.width=a.width,
 k.image.height=a.height,k.mipmaps=a.mipmaps;1===a.mipmapCount&&(k.minFilter=1006);k.format=a.format;k.needsUpdate=!0;b&&b(k)},c,d);return k},setPath:function(a){this.path=a;return this}});Object.assign(ce.prototype,{load:function(a,b,c,d){var e=this,f=new ab,g=new Ja(this.manager);g.setResponseType("arraybuffer");g.load(a,function(a){if(a=e._parser(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:
 k.image.height=a.height,k.mipmaps=a.mipmaps;1===a.mipmapCount&&(k.minFilter=1006);k.format=a.format;k.needsUpdate=!0;b&&b(k)},c,d);return k},setPath:function(a){this.path=a;return this}});Object.assign(ce.prototype,{load:function(a,b,c,d){var e=this,f=new ab,g=new Ja(this.manager);g.setResponseType("arraybuffer");g.load(a,function(a){if(a=e._parser(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:
 1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1008,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});Object.assign(Sc.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=
 1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1008,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});Object.assign(Sc.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=
 this,f=gd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;c=document.createElementNS("http://www.w3.org/1999/xhtml","img");c.addEventListener("load",function(){gd.add(a,this);b&&b(this);e.manager.itemEnd(a)},!1);c.addEventListener("error",function(b){d&&d(b);e.manager.itemEnd(a);e.manager.itemError(a)},!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(c.crossOrigin=this.crossOrigin);e.manager.itemStart(a);c.src=a;return c},setCrossOrigin:function(a){this.crossOrigin=
 this,f=gd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;c=document.createElementNS("http://www.w3.org/1999/xhtml","img");c.addEventListener("load",function(){gd.add(a,this);b&&b(this);e.manager.itemEnd(a)},!1);c.addEventListener("error",function(b){d&&d(b);e.manager.itemEnd(a);e.manager.itemError(a)},!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(c.crossOrigin=this.crossOrigin);e.manager.itemStart(a);c.src=a;return c},setCrossOrigin:function(a){this.crossOrigin=
@@ -655,7 +655,7 @@ f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.
 d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},
 d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},
 getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(a,b,c,d){throw Error("call to abstract method");},intervalChanged_:function(a,b,c){}});Object.assign(ya.prototype,{beforeStart_:ya.prototype.copySampleValue_,afterEnd_:ya.prototype.copySampleValue_});Dd.prototype=Object.assign(Object.create(ya.prototype),{constructor:Dd,
 getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(a,b,c,d){throw Error("call to abstract method");},intervalChanged_:function(a,b,c){}});Object.assign(ya.prototype,{beforeStart_:ya.prototype.copySampleValue_,afterEnd_:ya.prototype.copySampleValue_});Dd.prototype=Object.assign(Object.create(ya.prototype),{constructor:Dd,
 DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=a;g=2*b-c;break;case 2402:e=d.length-2;g=b+d[e]-d[e+1];break;default:e=a,g=c}if(void 0===h)switch(this.getSettings_().endingEnd){case 2401:f=a;h=2*c-b;break;case 2402:f=1;h=c+d[1]-d[0];break;default:f=a-1,h=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=
 DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=a;g=2*b-c;break;case 2402:e=d.length-2;g=b+d[e]-d[e+1];break;default:e=a,g=c}if(void 0===h)switch(this.getSettings_().endingEnd){case 2401:f=a;h=2*c-b;break;case 2402:f=1;h=c+d[1]-d[0];break;default:f=a-1,h=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=
-e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,k=this._offsetPrev,l=this._offsetNext,m=this._weightPrev,q=this._weightNext,n=(c-b)/(d-b);c=n*n;d=c*n;b=-m*d+2*m*c-m*n;m=(1+m)*d+(-1.5-2*m)*c+(-.5+m)*n+1;n=(-1-q)*d+(1.5+q)*c+.5*n;q=q*d-q*c;for(c=0;c!==g;++c)e[c]=b*f[k+c]+m*f[h+c]+n*f[a+c]+q*f[l+c];return e}});Tc.prototype=Object.assign(Object.create(ya.prototype),{constructor:Tc,interpolate_:function(a,b,c,d){var e=
+e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,k=this._offsetPrev,l=this._offsetNext,p=this._weightPrev,m=this._weightNext,n=(c-b)/(d-b);c=n*n;d=c*n;b=-p*d+2*p*c-p*n;p=(1+p)*d+(-1.5-2*p)*c+(-.5+p)*n+1;n=(-1-m)*d+(1.5+m)*c+.5*n;m=m*d-m*c;for(c=0;c!==g;++c)e[c]=b*f[k+c]+p*f[h+c]+n*f[a+c]+m*f[l+c];return e}});Tc.prototype=Object.assign(Object.create(ya.prototype),{constructor:Tc,interpolate_:function(a,b,c,d){var e=
 this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Ed.prototype=Object.assign(Object.create(ya.prototype),{constructor:Ed,interpolate_:function(a,b,c,d){return this.copySampleValue_(a-1)}});var $a={TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Ed(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new Tc(this.times,
 this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Ed.prototype=Object.assign(Object.create(ya.prototype),{constructor:Ed,interpolate_:function(a,b,c,d){return this.copySampleValue_(a-1)}});var $a={TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Ed(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new Tc(this.times,
 this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Dd(this.times,this.values,this.getValueSize(),a)},setInterpolation:function(a){switch(a){case 2300:var b=this.InterpolantFactoryMethodDiscrete;break;case 2301:b=this.InterpolantFactoryMethodLinear;break;case 2302:b=this.InterpolantFactoryMethodSmooth}if(void 0===b){b="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant)if(a!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);
 this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Dd(this.times,this.values,this.getValueSize(),a)},setInterpolation:function(a){switch(a){case 2300:var b=this.InterpolantFactoryMethodDiscrete;break;case 2301:b=this.InterpolantFactoryMethodLinear;break;case 2302:b=this.InterpolantFactoryMethodSmooth}if(void 0===b){b="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant)if(a!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);
 else throw Error(b);console.warn("THREE.KeyframeTrackPrototype:",b)}else this.createInterpolant=b},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(a){if(0!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]+=a;return this},scale:function(a){if(1!==
 else throw Error(b);console.warn("THREE.KeyframeTrackPrototype:",b)}else this.createInterpolant=b},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(a){if(0!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]+=a;return this},scale:function(a){if(1!==
@@ -708,7 +708,7 @@ a);return b[a]}var d={};if(void 0!==a)for(var e=0,f=a.length;e<f;e++){var g=a[e]
 c(g.wrap[0],kf),h.wrapT=c(g.wrap[1],kf));void 0!==g.minFilter&&(h.minFilter=c(g.minFilter,lf));void 0!==g.magFilter&&(h.magFilter=c(g.magFilter,lf));void 0!==g.anisotropy&&(h.anisotropy=g.anisotropy);void 0!==g.flipY&&(h.flipY=g.flipY);d[g.uuid]=h}return d},parseObject:function(){var a=new O;return function(b,c,d){function e(a){void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return c[a]}function f(a){if(void 0!==a){if(Array.isArray(a)){for(var b=[],c=0,e=a.length;c<e;c++){var f=
 c(g.wrap[0],kf),h.wrapT=c(g.wrap[1],kf));void 0!==g.minFilter&&(h.minFilter=c(g.minFilter,lf));void 0!==g.magFilter&&(h.magFilter=c(g.magFilter,lf));void 0!==g.anisotropy&&(h.anisotropy=g.anisotropy);void 0!==g.flipY&&(h.flipY=g.flipY);d[g.uuid]=h}return d},parseObject:function(){var a=new O;return function(b,c,d){function e(a){void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return c[a]}function f(a){if(void 0!==a){if(Array.isArray(a)){for(var b=[],c=0,e=a.length;c<e;c++){var f=
 a[c];void 0===d[f]&&console.warn("THREE.ObjectLoader: Undefined material",f);b.push(d[f])}return b}void 0===d[a]&&console.warn("THREE.ObjectLoader: Undefined material",a);return d[a]}}switch(b.type){case "Scene":var g=new pd;void 0!==b.background&&Number.isInteger(b.background)&&(g.background=new x(b.background));void 0!==b.fog&&("Fog"===b.fog.type?g.fog=new Hb(b.fog.color,b.fog.near,b.fog.far):"FogExp2"===b.fog.type&&(g.fog=new Gb(b.fog.color,b.fog.density)));break;case "PerspectiveCamera":g=new X(b.fov,
 a[c];void 0===d[f]&&console.warn("THREE.ObjectLoader: Undefined material",f);b.push(d[f])}return b}void 0===d[a]&&console.warn("THREE.ObjectLoader: Undefined material",a);return d[a]}}switch(b.type){case "Scene":var g=new pd;void 0!==b.background&&Number.isInteger(b.background)&&(g.background=new x(b.background));void 0!==b.fog&&("Fog"===b.fog.type?g.fog=new Hb(b.fog.color,b.fog.near,b.fog.far):"FogExp2"===b.fog.type&&(g.fog=new Gb(b.fog.color,b.fog.density)));break;case "PerspectiveCamera":g=new X(b.fov,
 b.aspect,b.near,b.far);void 0!==b.focus&&(g.focus=b.focus);void 0!==b.zoom&&(g.zoom=b.zoom);void 0!==b.filmGauge&&(g.filmGauge=b.filmGauge);void 0!==b.filmOffset&&(g.filmOffset=b.filmOffset);void 0!==b.view&&(g.view=Object.assign({},b.view));break;case "OrthographicCamera":g=new Cb(b.left,b.right,b.top,b.bottom,b.near,b.far);break;case "AmbientLight":g=new Bd(b.color,b.intensity);break;case "DirectionalLight":g=new Ad(b.color,b.intensity);break;case "PointLight":g=new yd(b.color,b.intensity,b.distance,
 b.aspect,b.near,b.far);void 0!==b.focus&&(g.focus=b.focus);void 0!==b.zoom&&(g.zoom=b.zoom);void 0!==b.filmGauge&&(g.filmGauge=b.filmGauge);void 0!==b.filmOffset&&(g.filmOffset=b.filmOffset);void 0!==b.view&&(g.view=Object.assign({},b.view));break;case "OrthographicCamera":g=new Cb(b.left,b.right,b.top,b.bottom,b.near,b.far);break;case "AmbientLight":g=new Bd(b.color,b.intensity);break;case "DirectionalLight":g=new Ad(b.color,b.intensity);break;case "PointLight":g=new yd(b.color,b.intensity,b.distance,
-b.decay);break;case "RectAreaLight":g=new Cd(b.color,b.intensity,b.width,b.height);break;case "SpotLight":g=new xd(b.color,b.intensity,b.distance,b.angle,b.penumbra,b.decay);break;case "HemisphereLight":g=new vd(b.color,b.groundColor,b.intensity);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case "Mesh":g=e(b.geometry);var h=f(b.material);g=g.bones&&0<g.bones.length?new rd(g,h):new na(g,h);break;case "LOD":g=new yc;break;case "Line":g=
+b.decay);break;case "RectAreaLight":g=new Cd(b.color,b.intensity,b.width,b.height);break;case "SpotLight":g=new xd(b.color,b.intensity,b.distance,b.angle,b.penumbra,b.decay);break;case "HemisphereLight":g=new vd(b.color,b.groundColor,b.intensity);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case "Mesh":g=e(b.geometry);var h=f(b.material);g=g.bones&&0<g.bones.length?new rd(g,h):new oa(g,h);break;case "LOD":g=new yc;break;case "Line":g=
 new ta(e(b.geometry),f(b.material),b.mode);break;case "LineLoop":g=new sd(e(b.geometry),f(b.material));break;case "LineSegments":g=new U(e(b.geometry),f(b.material));break;case "PointCloud":case "Points":g=new Ib(e(b.geometry),f(b.material));break;case "Sprite":g=new xc(f(b.material));break;case "Group":g=new Ac;break;default:g=new A}g.uuid=b.uuid;void 0!==b.name&&(g.name=b.name);void 0!==b.matrix?(a.fromArray(b.matrix),a.decompose(g.position,g.quaternion,g.scale)):(void 0!==b.position&&g.position.fromArray(b.position),
 new ta(e(b.geometry),f(b.material),b.mode);break;case "LineLoop":g=new sd(e(b.geometry),f(b.material));break;case "LineSegments":g=new U(e(b.geometry),f(b.material));break;case "PointCloud":case "Points":g=new Ib(e(b.geometry),f(b.material));break;case "Sprite":g=new xc(f(b.material));break;case "Group":g=new Ac;break;default:g=new A}g.uuid=b.uuid;void 0!==b.name&&(g.name=b.name);void 0!==b.matrix?(a.fromArray(b.matrix),a.decompose(g.position,g.quaternion,g.scale)):(void 0!==b.position&&g.position.fromArray(b.position),
 void 0!==b.rotation&&g.rotation.fromArray(b.rotation),void 0!==b.quaternion&&g.quaternion.fromArray(b.quaternion),void 0!==b.scale&&g.scale.fromArray(b.scale));void 0!==b.castShadow&&(g.castShadow=b.castShadow);void 0!==b.receiveShadow&&(g.receiveShadow=b.receiveShadow);b.shadow&&(void 0!==b.shadow.bias&&(g.shadow.bias=b.shadow.bias),void 0!==b.shadow.radius&&(g.shadow.radius=b.shadow.radius),void 0!==b.shadow.mapSize&&g.shadow.mapSize.fromArray(b.shadow.mapSize),void 0!==b.shadow.camera&&(g.shadow.camera=
 void 0!==b.rotation&&g.rotation.fromArray(b.rotation),void 0!==b.quaternion&&g.quaternion.fromArray(b.quaternion),void 0!==b.scale&&g.scale.fromArray(b.scale));void 0!==b.castShadow&&(g.castShadow=b.castShadow);void 0!==b.receiveShadow&&(g.receiveShadow=b.receiveShadow);b.shadow&&(void 0!==b.shadow.bias&&(g.shadow.bias=b.shadow.bias),void 0!==b.shadow.radius&&(g.shadow.radius=b.shadow.radius),void 0!==b.shadow.mapSize&&g.shadow.mapSize.fromArray(b.shadow.mapSize),void 0!==b.shadow.camera&&(g.shadow.camera=
 this.parseObject(b.shadow.camera)));void 0!==b.visible&&(g.visible=b.visible);void 0!==b.userData&&(g.userData=b.userData);if(void 0!==b.children)for(var h=b.children,k=0;k<h.length;k++)g.add(this.parseObject(h[k],c,d));if("LOD"===b.type)for(b=b.levels,h=0;h<b.length;h++){var k=b[h],l=g.getObjectByProperty("uuid",k.object);void 0!==l&&g.addLevel(l,k.distance)}return g}}()});var rg={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,
 this.parseObject(b.shadow.camera)));void 0!==b.visible&&(g.visible=b.visible);void 0!==b.userData&&(g.userData=b.userData);if(void 0!==b.children)for(var h=b.children,k=0;k<h.length;k++)g.add(this.parseObject(h[k],c,d));if("LOD"===b.type)for(b=b.levels,h=0;h<b.length;h++){var k=b[h],l=g.getObjectByProperty("uuid",k.object);void 0!==l&&g.addLevel(l,k.distance)}return g}}()});var rg={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,
@@ -772,7 +772,7 @@ this._timeScaleInterpolant;null!==a&&(this._timeScaleInterpolant=null,this._mixe
 for(var e=this._propertyBindings,f=0,g=b.length;f!==g;++f)b[f].evaluate(c),e[f].accumulate(d,a)}}else this._updateWeight(a)},_updateWeight:function(a){var b=0;if(this.enabled){var b=this.weight,c=this._weightInterpolant;if(null!==c){var d=c.evaluate(a)[0],b=b*d;a>c.parameterPositions[1]&&(this.stopFading(),0===d&&(this.enabled=!1))}}return this._effectiveWeight=b},_updateTimeScale:function(a){var b=0;if(!this.paused){var b=this.timeScale,c=this._timeScaleInterpolant;if(null!==c){var d=c.evaluate(a)[0],
 for(var e=this._propertyBindings,f=0,g=b.length;f!==g;++f)b[f].evaluate(c),e[f].accumulate(d,a)}}else this._updateWeight(a)},_updateWeight:function(a){var b=0;if(this.enabled){var b=this.weight,c=this._weightInterpolant;if(null!==c){var d=c.evaluate(a)[0],b=b*d;a>c.parameterPositions[1]&&(this.stopFading(),0===d&&(this.enabled=!1))}}return this._effectiveWeight=b},_updateTimeScale:function(a){var b=0;if(!this.paused){var b=this.timeScale,c=this._timeScaleInterpolant;if(null!==c){var d=c.evaluate(a)[0],
 b=b*d;a>c.parameterPositions[1]&&(this.stopWarping(),0===b?this.paused=!0:this.timeScale=b)}}return this._effectiveTimeScale=b},_updateTime:function(a){var b=this.time+a;if(0===a)return b;var c=this._clip.duration,d=this.loop,e=this._loopCount;if(2200===d)a:{if(-1===e&&(this._loopCount=0,this._setEndings(!0,!0,!1)),b>=c)b=c;else if(0>b)b=0;else break a;this.clampWhenFinished?this.paused=!0:this.enabled=!1;this._mixer.dispatchEvent({type:"finished",action:this,direction:0>a?-1:1})}else{d=2202===d;
 b=b*d;a>c.parameterPositions[1]&&(this.stopWarping(),0===b?this.paused=!0:this.timeScale=b)}}return this._effectiveTimeScale=b},_updateTime:function(a){var b=this.time+a;if(0===a)return b;var c=this._clip.duration,d=this.loop,e=this._loopCount;if(2200===d)a:{if(-1===e&&(this._loopCount=0,this._setEndings(!0,!0,!1)),b>=c)b=c;else if(0>b)b=0;else break a;this.clampWhenFinished?this.paused=!0:this.enabled=!1;this._mixer.dispatchEvent({type:"finished",action:this,direction:0>a?-1:1})}else{d=2202===d;
 -1===e&&(0<=a?(e=0,this._setEndings(!0,0===this.repetitions,d)):this._setEndings(0===this.repetitions,!0,d));if(b>=c||0>b){var f=Math.floor(b/c),b=b-c*f,e=e+Math.abs(f),g=this.repetitions-e;0>g?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,b=0<a?c:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<a?1:-1})):(0===g?(a=0>a,this._setEndings(a,!a,d)):this._setEndings(!1,!1,d),this._loopCount=e,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:f}))}if(d&&1===(e&1))return this.time=
 -1===e&&(0<=a?(e=0,this._setEndings(!0,0===this.repetitions,d)):this._setEndings(0===this.repetitions,!0,d));if(b>=c||0>b){var f=Math.floor(b/c),b=b-c*f,e=e+Math.abs(f),g=this.repetitions-e;0>g?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,b=0<a?c:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<a?1:-1})):(0===g?(a=0>a,this._setEndings(a,!a,d)):this._setEndings(!1,!1,d),this._loopCount=e,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:f}))}if(d&&1===(e&1))return this.time=
-b,c-b}return this.time=b},_setEndings:function(a,b,c){var d=this._interpolantSettings;c?(d.endingStart=2401,d.endingEnd=2401):(d.endingStart=a?this.zeroSlopeAtStart?2401:2400:2402,d.endingEnd=b?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(a,b,c){var d=this._mixer,e=d.time,f=this._weightInterpolant;null===f&&(this._weightInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;f[0]=b;d[1]=e+a;f[1]=c;return this}});Object.assign($e.prototype,oa.prototype,
+b,c-b}return this.time=b},_setEndings:function(a,b,c){var d=this._interpolantSettings;c?(d.endingStart=2401,d.endingEnd=2401):(d.endingStart=a?this.zeroSlopeAtStart?2401:2400:2402,d.endingEnd=b?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(a,b,c){var d=this._mixer,e=d.time,f=this._weightInterpolant;null===f&&(this._weightInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;f[0]=b;d[1]=e+a;f[1]=c;return this}});Object.assign($e.prototype,pa.prototype,
 {_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings;a=a._interpolants;var g=c.uuid,h=this._bindingsByRootAndName,k=h[g];void 0===k&&(k={},h[g]=k);for(h=0;h!==e;++h){var l=d[h],m=l.name,n=k[m];if(void 0===n){n=f[h];if(void 0!==n){null===n._cacheIndex&&(++n.referenceCount,this._addInactiveBinding(n,g,m));continue}n=new ne(W.create(c,m,b&&b._propertyBindings[h].binding.parsedPath),l.ValueTypeName,l.getValueSize());++n.referenceCount;this._addInactiveBinding(n,
 {_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings;a=a._interpolants;var g=c.uuid,h=this._bindingsByRootAndName,k=h[g];void 0===k&&(k={},h[g]=k);for(h=0;h!==e;++h){var l=d[h],m=l.name,n=k[m];if(void 0===n){n=f[h];if(void 0!==n){null===n._cacheIndex&&(++n.referenceCount,this._addInactiveBinding(n,g,m));continue}n=new ne(W.create(c,m,b&&b._propertyBindings[h].binding.parsedPath),l.ValueTypeName,l.getValueSize());++n.referenceCount;this._addInactiveBinding(n,
 g,m)}f[h]=n;a[h].resultBuffer=n.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(null===a._cacheIndex){var b=(a._localRoot||this._root).uuid,c=a._clip.uuid,d=this._actionsByClip[c];this._bindAction(a,d&&d.knownActions[0]);this._addInactiveAction(a,c,b)}b=a._propertyBindings;c=0;for(d=b.length;c!==d;++c){var e=b[c];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var b=a._propertyBindings,
 g,m)}f[h]=n;a[h].resultBuffer=n.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(null===a._cacheIndex){var b=(a._localRoot||this._root).uuid,c=a._clip.uuid,d=this._actionsByClip[c];this._bindAction(a,d&&d.knownActions[0]);this._addInactiveAction(a,c,b)}b=a._propertyBindings;c=0;for(d=b.length;c!==d;++c){var e=b[c];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var b=a._propertyBindings,
 c=0,d=b.length;c!==d;++c){var e=b[c];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},
 c=0,d=b.length;c!==d;++c){var e=b[c];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},
@@ -794,20 +794,20 @@ a);this.meshPerAttribute=a.meshPerAttribute;return this}});re.prototype=Object.a
 b&&b.isOrthographicCamera?(this.ray.origin.set(a.x,a.y,(b.near+b.far)/(b.near-b.far)).unproject(b),this.ray.direction.set(0,0,-1).transformDirection(b.matrixWorld)):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(a,b){var c=[];se(a,this,c,b);c.sort(bf);return c},intersectObjects:function(a,b){var c=[];if(!1===Array.isArray(a))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),c;for(var d=0,e=a.length;d<e;d++)se(a[d],this,c,b);c.sort(bf);
 b&&b.isOrthographicCamera?(this.ray.origin.set(a.x,a.y,(b.near+b.far)/(b.near-b.far)).unproject(b),this.ray.direction.set(0,0,-1).transformDirection(b.matrixWorld)):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(a,b){var c=[];se(a,this,c,b);c.sort(bf);return c},intersectObjects:function(a,b){var c=[];if(!1===Array.isArray(a))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),c;for(var d=0,e=a.length;d<e;d++)se(a[d],this,c,b);c.sort(bf);
 return c}});Object.assign(cf.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?Date:performance).now(),a=(b-this.oldTime)/1E3;
 return c}});Object.assign(cf.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?Date:performance).now(),a=(b-this.oldTime)/1E3;
 this.oldTime=b;this.elapsedTime+=a}return a}});Object.assign(df.prototype,{set:function(a,b,c){this.radius=a;this.phi=b;this.theta=c;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=a.radius;this.phi=a.phi;this.theta=a.theta;return this},makeSafe:function(){this.phi=Math.max(1E-6,Math.min(Math.PI-1E-6,this.phi));return this},setFromVector3:function(a){this.radius=a.length();0===this.radius?this.phi=this.theta=0:(this.theta=Math.atan2(a.x,a.z),this.phi=
 this.oldTime=b;this.elapsedTime+=a}return a}});Object.assign(df.prototype,{set:function(a,b,c){this.radius=a;this.phi=b;this.theta=c;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=a.radius;this.phi=a.phi;this.theta=a.theta;return this},makeSafe:function(){this.phi=Math.max(1E-6,Math.min(Math.PI-1E-6,this.phi));return this},setFromVector3:function(a){this.radius=a.length();0===this.radius?this.phi=this.theta=0:(this.theta=Math.atan2(a.x,a.z),this.phi=
-Math.acos(N.clamp(a.y/this.radius,-1,1)));return this}});Object.assign(ef.prototype,{set:function(a,b,c){this.radius=a;this.theta=b;this.y=c;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=a.radius;this.theta=a.theta;this.y=a.y;return this},setFromVector3:function(a){this.radius=Math.sqrt(a.x*a.x+a.z*a.z);this.theta=Math.atan2(a.x,a.z);this.y=a.y;return this}});ea.prototype=Object.create(na.prototype);ea.prototype.constructor=ea;ea.prototype.createAnimation=
+Math.acos(N.clamp(a.y/this.radius,-1,1)));return this}});Object.assign(ef.prototype,{set:function(a,b,c){this.radius=a;this.theta=b;this.y=c;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=a.radius;this.theta=a.theta;this.y=a.y;return this},setFromVector3:function(a){this.radius=Math.sqrt(a.x*a.x+a.z*a.z);this.theta=Math.atan2(a.x,a.z);this.y=a.y;return this}});ea.prototype=Object.create(oa.prototype);ea.prototype.constructor=ea;ea.prototype.createAnimation=
 function(a,b,c,d){b={start:b,end:c,length:c-b+1,fps:d,duration:(c-b)/d,lastFrame:0,currentFrame:0,active:!1,time:0,direction:1,weight:1,directionBackwards:!1,mirroredLoop:!1};this.animationsMap[a]=b;this.animationsList.push(b)};ea.prototype.autoCreateAnimations=function(a){for(var b,c,d=/([a-z]+)_?(\d+)/i,e,f={},g=this.geometry,h=0,k=g.morphTargets.length;h<k;h++)(b=g.morphTargets[h].name.match(d))&&1<b.length&&(c=b[1],f[c]||(f[c]={start:Infinity,end:-Infinity}),b=f[c],h<b.start&&(b.start=h),h>b.end&&
 function(a,b,c,d){b={start:b,end:c,length:c-b+1,fps:d,duration:(c-b)/d,lastFrame:0,currentFrame:0,active:!1,time:0,direction:1,weight:1,directionBackwards:!1,mirroredLoop:!1};this.animationsMap[a]=b;this.animationsList.push(b)};ea.prototype.autoCreateAnimations=function(a){for(var b,c,d=/([a-z]+)_?(\d+)/i,e,f={},g=this.geometry,h=0,k=g.morphTargets.length;h<k;h++)(b=g.morphTargets[h].name.match(d))&&1<b.length&&(c=b[1],f[c]||(f[c]={start:Infinity,end:-Infinity}),b=f[c],h<b.start&&(b.start=h),h>b.end&&
 (b.end=h),e||(e=c));for(c in f)b=f[c],this.createAnimation(c,b.start,b.end,a);this.firstAnimation=e};ea.prototype.setAnimationDirectionForward=function(a){if(a=this.animationsMap[a])a.direction=1,a.directionBackwards=!1};ea.prototype.setAnimationDirectionBackward=function(a){if(a=this.animationsMap[a])a.direction=-1,a.directionBackwards=!0};ea.prototype.setAnimationFPS=function(a,b){if(a=this.animationsMap[a])a.fps=b,a.duration=(a.end-a.start)/a.fps};ea.prototype.setAnimationDuration=function(a,b){if(a=
 (b.end=h),e||(e=c));for(c in f)b=f[c],this.createAnimation(c,b.start,b.end,a);this.firstAnimation=e};ea.prototype.setAnimationDirectionForward=function(a){if(a=this.animationsMap[a])a.direction=1,a.directionBackwards=!1};ea.prototype.setAnimationDirectionBackward=function(a){if(a=this.animationsMap[a])a.direction=-1,a.directionBackwards=!0};ea.prototype.setAnimationFPS=function(a,b){if(a=this.animationsMap[a])a.fps=b,a.duration=(a.end-a.start)/a.fps};ea.prototype.setAnimationDuration=function(a,b){if(a=
 this.animationsMap[a])a.duration=b,a.fps=(a.end-a.start)/a.duration};ea.prototype.setAnimationWeight=function(a,b){if(a=this.animationsMap[a])a.weight=b};ea.prototype.setAnimationTime=function(a,b){if(a=this.animationsMap[a])a.time=b};ea.prototype.getAnimationTime=function(a){var b=0;if(a=this.animationsMap[a])b=a.time;return b};ea.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};ea.prototype.playAnimation=function(a){var b=this.animationsMap[a];
 this.animationsMap[a])a.duration=b,a.fps=(a.end-a.start)/a.duration};ea.prototype.setAnimationWeight=function(a,b){if(a=this.animationsMap[a])a.weight=b};ea.prototype.setAnimationTime=function(a,b){if(a=this.animationsMap[a])a.time=b};ea.prototype.getAnimationTime=function(a){var b=0;if(a=this.animationsMap[a])b=a.time;return b};ea.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};ea.prototype.playAnimation=function(a){var b=this.animationsMap[a];
 b?(b.time=0,b.active=!0):console.warn("THREE.MorphBlendMesh: animation["+a+"] undefined in .playAnimation()")};ea.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1};ea.prototype.update=function(a){for(var b=0,c=this.animationsList.length;b<c;b++){var d=this.animationsList[b];if(d.active){var e=d.duration/d.length;d.time+=d.direction*a;if(d.mirroredLoop){if(d.time>d.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&
 b?(b.time=0,b.active=!0):console.warn("THREE.MorphBlendMesh: animation["+a+"] undefined in .playAnimation()")};ea.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1};ea.prototype.update=function(a){for(var b=0,c=this.animationsList.length;b<c;b++){var d=this.animationsList[b];if(d.active){var e=d.duration/d.length;d.time+=d.direction*a;if(d.mirroredLoop){if(d.time>d.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&
 (d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.start+N.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight;f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);d.currentFrame!==d.lastFrame?(this.morphTargetInfluences[d.currentFrame]=e*g,this.morphTargetInfluences[d.lastFrame]=
 (d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.start+N.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight;f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);d.currentFrame!==d.lastFrame?(this.morphTargetInfluences[d.currentFrame]=e*g,this.morphTargetInfluences[d.lastFrame]=
-(1-e)*g):this.morphTargetInfluences[d.currentFrame]=g}}};Xc.prototype=Object.create(A.prototype);Xc.prototype.constructor=Xc;Xc.prototype.isImmediateRenderObject=!0;Yc.prototype=Object.create(U.prototype);Yc.prototype.constructor=Yc;Yc.prototype.update=function(){var a=new n,b=new n,c=new qa;return function(){var d,e=["a","b","c"];this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var f=this.object.matrixWorld,g=this.geometry.attributes.position;if((d=this.object.geometry)&&
+(1-e)*g):this.morphTargetInfluences[d.currentFrame]=g}}};Xc.prototype=Object.create(A.prototype);Xc.prototype.constructor=Xc;Xc.prototype.isImmediateRenderObject=!0;Yc.prototype=Object.create(U.prototype);Yc.prototype.constructor=Yc;Yc.prototype.update=function(){var a=new n,b=new n,c=new na;return function(){var d,e=["a","b","c"];this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var f=this.object.matrixWorld,g=this.geometry.attributes.position;if((d=this.object.geometry)&&
 d.isGeometry)for(var h=d.vertices,k=d.faces,l=d=0,m=k.length;l<m;l++)for(var n=k[l],r=0,t=n.vertexNormals.length;r<t;r++){var u=n.vertexNormals[r];a.copy(h[n[e[r]]]).applyMatrix4(f);b.copy(u).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);g.setXYZ(d,a.x,a.y,a.z);d+=1;g.setXYZ(d,b.x,b.y,b.z);d+=1}else if(d&&d.isBufferGeometry)for(e=d.attributes.position,h=d.attributes.normal,r=d=0,t=e.count;r<t;r++)a.set(e.getX(r),e.getY(r),e.getZ(r)).applyMatrix4(f),b.set(h.getX(r),h.getY(r),h.getZ(r)),
 d.isGeometry)for(var h=d.vertices,k=d.faces,l=d=0,m=k.length;l<m;l++)for(var n=k[l],r=0,t=n.vertexNormals.length;r<t;r++){var u=n.vertexNormals[r];a.copy(h[n[e[r]]]).applyMatrix4(f);b.copy(u).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);g.setXYZ(d,a.x,a.y,a.z);d+=1;g.setXYZ(d,b.x,b.y,b.z);d+=1}else if(d&&d.isBufferGeometry)for(e=d.attributes.position,h=d.attributes.normal,r=d=0,t=e.count;r<t;r++)a.set(e.getX(r),e.getY(r),e.getZ(r)).applyMatrix4(f),b.set(h.getX(r),h.getY(r),h.getZ(r)),
 b.applyMatrix3(c).normalize().multiplyScalar(this.size).add(a),g.setXYZ(d,a.x,a.y,a.z),d+=1,g.setXYZ(d,b.x,b.y,b.z),d+=1;g.needsUpdate=!0}}();hc.prototype=Object.create(A.prototype);hc.prototype.constructor=hc;hc.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};hc.prototype.update=function(){var a=new n,b=new n;return function(){this.light.updateMatrixWorld();var c=this.light.distance?this.light.distance:1E3,d=c*Math.tan(this.light.angle);this.cone.scale.set(d,
 b.applyMatrix3(c).normalize().multiplyScalar(this.size).add(a),g.setXYZ(d,a.x,a.y,a.z),d+=1,g.setXYZ(d,b.x,b.y,b.z),d+=1;g.needsUpdate=!0}}();hc.prototype=Object.create(A.prototype);hc.prototype.constructor=hc;hc.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};hc.prototype.update=function(){var a=new n,b=new n;return function(){this.light.updateMatrixWorld();var c=this.light.distance?this.light.distance:1E3,d=c*Math.tan(this.light.angle);this.cone.scale.set(d,
 d,c);a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(b.sub(a));void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}();ic.prototype=Object.create(U.prototype);ic.prototype.constructor=ic;ic.prototype.onBeforeRender=function(){var a=new n,b=new O,c=new O;return function(){var d=this.bones,e=this.geometry,f=e.getAttribute("position");c.getInverse(this.root.matrixWorld);for(var g=
 d,c);a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(b.sub(a));void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}();ic.prototype=Object.create(U.prototype);ic.prototype.constructor=ic;ic.prototype.onBeforeRender=function(){var a=new n,b=new O,c=new O;return function(){var d=this.bones,e=this.geometry,f=e.getAttribute("position");c.getInverse(this.root.matrixWorld);for(var g=
-0,h=0;g<d.length;g++){var k=d[g];k.parent&&k.parent.isBone&&(b.multiplyMatrices(c,k.matrixWorld),a.setFromMatrixPosition(b),f.setXYZ(h,a.x,a.y,a.z),b.multiplyMatrices(c,k.parent.matrixWorld),a.setFromMatrixPosition(b),f.setXYZ(h+1,a.x,a.y,a.z),h+=2)}e.getAttribute("position").needsUpdate=!0}}();jc.prototype=Object.create(na.prototype);jc.prototype.constructor=jc;jc.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};jc.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):
+0,h=0;g<d.length;g++){var k=d[g];k.parent&&k.parent.isBone&&(b.multiplyMatrices(c,k.matrixWorld),a.setFromMatrixPosition(b),f.setXYZ(h,a.x,a.y,a.z),b.multiplyMatrices(c,k.parent.matrixWorld),a.setFromMatrixPosition(b),f.setXYZ(h+1,a.x,a.y,a.z),h+=2)}e.getAttribute("position").needsUpdate=!0}}();jc.prototype=Object.create(oa.prototype);jc.prototype.constructor=jc;jc.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};jc.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):
 this.material.color.copy(this.light.color)};kc.prototype=Object.create(A.prototype);kc.prototype.constructor=kc;kc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};kc.prototype.update=function(){var a=.5*this.light.width,b=.5*this.light.height,c=this.line.geometry.attributes.position,d=c.array;d[0]=a;d[1]=-b;d[2]=0;d[3]=a;d[4]=b;d[5]=0;d[6]=-a;d[7]=b;d[8]=0;d[9]=-a;d[10]=-b;d[11]=0;d[12]=a;d[13]=-b;d[14]=0;c.needsUpdate=!0;void 0!==this.color?this.line.material.color.set(this.color):
 this.material.color.copy(this.light.color)};kc.prototype=Object.create(A.prototype);kc.prototype.constructor=kc;kc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};kc.prototype.update=function(){var a=.5*this.light.width,b=.5*this.light.height,c=this.line.geometry.attributes.position,d=c.array;d[0]=a;d[1]=-b;d[2]=0;d[3]=a;d[4]=b;d[5]=0;d[6]=-a;d[7]=b;d[8]=0;d[9]=-a;d[10]=-b;d[11]=0;d[12]=a;d[13]=-b;d[14]=0;c.needsUpdate=!0;void 0!==this.color?this.line.material.color.set(this.color):
 this.line.material.color.copy(this.light.color)};lc.prototype=Object.create(A.prototype);lc.prototype.constructor=lc;lc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};lc.prototype.update=function(){var a=new n,b=new x,c=new x;return function(){var d=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var e=d.geometry.getAttribute("color");b.copy(this.light.color);c.copy(this.light.groundColor);for(var f=0,g=e.count;f<
 this.line.material.color.copy(this.light.color)};lc.prototype=Object.create(A.prototype);lc.prototype.constructor=lc;lc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};lc.prototype.update=function(){var a=new n,b=new x,c=new x;return function(){var d=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var e=d.geometry.getAttribute("color");b.copy(this.light.color);c.copy(this.light.groundColor);for(var f=0,g=e.count;f<
-g;f++){var h=f<g/2?b:c;e.setXYZ(f,h.r,h.g,h.b)}e.needsUpdate=!0}d.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate())}}();Zc.prototype=Object.create(U.prototype);Zc.prototype.constructor=Zc;Md.prototype=Object.create(U.prototype);Md.prototype.constructor=Md;$c.prototype=Object.create(U.prototype);$c.prototype.constructor=$c;$c.prototype.update=function(){var a=new n,b=new n,c=new qa;return function(){this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);for(var d=
+g;f++){var h=f<g/2?b:c;e.setXYZ(f,h.r,h.g,h.b)}e.needsUpdate=!0}d.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate())}}();Zc.prototype=Object.create(U.prototype);Zc.prototype.constructor=Zc;Md.prototype=Object.create(U.prototype);Md.prototype.constructor=Md;$c.prototype=Object.create(U.prototype);$c.prototype.constructor=$c;$c.prototype.update=function(){var a=new n,b=new n,c=new na;return function(){this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);for(var d=
 this.object.matrixWorld,e=this.geometry.attributes.position,f=this.object.geometry,g=f.vertices,f=f.faces,h=0,k=0,l=f.length;k<l;k++){var m=f[k],n=m.normal;a.copy(g[m.a]).add(g[m.b]).add(g[m.c]).divideScalar(3).applyMatrix4(d);b.copy(n).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);e.setXYZ(h,a.x,a.y,a.z);h+=1;e.setXYZ(h,b.x,b.y,b.z);h+=1}e.needsUpdate=!0}}();mc.prototype=Object.create(A.prototype);mc.prototype.constructor=mc;mc.prototype.dispose=function(){this.lightPlane.geometry.dispose();
 this.object.matrixWorld,e=this.geometry.attributes.position,f=this.object.geometry,g=f.vertices,f=f.faces,h=0,k=0,l=f.length;k<l;k++){var m=f[k],n=m.normal;a.copy(g[m.a]).add(g[m.b]).add(g[m.c]).divideScalar(3).applyMatrix4(d);b.copy(n).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);e.setXYZ(h,a.x,a.y,a.z);h+=1;e.setXYZ(h,b.x,b.y,b.z);h+=1}e.needsUpdate=!0}}();mc.prototype=Object.create(A.prototype);mc.prototype.constructor=mc;mc.prototype.dispose=function(){this.lightPlane.geometry.dispose();
 this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};mc.prototype.update=function(){var a=new n,b=new n,c=new n;return function(){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);c.subVectors(b,a);this.lightPlane.lookAt(c);void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),
 this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};mc.prototype.update=function(){var a=new n,b=new n,c=new n;return function(){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);c.subVectors(b,a);this.lightPlane.lookAt(c);void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),
 this.targetLine.material.color.copy(this.light.color));this.targetLine.lookAt(c);this.targetLine.scale.z=c.length()}}();ad.prototype=Object.create(U.prototype);ad.prototype.constructor=ad;ad.prototype.update=function(){function a(a,g,h,k){d.set(g,h,k).unproject(e);a=c[a];if(void 0!==a)for(g=b.getAttribute("position"),h=0,k=a.length;h<k;h++)g.setXYZ(a[h],d.x,d.y,d.z)}var b,c,d=new n,e=new Ma;return function(){b=this.geometry;c=this.pointMap;e.projectionMatrix.copy(this.camera.projectionMatrix);a("c",
 this.targetLine.material.color.copy(this.light.color));this.targetLine.lookAt(c);this.targetLine.scale.z=c.length()}}();ad.prototype=Object.create(U.prototype);ad.prototype.constructor=ad;ad.prototype.update=function(){function a(a,g,h,k){d.set(g,h,k).unproject(e);a=c[a];if(void 0!==a)for(g=b.getAttribute("position"),h=0,k=a.length;h<k;h++)g.setXYZ(a[h],d.x,d.y,d.z)}var b,c,d=new n,e=new Ma;return function(){b=this.geometry;c=this.pointMap;e.projectionMatrix.copy(this.camera.projectionMatrix);a("c",
@@ -823,7 +823,7 @@ Object.create(Ta.prototype);Pd.prototype.constructor=Pd;la.create=function(a,b){
 reparametrizeByArcLength:function(a){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});Zc.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};ic.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(hd.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");return this.getCenter(a)},
 reparametrizeByArcLength:function(a){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});Zc.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};ic.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(hd.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");return this.getCenter(a)},
 empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(Pa.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");return this.getCenter(a)},
 empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(Pa.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");return this.getCenter(a)},
 empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");return this.getSize(a)}});
 empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");return this.getSize(a)}});
-Eb.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(a)};N.random16=function(){console.warn("THREE.Math.random16() has been deprecated. Use Math.random() instead.");return Math.random()};Object.assign(qa.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");
+Eb.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(a)};N.random16=function(){console.warn("THREE.Math.random16() has been deprecated. Use Math.random() instead.");return Math.random()};Object.assign(na.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");
 return a.applyMatrix3(this)},multiplyVector3Array:function(a){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(a,b,c){console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");return this.applyToBufferAttribute(a)},applyToVector3Array:function(a,b,c){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(O.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");
 return a.applyMatrix3(this)},multiplyVector3Array:function(a){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(a,b,c){console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");return this.applyToBufferAttribute(a)},applyToVector3Array:function(a,b,c){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(O.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");
 return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){var a;return function(){void 0===a&&(a=new n);console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return a.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");
 return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){var a;return function(){void 0===a&&(a=new n);console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return a.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");
 return this.makeRotationFromQuaternion(a)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(a){console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector4:function(a){console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector3Array:function(a){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},
 return this.makeRotationFromQuaternion(a)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(a){console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector4:function(a){console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector3Array:function(a){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},
@@ -858,12 +858,12 @@ a}},minFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .minFilter
 a}},offset:{get:function(){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");return this.texture.offset},set:function(a){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");this.texture.offset=a}},repeat:{get:function(){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(a){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");
 a}},offset:{get:function(){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");return this.texture.offset},set:function(a){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");this.texture.offset=a}},repeat:{get:function(){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(a){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");
 return this.texture.format},set:function(a){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");this.texture.format=a}},type:{get:function(){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");return this.texture.type},set:function(a){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");this.texture.type=a}},generateMipmaps:{get:function(){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");return this.texture.generateMipmaps},
 return this.texture.format},set:function(a){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");this.texture.format=a}},type:{get:function(){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");return this.texture.type},set:function(a){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");this.texture.type=a}},generateMipmaps:{get:function(){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");return this.texture.generateMipmaps},
 set:function(a){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");this.texture.generateMipmaps=a}}});fc.prototype.load=function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new ie).load(a,function(a){b.setBuffer(a)});return this};me.prototype.getData=function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};m.WebGLRenderTargetCube=Ab;m.WebGLRenderTarget=
 set:function(a){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");this.texture.generateMipmaps=a}}});fc.prototype.load=function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new ie).load(a,function(a){b.setBuffer(a)});return this};me.prototype.getData=function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};m.WebGLRenderTargetCube=Ab;m.WebGLRenderTarget=
-zb;m.WebGLRenderer=$d;m.ShaderLib=hb;m.UniformsLib=R;m.UniformsUtils=Da;m.ShaderChunk=V;m.FogExp2=Gb;m.Fog=Hb;m.Scene=pd;m.LensFlare=ae;m.Sprite=xc;m.LOD=yc;m.SkinnedMesh=rd;m.Skeleton=zc;m.Bone=qd;m.Mesh=na;m.LineSegments=U;m.LineLoop=sd;m.Line=ta;m.Points=Ib;m.Group=Ac;m.VideoTexture=td;m.DataTexture=ab;m.CompressedTexture=Jb;m.CubeTexture=Ua;m.CanvasTexture=oc;m.DepthTexture=Bc;m.Texture=T;m.CompressedTextureLoader=Se;m.DataTextureLoader=ce;m.CubeTextureLoader=de;m.TextureLoader=ud;m.ObjectLoader=
+zb;m.WebGLRenderer=$d;m.ShaderLib=hb;m.UniformsLib=R;m.UniformsUtils=Da;m.ShaderChunk=V;m.FogExp2=Gb;m.Fog=Hb;m.Scene=pd;m.LensFlare=ae;m.Sprite=xc;m.LOD=yc;m.SkinnedMesh=rd;m.Skeleton=zc;m.Bone=qd;m.Mesh=oa;m.LineSegments=U;m.LineLoop=sd;m.Line=ta;m.Points=Ib;m.Group=Ac;m.VideoTexture=td;m.DataTexture=ab;m.CompressedTexture=Jb;m.CubeTexture=Ua;m.CanvasTexture=oc;m.DepthTexture=Bc;m.Texture=T;m.CompressedTextureLoader=Se;m.DataTextureLoader=ce;m.CubeTextureLoader=de;m.TextureLoader=ud;m.ObjectLoader=
 Te;m.MaterialLoader=Jd;m.BufferGeometryLoader=ee;m.DefaultLoadingManager=ra;m.LoadingManager=be;m.JSONLoader=fe;m.ImageLoader=Sc;m.FontLoader=Ve;m.FileLoader=Ja;m.Loader=cc;m.Cache=gd;m.AudioLoader=ie;m.SpotLightShadow=wd;m.SpotLight=xd;m.PointLight=yd;m.RectAreaLight=Cd;m.HemisphereLight=vd;m.DirectionalLightShadow=zd;m.DirectionalLight=Ad;m.AmbientLight=Bd;m.LightShadow=qb;m.Light=Z;m.StereoCamera=We;m.PerspectiveCamera=X;m.OrthographicCamera=Cb;m.CubeCamera=Kd;m.ArrayCamera=nd;m.Camera=Ma;m.AudioListener=
 Te;m.MaterialLoader=Jd;m.BufferGeometryLoader=ee;m.DefaultLoadingManager=ra;m.LoadingManager=be;m.JSONLoader=fe;m.ImageLoader=Sc;m.FontLoader=Ve;m.FileLoader=Ja;m.Loader=cc;m.Cache=gd;m.AudioLoader=ie;m.SpotLightShadow=wd;m.SpotLight=xd;m.PointLight=yd;m.RectAreaLight=Cd;m.HemisphereLight=vd;m.DirectionalLightShadow=zd;m.DirectionalLight=Ad;m.AmbientLight=Bd;m.LightShadow=qb;m.Light=Z;m.StereoCamera=We;m.PerspectiveCamera=X;m.OrthographicCamera=Cb;m.CubeCamera=Kd;m.ArrayCamera=nd;m.Camera=Ma;m.AudioListener=
 je;m.PositionalAudio=le;m.AudioContext=ke;m.AudioAnalyser=me;m.Audio=fc;m.VectorKeyframeTrack=ac;m.StringKeyframeTrack=Gd;m.QuaternionKeyframeTrack=Uc;m.NumberKeyframeTrack=bc;m.ColorKeyframeTrack=Id;m.BooleanKeyframeTrack=Hd;m.PropertyMixer=ne;m.PropertyBinding=W;m.KeyframeTrack=sb;m.AnimationUtils=ba;m.AnimationObjectGroup=Ye;m.AnimationMixer=$e;m.AnimationClip=Aa;m.Uniform=Ld;m.InstancedBufferGeometry=oe;m.BufferGeometry=F;m.GeometryIdCount=function(){return Ud++};m.Geometry=J;m.InterleavedBufferAttribute=
 je;m.PositionalAudio=le;m.AudioContext=ke;m.AudioAnalyser=me;m.Audio=fc;m.VectorKeyframeTrack=ac;m.StringKeyframeTrack=Gd;m.QuaternionKeyframeTrack=Uc;m.NumberKeyframeTrack=bc;m.ColorKeyframeTrack=Id;m.BooleanKeyframeTrack=Hd;m.PropertyMixer=ne;m.PropertyBinding=W;m.KeyframeTrack=sb;m.AnimationUtils=ba;m.AnimationObjectGroup=Ye;m.AnimationMixer=$e;m.AnimationClip=Aa;m.Uniform=Ld;m.InstancedBufferGeometry=oe;m.BufferGeometry=F;m.GeometryIdCount=function(){return Ud++};m.Geometry=J;m.InterleavedBufferAttribute=
-pe;m.InstancedInterleavedBuffer=qe;m.InterleavedBuffer=gc;m.InstancedBufferAttribute=re;m.Face3=Qa;m.Object3D=A;m.Raycaster=af;m.Layers=Td;m.EventDispatcher=oa;m.Clock=cf;m.QuaternionLinearInterpolant=Fd;m.LinearInterpolant=Tc;m.DiscreteInterpolant=Ed;m.CubicInterpolant=Dd;m.Interpolant=ya;m.Triangle=Ra;m.Math=N;m.Spherical=df;m.Cylindrical=ef;m.Plane=za;m.Frustum=jd;m.Sphere=Ca;m.Ray=gb;m.Matrix4=O;m.Matrix3=qa;m.Box3=Pa;m.Box2=hd;m.Line3=Eb;m.Euler=Xa;m.Vector4=ca;m.Vector3=n;m.Vector2=E;m.Quaternion=
+pe;m.InstancedInterleavedBuffer=qe;m.InterleavedBuffer=gc;m.InstancedBufferAttribute=re;m.Face3=Qa;m.Object3D=A;m.Raycaster=af;m.Layers=Td;m.EventDispatcher=pa;m.Clock=cf;m.QuaternionLinearInterpolant=Fd;m.LinearInterpolant=Tc;m.DiscreteInterpolant=Ed;m.CubicInterpolant=Dd;m.Interpolant=ya;m.Triangle=Ra;m.Math=N;m.Spherical=df;m.Cylindrical=ef;m.Plane=za;m.Frustum=jd;m.Sphere=Ca;m.Ray=gb;m.Matrix4=O;m.Matrix3=na;m.Box3=Pa;m.Box2=hd;m.Line3=Eb;m.Euler=Xa;m.Vector4=ca;m.Vector3=n;m.Vector2=E;m.Quaternion=
 ka;m.Color=x;m.MorphBlendMesh=ea;m.ImmediateRenderObject=Xc;m.VertexNormalsHelper=Yc;m.SpotLightHelper=hc;m.SkeletonHelper=ic;m.PointLightHelper=jc;m.RectAreaLightHelper=kc;m.HemisphereLightHelper=lc;m.GridHelper=Zc;m.PolarGridHelper=Md;m.FaceNormalsHelper=$c;m.DirectionalLightHelper=mc;m.CameraHelper=ad;m.BoxHelper=xb;m.Box3Helper=bd;m.PlaneHelper=cd;m.ArrowHelper=yb;m.AxisHelper=Od;m.CatmullRomCurve3=Ka;m.CubicBezierCurve3=dd;m.QuadraticBezierCurve3=ed;m.LineCurve3=fd;m.ArcCurve=Pd;m.EllipseCurve=
 ka;m.Color=x;m.MorphBlendMesh=ea;m.ImmediateRenderObject=Xc;m.VertexNormalsHelper=Yc;m.SpotLightHelper=hc;m.SkeletonHelper=ic;m.PointLightHelper=jc;m.RectAreaLightHelper=kc;m.HemisphereLightHelper=lc;m.GridHelper=Zc;m.PolarGridHelper=Md;m.FaceNormalsHelper=$c;m.DirectionalLightHelper=mc;m.CameraHelper=ad;m.BoxHelper=xb;m.Box3Helper=bd;m.PlaneHelper=cd;m.ArrowHelper=yb;m.AxisHelper=Od;m.CatmullRomCurve3=Ka;m.CubicBezierCurve3=dd;m.QuadraticBezierCurve3=ed;m.LineCurve3=fd;m.ArcCurve=Pd;m.EllipseCurve=
-Ta;m.SplineCurve=vb;m.CubicBezierCurve=dc;m.QuadraticBezierCurve=ec;m.LineCurve=Oa;m.Shape=wb;m.Path=Wc;m.ShapePath=ge;m.Font=he;m.CurvePath=Vc;m.Curve=la;m.ShapeUtils=Ha;m.SceneUtils={createMultiMaterialObject:function(a,b){for(var c=new Ac,d=0,e=b.length;d<e;d++)c.add(new na(a,b[d]));return c},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},attach:function(a,b,c){a.applyMatrix((new O).getInverse(c.matrixWorld));b.remove(a);c.add(a)}};m.WireframeGeometry=Kb;m.ParametricGeometry=
+Ta;m.SplineCurve=vb;m.CubicBezierCurve=dc;m.QuadraticBezierCurve=ec;m.LineCurve=Oa;m.Shape=wb;m.Path=Wc;m.ShapePath=ge;m.Font=he;m.CurvePath=Vc;m.Curve=la;m.ShapeUtils=Ha;m.SceneUtils={createMultiMaterialObject:function(a,b){for(var c=new Ac,d=0,e=b.length;d<e;d++)c.add(new oa(a,b[d]));return c},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},attach:function(a,b,c){a.applyMatrix((new O).getInverse(c.matrixWorld));b.remove(a);c.add(a)}};m.WireframeGeometry=Kb;m.ParametricGeometry=
 Cc;m.ParametricBufferGeometry=Lb;m.TetrahedronGeometry=Ec;m.TetrahedronBufferGeometry=Mb;m.OctahedronGeometry=Fc;m.OctahedronBufferGeometry=ib;m.IcosahedronGeometry=Gc;m.IcosahedronBufferGeometry=Nb;m.DodecahedronGeometry=Hc;m.DodecahedronBufferGeometry=Ob;m.PolyhedronGeometry=Dc;m.PolyhedronBufferGeometry=xa;m.TubeGeometry=Ic;m.TubeBufferGeometry=Pb;m.TorusKnotGeometry=Jc;m.TorusKnotBufferGeometry=Qb;m.TorusGeometry=Kc;m.TorusBufferGeometry=Rb;m.TextGeometry=Lc;m.TextBufferGeometry=Sb;m.SphereGeometry=
 Cc;m.ParametricBufferGeometry=Lb;m.TetrahedronGeometry=Ec;m.TetrahedronBufferGeometry=Mb;m.OctahedronGeometry=Fc;m.OctahedronBufferGeometry=ib;m.IcosahedronGeometry=Gc;m.IcosahedronBufferGeometry=Nb;m.DodecahedronGeometry=Hc;m.DodecahedronBufferGeometry=Ob;m.PolyhedronGeometry=Dc;m.PolyhedronBufferGeometry=xa;m.TubeGeometry=Ic;m.TubeBufferGeometry=Pb;m.TorusKnotGeometry=Jc;m.TorusKnotBufferGeometry=Qb;m.TorusGeometry=Kc;m.TorusBufferGeometry=Rb;m.TextGeometry=Lc;m.TextBufferGeometry=Sb;m.SphereGeometry=
 Mc;m.SphereBufferGeometry=jb;m.RingGeometry=Nc;m.RingBufferGeometry=Tb;m.PlaneGeometry=vc;m.PlaneBufferGeometry=fb;m.LatheGeometry=Oc;m.LatheBufferGeometry=Ub;m.ShapeGeometry=Vb;m.ShapeBufferGeometry=Wb;m.ExtrudeGeometry=Za;m.ExtrudeBufferGeometry=Ga;m.EdgesGeometry=Xb;m.ConeGeometry=Pc;m.ConeBufferGeometry=Qc;m.CylinderGeometry=kb;m.CylinderBufferGeometry=Sa;m.CircleGeometry=Rc;m.CircleBufferGeometry=Yb;m.BoxGeometry=Db;m.BoxBufferGeometry=eb;m.ShadowMaterial=Zb;m.SpriteMaterial=Ya;m.RawShaderMaterial=
 Mc;m.SphereBufferGeometry=jb;m.RingGeometry=Nc;m.RingBufferGeometry=Tb;m.PlaneGeometry=vc;m.PlaneBufferGeometry=fb;m.LatheGeometry=Oc;m.LatheBufferGeometry=Ub;m.ShapeGeometry=Vb;m.ShapeBufferGeometry=Wb;m.ExtrudeGeometry=Za;m.ExtrudeBufferGeometry=Ga;m.EdgesGeometry=Xb;m.ConeGeometry=Pc;m.ConeBufferGeometry=Qc;m.CylinderGeometry=kb;m.CylinderBufferGeometry=Sa;m.CircleGeometry=Rc;m.CircleBufferGeometry=Yb;m.BoxGeometry=Db;m.BoxBufferGeometry=eb;m.ShadowMaterial=Zb;m.SpriteMaterial=Ya;m.RawShaderMaterial=
 $b;m.ShaderMaterial=sa;m.PointsMaterial=Ea;m.MeshPhysicalMaterial=lb;m.MeshStandardMaterial=Na;m.MeshPhongMaterial=Ia;m.MeshToonMaterial=mb;m.MeshNormalMaterial=nb;m.MeshLambertMaterial=ob;m.MeshDepthMaterial=Va;m.MeshDistanceMaterial=Wa;m.MeshBasicMaterial=ua;m.LineDashedMaterial=pb;m.LineBasicMaterial=fa;m.Material=L;m.Float64BufferAttribute=uc;m.Float32BufferAttribute=z;m.Uint32BufferAttribute=db;m.Int32BufferAttribute=tc;m.Uint16BufferAttribute=cb;m.Int16BufferAttribute=sc;m.Uint8ClampedBufferAttribute=
 $b;m.ShaderMaterial=sa;m.PointsMaterial=Ea;m.MeshPhysicalMaterial=lb;m.MeshStandardMaterial=Na;m.MeshPhongMaterial=Ia;m.MeshToonMaterial=mb;m.MeshNormalMaterial=nb;m.MeshLambertMaterial=ob;m.MeshDepthMaterial=Va;m.MeshDistanceMaterial=Wa;m.MeshBasicMaterial=ua;m.LineDashedMaterial=pb;m.LineBasicMaterial=fa;m.Material=L;m.Float64BufferAttribute=uc;m.Float32BufferAttribute=z;m.Uint32BufferAttribute=db;m.Int32BufferAttribute=tc;m.Uint16BufferAttribute=cb;m.Int16BufferAttribute=sc;m.Uint8ClampedBufferAttribute=

+ 19 - 1
build/three.module.js

@@ -1083,7 +1083,17 @@ Object.assign( Texture.prototype, EventDispatcher.prototype, {
 				canvas.width = image.width;
 				canvas.width = image.width;
 				canvas.height = image.height;
 				canvas.height = image.height;
 
 
-				canvas.getContext( '2d' ).drawImage( image, 0, 0, image.width, image.height );
+				var context = canvas.getContext( '2d' );
+
+				if ( image instanceof ImageData ) {
+
+					context.putImageData( image, 0, 0 );
+
+				} else {
+
+					context.drawImage( image, 0, 0, image.width, image.height );
+
+				}
 
 
 			}
 			}
 
 
@@ -20409,6 +20419,12 @@ function WebVRManager( renderer ) {
 
 
 	};
 	};
 
 
+	this.dispose = function() {
+
+		window.removeEventListener( 'vrdisplaypresentchange', onVRDisplayPresentChange );
+
+	};
+
 }
 }
 
 
 /**
 /**
@@ -21094,6 +21110,8 @@ function WebGLRenderer( parameters ) {
 
 
 		renderLists.dispose();
 		renderLists.dispose();
 
 
+		vr.dispose();
+
 	};
 	};
 
 
 	// Events
 	// Events