Mr.doob 8 лет назад
Родитель
Сommit
037ab4a229
3 измененных файлов с 242 добавлено и 234 удалено
  1. 7 3
      build/three.js
  2. 228 228
      build/three.min.js
  3. 7 3
      build/three.module.js

+ 7 - 3
build/three.js

@@ -16333,10 +16333,11 @@
 
 				if ( boxMesh === undefined ) {
 
-					// TODO Adjust skybox to camera somehow
+					// Normalized box
+					// 1.1547 = (1,1,1).normalize() * 2.0
 
 					boxMesh = new Mesh(
-						new BoxBufferGeometry( 2, 2, 2 ),
+						new BoxBufferGeometry( 1.1547, 1.1547, 1.1547 ),
 						new ShaderMaterial( {
 							uniforms: ShaderLib.cube.uniforms,
 							vertexShader: ShaderLib.cube.vertexShader,
@@ -16348,9 +16349,12 @@
 						} )
 					);
 
+					boxMesh.geometry.removeAttribute( 'normal' );
+					boxMesh.geometry.removeAttribute( 'uv' );
+
 					boxMesh.onBeforeRender = function ( renderer, scene, camera ) {
 
-						var scale = camera.far / 1.732; // distance from 0,0,0 to 1,1,1
+						var scale = camera.far;
 
 						this.matrixWorld.makeScale( scale, scale, scale );
 						this.matrixWorld.copyPosition( camera.matrixWorld );

+ 228 - 228
build/three.min.js

@@ -57,21 +57,21 @@ new z(r,3));this.addAttribute("uv",new z(n,2))}function xc(a,b,c,d){O.call(this)
 for(b=0;b<g;b++)n.push(b*k-e,-m,0),q.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,r.push(b+g*a,e,h),r.push(e,f,h);this.setIndex(r);this.addAttribute("position",new z(n,3));this.addAttribute("normal",new z(q,3));this.addAttribute("uv",new z(t,2))}function va(a){N.call(this);this.type="MeshBasicMaterial";this.color=new D(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 ib(a,b){this.origin=void 0!==a?a:new p;this.direction=void 0!==b?b:new p}function Hb(a,b){this.start=void 0!==a?a:new p;this.end=void 0!==b?b:new p}function Sa(a,b,c){this.a=void 0!==a?a:new p;this.b=void 0!==b?b:new p;this.c=void 0!==c?c:new p}function fa(a,
 b){w.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new va({color:16777215*Math.random()});this.drawMode=0;this.updateMorphTargets()}function Rf(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new D(0),g=0,h,k,l;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,q,t){d=d.background;null===
-d?e(f,g):d&&d.isColor&&(e(d,1),t=!0);(a.autoClear||t)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);d&&d.isCubeTexture?(void 0===l&&(l=new fa(new gb(2,2,2),new qa({uniforms:jb.cube.uniforms,vertexShader:jb.cube.vertexShader,fragmentShader:jb.cube.fragmentShader,side:1,depthTest:!0,depthWrite:!1,fog:!1})),l.onBeforeRender(function(a,b,c){a=c.far/1.732;l.matrixWorld.makeScale(a,a,a);l.matrixWorld.copyPosition(c.matrixWorld)}),c.update(l.geometry)),l.material.uniforms.tCube.value=d,
-b.push(l,l.geometry,l.material,0,null)):d&&d.isTexture&&(void 0===h&&(h=new Fb(-1,1,1,-1,0,1),k=new fa(new hb(2,2),new va({depthTest:!1,depthWrite:!1,fog:!1})),c.update(k.geometry)),k.material.map=d,a.renderBufferDirect(h,null,k.geometry,k.material,k,null))}}}function Sf(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 Tf(a,
-b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function Uf(){var a=[],b=0,c=[],d=[];return{opaque:c,transparent:d,init:function(){b=0;c.length=0;d.length=0},push:function(e,f,g,h,k){var l=a[b];void 0===l?(l={id:e.id,object:e,geometry:f,material:g,program:g.program,renderOrder:e.renderOrder,z:h,group:k},a[b]=l):(l.id=e.id,l.object=e,l.geometry=f,l.material=g,l.program=g.program,l.renderOrder=e.renderOrder,l.z=h,l.group=k);(!0===g.transparent?d:c).push(l);
-b++},sort:function(){1<c.length&&c.sort(Sf);1<d.length&&d.sort(Tf)}}}function Vf(){var a={};return{get:function(b,c){b=b.id+","+c.id;c=a[b];void 0===c&&(c=new Uf,a[b]=c);return c},dispose:function(){a={}}}}function Wf(a,b){return Math.abs(b[1])-Math.abs(a[1])}function Xf(a){var b={},c=new Float32Array(8);return{update:function(d,e,f,g){var h=d.morphTargetInfluences,k=h.length;d=b[e.id];if(void 0===d){d=[];for(var l=0;l<k;l++)d[l]=[l,0];b[e.id]=d}var r=f.morphTargets&&e.morphAttributes.position;f=
-f.morphNormals&&e.morphAttributes.normal;for(l=0;l<k;l++){var n=d[l];0!==n[1]&&(r&&e.removeAttribute("morphTarget"+l),f&&e.removeAttribute("morphNormal"+l))}for(l=0;l<k;l++)n=d[l],n[0]=l,n[1]=h[l];d.sort(Wf);for(l=0;8>l;l++){if(n=d[l])if(h=n[0],n=n[1]){r&&e.addAttribute("morphTarget"+l,r[h]);f&&e.addAttribute("morphNormal"+l,f[h]);c[l]=n;continue}c[l]=0}g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function Yf(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 Zf(a,b,c){var d;this.setMode=function(a){d=a};this.render=function(b,f){a.drawArrays(d,b,f);c.calls++;c.vertices+=f;d===a.TRIANGLES?c.faces+=f/3:d===a.POINTS&&(c.points+=f)};this.renderInstances=function(e,f,g){var h=b.get("ANGLE_instanced_arrays");if(null===h)console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{var k=
-e.attributes.position;k.isInterleavedBufferAttribute?(g=k.data.count,h.drawArraysInstancedANGLE(d,0,g,e.maxInstancedCount)):h.drawArraysInstancedANGLE(d,f,g,e.maxInstancedCount);c.calls++;c.vertices+=g*e.maxInstancedCount;d===a.TRIANGLES?c.faces+=e.maxInstancedCount*g/3:d===a.POINTS&&(c.points+=e.maxInstancedCount*g)}}}function $f(a,b,c){function d(a){a=a.target;var g=e[a.id];null!==g.index&&b.remove(g.index);for(var k in g.attributes)b.remove(g.attributes[k]);a.removeEventListener("dispose",d);delete e[a.id];
-if(k=f[a.id])b.remove(k),delete f[a.id];if(k=f[g.id])b.remove(k),delete f[g.id];c.geometries--}var e={},f={};return{get:function(a,b){var f=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 r=e.array;for(var n=0,q=r.length;n<q;n+=3){var t=r[n+0];g=r[n+1];e=r[n+2];d.push(t,g,g,e,e,t)}}else for(r=g.position.array,n=0,q=r.length/3-1;n<q;n+=3)t=n+0,g=n+1,e=n+2,d.push(t,g,g,e,e,t);d=new (65535<Ud(d)?fb:eb)(d,1);b.update(d,a.ELEMENT_ARRAY_BUFFER);return f[c.id]=d}}}function ag(){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 p,color:new D,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E};break;case "SpotLight":c={position:new p,direction:new p,color:new D,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E};break;case "PointLight":c={position:new p,color:new D,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E,shadowCameraNear:1,
-shadowCameraFar:1E3};break;case "HemisphereLight":c={direction:new p,skyColor:new D,groundColor:new D};break;case "RectAreaLight":c={color:new D,position:new p,halfWidth:new p,halfHeight:new p}}return a[b.id]=c}}}function bg(){var a=new ag,b={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},c=new p,d=new P,e=new P;return{setup:function(f,g,h){for(var k,
-l=0,r=0,n=0,q=0,t=0,m=0,v=0,x=0,p=h.matrixWorldInverse,A=0,I=f.length;A<I;A++){var B=f[A];k=B.color;var H=B.intensity,sa=B.distance,ya=B.shadow&&B.shadow.map?B.shadow.map.texture:null;if(B.isAmbientLight)l+=k.r*H,r+=k.g*H,n+=k.b*H;else if(B.isDirectionalLight){h=a.get(B);h.color.copy(B.color).multiplyScalar(B.intensity);h.direction.setFromMatrixPosition(B.matrixWorld);c.setFromMatrixPosition(B.target.matrixWorld);h.direction.sub(c);h.direction.transformDirection(p);if(h.shadow=B.castShadow)k=B.shadow,
-h.shadowBias=k.bias,h.shadowRadius=k.radius,h.shadowMapSize=k.mapSize;b.directionalShadowMap[q]=ya;b.directionalShadowMatrix[q]=B.shadow.matrix;b.directional[q]=h;q++}else if(B.isSpotLight){h=a.get(B);h.position.setFromMatrixPosition(B.matrixWorld);h.position.applyMatrix4(p);h.color.copy(k).multiplyScalar(H);h.distance=sa;h.direction.setFromMatrixPosition(B.matrixWorld);c.setFromMatrixPosition(B.target.matrixWorld);h.direction.sub(c);h.direction.transformDirection(p);h.coneCos=Math.cos(B.angle);h.penumbraCos=
-Math.cos(B.angle*(1-B.penumbra));h.decay=0===B.distance?0:B.decay;if(h.shadow=B.castShadow)k=B.shadow,h.shadowBias=k.bias,h.shadowRadius=k.radius,h.shadowMapSize=k.mapSize;b.spotShadowMap[m]=ya;b.spotShadowMatrix[m]=B.shadow.matrix;b.spot[m]=h;m++}else if(B.isRectAreaLight)h=a.get(B),h.color.copy(k).multiplyScalar(H/(B.width*B.height)),h.position.setFromMatrixPosition(B.matrixWorld),h.position.applyMatrix4(p),e.identity(),d.copy(B.matrixWorld),d.premultiply(p),e.extractRotation(d),h.halfWidth.set(.5*
+d?e(f,g):d&&d.isColor&&(e(d,1),t=!0);(a.autoClear||t)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);d&&d.isCubeTexture?(void 0===l&&(l=new fa(new gb(1.1547,1.1547,1.1547),new qa({uniforms:jb.cube.uniforms,vertexShader:jb.cube.vertexShader,fragmentShader:jb.cube.fragmentShader,side:1,depthTest:!0,depthWrite:!1,fog:!1})),l.geometry.removeAttribute("normal"),l.geometry.removeAttribute("uv"),l.onBeforeRender=function(a,b,c){a=c.far;this.matrixWorld.makeScale(a,a,a);this.matrixWorld.copyPosition(c.matrixWorld)},
+c.update(l.geometry)),l.material.uniforms.tCube.value=d,b.push(l,l.geometry,l.material,0,null)):d&&d.isTexture&&(void 0===h&&(h=new Fb(-1,1,1,-1,0,1),k=new fa(new hb(2,2),new va({depthTest:!1,depthWrite:!1,fog:!1})),c.update(k.geometry)),k.material.map=d,a.renderBufferDirect(h,null,k.geometry,k.material,k,null))}}}function Sf(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 Tf(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function Uf(){var a=[],b=0,c=[],d=[];return{opaque:c,transparent:d,init:function(){b=0;c.length=0;d.length=0},push:function(e,f,g,h,k){var l=a[b];void 0===l?(l={id:e.id,object:e,geometry:f,material:g,program:g.program,renderOrder:e.renderOrder,z:h,group:k},a[b]=l):(l.id=e.id,l.object=e,l.geometry=f,l.material=g,l.program=g.program,l.renderOrder=e.renderOrder,
+l.z=h,l.group=k);(!0===g.transparent?d:c).push(l);b++},sort:function(){1<c.length&&c.sort(Sf);1<d.length&&d.sort(Tf)}}}function Vf(){var a={};return{get:function(b,c){b=b.id+","+c.id;c=a[b];void 0===c&&(c=new Uf,a[b]=c);return c},dispose:function(){a={}}}}function Wf(a,b){return Math.abs(b[1])-Math.abs(a[1])}function Xf(a){var b={},c=new Float32Array(8);return{update:function(d,e,f,g){var h=d.morphTargetInfluences,k=h.length;d=b[e.id];if(void 0===d){d=[];for(var l=0;l<k;l++)d[l]=[l,0];b[e.id]=d}var r=
+f.morphTargets&&e.morphAttributes.position;f=f.morphNormals&&e.morphAttributes.normal;for(l=0;l<k;l++){var n=d[l];0!==n[1]&&(r&&e.removeAttribute("morphTarget"+l),f&&e.removeAttribute("morphNormal"+l))}for(l=0;l<k;l++)n=d[l],n[0]=l,n[1]=h[l];d.sort(Wf);for(l=0;8>l;l++){if(n=d[l])if(h=n[0],n=n[1]){r&&e.addAttribute("morphTarget"+l,r[h]);f&&e.addAttribute("morphNormal"+l,f[h]);c[l]=n;continue}c[l]=0}g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function Yf(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 Zf(a,b,c){var d;this.setMode=function(a){d=a};this.render=function(b,f){a.drawArrays(d,b,f);c.calls++;c.vertices+=f;d===a.TRIANGLES?c.faces+=f/3:d===a.POINTS&&(c.points+=f)};this.renderInstances=function(e,f,g){var h=b.get("ANGLE_instanced_arrays");if(null===h)console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");
+else{var k=e.attributes.position;k.isInterleavedBufferAttribute?(g=k.data.count,h.drawArraysInstancedANGLE(d,0,g,e.maxInstancedCount)):h.drawArraysInstancedANGLE(d,f,g,e.maxInstancedCount);c.calls++;c.vertices+=g*e.maxInstancedCount;d===a.TRIANGLES?c.faces+=e.maxInstancedCount*g/3:d===a.POINTS&&(c.points+=e.maxInstancedCount*g)}}}function $f(a,b,c){function d(a){a=a.target;var g=e[a.id];null!==g.index&&b.remove(g.index);for(var k in g.attributes)b.remove(g.attributes[k]);a.removeEventListener("dispose",
+d);delete e[a.id];if(k=f[a.id])b.remove(k),delete f[a.id];if(k=f[g.id])b.remove(k),delete f[g.id];c.geometries--}var e={},f={};return{get:function(a,b){var f=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 r=e.array;for(var n=0,q=r.length;n<q;n+=3){var t=r[n+0];g=r[n+1];e=r[n+2];d.push(t,g,g,e,e,t)}}else for(r=g.position.array,n=0,q=r.length/3-1;n<q;n+=3)t=n+0,g=n+1,e=n+2,d.push(t,g,g,e,e,t);d=new (65535<Ud(d)?fb:eb)(d,1);b.update(d,a.ELEMENT_ARRAY_BUFFER);return f[c.id]=
+d}}}function ag(){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 p,color:new D,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E};break;case "SpotLight":c={position:new p,direction:new p,color:new D,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E};break;case "PointLight":c={position:new p,color:new D,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new E,
+shadowCameraNear:1,shadowCameraFar:1E3};break;case "HemisphereLight":c={direction:new p,skyColor:new D,groundColor:new D};break;case "RectAreaLight":c={color:new D,position:new p,halfWidth:new p,halfHeight:new p}}return a[b.id]=c}}}function bg(){var a=new ag,b={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},c=new p,d=new P,e=new P;return{setup:function(f,
+g,h){for(var k,l=0,r=0,n=0,q=0,t=0,m=0,v=0,x=0,p=h.matrixWorldInverse,A=0,I=f.length;A<I;A++){var B=f[A];k=B.color;var H=B.intensity,sa=B.distance,ya=B.shadow&&B.shadow.map?B.shadow.map.texture:null;if(B.isAmbientLight)l+=k.r*H,r+=k.g*H,n+=k.b*H;else if(B.isDirectionalLight){h=a.get(B);h.color.copy(B.color).multiplyScalar(B.intensity);h.direction.setFromMatrixPosition(B.matrixWorld);c.setFromMatrixPosition(B.target.matrixWorld);h.direction.sub(c);h.direction.transformDirection(p);if(h.shadow=B.castShadow)k=
+B.shadow,h.shadowBias=k.bias,h.shadowRadius=k.radius,h.shadowMapSize=k.mapSize;b.directionalShadowMap[q]=ya;b.directionalShadowMatrix[q]=B.shadow.matrix;b.directional[q]=h;q++}else if(B.isSpotLight){h=a.get(B);h.position.setFromMatrixPosition(B.matrixWorld);h.position.applyMatrix4(p);h.color.copy(k).multiplyScalar(H);h.distance=sa;h.direction.setFromMatrixPosition(B.matrixWorld);c.setFromMatrixPosition(B.target.matrixWorld);h.direction.sub(c);h.direction.transformDirection(p);h.coneCos=Math.cos(B.angle);
+h.penumbraCos=Math.cos(B.angle*(1-B.penumbra));h.decay=0===B.distance?0:B.decay;if(h.shadow=B.castShadow)k=B.shadow,h.shadowBias=k.bias,h.shadowRadius=k.radius,h.shadowMapSize=k.mapSize;b.spotShadowMap[m]=ya;b.spotShadowMatrix[m]=B.shadow.matrix;b.spot[m]=h;m++}else if(B.isRectAreaLight)h=a.get(B),h.color.copy(k).multiplyScalar(H/(B.width*B.height)),h.position.setFromMatrixPosition(B.matrixWorld),h.position.applyMatrix4(p),e.identity(),d.copy(B.matrixWorld),d.premultiply(p),e.extractRotation(d),h.halfWidth.set(.5*
 B.width,0,0),h.halfHeight.set(0,.5*B.height,0),h.halfWidth.applyMatrix4(e),h.halfHeight.applyMatrix4(e),b.rectArea[v]=h,v++;else if(B.isPointLight){h=a.get(B);h.position.setFromMatrixPosition(B.matrixWorld);h.position.applyMatrix4(p);h.color.copy(B.color).multiplyScalar(B.intensity);h.distance=B.distance;h.decay=0===B.distance?0:B.decay;if(h.shadow=B.castShadow)k=B.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]=ya;b.pointShadowMatrix[t]=B.shadow.matrix;b.point[t]=h;t++}else B.isHemisphereLight&&(h=a.get(B),h.direction.setFromMatrixPosition(B.matrixWorld),h.direction.transformDirection(p),h.direction.normalize(),h.skyColor.copy(B.color).multiplyScalar(H),h.groundColor.copy(B.groundColor).multiplyScalar(H),b.hemi[x]=h,x++)}b.ambient[0]=l;b.ambient[1]=r;b.ambient[2]=n;b.directional.length=q;b.spot.length=m;b.rectArea.length=v;b.point.length=t;b.hemi.length=x;b.hash=q+","+t+","+m+","+v+","+
 x+","+g.length},state:b}}function cg(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),a.update(g),c[g.id]=e);return g},clear:function(){c={}}}}function dg(a){a=a.split("\n");for(var b=0;b<a.length;b++)a[b]=b+1+": "+a[b];return a.join("\n")}function Oe(a,b,c){var d=a.createShader(b);a.shaderSource(d,c);a.compileShader(d);!1===a.getShaderParameter(d,a.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile.");
@@ -137,219 +137,219 @@ N[K]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||ga[b]),d.type=b,d.textur
 "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),r=a.getParameter(a.MAX_VERTEX_ATTRIBS),n=a.getParameter(a.MAX_VERTEX_UNIFORM_VECTORS),q=a.getParameter(a.MAX_VARYING_VECTORS),
 t=a.getParameter(a.MAX_FRAGMENT_UNIFORM_VECTORS),m=0<h,p=!!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:r,maxVertexUniforms:n,maxVaryings:q,maxFragmentUniforms:t,vertexTextures:m,floatFragmentTextures:p,floatVertexTextures:m&&
 p}}function nd(a){X.call(this);this.cameras=a||[]}function pg(a){function b(){if(d.isPresenting){var b=d.getEyeParameters("left"),e=b.renderWidth,b=b.renderHeight;q=a.getPixelRatio();n=a.getSize();a.setDrawingBufferSize(2*e,b,1)}else c.enabled&&a.setDrawingBufferSize(n.width,n.height,q)}var c=this,d=null,e=null;"VRFrameData"in window&&(e=new window.VRFrameData);var f=new P,g=new P,h=new P,k=new X;k.bounds=new da(0,0,.5,1);k.layers.enable(1);var l=new X;l.bounds=new da(.5,0,.5,1);l.layers.enable(2);
-var r=new nd([k,l]);r.layers.enable(1);r.layers.enable(2);var n,q;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=r.near=a.near;d.depthFar=r.far=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;r.matrixWorld.copy(a.matrixWorld);r.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);r.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 r};this.getStandingMatrix=function(){return g};this.submitFrame=function(){d&&d.isPresenting&&d.submitFrame()};this.dispose=function(){window.removeEventListener("vrdisplaypresentchange",b)}}function qg(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 rg(){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 ia,k=new Da,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,p){if(!f||null===c||0===c.length||g&&!k)g?b(null):a();else{k=g?0:e;var n=
-4*k,r=m.clippingState||null;l.value=r;r=b(c,t,n,p);for(c=0;c!==n;++c)r[c]=d[c];m.clippingState=r;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=k}}}function $d(a){function b(){ha=new qg(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);Y=new og(C,
-ha,a);aa=new ng(C,ha,m);aa.scissor(Eb.copy(ba).multiplyScalar(ja));aa.viewport(S.copy(ca).multiplyScalar(ja));X=new mg;fa=new lg(C,ha,aa,X,Y,m,Zd);la=new Pf(C);oa=new $f(C,la,Zd);pa=new cg(oa,Ta);ta=new Xf(C);ka=new kg(J,ha,Y);ra=new bg;qa=new Vf;na=new Rf(J,aa,oa,H);ua=new Zf(C,ha,Ta);va=new Yf(C,ha,Ta);wa=new Mf(J,C,aa,fa,Y);xa=new Nf(J,C,aa,fa,Y);J.info.programs=ka.programs;J.context=C;J.capabilities=Y;J.extensions=ha;J.properties=X;J.renderLists=qa;J.state=aa}function c(a){a.preventDefault();
-console.log("THREE.WebGLRenderer: Context Lost.");O=!0}function d(a){console.log("THREE.WebGLRenderer: Context Restored.");O=!1;b()}function e(a){a=a.target;a.removeEventListener("dispose",e);f(a);X.remove(a)}function f(a){var b=X.get(a).program;a.program=void 0;void 0!==b&&ka.releaseProgram(b)}function g(a,b,c){a.render(function(a){J.renderBufferImmediate(a,b,c)})}function h(a,b,c){if(a.visible){if(a.layers.test(b.layers))if(a.isLight)w.push(a),a.castShadow&&z.push(a);else if(a.isSprite)a.frustumCulled&&
-!Xd.intersectsSprite(a)||E.push(a);else if(a.isLensFlare)D.push(a);else if(a.isImmediateRenderObject)c&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(md),ea.push(a,null,a.material,Ib.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||Xd.intersectsObject(a)){c&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(md);var d=pa.update(a),e=a.material;if(Array.isArray(e))for(var f=d.groups,g=0,l=f.length;g<l;g++){var k=f[g],n=e[k.materialIndex];
-n&&n.visible&&ea.push(a,d,n,Ib.z,k)}else e.visible&&ea.push(a,d,e,Ib.z,null)}a=a.children;g=0;for(l=a.length;g<l;g++)h(a[g],b,c)}}function k(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,k=g.geometry,n=void 0===d?g.material:d,g=g.group;if(c.isArrayCamera){Z=c;for(var r=c.cameras,q=0,t=r.length;q<t;q++){var m=r[q];if(h.layers.test(m.layers)){var u=m.bounds,p=u.x*W,x=u.y*ga,v=u.z*W,u=u.w*ga;aa.viewport(S.set(p,x,v,u).multiplyScalar(ja));aa.scissor(Eb.set(p,x,v,u).multiplyScalar(ja));
-aa.setScissorTest(!0);l(h,b,m,k,n,g)}}}else Z=null,l(h,b,c,k,n,g)}}function l(a,b,c,d,e,f){a.onBeforeRender(J,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=n(c,b.fog,e,a);K="";g(a,h,e)}else J.renderBufferDirect(c,b.fog,d,e,a,f);a.onAfterRender(J,b,c,d,e,f)}function r(a,b,c){var d=X.get(a);c=ka.getParameters(a,ra.state,z,b,Ea.numPlanes,Ea.numIntersection,c);var g=
-ka.getProgramCode(a,c),h=d.program,l=!0;if(void 0===h)a.addEventListener("dispose",e);else if(h.code!==g)f(a);else{if(void 0!==c.shaderID)return;l=!1}l&&(c.shaderID?(h=jb[c.shaderID],d.shader={name:a.type,uniforms:Aa.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=ka.acquireProgram(a,d.shader,c,g),d.program=h,a.program=h);c=h.getAttributes();
-if(a.morphTargets)for(g=a.numSupportedMorphTargets=0;g<J.maxMorphTargets;g++)0<=c["morphTarget"+g]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(g=a.numSupportedMorphNormals=0;g<J.maxMorphNormals;g++)0<=c["morphNormal"+g]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Ea.numPlanes,d.numIntersection=Ea.numIntersection,c.clippingPlanes=Ea.uniform;d.fog=b;d.lightsHash=ra.state.hash;a.lights&&(c.ambientLightColor.value=
-ra.state.ambient,c.directionalLights.value=ra.state.directional,c.spotLights.value=ra.state.spot,c.rectAreaLights.value=ra.state.rectArea,c.pointLights.value=ra.state.point,c.hemisphereLights.value=ra.state.hemi,c.directionalShadowMap.value=ra.state.directionalShadowMap,c.directionalShadowMatrix.value=ra.state.directionalShadowMatrix,c.spotShadowMap.value=ra.state.spotShadowMap,c.spotShadowMatrix.value=ra.state.spotShadowMatrix,c.pointShadowMap.value=ra.state.pointShadowMap,c.pointShadowMatrix.value=
-ra.state.pointShadowMatrix);a=d.program.getUniforms();a=db.seqWithValue(a.seq,c);d.uniformsList=a}function n(a,b,c,d){G=0;var e=X.get(c);R&&(Yd||a!==N)&&Ea.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===N&&c.id===V);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:c.lights&&e.lightsHash!==ra.state.hash?c.needsUpdate=!0:void 0===e.numClippingPlanes||e.numClippingPlanes===Ea.numPlanes&&e.numIntersection===Ea.numIntersection||(c.needsUpdate=
-!0));c.needsUpdate&&(r(c,b,d),c.needsUpdate=!1);var f=!1,g=!1,h=!1,l=e.program,k=l.getUniforms(),n=e.shader.uniforms;aa.useProgram(l.program)&&(h=g=f=!0);c.id!==V&&(V=c.id,g=!0);if(f||a!==N){k.setValue(C,"projectionMatrix",a.projectionMatrix);Y.logarithmicDepthBuffer&&k.setValue(C,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));N!==(Z||a)&&(N=Z||a,h=g=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)f=k.map.cameraPosition,void 0!==f&&f.setValue(C,Ib.setFromMatrixPosition(a.matrixWorld));
-(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&k.setValue(C,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(k.setOptional(C,d,"bindMatrix"),k.setOptional(C,d,"bindMatrixInverse"),a=d.skeleton))if(f=a.bones,Y.floatVertexTextures){if(void 0===a.boneTexture){var f=Math.sqrt(4*f.length),f=Q.nextPowerOfTwo(Math.ceil(f)),f=Math.max(f,4),m=new Float32Array(f*f*4);m.set(a.boneMatrices);var u=new cb(m,f,f,1023,1015);a.boneMatrices=
-m;a.boneTexture=u;a.boneTextureSize=f}k.setValue(C,"boneTexture",a.boneTexture);k.setValue(C,"boneTextureSize",a.boneTextureSize)}else k.setOptional(C,a,"boneMatrices");if(g){k.setValue(C,"toneMappingExposure",J.toneMappingExposure);k.setValue(C,"toneMappingWhitePoint",J.toneMappingWhitePoint);c.lights&&(g=h,n.ambientLightColor.needsUpdate=g,n.directionalLights.needsUpdate=g,n.pointLights.needsUpdate=g,n.spotLights.needsUpdate=g,n.rectAreaLights.needsUpdate=g,n.hemisphereLights.needsUpdate=g);b&&
-c.fog&&(n.fogColor.value=b.color,b.isFog?(n.fogNear.value=b.near,n.fogFar.value=b.far):b.isFogExp2&&(n.fogDensity.value=b.density));if(c.isMeshBasicMaterial||c.isMeshLambertMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.isMeshNormalMaterial||c.isMeshDepthMaterial||c.isMeshDistanceMaterial){n.opacity.value=c.opacity;c.color&&(n.diffuse.value=c.color);c.emissive&&n.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);c.map&&(n.map.value=c.map);c.alphaMap&&(n.alphaMap.value=
-c.alphaMap);c.specularMap&&(n.specularMap.value=c.specularMap);c.envMap&&(n.envMap.value=c.envMap,n.flipEnvMap.value=c.envMap&&c.envMap.isCubeTexture?-1:1,n.reflectivity.value=c.reflectivity,n.refractionRatio.value=c.refractionRatio);c.lightMap&&(n.lightMap.value=c.lightMap,n.lightMapIntensity.value=c.lightMapIntensity);c.aoMap&&(n.aoMap.value=c.aoMap,n.aoMapIntensity.value=c.aoMapIntensity);if(c.map)var p=c.map;else c.specularMap?p=c.specularMap:c.displacementMap?p=c.displacementMap:c.normalMap?
-p=c.normalMap:c.bumpMap?p=c.bumpMap:c.roughnessMap?p=c.roughnessMap:c.metalnessMap?p=c.metalnessMap:c.alphaMap?p=c.alphaMap:c.emissiveMap&&(p=c.emissiveMap);void 0!==p&&(p.isWebGLRenderTarget&&(p=p.texture),b=p.offset,p=p.repeat,n.offsetRepeat.value.set(b.x,b.y,p.x,p.y))}c.isLineBasicMaterial?(n.diffuse.value=c.color,n.opacity.value=c.opacity):c.isLineDashedMaterial?(n.diffuse.value=c.color,n.opacity.value=c.opacity,n.dashSize.value=c.dashSize,n.totalSize.value=c.dashSize+c.gapSize,n.scale.value=
-c.scale):c.isPointsMaterial?(n.diffuse.value=c.color,n.opacity.value=c.opacity,n.size.value=c.size*ja,n.scale.value=.5*ga,n.map.value=c.map,null!==c.map&&(p=c.map.offset,c=c.map.repeat,n.offsetRepeat.value.set(p.x,p.y,c.x,c.y))):c.isMeshLambertMaterial?c.emissiveMap&&(n.emissiveMap.value=c.emissiveMap):c.isMeshToonMaterial?(q(n,c),c.gradientMap&&(n.gradientMap.value=c.gradientMap)):c.isMeshPhongMaterial?q(n,c):c.isMeshPhysicalMaterial?(n.clearCoat.value=c.clearCoat,n.clearCoatRoughness.value=c.clearCoatRoughness,
-t(n,c)):c.isMeshStandardMaterial?t(n,c):c.isMeshDepthMaterial?c.displacementMap&&(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias):c.isMeshDistanceMaterial?(c.displacementMap&&(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias),n.referencePosition.value.copy(c.referencePosition),n.nearDistance.value=c.nearDistance,n.farDistance.value=
-c.farDistance):c.isMeshNormalMaterial&&(c.bumpMap&&(n.bumpMap.value=c.bumpMap,n.bumpScale.value=c.bumpScale),c.normalMap&&(n.normalMap.value=c.normalMap,n.normalScale.value.copy(c.normalScale)),c.displacementMap&&(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias));void 0!==n.ltcMat&&(n.ltcMat.value=L.LTC_MAT_TEXTURE);void 0!==n.ltcMag&&(n.ltcMag.value=L.LTC_MAG_TEXTURE);db.upload(C,e.uniformsList,n,J)}k.setValue(C,
-"modelViewMatrix",d.modelViewMatrix);k.setValue(C,"normalMatrix",d.normalMatrix);k.setValue(C,"modelMatrix",d.matrixWorld);return l}function q(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 t(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 m(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"),x=void 0!==a.context?a.context:null,y=void 0!==a.alpha?a.alpha:!1,A=void 0!==a.depth?a.depth:!0,I=void 0!==a.stencil?a.stencil:!0,B=void 0!==a.antialias?a.antialias:!1,H=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,sa=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,w=[],z=[],ea=null,E=[],D=[];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 J=this,O=!1,U=null,M=null,V=-1,K="",N=null,Z=null,S=new da,Eb=new da,T=null,G=0,W=v.width,ga=v.height,ja=1,ca=new da(0,0,W,ga),ba=new da(0,0,W,ga),Se=!1,Xd=new ld,Ea=new rg,R=!1,Yd=!1,md=
-new P,Ib=new p,Zd={geometries:0,textures:0},Ta={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:Ta,memory:Zd,programs:null};try{y={alpha:y,depth:A,stencil:I,antialias:B,premultipliedAlpha:H,preserveDrawingBuffer:sa};var C=x||v.getContext("webgl",y)||v.getContext("experimental-webgl",y);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(sg){console.error("THREE.WebGLRenderer: "+sg)}var ha,Y,aa,X,fa,la,oa,pa,ra,ka,qa,na,ta,ua,va,wa,xa;b();var ia=new pg(J);this.vr=ia;var za=new Me(J,pa,Y.maxTextureSize);this.shadowMap=za;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 ja};this.setPixelRatio=function(a){void 0!==a&&(ja=a,this.setSize(W,ga,!1))};this.getSize=function(){return{width:W,height:ga}};this.setSize=function(a,b,c){var d=ia.getDevice();d&&d.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(W=a,ga=b,v.width=a*ja,v.height=b*ja,!1!==c&&(v.style.width=a+"px",v.style.height=
-b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(){return{width:W*ja,height:ga*ja}};this.setDrawingBufferSize=function(a,b,c){W=a;ga=b;ja=c;v.width=a*c;v.height=b*c;this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){ca.set(a,ga-b-d,c,d);aa.viewport(S.copy(ca).multiplyScalar(ja))};this.setScissor=function(a,b,c,d){ba.set(a,ga-b-d,c,d);aa.scissor(Eb.copy(ba).multiplyScalar(ja))};this.setScissorTest=function(a){aa.setScissorTest(Se=a)};this.getClearColor=na.getClearColor;
-this.setClearColor=na.setClearColor;this.getClearAlpha=na.getClearAlpha;this.setClearAlpha=na.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);qa.dispose();ia.dispose()};this.renderBufferImmediate=function(a,b,c){aa.initAttributes();var d=X.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,l=(g[e+1]+g[e+4]+g[e+7])/3,k=(g[e+2]+g[e+5]+g[e+8])/3;g[e+0]=h;g[e+1]=l;g[e+2]=k;g[e+3]=h;g[e+4]=l;g[e+5]=k;g[e+6]=h;g[e+7]=
-l;g[e+8]=k}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=n(a,b,d,e);a=c.id+"_"+g.id+"_"+(!0===d.wireframe);var h=!1;a!==K&&(K=a,h=!0);e.morphTargetInfluences&&(ta.update(e,c,d,g),h=!0);var l=c.index,k=c.attributes.position;b=1;!0===d.wireframe&&(l=oa.getWireframeAttribute(c),b=2);a=ua;if(null!==l){var r=la.get(l);a=va;a.setIndex(r)}if(h){h=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===h&&(h=0);aa.initAttributes();var q=c.attributes,g=g.getAttributes(),t=d.defaultAttributeValues;for(H in g){var m=g[H];if(0<=m){var p=q[H];if(void 0!==p){var u=p.normalized,x=p.itemSize,v=la.get(p);if(void 0!==v){var A=v.buffer,B=v.type,v=v.bytesPerElement;if(p.isInterleavedBufferAttribute){var y=p.data,I=y.stride,p=p.offset;y&&y.isInstancedInterleavedBuffer?(aa.enableAttributeAndDivisor(m,y.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=y.meshPerAttribute*y.count)):
-aa.enableAttribute(m);C.bindBuffer(C.ARRAY_BUFFER,A);C.vertexAttribPointer(m,x,B,u,I*v,(h*I+p)*v)}else p.isInstancedBufferAttribute?(aa.enableAttributeAndDivisor(m,p.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=p.meshPerAttribute*p.count)):aa.enableAttribute(m),C.bindBuffer(C.ARRAY_BUFFER,A),C.vertexAttribPointer(m,x,B,u,0,h*x*v)}}else if(void 0!==t&&(u=t[H],void 0!==u))switch(u.length){case 2:C.vertexAttrib2fv(m,u);break;case 3:C.vertexAttrib3fv(m,u);break;case 4:C.vertexAttrib4fv(m,
-u);break;default:C.vertexAttrib1fv(m,u)}}}aa.disableUnusedAttributes()}null!==l&&C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,r.buffer)}r=0;null!==l?r=l.count:void 0!==k&&(r=k.count);l=c.drawRange.start*b;k=null!==f?f.start*b:0;var H=Math.max(l,k);f=Math.max(0,Math.min(r,l+c.drawRange.count*b,k+(null!==f?f.count*b:Infinity))-1-H+1);if(0!==f){if(e.isMesh)if(!0===d.wireframe)aa.setLineWidth(d.wireframeLinewidth*(null===U?ja: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===U?ja: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,H,f):a.render(H,f)}};this.compile=function(a,b){w.length=0;z.length=0;a.traverse(function(a){a.isLight&&(w.push(a),a.castShadow&&z.push(a))});ra.setup(w,z,b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=
-0;c<b.material.length;c++)r(b.material[c],a.fog,b);else r(b.material,a.fog,b)})};this.animate=function(a){function b(){a();(ia.getDevice()||window).requestAnimationFrame(b)}(ia.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(!O){K="";V=-1;N=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();ia.enabled&&(b=ia.getCamera(b));
-md.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);Xd.setFromMatrix(md);w.length=0;z.length=0;E.length=0;D.length=0;Yd=this.localClippingEnabled;R=Ea.init(this.clippingPlanes,Yd,b);ea=qa.get(a,b);ea.init();h(a,b,J.sortObjects);!0===J.sortObjects&&ea.sort();R&&Ea.beginShadows();za.render(z,a,b);ra.setup(w,z,b);R&&Ea.endShadows();Ta.frame++;Ta.calls=0;Ta.vertices=0;Ta.faces=0;Ta.points=0;void 0===c&&(c=null);this.setRenderTarget(c);na.render(ea,a,b,d);d=ea.opaque;var e=ea.transparent;if(a.overrideMaterial){var f=
-a.overrideMaterial;d.length&&k(d,a,b,f);e.length&&k(e,a,b,f)}else d.length&&k(d,a,b),e.length&&k(e,a,b);xa.render(E,a,b);wa.render(D,a,b,S);c&&fa.updateRenderTargetMipmap(c);aa.buffers.depth.setTest(!0);aa.buffers.depth.setMask(!0);aa.buffers.color.setMask(!0);ia.enabled&&ia.submitFrame()}};this.setFaceCulling=function(a,b){aa.setCullFace(a);aa.setFlipSided(0===b)};this.allocTextureUnit=function(){var a=G;a>=Y.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+a+" texture units while this GPU supports only "+
-Y.maxTextures);G+=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);fa.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);fa.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?fa.setTextureCube(b,c):fa.setTextureCubeDynamic(b,c)}}();this.getRenderTarget=function(){return U};this.setRenderTarget=function(a){(U=a)&&void 0===X.get(a).__webglFramebuffer&&fa.setupRenderTarget(a);var b=null,c=!1;a?(b=X.get(a).__webglFramebuffer,
-a.isWebGLRenderTargetCube&&(b=b[a.activeCubeFace],c=!0),S.copy(a.viewport),Eb.copy(a.scissor),T=a.scissorTest):(S.copy(ca).multiplyScalar(ja),Eb.copy(ba).multiplyScalar(ja),T=Se);M!==b&&(C.bindFramebuffer(C.FRAMEBUFFER,b),M=b);aa.viewport(S);aa.scissor(Eb);aa.setScissorTest(T);c&&(c=X.get(a.texture),C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,c.__webglTexture,a.activeMipMapLevel))};this.readRenderTargetPixels=function(a,b,c,d,e,f){if(a&&
-a.isWebGLRenderTarget){var g=X.get(a).__webglFramebuffer;if(g){var h=!1;g!==M&&(C.bindFramebuffer(C.FRAMEBUFFER,g),h=!0);try{var l=a.texture,k=l.format,n=l.type;1023!==k&&m(k)!==C.getParameter(C.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===n||m(n)===C.getParameter(C.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n&&(ha.get("OES_texture_float")||ha.get("WEBGL_color_buffer_float"))||1016===
-n&&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,m(k),m(n),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,M)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}}
-function Jb(a,b){this.name="";this.color=new D(a);this.density=void 0!==b?b:2.5E-4}function Kb(a,b,c){this.name="";this.color=new D(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function od(){w.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function ae(a,b,c,d,e){w.call(this);this.lensFlares=[];this.positionScreen=new p;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)}function $a(a){N.call(this);this.type="SpriteMaterial";
-this.color=new D(16777215);this.map=null;this.rotation=0;this.lights=this.fog=!1;this.setValues(a)}function zc(a){w.call(this);this.type="Sprite";this.material=void 0!==a?a:new $a}function Ac(){w.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Bc(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 P)}function pd(){w.call(this);this.type="Bone"}function qd(a,b){fa.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new P;this.bindMatrixInverse=new P;a=this.initBones();a=new Bc(a);this.bind(a,this.matrixWorld);this.normalizeSkinWeights()}function ba(a){N.call(this);this.type="LineBasicMaterial";this.color=new D(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;
-this.setValues(a)}function na(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new T(a,b);w.call(this);this.type="Line";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new ba({color:16777215*Math.random()})}function T(a,b){na.call(this,a,b);this.type="LineSegments"}function rd(a,b){na.call(this,a,b);this.type="LineLoop"}function Fa(a){N.call(this);this.type="PointsMaterial";this.color=new D(16777215);
-this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=!1;this.setValues(a)}function Lb(a,b){w.call(this);this.type="Points";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new Fa({color:16777215*Math.random()})}function Cc(){w.call(this);this.type="Group"}function sd(a,b,c,d,e,f,g,h,k){function l(){requestAnimationFrame(l);a.readyState>=a.HAVE_CURRENT_DATA&&(r.needsUpdate=!0)}ca.call(this,a,b,c,d,e,f,g,h,k);this.generateMipmaps=!1;var r=this;l()}function Mb(a,b,c,d,e,f,g,h,k,l,
-r,n){ca.call(this,null,f,g,h,k,l,d,e,r,n);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Dc(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);ca.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=
-this.flipY=!1}function Nb(a){F.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var k=a.faces;var l=0;for(d=k.length;l<d;l++){var r=k[l];for(c=0;3>c;c++){var n=r[h[c]];var q=r[h[(c+1)%3]];f[0]=Math.min(n,q);f[1]=Math.max(n,q);n=f[0]+","+f[1];void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]})}}for(n in g)l=g[n],h=a.vertices[l.index1],b.push(h.x,h.y,h.z),h=a.vertices[l.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry){var h=new p;if(null!==
-a.index){k=a.attributes.position;r=a.index;var t=a.groups;0===t.length&&(t=[{start:0,count:r.count,materialIndex:0}]);a=0;for(e=t.length;a<e;++a)for(l=t[a],c=l.start,d=l.count,l=c,d=c+d;l<d;l+=3)for(c=0;3>c;c++)n=r.getX(l+c),q=r.getX(l+(c+1)%3),f[0]=Math.min(n,q),f[1]=Math.max(n,q),n=f[0]+","+f[1],void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]});for(n in g)l=g[n],h.fromBufferAttribute(k,l.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(k,l.index2),b.push(h.x,h.y,h.z)}else for(k=a.attributes.position,
-l=0,d=k.count/3;l<d;l++)for(c=0;3>c;c++)g=3*l+c,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z),g=3*l+(c+1)%3,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z)}this.addAttribute("position",new z(b,3))}function Ec(a,b,c){O.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Ob(a,b,c));this.mergeVertices()}function Ob(a,b,c){F.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=
-new p,k=new p,l=new p,r=new p,n=new p,q,t,m=b+1;for(q=0;q<=c;q++){var v=q/c;for(t=0;t<=b;t++){var x=t/b,k=a(x,v,k);e.push(k.x,k.y,k.z);0<=x-1E-5?(l=a(x-1E-5,v,l),r.subVectors(k,l)):(l=a(x+1E-5,v,l),r.subVectors(l,k));0<=v-1E-5?(l=a(x,v-1E-5,l),n.subVectors(k,l)):(l=a(x,v+1E-5,l),n.subVectors(l,k));h.crossVectors(r,n).normalize();f.push(h.x,h.y,h.z);g.push(x,v)}}for(q=0;q<c;q++)for(t=0;t<b;t++)a=q*m+t+1,h=(q+1)*m+t+1,k=(q+1)*m+t,d.push(q*m+t,a,k),d.push(a,h,k);this.setIndex(d);this.addAttribute("position",
-new z(e,3));this.addAttribute("normal",new z(f,3));this.addAttribute("uv",new z(g,2))}function Fc(a,b,c,d){O.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new ta(a,b,c,d));this.mergeVertices()}function ta(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(k[b]=a.x-1);0===c.x&&0===c.z&&(k[b]=d/2/Math.PI+.5)}F.call(this);this.type="PolyhedronBufferGeometry";
-this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],k=[];(function(a){for(var c=new p,d=new p,g=new p,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);var k,l,m=c,y=d,A=g,I=Math.pow(2,a),B=[];for(l=0;l<=I;l++){B[l]=[];var H=m.clone().lerp(A,l/I),w=y.clone().lerp(A,l/I),z=I-l;for(k=0;k<=z;k++)B[l][k]=0===k&&l===I?H:H.clone().lerp(w,k/z)}for(l=0;l<I;l++)for(k=0;k<2*(I-l)-1;k++)m=Math.floor(k/2),0===k%2?(e(B[l][m+1]),e(B[l+1][m]),e(B[l][m])):(e(B[l][m+1]),e(B[l+1][m+
-1]),e(B[l+1][m]))}})(d);(function(a){for(var b=new p,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new p,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],k.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));for(var a=new p,b=new p,c=new p,d=new p,e=new E,f=new E,m=new E,x=0,y=0;x<h.length;x+=9,y+=6){a.set(h[x+0],h[x+1],h[x+2]);b.set(h[x+3],h[x+4],h[x+
-5]);c.set(h[x+6],h[x+7],h[x+8]);e.set(k[y+0],k[y+1]);f.set(k[y+2],k[y+3]);m.set(k[y+4],k[y+5]);d.copy(a).add(b).add(c).divideScalar(3);var A=Math.atan2(d.z,-d.x);g(e,y+0,a,A);g(f,y+2,b,A);g(m,y+4,c,A)}for(a=0;a<k.length;a+=6)b=k[a+0],c=k[a+2],d=k[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(k[a+0]+=1),.2>c&&(k[a+2]+=1),.2>d&&(k[a+4]+=1))})();this.addAttribute("position",new z(h,3));this.addAttribute("normal",new z(h.slice(),3));this.addAttribute("uv",new z(k,2));0===d?this.computeVertexNormals():
-this.normalizeNormals()}function Gc(a,b){O.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Pb(a,b));this.mergeVertices()}function Pb(a,b){ta.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Hc(a,b){O.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new kb(a,b));this.mergeVertices()}
-function kb(a,b){ta.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Ic(a,b){O.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Qb(a,b));this.mergeVertices()}function Qb(a,b){var c=(1+Math.sqrt(5))/2;ta.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11,
-5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Jc(a,b){O.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Rb(a,b));this.mergeVertices()}function Rb(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;ta.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,
-d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Kc(a,b,c,d,e,f){O.call(this);this.type="TubeGeometry";this.parameters={path:a,
-tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new Sb(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function Sb(a,b,c,d,e){function f(e){var f=a.getPointAt(e/b),l=g.normals[e];e=g.binormals[e];for(n=0;n<=d;n++){var r=n/d*Math.PI*2,t=Math.sin(r),r=-Math.cos(r);k.x=r*l.x+t*e.x;k.y=r*l.y+t*e.y;k.z=r*l.z+t*e.z;k.normalize();m.push(k.x,
-k.y,k.z);h.x=f.x+c*k.x;h.y=f.y+c*k.y;h.z=f.z+c*k.z;q.push(h.x,h.y,h.z)}}F.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new p,k=new p,l=new E,r,n,q=[],m=[],u=[],v=[];for(r=0;r<b;r++)f(r);f(!1===e?b:0);for(r=0;r<=b;r++)for(n=0;n<=d;n++)l.x=r/b,l.y=n/d,u.push(l.x,l.y);(function(){for(n=
-1;n<=b;n++)for(r=1;r<=d;r++){var a=(d+1)*n+(r-1),c=(d+1)*n+r,e=(d+1)*(n-1)+r;v.push((d+1)*(n-1)+(r-1),a,e);v.push(a,c,e)}})();this.setIndex(v);this.addAttribute("position",new z(q,3));this.addAttribute("normal",new z(m,3));this.addAttribute("uv",new z(u,2))}function Lc(a,b,c,d,e,f,g){O.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");
-this.fromBufferGeometry(new Tb(a,b,c,d,e,f));this.mergeVertices()}function Tb(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}F.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||100;b=b||40;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;var h=[],k=[],l=[],r=[],n,q=new p,m=new p,u=new p,v=new p,x=new p,y=new p,A=new p;for(n=
-0;n<=c;++n){var I=n/c*e*Math.PI*2;g(I,e,f,a,u);g(I+.01,e,f,a,v);y.subVectors(v,u);A.addVectors(v,u);x.crossVectors(y,A);A.crossVectors(x,y);x.normalize();A.normalize();for(I=0;I<=d;++I){var B=I/d*Math.PI*2,H=-b*Math.cos(B),B=b*Math.sin(B);q.x=u.x+(H*A.x+B*x.x);q.y=u.y+(H*A.y+B*x.y);q.z=u.z+(H*A.z+B*x.z);k.push(q.x,q.y,q.z);m.subVectors(q,u).normalize();l.push(m.x,m.y,m.z);r.push(n/c);r.push(I/d)}}for(I=1;I<=c;I++)for(n=1;n<=d;n++)a=(d+1)*I+(n-1),b=(d+1)*I+n,e=(d+1)*(I-1)+n,h.push((d+1)*(I-1)+(n-1),
-a,e),h.push(a,b,e);this.setIndex(h);this.addAttribute("position",new z(k,3));this.addAttribute("normal",new z(l,3));this.addAttribute("uv",new z(r,2))}function Mc(a,b,c,d,e){O.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Ub(a,b,c,d,e));this.mergeVertices()}function Ub(a,b,c,d,e){F.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||100;
-b=b||40;c=Math.floor(c)||8;d=Math.floor(d)||6;e=e||2*Math.PI;var f=[],g=[],h=[],k=[],l=new p,r=new p,n=new p,q,m;for(q=0;q<=c;q++)for(m=0;m<=d;m++){var u=m/d*e,v=q/c*Math.PI*2;r.x=(a+b*Math.cos(v))*Math.cos(u);r.y=(a+b*Math.cos(v))*Math.sin(u);r.z=b*Math.sin(v);g.push(r.x,r.y,r.z);l.x=a*Math.cos(u);l.y=a*Math.sin(u);n.subVectors(r,l).normalize();h.push(n.x,n.y,n.z);k.push(m/d);k.push(q/c)}for(q=1;q<=c;q++)for(m=1;m<=d;m++)a=(d+1)*(q-1)+m-1,b=(d+1)*(q-1)+m,e=(d+1)*q+m,f.push((d+1)*q+m-1,a,e),f.push(a,
-b,e);this.setIndex(f);this.addAttribute("position",new z(g,3));this.addAttribute("normal",new z(h,3));this.addAttribute("uv",new z(k,2))}function ab(a,b){O.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new Ga(a,b));this.mergeVertices()}function Ga(a,b){"undefined"!==typeof a&&(F.call(this),this.type="ExtrudeBufferGeometry",a=Array.isArray(a)?a:[a],this.addShapeList(a,b),this.computeVertexNormals())}function Nc(a,b){O.call(this);this.type="TextGeometry";
-this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Vb(a,b));this.mergeVertices()}function Vb(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new O;a=c.generateShapes(a,b.size,b.curveSegments);b.amount=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);Ga.call(this,a,b);this.type="TextBufferGeometry"}
-function Oc(a,b,c,d,e,f,g){O.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new lb(a,b,c,d,e,f,g));this.mergeVertices()}function lb(a,b,c,d,e,f,g){F.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||50;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==
-d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;var h=f+g,k,l,r=0,n=[],q=new p,m=new p,u=[],v=[],x=[],y=[];for(l=0;l<=c;l++){var A=[],I=l/c;for(k=0;k<=b;k++){var B=k/b;q.x=-a*Math.cos(d+B*e)*Math.sin(f+I*g);q.y=a*Math.cos(f+I*g);q.z=a*Math.sin(d+B*e)*Math.sin(f+I*g);v.push(q.x,q.y,q.z);m.set(q.x,q.y,q.z).normalize();x.push(m.x,m.y,m.z);y.push(B,1-I);A.push(r++)}n.push(A)}for(l=0;l<c;l++)for(k=0;k<b;k++)a=n[l][k+1],d=n[l][k],e=n[l+1][k],g=n[l+1][k+1],(0!==l||0<f)&&u.push(a,d,
-g),(l!==c-1||h<Math.PI)&&u.push(d,e,g);this.setIndex(u);this.addAttribute("position",new z(v,3));this.addAttribute("normal",new z(x,3));this.addAttribute("uv",new z(y,2))}function Pc(a,b,c,d,e,f){O.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new Wb(a,b,c,d,e,f));this.mergeVertices()}function Wb(a,b,c,d,e,f){F.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,
-outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||20;b=b||50;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=[],h=[],k=[],l=[],r=a,n=(b-a)/d,q=new p,m=new E,u,v;for(u=0;u<=d;u++){for(v=0;v<=c;v++)a=e+v/c*f,q.x=r*Math.cos(a),q.y=r*Math.sin(a),h.push(q.x,q.y,q.z),k.push(0,0,1),m.x=(q.x/b+1)/2,m.y=(q.y/b+1)/2,l.push(m.x,m.y);r+=n}for(u=0;u<d;u++)for(b=u*(c+1),v=0;v<c;v++)a=v+b,e=a+c+1,f=a+c+2,r=a+1,g.push(a,e,r),g.push(e,
-f,r);this.setIndex(g);this.addAttribute("position",new z(h,3));this.addAttribute("normal",new z(k,3));this.addAttribute("uv",new z(l,2))}function Qc(a,b,c,d){O.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new Xb(a,b,c,d));this.mergeVertices()}function Xb(a,b,c,d){F.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=Q.clamp(d,
-0,2*Math.PI);var e=[],f=[],g=[],h=1/b,k=new p,l=new E,r;for(r=0;r<=b;r++){var n=c+r*h*d;var q=Math.sin(n),m=Math.cos(n);for(n=0;n<=a.length-1;n++)k.x=a[n].x*q,k.y=a[n].y,k.z=a[n].x*m,f.push(k.x,k.y,k.z),l.x=r/b,l.y=n/(a.length-1),g.push(l.x,l.y)}for(r=0;r<b;r++)for(n=0;n<a.length-1;n++)c=n+r*a.length,h=c+a.length,k=c+a.length+1,l=c+1,e.push(c,h,l),e.push(h,k,l);this.setIndex(e);this.addAttribute("position",new z(f,3));this.addAttribute("uv",new z(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=
-this.attributes.normal.array,e=new p,f=new p,g=new p,c=b*a.length*3,n=r=0;r<a.length;r++,n+=3)e.x=d[n+0],e.y=d[n+1],e.z=d[n+2],f.x=d[c+n+0],f.y=d[c+n+1],f.z=d[c+n+2],g.addVectors(e,f).normalize(),d[n+0]=d[c+n+0]=g.x,d[n+1]=d[c+n+1]=g.y,d[n+2]=d[c+n+2]=g.z}function Yb(a,b){O.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new Zb(a,
-b));this.mergeVertices()}function Zb(a,b){function c(a){var c,h=e.length/3;a=a.extractPoints(b);var l=a.shape,r=a.holes;if(!1===Ha.isClockWise(l))for(l=l.reverse(),a=0,c=r.length;a<c;a++){var m=r[a];!0===Ha.isClockWise(m)&&(r[a]=m.reverse())}var p=Ha.triangulateShape(l,r);a=0;for(c=r.length;a<c;a++)m=r[a],l=l.concat(m);a=0;for(c=l.length;a<c;a++)m=l[a],e.push(m.x,m.y,0),f.push(0,0,1),g.push(m.x,m.y);a=0;for(c=p.length;a<c;a++)l=p[a],d.push(l[0]+h,l[1]+h,l[2]+h),k+=3}F.call(this);this.type="ShapeBufferGeometry";
-this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,k=0;if(!1===Array.isArray(a))c(a);else for(var l=0;l<a.length;l++)c(a[l]),this.addGroup(h,k,l),h+=k,k=0;this.setIndex(d);this.addAttribute("position",new z(e,3));this.addAttribute("normal",new z(f,3));this.addAttribute("uv",new z(g,2))}function $b(a,b){F.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(Q.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=
-new O;g.fromBufferGeometry(a)}else g=a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,k=g.length;h<k;h++)for(var l=g[h],r=0;3>r;r++){var n=l[f[r]];var m=l[f[(r+1)%3]];d[0]=Math.min(n,m);d[1]=Math.max(n,m);n=d[0]+","+d[1];void 0===e[n]?e[n]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[n].face2=h}for(n in e)if(d=e[n],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.addAttribute("position",
-new z(c,3))}function mb(a,b,c,d,e,f,g,h){O.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new Ua(a,b,c,d,e,f,g,h));this.mergeVertices()}function Ua(a,b,c,d,e,f,g,h){function k(c){var e,f=new E,k=new p,q=0,v=!0===c?a:b,A=!0===c?1:-1;var w=u;for(e=1;e<=d;e++)n.push(0,x*A,0),m.push(0,A,0),t.push(.5,.5),u++;var z=u;for(e=0;e<=d;e++){var D=e/d*h+g,J=Math.cos(D),
-D=Math.sin(D);k.x=v*D;k.y=x*A;k.z=v*J;n.push(k.x,k.y,k.z);m.push(0,A,0);f.x=.5*J+.5;f.y=.5*D*A+.5;t.push(f.x,f.y);u++}for(e=0;e<d;e++)f=w+e,k=z+e,!0===c?r.push(k,k+1,f):r.push(k+1,k,f),q+=3;l.addGroup(y,q,!0===c?1:2);y+=q}F.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var l=this;a=void 0!==a?a:20;b=void 0!==b?b:20;c=void 0!==c?c:100;d=Math.floor(d)||8;e=Math.floor(e)||1;
-f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==h?h:2*Math.PI;var r=[],n=[],m=[],t=[],u=0,v=[],x=c/2,y=0;(function(){var f,k,q=new p,H=new p,w=0,z=(b-a)/c;for(k=0;k<=e;k++){var E=[],D=k/e,F=D*(b-a)+a;for(f=0;f<=d;f++){var L=f/d,J=L*h+g,K=Math.sin(J),J=Math.cos(J);H.x=F*K;H.y=-D*c+x;H.z=F*J;n.push(H.x,H.y,H.z);q.set(K,z,J).normalize();m.push(q.x,q.y,q.z);t.push(L,1-D);E.push(u++)}v.push(E)}for(f=0;f<d;f++)for(k=0;k<e;k++)q=v[k+1][f],H=v[k+1][f+1],z=v[k][f+1],r.push(v[k][f],q,z),r.push(q,H,z),w+=6;l.addGroup(y,
-w,0);y+=w})();!1===f&&(0<a&&k(!0),0<b&&k(!1));this.setIndex(r);this.addAttribute("position",new z(n,3));this.addAttribute("normal",new z(m,3));this.addAttribute("uv",new z(t,2))}function Rc(a,b,c,d,e,f,g){mb.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function Sc(a,b,c,d,e,f,g){Ua.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,
-heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function Tc(a,b,c,d){O.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new ac(a,b,c,d));this.mergeVertices()}function ac(a,b,c,d){F.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||50;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],k,l=new p,r=new E;f.push(0,
-0,0);g.push(0,0,1);h.push(.5,.5);var n=0;for(k=3;n<=b;n++,k+=3){var m=c+n/b*d;l.x=a*Math.cos(m);l.y=a*Math.sin(m);f.push(l.x,l.y,l.z);g.push(0,0,1);r.x=(f[k]/a+1)/2;r.y=(f[k+1]/a+1)/2;h.push(r.x,r.y)}for(k=1;k<=b;k++)e.push(k,k+1,0);this.setIndex(e);this.addAttribute("position",new z(f,3));this.addAttribute("normal",new z(g,3));this.addAttribute("uv",new z(h,2))}function bc(a){qa.call(this,{uniforms:Aa.merge([L.lights,{opacity:{value:1}}]),vertexShader:S.shadow_vert,fragmentShader:S.shadow_frag});
-this.transparent=this.lights=!0;Object.defineProperties(this,{opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(a){this.uniforms.opacity.value=a}}});this.setValues(a)}function cc(a){qa.call(this,a);this.type="RawShaderMaterial"}function Oa(a){N.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new D(16777215);this.metalness=this.roughness=.5;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=
-1;this.emissive=new D(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new E(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}
-function nb(a){Oa.call(this);this.defines={PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=.5;this.clearCoatRoughness=this.clearCoat=0;this.setValues(a)}function Ia(a){N.call(this);this.type="MeshPhongMaterial";this.color=new D(16777215);this.specular=new D(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new D(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=
-null;this.normalScale=new E(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;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.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function ob(a){Ia.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}
-function pb(a){N.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new E(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.lights=this.fog=!1;this.setValues(a)}function qb(a){N.call(this);this.type="MeshLambertMaterial";this.color=new D(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=
-null;this.aoMapIntensity=1;this.emissive=new D(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function rb(a){N.call(this);this.type="LineDashedMaterial";this.color=new D(16777215);this.scale=this.linewidth=1;this.dashSize=3;this.gapSize=
-1;this.lights=!1;this.setValues(a)}function be(a,b,c){var d=this,e=!1,f=0,g=0;this.onStart=void 0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)}}function Ja(a){this.manager=void 0!==a?a:wa}function Te(a){this.manager=void 0!==a?a:wa;
-this._parser=null}function ce(a){this.manager=void 0!==a?a:wa;this._parser=null}function Uc(a){this.manager=void 0!==a?a:wa}function de(a){this.manager=void 0!==a?a:wa}function td(a){this.manager=void 0!==a?a:wa}function R(a,b){w.call(this);this.type="Light";this.color=new D(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function ud(a,b,c){R.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(w.DefaultUp);this.updateMatrix();this.groundColor=new D(b)}function sb(a){this.camera=
-a;this.bias=0;this.radius=1;this.mapSize=new E(512,512);this.map=null;this.matrix=new P}function vd(){sb.call(this,new X(50,1,.5,500))}function wd(a,b,c,d,e,f){R.call(this,a,b);this.type="SpotLight";this.position.copy(w.DefaultUp);this.updateMatrix();this.target=new w;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==
-f?f:1;this.shadow=new vd}function xd(a,b,c,d){R.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new sb(new X(90,1,.5,500))}function yd(){sb.call(this,new Fb(-5,5,5,-5,.5,500))}function zd(a,b){R.call(this,a,b);this.type="DirectionalLight";this.position.copy(w.DefaultUp);this.updateMatrix();this.target=new w;this.shadow=
-new yd}function Ad(a,b){R.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function Bd(a,b,c,d){R.call(this,a,b);this.type="RectAreaLight";this.position.set(0,1,0);this.updateMatrix();this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function xa(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=c}function Cd(a,b,c,d){xa.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=
-this._weightPrev=-0}function Vc(a,b,c,d){xa.call(this,a,b,c,d)}function Dd(a,b,c,d){xa.call(this,a,b,c,d)}function tb(a,b,c,d){if(void 0===a)throw Error("track name is undefined");if(void 0===b||0===b.length)throw Error("no keyframes in track named "+a);this.name=a;this.times=oa.convertArray(b,this.TimeBufferType);this.values=oa.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation);this.validate();this.optimize()}function dc(a,b,c,d){tb.call(this,a,b,c,d)}function Ed(a,
-b,c,d){xa.call(this,a,b,c,d)}function Wc(a,b,c,d){tb.call(this,a,b,c,d)}function ec(a,b,c,d){tb.call(this,a,b,c,d)}function Fd(a,b,c,d){tb.call(this,a,b,c,d)}function Gd(a,b,c){tb.call(this,a,b,c)}function Hd(a,b,c,d){tb.call(this,a,b,c,d)}function ub(a,b,c,d){tb.apply(this,arguments)}function za(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=Q.generateUUID();0>this.duration&&this.resetDuration();this.optimize()}function Id(a){this.manager=void 0!==a?a:wa;this.textures={}}
-function ee(a){this.manager=void 0!==a?a:wa}function fc(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}}function fe(a){"boolean"===typeof a&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),a=void 0);this.manager=void 0!==a?a:wa;this.withCredentials=!1}function Ue(a){this.manager=void 0!==a?a:wa;this.texturePath=""}function Ve(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-
-e)*f+b*a+c}function vb(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function wb(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function ka(){this.arcLengthDivisions=200}function Pa(a,b){this.arcLengthDivisions=200;this.v1=a;this.v2=b}function Xc(){this.arcLengthDivisions=200;this.curves=[];this.autoClose=!1}function Va(a,b,c,d,e,f,g,h){this.arcLengthDivisions=200;this.aX=a;this.aY=b;this.xRadius=c;this.yRadius=d;this.aStartAngle=e;this.aEndAngle=f;this.aClockwise=g;
-this.aRotation=h||0}function xb(a){this.arcLengthDivisions=200;this.points=void 0===a?[]:a}function gc(a,b,c,d){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c;this.v3=d}function hc(a,b,c){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c}function Yc(a){Xc.call(this);this.currentPoint=new E;a&&this.fromPoints(a)}function yb(){Yc.apply(this,arguments);this.holes=[]}function ge(){this.subPaths=[];this.currentPath=null}function he(a){this.data=a}function We(a){this.manager=void 0!==
-a?a:wa}function ie(a){this.manager=void 0!==a?a:wa}function Xe(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new X;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new X;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function Jd(a,b,c){w.call(this);this.type="CubeCamera";var d=new X(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new p(1,0,0));this.add(d);var e=new X(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new p(-1,0,0));this.add(e);var f=new X(90,
-1,a,b);f.up.set(0,0,1);f.lookAt(new p(0,1,0));this.add(f);var g=new X(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new p(0,-1,0));this.add(g);var h=new X(90,1,a,b);h.up.set(0,-1,0);h.lookAt(new p(0,0,1));this.add(h);var k=new X(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new p(0,0,-1));this.add(k);this.renderTarget=new Cb(c,c,{format:1022,magFilter:1006,minFilter:1006});this.renderTarget.texture.name="CubeCamera";this.updateCubeMap=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=this.renderTarget,
-l=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace=2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.texture.generateMipmaps=l;c.activeCubeFace=5;a.render(b,k,c);a.setRenderTarget(null)}}function je(){w.call(this);this.type="AudioListener";this.context=ke.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null}function ic(a){w.call(this);
-this.type="Audio";this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.loop=!1;this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this.filters=[]}function le(a){ic.call(this,a);this.panner=this.context.createPanner();this.panner.connect(this.gain)}function me(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);
-a.getOutput().connect(this.analyser)}function ne(a,b,c){this.binding=a;this.valueSize=c;a=Float64Array;switch(b){case "quaternion":b=this._slerp;break;case "string":case "bool":a=Array;b=this._select;break;default:b=this._lerp}this.buffer=new a(4*c);this._mixBufferRegion=b;this.referenceCount=this.useCount=this.cumulativeWeight=0}function Ye(a,b,c){c=c||pa.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function pa(a,b,c){this.path=b;this.parsedPath=c||pa.parseTrackName(b);
-this.node=pa.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function Ze(a){this.uuid=Q.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var b={};this._indicesByUUID=b;for(var c=0,d=arguments.length;c!==d;++c)b[arguments[c].uuid]=c;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}
-function $e(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,endingEnd:2400},e=0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=
-this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function af(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Kd(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=Q.generateUUID();
-this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function jc(a,b){this.uuid=Q.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){jc.call(this,a,b);this.meshPerAttribute=c||1}function re(a,b,c){K.call(this,a,b);this.meshPerAttribute=c||1}function bf(a,b,c,d){this.ray=new ib(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 cf(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 df(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function ef(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 ff(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 la(a,b){fa.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 Zc(a){w.call(this);this.material=a;this.render=function(a){}}function $c(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);T.call(this,c,new ba({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function kc(a,b){w.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 ba({fog:!1});this.cone=new T(a,b);this.add(this.cone);this.update()}function gf(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,gf(a.children[c]));return b}function lc(a){for(var b=gf(a),c=new F,d=[],e=[],f=new D(0,0,1),g=new D(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 ba({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});T.call(this,c,d);this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.onBeforeRender()}function mc(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new lb(b,4,2);b=new va({wireframe:!0,fog:!1});fa.call(this,a,b);
-this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function nc(a,b){w.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new ba({fog:!1});b=new F;b.addAttribute("position",new K(new Float32Array(15),3));this.line=new na(b,a);this.add(this.line);this.update()}function oc(a,b,c){w.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new kb(b);
-a.rotateY(.5*Math.PI);this.material=new va({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 K(b,3));this.add(new fa(a,this.material));this.update()}function ad(a,b,c,d){a=a||10;b=b||10;c=new D(void 0!==c?c:4473924);d=new D(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],k=0,l=0,r=-g;k<=b;k++,r+=f){a.push(-g,0,r,g,0,r);a.push(r,0,-g,r,0,g);var n=k===e?c:d;n.toArray(h,l);l+=
-3;n.toArray(h,l);l+=3;n.toArray(h,l);l+=3;n.toArray(h,l);l+=3}b=new F;b.addAttribute("position",new z(a,3));b.addAttribute("color",new z(h,3));c=new ba({vertexColors:2});T.call(this,b,c)}function Ld(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new D(void 0!==e?e:4473924);f=new D(void 0!==f?f:8947848);var g=[],h=[],k;for(k=0;k<=b;k++){var l=k/b*2*Math.PI;var r=Math.sin(l)*a;l=Math.cos(l)*a;g.push(0,0,0);g.push(r,0,l);var n=k&1?e:f;h.push(n.r,n.g,n.b);h.push(n.r,n.g,n.b)}for(k=0;k<=c;k++){n=k&1?e:
-f;var m=a-a/c*k;for(b=0;b<d;b++)l=b/d*2*Math.PI,r=Math.sin(l)*m,l=Math.cos(l)*m,g.push(r,0,l),h.push(n.r,n.g,n.b),l=(b+1)/d*2*Math.PI,r=Math.sin(l)*m,l=Math.cos(l)*m,g.push(r,0,l),h.push(n.r,n.g,n.b)}a=new F;a.addAttribute("position",new z(g,3));a.addAttribute("color",new z(h,3));g=new ba({vertexColors:2});T.call(this,a,g)}function bd(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);T.call(this,c,new ba({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function pc(a,b,c){w.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 ba({fog:!1});this.lightPlane=new na(a,b);this.add(this.lightPlane);a=new F;a.addAttribute("position",new z([0,0,0,0,0,1],
-3));this.targetLine=new na(a,b);this.add(this.targetLine);this.update()}function cd(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/3-1)}var d=new F,e=new ba({color:16777215,vertexColors:1}),f=[],g=[],h={},k=new D(16755200),l=new D(16711680),r=new D(43775),n=new D(16777215),m=new D(3355443);b("n1","n2",k);b("n2","n4",k);b("n4","n3",k);b("n3","n1",k);b("f1","f2",k);b("f2","f4",k);b("f4","f3",k);b("f3","f1",k);b("n1","f1",
-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",r);b("u2","u3",r);b("u3","u1",r);b("c","t",n);b("p","c",m);b("cn1","cn2",m);b("cn3","cn4",m);b("cf1","cf2",m);b("cf3","cf4",m);d.addAttribute("position",new z(f,3));d.addAttribute("color",new z(g,3));T.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 zb(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 K(a,1));d.addAttribute("position",new K(c,3));T.call(this,d,new ba({color:b}));this.matrixAutoUpdate=!1;this.update()}function dd(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 K(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));T.call(this,c,new ba({color:a}));this.geometry.computeBoundingSphere();this.onBeforeRender()}function ed(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();na.call(this,b,new ba({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 fa(b,new va({color:a,opacity:.2,transparent:!0,depthWrite:!1})));this.onBeforeRender()}function Ab(a,b,c,d,e,f){w.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===Md&&(Md=new F,Md.addAttribute("position",new z([0,0,0,0,1,0],3)),te=new Ua(0,.5,1,5,1),te.translate(0,-.5,0));this.position.copy(b);this.line=new na(Md,new ba({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);
-this.cone=new fa(te,new va({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function Nd(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 ba({vertexColors:2});T.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,r){e=((f-e)/k-(g-e)/(k+l)+(g-f)/l)*l;h=((g-f)/l-(h-f)/(l+r)+(h-g)/r)*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 fd(a,b,c,d){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c;this.v3=d}function gd(a,b,c){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=
-c}function hd(a,b){this.arcLengthDivisions=200;this.v1=a;this.v2=b}function Od(a,b,c,d,e,f){Va.call(this,a,b,c,c,d,e,f)}function hf(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");Ka.call(this,a);this.type="catmullrom";this.closed=!0}function jf(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===
-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(ua.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 Q={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*
-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*Q.DEG2RAD},radToDeg:function(a){return a*Q.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))},
-nextPowerOfTwo:function(a){a--;a|=a>>1;a|=a>>2;a|=a>>4;a|=a>>8;a|=a>>16;a++;return a}};Object.defineProperties(E.prototype,{width:{get:function(){return this.x},set:function(a){this.x=a}},height:{get:function(){return this.y},set:function(a){this.y=a}}});Object.assign(E.prototype,{isVector2:!0,set:function(a,b){this.x=a;this.y=b;return this},setScalar:function(a){this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=
-b;break;case 1:this.y=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;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=
-a.x;this.y+=a.y;return this},addScalar:function(a){this.x+=a;this.y+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;return this},subScalar:function(a){this.x-=a;this.y-=a;return this},subVectors:function(a,b){this.x=
-a.x-b.x;this.y=a.y-b.y;return this},multiply:function(a){this.x*=a.x;this.y*=a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divide:function(a){this.x/=a.x;this.y/=a.y;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=
-Math.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(){var a=new E,b=new E;return function(c,d){a.set(c,c);b.set(d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);
-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,
-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 nf=0;ca.DEFAULT_IMAGE=void 0;ca.DEFAULT_MAPPING=300;Object.defineProperty(ca.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(ca.prototype,ua.prototype,{constructor:ca,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,
-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=Q.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(da.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/
-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,
-a.z);this.w=Math.max(this.w,a.w);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));this.w=Math.max(a.w,Math.min(b.w,this.w));return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new da,b=new da);a.set(c,c,c,c);b.set(d,d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,
-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.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(Bb.prototype,ua.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"})}});Cb.prototype=Object.create(Bb.prototype);
-Cb.prototype.constructor=Cb;Cb.prototype.isWebGLRenderTargetCube=!0;Object.assign(Y,{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 r=e[f+1],n=e[f+2];e=e[f+3];if(c!==e||h!==d||k!==r||l!==n){f=1-g;var m=h*d+k*r+l*n+c*e,t=0<=m?1:-1,p=1-m*m;p>Number.EPSILON&&(p=Math.sqrt(p),m=Math.atan2(p,m*t),f=Math.sin(f*m)/p,g=Math.sin(g*m)/p);t*=g;h=h*f+d*t;k=k*f+r*t;l=l*f+n*t;c=c*f+e*t;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(Y.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(Y.prototype,{set:function(a,b,c,d){this._x=
-a;this._y=b;this._z=c;this._w=d;this.onChangeCallback();return this},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=a.w;this.onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c=a._x,d=a._y,e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),k=f(d/2),f=f(e/2),c=g(c/
-2),d=g(d/2),e=g(e/2);"XYZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"YXZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"ZXY"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"ZYX"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"YZX"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f-c*d*e):"XZY"===a&&(this._x=
-c*k*f-h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f+c*d*e);if(!1!==b)this.onChangeCallback();return this},setFromAxisAngle:function(a,b){b/=2;var c=Math.sin(b);this._x=a.x*c;this._y=a.y*c;this._z=a.z*c;this._w=Math.cos(b);this.onChangeCallback();return this},setFromRotationMatrix:function(a){var b=a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],k=b[6],b=b[10],l=c+f+b;0<l?(c=.5/Math.sqrt(l+1),this._w=.25/c,this._x=(k-g)*c,this._y=(d-h)*c,this._z=(e-a)*c):c>f&&c>b?(c=2*
-Math.sqrt(1+c-f-b),this._w=(k-g)/c,this._x=.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=(d-h)/c,this._x=(a+e)/c,this._y=.25*c,this._z=(g+k)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+k)/c,this._z=.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var a=new p,b;return function(c,d){void 0===a&&(a=new p);b=c.dot(d)+1;1E-6>b?(b=0,Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._x=
-a.x;this._y=a.y;this._z=a.z;this._w=b;return this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){this._x*=-1;this._y*=-1;this._z*=-1;this.onChangeCallback();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)},normalize:function(){var a=
-this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);this.onChangeCallback();return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},premultiply:function(a){return this.multiplyQuaternions(a,this)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z;a=a._w;
-var f=b._x,g=b._y,h=b._z;b=b._w;this._x=c*b+a*f+d*h-e*g;this._y=d*b+a*g+e*f-c*h;this._z=e*b+a*h+c*g-d*f;this._w=a*b-c*f-d*g-e*h;this.onChangeCallback();return this},slerp:function(a,b){if(0===b)return this;if(1===b)return this.copy(a);var c=this._x,d=this._y,e=this._z,f=this._w,g=f*a._w+c*a._x+d*a._y+e*a._z;0>g?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,g=-g):this.copy(a);if(1<=g)return this._w=f,this._x=c,this._y=d,this._z=e,this;a=Math.sqrt(1-g*g);if(.001>Math.abs(a))return this._w=
-.5*(f+this._w),this._x=.5*(c+this._x),this._y=.5*(d+this._y),this._z=.5*(e+this._z),this;var h=Math.atan2(a,g),g=Math.sin((1-b)*h)/a;b=Math.sin(b*h)/a;this._w=f*g+this._w*b;this._x=c*g+this._x*b;this._y=d*g+this._y*b;this._z=e*g+this._z*b;this.onChangeCallback();return this},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];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._w;return a},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});Object.assign(p.prototype,{isVector3:!0,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setScalar:function(a){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},setComponent:function(a,
-b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=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;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .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;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=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;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .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;
-return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=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;return this},multiply:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},multiplyVectors:function(a,b){this.x=a.x*
-b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyEuler:function(){var a=new Y;return function(b){b&&b.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.");return this.applyQuaternion(a.setFromEuler(b))}}(),applyAxisAngle:function(){var a=new Y;return function(b,c){return this.applyQuaternion(a.setFromAxisAngle(b,c))}}(),applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+
-a[4]*c+a[7]*d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;var e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]);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;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z;a=a.w;var h=a*b+f*d-g*c,k=a*c+g*b-e*d,l=a*d+e*c-f*b,b=-e*b-f*c-g*d;this.x=h*a+b*-e+k*-g-l*-f;this.y=k*a+b*-f+l*-e-h*-g;this.z=l*a+b*-g+
-h*-f-k*-e;return this},project:function(){var a=new P;return function(b){a.multiplyMatrices(b.projectionMatrix,a.getInverse(b.matrixWorld));return this.applyMatrix4(a)}}(),unproject:function(){var a=new P;return function(b){a.multiplyMatrices(b.matrixWorld,a.getInverse(b.projectionMatrix));return this.applyMatrix4(a)}}(),transformDirection:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;return this.normalize()},
-divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},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);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,a.z);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));return this},
-clampScalar:function(){var a=new p,b=new p;return function(c,d){a.set(c,c,c);b.set(d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);
-this.z=Math.round(this.z);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);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*
-this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},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;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},cross:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),
-this.crossVectors(a,b);b=this.x;var c=this.y,d=this.z;this.x=c*a.z-d*a.y;this.y=d*a.x-b*a.z;this.z=b*a.y-c*a.x;return this},crossVectors:function(a,b){var c=a.x,d=a.y;a=a.z;var e=b.x,f=b.y;b=b.z;this.x=d*b-a*f;this.y=a*e-c*b;this.z=c*f-d*e;return this},projectOnVector:function(a){var b=a.dot(this)/a.lengthSq();return this.copy(a).multiplyScalar(b)},projectOnPlane:function(){var a=new p;return function(b){a.copy(this).projectOnVector(b);return this.sub(a)}}(),reflect:function(){var a=new p;return function(b){return this.sub(a.copy(b).multiplyScalar(2*
-this.dot(b)))}}(),angleTo:function(a){a=this.dot(a)/Math.sqrt(this.lengthSq()*a.lengthSq());return Math.acos(Q.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},distanceToManhattan:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){var b=Math.sin(a.phi)*a.radius;this.x=b*Math.sin(a.theta);this.y=Math.cos(a.phi)*
-a.radius;this.z=b*Math.cos(a.theta);return this},setFromCylindrical:function(a){this.x=a.radius*Math.sin(a.theta);this.y=a.y;this.z=a.radius*Math.cos(a.theta);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y=a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,0).length(),c=this.setFromMatrixColumn(a,1).length();a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,
-4*b)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];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;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this}});Object.assign(P.prototype,
-{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,k,l,r,n,m,t,p,v){var q=this.elements;q[0]=a;q[4]=b;q[8]=c;q[12]=d;q[1]=e;q[5]=f;q[9]=g;q[13]=h;q[2]=k;q[6]=l;q[10]=r;q[14]=n;q[3]=m;q[7]=t;q[11]=p;q[15]=v;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new P).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];b[9]=a[9];b[10]=a[10];
-b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x,b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(){var a=new p;return function(b){var c=this.elements,d=b.elements,
-e=1/a.setFromMatrixColumn(b,0).length(),f=1/a.setFromMatrixColumn(b,1).length();b=1/a.setFromMatrixColumn(b,2).length();c[0]=d[0]*e;c[1]=d[1]*e;c[2]=d[2]*e;c[4]=d[4]*f;c[5]=d[5]*f;c[6]=d[6]*f;c[8]=d[8]*b;c[9]=d[9]*b;c[10]=d[10]*b;return this}}(),makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c),c=Math.sin(c),g=Math.cos(d),d=Math.sin(d),
-h=Math.cos(e),e=Math.sin(e);if("XYZ"===a.order){var k=f*h;var l=f*e;var r=c*h;a=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=l+r*d;b[5]=k-a*d;b[9]=-c*g;b[2]=a-k*d;b[6]=r+l*d;b[10]=f*g}else"YXZ"===a.order?(k=g*h,l=g*e,r=d*h,a=d*e,b[0]=k+a*c,b[4]=r*c-l,b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=l*c-r,b[6]=a+k*c,b[10]=f*g):"ZXY"===a.order?(k=g*h,l=g*e,r=d*h,a=d*e,b[0]=k-a*c,b[4]=-f*e,b[8]=r+l*c,b[1]=l+r*c,b[5]=f*h,b[9]=a-k*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(k=f*h,l=f*e,r=c*h,a=c*e,b[0]=g*h,b[4]=r*d-l,
-b[8]=k*d+a,b[1]=g*e,b[5]=a*d+k,b[9]=l*d-r,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(k=f*g,l=f*d,r=c*g,a=c*d,b[0]=g*h,b[4]=a-k*e,b[8]=r*e+l,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=l*e+r,b[10]=k-a*e):"XZY"===a.order&&(k=f*g,l=f*d,r=c*g,a=c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=k*e+a,b[5]=f*h,b[9]=l*e-r,b[2]=r*e-l,b[6]=c*h,b[10]=a*e+k);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(a){var b=this.elements,c=a._x,d=a._y,e=a._z,f=a._w,g=c+c,h=d+d,k=
-e+e;a=c*g;var l=c*h,c=c*k,r=d*h,d=d*k,e=e*k,g=f*g,h=f*h,f=f*k;b[0]=1-(r+e);b[4]=l-f;b[8]=c+h;b[1]=l+f;b[5]=1-(a+e);b[9]=d-g;b[2]=c-h;b[6]=d+g;b[10]=1-(a+r);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},lookAt:function(){var a=new p,b=new p,c=new p;return function(d,e,f){var g=this.elements;c.subVectors(d,e);0===c.lengthSq()&&(c.z=1);c.normalize();a.crossVectors(f,c);0===a.lengthSq()&&(1===Math.abs(f.z)?c.x+=1E-4:c.z+=1E-4,c.normalize(),a.crossVectors(f,c));a.normalize();b.crossVectors(c,
-a);g[0]=a.x;g[4]=b.x;g[8]=c.x;g[1]=a.y;g[5]=b.y;g[9]=c.y;g[2]=a.z;g[6]=b.z;g[10]=c.z;return this}}(),multiply:function(a,b){return void 0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):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[4],f=c[8],g=c[12],h=c[1],k=c[5],
-l=c[9],r=c[13],n=c[2],m=c[6],t=c[10],p=c[14],v=c[3],x=c[7],y=c[11],c=c[15],A=d[0],I=d[4],B=d[8],H=d[12],w=d[1],z=d[5],E=d[9],D=d[13],F=d[2],L=d[6],J=d[10],K=d[14],U=d[3],M=d[7],V=d[11],d=d[15];b[0]=a*A+e*w+f*F+g*U;b[4]=a*I+e*z+f*L+g*M;b[8]=a*B+e*E+f*J+g*V;b[12]=a*H+e*D+f*K+g*d;b[1]=h*A+k*w+l*F+r*U;b[5]=h*I+k*z+l*L+r*M;b[9]=h*B+k*E+l*J+r*V;b[13]=h*H+k*D+l*K+r*d;b[2]=n*A+m*w+t*F+p*U;b[6]=n*I+m*z+t*L+p*M;b[10]=n*B+m*E+t*J+p*V;b[14]=n*H+m*D+t*K+p*d;b[3]=v*A+x*w+y*F+c*U;b[7]=v*I+x*z+y*L+c*M;b[11]=v*B+
-x*E+y*J+c*V;b[15]=v*H+x*D+y*K+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},applyToBufferAttribute:function(){var a=new p;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.applyMatrix4(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),determinant:function(){var a=this.elements,b=a[0],c=a[4],d=a[8],e=
-a[12],f=a[1],g=a[5],h=a[9],k=a[13],l=a[2],r=a[6],n=a[10],m=a[14];return a[3]*(+e*h*r-d*k*r-e*g*n+c*k*n+d*g*m-c*h*m)+a[7]*(+b*h*m-b*k*n+e*f*n-d*f*m+d*k*l-e*h*l)+a[11]*(+b*k*r-b*g*m-e*f*r+c*f*m+e*g*l-c*k*l)+a[15]*(-d*g*l-b*h*r+b*g*n+d*f*r-c*f*n+c*h*l)},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return this},setPosition:function(a){var b=this.elements;
-b[12]=a.x;b[13]=a.y;b[14]=a.z;return this},getInverse:function(a,b){var c=this.elements,d=a.elements;a=d[0];var e=d[1],f=d[2],g=d[3],h=d[4],k=d[5],l=d[6],m=d[7],n=d[8],q=d[9],t=d[10],p=d[11],v=d[12],x=d[13],y=d[14],d=d[15],A=q*y*m-x*t*m+x*l*p-k*y*p-q*l*d+k*t*d,I=v*t*m-n*y*m-v*l*p+h*y*p+n*l*d-h*t*d,B=n*x*m-v*q*m+v*k*p-h*x*p-n*k*d+h*q*d,H=v*q*l-n*x*l-v*k*t+h*x*t+n*k*y-h*q*y,w=a*A+e*I+f*B+g*H;if(0===w){if(!0===b)throw Error("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");console.warn("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");
-return this.identity()}b=1/w;c[0]=A*b;c[1]=(x*t*g-q*y*g-x*f*p+e*y*p+q*f*d-e*t*d)*b;c[2]=(k*y*g-x*l*g+x*f*m-e*y*m-k*f*d+e*l*d)*b;c[3]=(q*l*g-k*t*g-q*f*m+e*t*m+k*f*p-e*l*p)*b;c[4]=I*b;c[5]=(n*y*g-v*t*g+v*f*p-a*y*p-n*f*d+a*t*d)*b;c[6]=(v*l*g-h*y*g-v*f*m+a*y*m+h*f*d-a*l*d)*b;c[7]=(h*t*g-n*l*g+n*f*m-a*t*m-h*f*p+a*l*p)*b;c[8]=B*b;c[9]=(v*q*g-n*x*g-v*e*p+a*x*p+n*e*d-a*q*d)*b;c[10]=(h*x*g-v*k*g+v*e*m-a*x*m-h*e*d+a*k*d)*b;c[11]=(n*k*g-h*q*g-n*e*m+a*q*m+h*e*p-a*k*p)*b;c[12]=H*b;c[13]=(n*x*f-v*q*f+v*e*t-a*x*
-t-n*e*y+a*q*y)*b;c[14]=(v*k*f-h*x*f-v*e*l+a*x*l+h*e*y-a*k*y)*b;c[15]=(h*q*f-n*k*f+n*e*l-a*q*l-h*e*t+a*k*t)*b;return this},scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;b[4]*=d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*a[4]+a[5]*a[5]+a[6]*a[6],a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))},makeTranslation:function(a,b,c){this.set(1,
-0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},makeRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,h=d*f;this.set(g*
-e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,h*f+c,h*a-b*e,0,g*a-b*f,h*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){this.makeRotationFromQuaternion(b);this.scale(c);this.setPosition(a);return this},decompose:function(){var a=new p,b=new P;return function(c,d,e){var f=this.elements,g=a.set(f[0],f[1],f[2]).length(),h=a.set(f[4],f[5],f[6]).length(),
-k=a.set(f[8],f[9],f[10]).length();0>this.determinant()&&(g=-g);c.x=f[12];c.y=f[13];c.z=f[14];b.copy(this);c=1/g;var f=1/h,l=1/k;b.elements[0]*=c;b.elements[1]*=c;b.elements[2]*=c;b.elements[4]*=f;b.elements[5]*=f;b.elements[6]*=f;b.elements[8]*=l;b.elements[9]*=l;b.elements[10]*=l;d.setFromRotationMatrix(b);e.x=g;e.y=h;e.z=k;return this}}(),makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");
+var r=new nd([k,l]);r.layers.enable(1);r.layers.enable(2);var n,q;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;k.near=a.near;l.near=a.near;k.far=a.far;l.far=a.far;r.matrixWorld.copy(a.matrixWorld);r.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);r.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 r};this.getStandingMatrix=function(){return g};this.submitFrame=function(){d&&d.isPresenting&&d.submitFrame()};this.dispose=function(){window.removeEventListener("vrdisplaypresentchange",b)}}function qg(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 rg(){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 ia,k=new Da,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,p){if(!f||null===c||0===c.length||g&&!k)g?b(null):a();else{k=g?0:e;var n=4*k,r=m.clippingState||null;l.value=r;r=b(c,t,n,p);for(c=0;c!==n;++c)r[c]=d[c];m.clippingState=r;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=k}}}function $d(a){function b(){ha=new qg(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);Y=new og(C,ha,a);aa=new ng(C,ha,m);aa.scissor(Eb.copy(ba).multiplyScalar(ja));aa.viewport(S.copy(ca).multiplyScalar(ja));X=new mg;fa=new lg(C,ha,aa,X,Y,m,Zd);la=new Pf(C);oa=new $f(C,la,Zd);pa=new cg(oa,Ta);ta=new Xf(C);ka=new kg(J,ha,Y);ra=new bg;qa=new Vf;na=new Rf(J,aa,oa,H);ua=new Zf(C,ha,Ta);va=new Yf(C,ha,Ta);wa=new Mf(J,C,aa,fa,Y);xa=new Nf(J,C,aa,fa,Y);J.info.programs=ka.programs;J.context=C;J.capabilities=
+Y;J.extensions=ha;J.properties=X;J.renderLists=qa;J.state=aa}function c(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");O=!0}function d(a){console.log("THREE.WebGLRenderer: Context Restored.");O=!1;b()}function e(a){a=a.target;a.removeEventListener("dispose",e);f(a);X.remove(a)}function f(a){var b=X.get(a).program;a.program=void 0;void 0!==b&&ka.releaseProgram(b)}function g(a,b,c){a.render(function(a){J.renderBufferImmediate(a,b,c)})}function h(a,b,c){if(a.visible){if(a.layers.test(b.layers))if(a.isLight)w.push(a),
+a.castShadow&&z.push(a);else if(a.isSprite)a.frustumCulled&&!Xd.intersectsSprite(a)||E.push(a);else if(a.isLensFlare)D.push(a);else if(a.isImmediateRenderObject)c&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(md),ea.push(a,null,a.material,Ib.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||Xd.intersectsObject(a)){c&&Ib.setFromMatrixPosition(a.matrixWorld).applyMatrix4(md);var d=pa.update(a),e=a.material;if(Array.isArray(e))for(var f=
+d.groups,g=0,l=f.length;g<l;g++){var k=f[g],n=e[k.materialIndex];n&&n.visible&&ea.push(a,d,n,Ib.z,k)}else e.visible&&ea.push(a,d,e,Ib.z,null)}a=a.children;g=0;for(l=a.length;g<l;g++)h(a[g],b,c)}}function k(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,k=g.geometry,n=void 0===d?g.material:d,g=g.group;if(c.isArrayCamera){Z=c;for(var r=c.cameras,q=0,t=r.length;q<t;q++){var m=r[q];if(h.layers.test(m.layers)){var u=m.bounds,p=u.x*W,x=u.y*ga,v=u.z*W,u=u.w*ga;aa.viewport(S.set(p,x,v,u).multiplyScalar(ja));
+aa.scissor(Eb.set(p,x,v,u).multiplyScalar(ja));aa.setScissorTest(!0);l(h,b,m,k,n,g)}}}else Z=null,l(h,b,c,k,n,g)}}function l(a,b,c,d,e,f){a.onBeforeRender(J,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=n(c,b.fog,e,a);K="";g(a,h,e)}else J.renderBufferDirect(c,b.fog,d,e,a,f);a.onAfterRender(J,b,c,d,e,f)}function r(a,b,c){var d=X.get(a);c=ka.getParameters(a,ra.state,
+z,b,Ea.numPlanes,Ea.numIntersection,c);var g=ka.getProgramCode(a,c),h=d.program,l=!0;if(void 0===h)a.addEventListener("dispose",e);else if(h.code!==g)f(a);else{if(void 0!==c.shaderID)return;l=!1}l&&(c.shaderID?(h=jb[c.shaderID],d.shader={name:a.type,uniforms:Aa.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=ka.acquireProgram(a,d.shader,
+c,g),d.program=h,a.program=h);c=h.getAttributes();if(a.morphTargets)for(g=a.numSupportedMorphTargets=0;g<J.maxMorphTargets;g++)0<=c["morphTarget"+g]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(g=a.numSupportedMorphNormals=0;g<J.maxMorphNormals;g++)0<=c["morphNormal"+g]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Ea.numPlanes,d.numIntersection=Ea.numIntersection,c.clippingPlanes=Ea.uniform;d.fog=b;d.lightsHash=
+ra.state.hash;a.lights&&(c.ambientLightColor.value=ra.state.ambient,c.directionalLights.value=ra.state.directional,c.spotLights.value=ra.state.spot,c.rectAreaLights.value=ra.state.rectArea,c.pointLights.value=ra.state.point,c.hemisphereLights.value=ra.state.hemi,c.directionalShadowMap.value=ra.state.directionalShadowMap,c.directionalShadowMatrix.value=ra.state.directionalShadowMatrix,c.spotShadowMap.value=ra.state.spotShadowMap,c.spotShadowMatrix.value=ra.state.spotShadowMatrix,c.pointShadowMap.value=
+ra.state.pointShadowMap,c.pointShadowMatrix.value=ra.state.pointShadowMatrix);a=d.program.getUniforms();a=db.seqWithValue(a.seq,c);d.uniformsList=a}function n(a,b,c,d){G=0;var e=X.get(c);R&&(Yd||a!==N)&&Ea.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===N&&c.id===V);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:c.lights&&e.lightsHash!==ra.state.hash?c.needsUpdate=!0:void 0===e.numClippingPlanes||e.numClippingPlanes===Ea.numPlanes&&e.numIntersection===
+Ea.numIntersection||(c.needsUpdate=!0));c.needsUpdate&&(r(c,b,d),c.needsUpdate=!1);var f=!1,g=!1,h=!1,l=e.program,k=l.getUniforms(),n=e.shader.uniforms;aa.useProgram(l.program)&&(h=g=f=!0);c.id!==V&&(V=c.id,g=!0);if(f||a!==N){k.setValue(C,"projectionMatrix",a.projectionMatrix);Y.logarithmicDepthBuffer&&k.setValue(C,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));N!==(Z||a)&&(N=Z||a,h=g=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)f=k.map.cameraPosition,void 0!==
+f&&f.setValue(C,Ib.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&k.setValue(C,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(k.setOptional(C,d,"bindMatrix"),k.setOptional(C,d,"bindMatrixInverse"),a=d.skeleton))if(f=a.bones,Y.floatVertexTextures){if(void 0===a.boneTexture){var f=Math.sqrt(4*f.length),f=Q.nextPowerOfTwo(Math.ceil(f)),f=Math.max(f,4),m=new Float32Array(f*f*4);
+m.set(a.boneMatrices);var u=new cb(m,f,f,1023,1015);a.boneMatrices=m;a.boneTexture=u;a.boneTextureSize=f}k.setValue(C,"boneTexture",a.boneTexture);k.setValue(C,"boneTextureSize",a.boneTextureSize)}else k.setOptional(C,a,"boneMatrices");if(g){k.setValue(C,"toneMappingExposure",J.toneMappingExposure);k.setValue(C,"toneMappingWhitePoint",J.toneMappingWhitePoint);c.lights&&(g=h,n.ambientLightColor.needsUpdate=g,n.directionalLights.needsUpdate=g,n.pointLights.needsUpdate=g,n.spotLights.needsUpdate=g,n.rectAreaLights.needsUpdate=
+g,n.hemisphereLights.needsUpdate=g);b&&c.fog&&(n.fogColor.value=b.color,b.isFog?(n.fogNear.value=b.near,n.fogFar.value=b.far):b.isFogExp2&&(n.fogDensity.value=b.density));if(c.isMeshBasicMaterial||c.isMeshLambertMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.isMeshNormalMaterial||c.isMeshDepthMaterial||c.isMeshDistanceMaterial){n.opacity.value=c.opacity;c.color&&(n.diffuse.value=c.color);c.emissive&&n.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);c.map&&(n.map.value=
+c.map);c.alphaMap&&(n.alphaMap.value=c.alphaMap);c.specularMap&&(n.specularMap.value=c.specularMap);c.envMap&&(n.envMap.value=c.envMap,n.flipEnvMap.value=c.envMap&&c.envMap.isCubeTexture?-1:1,n.reflectivity.value=c.reflectivity,n.refractionRatio.value=c.refractionRatio);c.lightMap&&(n.lightMap.value=c.lightMap,n.lightMapIntensity.value=c.lightMapIntensity);c.aoMap&&(n.aoMap.value=c.aoMap,n.aoMapIntensity.value=c.aoMapIntensity);if(c.map)var p=c.map;else c.specularMap?p=c.specularMap:c.displacementMap?
+p=c.displacementMap:c.normalMap?p=c.normalMap:c.bumpMap?p=c.bumpMap:c.roughnessMap?p=c.roughnessMap:c.metalnessMap?p=c.metalnessMap:c.alphaMap?p=c.alphaMap:c.emissiveMap&&(p=c.emissiveMap);void 0!==p&&(p.isWebGLRenderTarget&&(p=p.texture),b=p.offset,p=p.repeat,n.offsetRepeat.value.set(b.x,b.y,p.x,p.y))}c.isLineBasicMaterial?(n.diffuse.value=c.color,n.opacity.value=c.opacity):c.isLineDashedMaterial?(n.diffuse.value=c.color,n.opacity.value=c.opacity,n.dashSize.value=c.dashSize,n.totalSize.value=c.dashSize+
+c.gapSize,n.scale.value=c.scale):c.isPointsMaterial?(n.diffuse.value=c.color,n.opacity.value=c.opacity,n.size.value=c.size*ja,n.scale.value=.5*ga,n.map.value=c.map,null!==c.map&&(p=c.map.offset,c=c.map.repeat,n.offsetRepeat.value.set(p.x,p.y,c.x,c.y))):c.isMeshLambertMaterial?c.emissiveMap&&(n.emissiveMap.value=c.emissiveMap):c.isMeshToonMaterial?(q(n,c),c.gradientMap&&(n.gradientMap.value=c.gradientMap)):c.isMeshPhongMaterial?q(n,c):c.isMeshPhysicalMaterial?(n.clearCoat.value=c.clearCoat,n.clearCoatRoughness.value=
+c.clearCoatRoughness,t(n,c)):c.isMeshStandardMaterial?t(n,c):c.isMeshDepthMaterial?c.displacementMap&&(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias):c.isMeshDistanceMaterial?(c.displacementMap&&(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias),n.referencePosition.value.copy(c.referencePosition),n.nearDistance.value=c.nearDistance,
+n.farDistance.value=c.farDistance):c.isMeshNormalMaterial&&(c.bumpMap&&(n.bumpMap.value=c.bumpMap,n.bumpScale.value=c.bumpScale),c.normalMap&&(n.normalMap.value=c.normalMap,n.normalScale.value.copy(c.normalScale)),c.displacementMap&&(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias));void 0!==n.ltcMat&&(n.ltcMat.value=L.LTC_MAT_TEXTURE);void 0!==n.ltcMag&&(n.ltcMag.value=L.LTC_MAG_TEXTURE);db.upload(C,e.uniformsList,
+n,J)}k.setValue(C,"modelViewMatrix",d.modelViewMatrix);k.setValue(C,"normalMatrix",d.normalMatrix);k.setValue(C,"modelMatrix",d.matrixWorld);return l}function q(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 t(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 m(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"),x=void 0!==a.context?a.context:null,y=void 0!==a.alpha?a.alpha:!1,A=void 0!==a.depth?a.depth:!0,I=void 0!==a.stencil?a.stencil:!0,B=void 0!==a.antialias?a.antialias:!1,H=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,sa=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,w=[],z=[],ea=null,E=[],D=[];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 J=this,O=!1,U=null,M=null,V=-1,K="",N=null,Z=null,S=new da,Eb=new da,T=null,G=0,W=v.width,ga=v.height,ja=1,ca=new da(0,0,W,ga),ba=new da(0,0,W,ga),
+Se=!1,Xd=new ld,Ea=new rg,R=!1,Yd=!1,md=new P,Ib=new p,Zd={geometries:0,textures:0},Ta={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:Ta,memory:Zd,programs:null};try{y={alpha:y,depth:A,stencil:I,antialias:B,premultipliedAlpha:H,preserveDrawingBuffer:sa};var C=x||v.getContext("webgl",y)||v.getContext("experimental-webgl",y);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(sg){console.error("THREE.WebGLRenderer: "+sg)}var ha,Y,aa,X,fa,la,oa,pa,ra,ka,qa,na,ta,ua,va,wa,xa;b();var ia=new pg(J);this.vr=ia;var za=new Me(J,pa,Y.maxTextureSize);this.shadowMap=za;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 ja};this.setPixelRatio=function(a){void 0!==a&&(ja=a,this.setSize(W,ga,!1))};this.getSize=function(){return{width:W,height:ga}};this.setSize=function(a,b,c){var d=ia.getDevice();d&&d.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):
+(W=a,ga=b,v.width=a*ja,v.height=b*ja,!1!==c&&(v.style.width=a+"px",v.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(){return{width:W*ja,height:ga*ja}};this.setDrawingBufferSize=function(a,b,c){W=a;ga=b;ja=c;v.width=a*c;v.height=b*c;this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){ca.set(a,ga-b-d,c,d);aa.viewport(S.copy(ca).multiplyScalar(ja))};this.setScissor=function(a,b,c,d){ba.set(a,ga-b-d,c,d);aa.scissor(Eb.copy(ba).multiplyScalar(ja))};this.setScissorTest=
+function(a){aa.setScissorTest(Se=a)};this.getClearColor=na.getClearColor;this.setClearColor=na.setClearColor;this.getClearAlpha=na.getClearAlpha;this.setClearAlpha=na.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);qa.dispose();ia.dispose()};this.renderBufferImmediate=function(a,b,c){aa.initAttributes();var d=X.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,l=(g[e+1]+g[e+4]+g[e+7])/3,k=(g[e+2]+g[e+5]+g[e+8])/3;g[e+0]=h;g[e+
+1]=l;g[e+2]=k;g[e+3]=h;g[e+4]=l;g[e+5]=k;g[e+6]=h;g[e+7]=l;g[e+8]=k}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=n(a,b,d,e);a=c.id+"_"+g.id+"_"+(!0===d.wireframe);var h=!1;a!==K&&(K=a,h=!0);e.morphTargetInfluences&&(ta.update(e,c,d,g),h=!0);var l=c.index,k=c.attributes.position;b=1;!0===d.wireframe&&(l=oa.getWireframeAttribute(c),b=2);a=ua;if(null!==l){var r=la.get(l);a=va;a.setIndex(r)}if(h){h=
+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===h&&(h=0);aa.initAttributes();var q=c.attributes,g=g.getAttributes(),t=d.defaultAttributeValues;for(H in g){var m=g[H];if(0<=m){var p=q[H];if(void 0!==p){var u=p.normalized,x=p.itemSize,v=la.get(p);if(void 0!==v){var A=v.buffer,B=v.type,v=v.bytesPerElement;
+if(p.isInterleavedBufferAttribute){var y=p.data,I=y.stride,p=p.offset;y&&y.isInstancedInterleavedBuffer?(aa.enableAttributeAndDivisor(m,y.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=y.meshPerAttribute*y.count)):aa.enableAttribute(m);C.bindBuffer(C.ARRAY_BUFFER,A);C.vertexAttribPointer(m,x,B,u,I*v,(h*I+p)*v)}else p.isInstancedBufferAttribute?(aa.enableAttributeAndDivisor(m,p.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=p.meshPerAttribute*p.count)):aa.enableAttribute(m),
+C.bindBuffer(C.ARRAY_BUFFER,A),C.vertexAttribPointer(m,x,B,u,0,h*x*v)}}else if(void 0!==t&&(u=t[H],void 0!==u))switch(u.length){case 2:C.vertexAttrib2fv(m,u);break;case 3:C.vertexAttrib3fv(m,u);break;case 4:C.vertexAttrib4fv(m,u);break;default:C.vertexAttrib1fv(m,u)}}}aa.disableUnusedAttributes()}null!==l&&C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,r.buffer)}r=0;null!==l?r=l.count:void 0!==k&&(r=k.count);l=c.drawRange.start*b;k=null!==f?f.start*b:0;var H=Math.max(l,k);f=Math.max(0,Math.min(r,l+c.drawRange.count*
+b,k+(null!==f?f.count*b:Infinity))-1-H+1);if(0!==f){if(e.isMesh)if(!0===d.wireframe)aa.setLineWidth(d.wireframeLinewidth*(null===U?ja: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===U?ja: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,H,f):a.render(H,f)}};this.compile=function(a,b){w.length=0;z.length=0;a.traverse(function(a){a.isLight&&(w.push(a),a.castShadow&&z.push(a))});ra.setup(w,z,b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=0;c<b.material.length;c++)r(b.material[c],a.fog,b);else r(b.material,a.fog,b)})};this.animate=function(a){function b(){a();(ia.getDevice()||window).requestAnimationFrame(b)}(ia.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(!O){K="";V=-1;N=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();ia.enabled&&(b=ia.getCamera(b));md.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);Xd.setFromMatrix(md);w.length=0;z.length=0;E.length=0;D.length=0;Yd=this.localClippingEnabled;R=Ea.init(this.clippingPlanes,Yd,b);ea=qa.get(a,b);ea.init();h(a,b,J.sortObjects);
+!0===J.sortObjects&&ea.sort();R&&Ea.beginShadows();za.render(z,a,b);ra.setup(w,z,b);R&&Ea.endShadows();Ta.frame++;Ta.calls=0;Ta.vertices=0;Ta.faces=0;Ta.points=0;void 0===c&&(c=null);this.setRenderTarget(c);na.render(ea,a,b,d);d=ea.opaque;var e=ea.transparent;if(a.overrideMaterial){var f=a.overrideMaterial;d.length&&k(d,a,b,f);e.length&&k(e,a,b,f)}else d.length&&k(d,a,b),e.length&&k(e,a,b);xa.render(E,a,b);wa.render(D,a,b,S);c&&fa.updateRenderTargetMipmap(c);aa.buffers.depth.setTest(!0);aa.buffers.depth.setMask(!0);
+aa.buffers.color.setMask(!0);ia.enabled&&ia.submitFrame()}};this.setFaceCulling=function(a,b){aa.setCullFace(a);aa.setFlipSided(0===b)};this.allocTextureUnit=function(){var a=G;a>=Y.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+a+" texture units while this GPU supports only "+Y.maxTextures);G+=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);fa.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);fa.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?fa.setTextureCube(b,c):fa.setTextureCubeDynamic(b,c)}}();this.getRenderTarget=function(){return U};this.setRenderTarget=function(a){(U=a)&&void 0===X.get(a).__webglFramebuffer&&fa.setupRenderTarget(a);var b=null,c=!1;a?(b=X.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube&&(b=b[a.activeCubeFace],c=!0),S.copy(a.viewport),Eb.copy(a.scissor),T=a.scissorTest):(S.copy(ca).multiplyScalar(ja),Eb.copy(ba).multiplyScalar(ja),T=Se);M!==b&&(C.bindFramebuffer(C.FRAMEBUFFER,b),M=b);aa.viewport(S);
+aa.scissor(Eb);aa.setScissorTest(T);c&&(c=X.get(a.texture),C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,c.__webglTexture,a.activeMipMapLevel))};this.readRenderTargetPixels=function(a,b,c,d,e,f){if(a&&a.isWebGLRenderTarget){var g=X.get(a).__webglFramebuffer;if(g){var h=!1;g!==M&&(C.bindFramebuffer(C.FRAMEBUFFER,g),h=!0);try{var l=a.texture,k=l.format,n=l.type;1023!==k&&m(k)!==C.getParameter(C.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):
+1009===n||m(n)===C.getParameter(C.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n&&(ha.get("OES_texture_float")||ha.get("WEBGL_color_buffer_float"))||1016===n&&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,m(k),m(n),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,M)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")}}function Jb(a,b){this.name="";this.color=new D(a);this.density=void 0!==b?b:2.5E-4}function Kb(a,b,c){this.name="";this.color=new D(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function od(){w.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function ae(a,b,c,d,e){w.call(this);this.lensFlares=
+[];this.positionScreen=new p;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)}function $a(a){N.call(this);this.type="SpriteMaterial";this.color=new D(16777215);this.map=null;this.rotation=0;this.lights=this.fog=!1;this.setValues(a)}function zc(a){w.call(this);this.type="Sprite";this.material=void 0!==a?a:new $a}function Ac(){w.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Bc(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 P)}function pd(){w.call(this);this.type="Bone"}function qd(a,b){fa.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new P;this.bindMatrixInverse=new P;a=this.initBones();a=
+new Bc(a);this.bind(a,this.matrixWorld);this.normalizeSkinWeights()}function ba(a){N.call(this);this.type="LineBasicMaterial";this.color=new D(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(a)}function na(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new T(a,b);w.call(this);this.type="Line";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new ba({color:16777215*
+Math.random()})}function T(a,b){na.call(this,a,b);this.type="LineSegments"}function rd(a,b){na.call(this,a,b);this.type="LineLoop"}function Fa(a){N.call(this);this.type="PointsMaterial";this.color=new D(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=!1;this.setValues(a)}function Lb(a,b){w.call(this);this.type="Points";this.geometry=void 0!==a?a:new F;this.material=void 0!==b?b:new Fa({color:16777215*Math.random()})}function Cc(){w.call(this);this.type="Group"}function sd(a,
+b,c,d,e,f,g,h,k){function l(){requestAnimationFrame(l);a.readyState>=a.HAVE_CURRENT_DATA&&(r.needsUpdate=!0)}ca.call(this,a,b,c,d,e,f,g,h,k);this.generateMipmaps=!1;var r=this;l()}function Mb(a,b,c,d,e,f,g,h,k,l,r,n){ca.call(this,null,f,g,h,k,l,d,e,r,n);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Dc(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);ca.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=this.flipY=!1}function Nb(a){F.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var k=a.faces;var l=0;for(d=k.length;l<d;l++){var r=k[l];for(c=0;3>c;c++){var n=r[h[c]];var q=r[h[(c+1)%3]];f[0]=Math.min(n,q);f[1]=Math.max(n,q);n=f[0]+
+","+f[1];void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]})}}for(n in g)l=g[n],h=a.vertices[l.index1],b.push(h.x,h.y,h.z),h=a.vertices[l.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry){var h=new p;if(null!==a.index){k=a.attributes.position;r=a.index;var t=a.groups;0===t.length&&(t=[{start:0,count:r.count,materialIndex:0}]);a=0;for(e=t.length;a<e;++a)for(l=t[a],c=l.start,d=l.count,l=c,d=c+d;l<d;l+=3)for(c=0;3>c;c++)n=r.getX(l+c),q=r.getX(l+(c+1)%3),f[0]=Math.min(n,q),f[1]=Math.max(n,q),n=f[0]+
+","+f[1],void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]});for(n in g)l=g[n],h.fromBufferAttribute(k,l.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(k,l.index2),b.push(h.x,h.y,h.z)}else for(k=a.attributes.position,l=0,d=k.count/3;l<d;l++)for(c=0;3>c;c++)g=3*l+c,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z),g=3*l+(c+1)%3,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z)}this.addAttribute("position",new z(b,3))}function Ec(a,b,c){O.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,
+stacks:c};this.fromBufferGeometry(new Ob(a,b,c));this.mergeVertices()}function Ob(a,b,c){F.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new p,k=new p,l=new p,r=new p,n=new p,q,t,m=b+1;for(q=0;q<=c;q++){var v=q/c;for(t=0;t<=b;t++){var x=t/b,k=a(x,v,k);e.push(k.x,k.y,k.z);0<=x-1E-5?(l=a(x-1E-5,v,l),r.subVectors(k,l)):(l=a(x+1E-5,v,l),r.subVectors(l,k));0<=v-1E-5?(l=a(x,v-1E-5,l),n.subVectors(k,l)):(l=a(x,v+1E-5,l),n.subVectors(l,
+k));h.crossVectors(r,n).normalize();f.push(h.x,h.y,h.z);g.push(x,v)}}for(q=0;q<c;q++)for(t=0;t<b;t++)a=q*m+t+1,h=(q+1)*m+t+1,k=(q+1)*m+t,d.push(q*m+t,a,k),d.push(a,h,k);this.setIndex(d);this.addAttribute("position",new z(e,3));this.addAttribute("normal",new z(f,3));this.addAttribute("uv",new z(g,2))}function Fc(a,b,c,d){O.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new ta(a,b,c,d));this.mergeVertices()}function ta(a,b,
+c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(k[b]=a.x-1);0===c.x&&0===c.z&&(k[b]=d/2/Math.PI+.5)}F.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],k=[];(function(a){for(var c=new p,d=new p,g=new p,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);var k,l,m=c,y=d,A=g,I=Math.pow(2,a),B=[];for(l=0;l<=I;l++){B[l]=[];var H=m.clone().lerp(A,
+l/I),w=y.clone().lerp(A,l/I),z=I-l;for(k=0;k<=z;k++)B[l][k]=0===k&&l===I?H:H.clone().lerp(w,k/z)}for(l=0;l<I;l++)for(k=0;k<2*(I-l)-1;k++)m=Math.floor(k/2),0===k%2?(e(B[l][m+1]),e(B[l+1][m]),e(B[l][m])):(e(B[l][m+1]),e(B[l+1][m+1]),e(B[l+1][m]))}})(d);(function(a){for(var b=new p,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new p,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],k.push(Math.atan2(a.z,
+-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));for(var a=new p,b=new p,c=new p,d=new p,e=new E,f=new E,m=new E,x=0,y=0;x<h.length;x+=9,y+=6){a.set(h[x+0],h[x+1],h[x+2]);b.set(h[x+3],h[x+4],h[x+5]);c.set(h[x+6],h[x+7],h[x+8]);e.set(k[y+0],k[y+1]);f.set(k[y+2],k[y+3]);m.set(k[y+4],k[y+5]);d.copy(a).add(b).add(c).divideScalar(3);var A=Math.atan2(d.z,-d.x);g(e,y+0,a,A);g(f,y+2,b,A);g(m,y+4,c,A)}for(a=0;a<k.length;a+=6)b=k[a+0],c=k[a+2],d=k[a+4],e=Math.min(b,c,d),.9<Math.max(b,
+c,d)&&.1>e&&(.2>b&&(k[a+0]+=1),.2>c&&(k[a+2]+=1),.2>d&&(k[a+4]+=1))})();this.addAttribute("position",new z(h,3));this.addAttribute("normal",new z(h.slice(),3));this.addAttribute("uv",new z(k,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Gc(a,b){O.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Pb(a,b));this.mergeVertices()}function Pb(a,b){ta.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);
+this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Hc(a,b){O.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new kb(a,b));this.mergeVertices()}function kb(a,b){ta.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Ic(a,b){O.call(this);this.type="IcosahedronGeometry";this.parameters=
+{radius:a,detail:b};this.fromBufferGeometry(new Qb(a,b));this.mergeVertices()}function Qb(a,b){var c=(1+Math.sqrt(5))/2;ta.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Jc(a,b){O.call(this);this.type="DodecahedronGeometry";this.parameters=
+{radius:a,detail:b};this.fromBufferGeometry(new Rb(a,b));this.mergeVertices()}function Rb(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;ta.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,
+19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Kc(a,b,c,d,e,f){O.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new Sb(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function Sb(a,
+b,c,d,e){function f(e){var f=a.getPointAt(e/b),l=g.normals[e];e=g.binormals[e];for(n=0;n<=d;n++){var r=n/d*Math.PI*2,t=Math.sin(r),r=-Math.cos(r);k.x=r*l.x+t*e.x;k.y=r*l.y+t*e.y;k.z=r*l.z+t*e.z;k.normalize();m.push(k.x,k.y,k.z);h.x=f.x+c*k.x;h.y=f.y+c*k.y;h.z=f.z+c*k.z;q.push(h.x,h.y,h.z)}}F.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;
+this.normals=g.normals;this.binormals=g.binormals;var h=new p,k=new p,l=new E,r,n,q=[],m=[],u=[],v=[];for(r=0;r<b;r++)f(r);f(!1===e?b:0);for(r=0;r<=b;r++)for(n=0;n<=d;n++)l.x=r/b,l.y=n/d,u.push(l.x,l.y);(function(){for(n=1;n<=b;n++)for(r=1;r<=d;r++){var a=(d+1)*n+(r-1),c=(d+1)*n+r,e=(d+1)*(n-1)+r;v.push((d+1)*(n-1)+(r-1),a,e);v.push(a,c,e)}})();this.setIndex(v);this.addAttribute("position",new z(q,3));this.addAttribute("normal",new z(m,3));this.addAttribute("uv",new z(u,2))}function Lc(a,b,c,d,e,
+f,g){O.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Tb(a,b,c,d,e,f));this.mergeVertices()}function Tb(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}F.call(this);this.type="TorusKnotBufferGeometry";
+this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||100;b=b||40;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;var h=[],k=[],l=[],r=[],n,q=new p,m=new p,u=new p,v=new p,x=new p,y=new p,A=new p;for(n=0;n<=c;++n){var I=n/c*e*Math.PI*2;g(I,e,f,a,u);g(I+.01,e,f,a,v);y.subVectors(v,u);A.addVectors(v,u);x.crossVectors(y,A);A.crossVectors(x,y);x.normalize();A.normalize();for(I=0;I<=d;++I){var B=I/d*Math.PI*2,H=-b*Math.cos(B),B=b*Math.sin(B);q.x=u.x+(H*A.x+B*x.x);q.y=u.y+
+(H*A.y+B*x.y);q.z=u.z+(H*A.z+B*x.z);k.push(q.x,q.y,q.z);m.subVectors(q,u).normalize();l.push(m.x,m.y,m.z);r.push(n/c);r.push(I/d)}}for(I=1;I<=c;I++)for(n=1;n<=d;n++)a=(d+1)*I+(n-1),b=(d+1)*I+n,e=(d+1)*(I-1)+n,h.push((d+1)*(I-1)+(n-1),a,e),h.push(a,b,e);this.setIndex(h);this.addAttribute("position",new z(k,3));this.addAttribute("normal",new z(l,3));this.addAttribute("uv",new z(r,2))}function Mc(a,b,c,d,e){O.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,
+arc:e};this.fromBufferGeometry(new Ub(a,b,c,d,e));this.mergeVertices()}function Ub(a,b,c,d,e){F.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||100;b=b||40;c=Math.floor(c)||8;d=Math.floor(d)||6;e=e||2*Math.PI;var f=[],g=[],h=[],k=[],l=new p,r=new p,n=new p,q,m;for(q=0;q<=c;q++)for(m=0;m<=d;m++){var u=m/d*e,v=q/c*Math.PI*2;r.x=(a+b*Math.cos(v))*Math.cos(u);r.y=(a+b*Math.cos(v))*Math.sin(u);r.z=b*Math.sin(v);g.push(r.x,r.y,r.z);
+l.x=a*Math.cos(u);l.y=a*Math.sin(u);n.subVectors(r,l).normalize();h.push(n.x,n.y,n.z);k.push(m/d);k.push(q/c)}for(q=1;q<=c;q++)for(m=1;m<=d;m++)a=(d+1)*(q-1)+m-1,b=(d+1)*(q-1)+m,e=(d+1)*q+m,f.push((d+1)*q+m-1,a,e),f.push(a,b,e);this.setIndex(f);this.addAttribute("position",new z(g,3));this.addAttribute("normal",new z(h,3));this.addAttribute("uv",new z(k,2))}function ab(a,b){O.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new Ga(a,b));this.mergeVertices()}
+function Ga(a,b){"undefined"!==typeof a&&(F.call(this),this.type="ExtrudeBufferGeometry",a=Array.isArray(a)?a:[a],this.addShapeList(a,b),this.computeVertexNormals())}function Nc(a,b){O.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Vb(a,b));this.mergeVertices()}function Vb(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new O;a=c.generateShapes(a,b.size,b.curveSegments);
+b.amount=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);Ga.call(this,a,b);this.type="TextBufferGeometry"}function Oc(a,b,c,d,e,f,g){O.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new lb(a,b,c,d,e,f,g));this.mergeVertices()}function lb(a,b,c,d,e,f,g){F.call(this);
+this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||50;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;var h=f+g,k,l,r=0,n=[],q=new p,m=new p,u=[],v=[],x=[],y=[];for(l=0;l<=c;l++){var A=[],I=l/c;for(k=0;k<=b;k++){var B=k/b;q.x=-a*Math.cos(d+B*e)*Math.sin(f+I*g);q.y=a*Math.cos(f+I*g);q.z=a*Math.sin(d+B*e)*Math.sin(f+
+I*g);v.push(q.x,q.y,q.z);m.set(q.x,q.y,q.z).normalize();x.push(m.x,m.y,m.z);y.push(B,1-I);A.push(r++)}n.push(A)}for(l=0;l<c;l++)for(k=0;k<b;k++)a=n[l][k+1],d=n[l][k],e=n[l+1][k],g=n[l+1][k+1],(0!==l||0<f)&&u.push(a,d,g),(l!==c-1||h<Math.PI)&&u.push(d,e,g);this.setIndex(u);this.addAttribute("position",new z(v,3));this.addAttribute("normal",new z(x,3));this.addAttribute("uv",new z(y,2))}function Pc(a,b,c,d,e,f){O.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,
+phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new Wb(a,b,c,d,e,f));this.mergeVertices()}function Wb(a,b,c,d,e,f){F.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||20;b=b||50;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=[],h=[],k=[],l=[],r=a,n=(b-a)/d,q=new p,m=new E,u,v;for(u=0;u<=d;u++){for(v=0;v<=c;v++)a=e+v/c*f,q.x=
+r*Math.cos(a),q.y=r*Math.sin(a),h.push(q.x,q.y,q.z),k.push(0,0,1),m.x=(q.x/b+1)/2,m.y=(q.y/b+1)/2,l.push(m.x,m.y);r+=n}for(u=0;u<d;u++)for(b=u*(c+1),v=0;v<c;v++)a=v+b,e=a+c+1,f=a+c+2,r=a+1,g.push(a,e,r),g.push(e,f,r);this.setIndex(g);this.addAttribute("position",new z(h,3));this.addAttribute("normal",new z(k,3));this.addAttribute("uv",new z(l,2))}function Qc(a,b,c,d){O.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new Xb(a,
+b,c,d));this.mergeVertices()}function Xb(a,b,c,d){F.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=Q.clamp(d,0,2*Math.PI);var e=[],f=[],g=[],h=1/b,k=new p,l=new E,r;for(r=0;r<=b;r++){var n=c+r*h*d;var q=Math.sin(n),m=Math.cos(n);for(n=0;n<=a.length-1;n++)k.x=a[n].x*q,k.y=a[n].y,k.z=a[n].x*m,f.push(k.x,k.y,k.z),l.x=r/b,l.y=n/(a.length-1),g.push(l.x,l.y)}for(r=0;r<b;r++)for(n=0;n<a.length-1;n++)c=n+
+r*a.length,h=c+a.length,k=c+a.length+1,l=c+1,e.push(c,h,l),e.push(h,k,l);this.setIndex(e);this.addAttribute("position",new z(f,3));this.addAttribute("uv",new z(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new p,f=new p,g=new p,c=b*a.length*3,n=r=0;r<a.length;r++,n+=3)e.x=d[n+0],e.y=d[n+1],e.z=d[n+2],f.x=d[c+n+0],f.y=d[c+n+1],f.z=d[c+n+2],g.addVectors(e,f).normalize(),d[n+0]=d[c+n+0]=g.x,d[n+1]=d[c+n+1]=g.y,d[n+2]=d[c+n+2]=g.z}function Yb(a,b){O.call(this);
+this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new Zb(a,b));this.mergeVertices()}function Zb(a,b){function c(a){var c,h=e.length/3;a=a.extractPoints(b);var l=a.shape,r=a.holes;if(!1===Ha.isClockWise(l))for(l=l.reverse(),a=0,c=r.length;a<c;a++){var m=r[a];!0===Ha.isClockWise(m)&&(r[a]=m.reverse())}var p=Ha.triangulateShape(l,r);a=0;for(c=r.length;a<
+c;a++)m=r[a],l=l.concat(m);a=0;for(c=l.length;a<c;a++)m=l[a],e.push(m.x,m.y,0),f.push(0,0,1),g.push(m.x,m.y);a=0;for(c=p.length;a<c;a++)l=p[a],d.push(l[0]+h,l[1]+h,l[2]+h),k+=3}F.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,k=0;if(!1===Array.isArray(a))c(a);else for(var l=0;l<a.length;l++)c(a[l]),this.addGroup(h,k,l),h+=k,k=0;this.setIndex(d);this.addAttribute("position",new z(e,3));this.addAttribute("normal",new z(f,3));
+this.addAttribute("uv",new z(g,2))}function $b(a,b){F.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(Q.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new O;g.fromBufferGeometry(a)}else g=a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,k=g.length;h<k;h++)for(var l=g[h],r=0;3>r;r++){var n=l[f[r]];var m=l[f[(r+1)%3]];d[0]=Math.min(n,m);d[1]=Math.max(n,m);n=d[0]+","+d[1];void 0===
+e[n]?e[n]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[n].face2=h}for(n in e)if(d=e[n],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.addAttribute("position",new z(c,3))}function mb(a,b,c,d,e,f,g,h){O.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new Ua(a,b,c,d,e,
+f,g,h));this.mergeVertices()}function Ua(a,b,c,d,e,f,g,h){function k(c){var e,f=new E,k=new p,q=0,v=!0===c?a:b,A=!0===c?1:-1;var w=u;for(e=1;e<=d;e++)n.push(0,x*A,0),m.push(0,A,0),t.push(.5,.5),u++;var z=u;for(e=0;e<=d;e++){var D=e/d*h+g,J=Math.cos(D),D=Math.sin(D);k.x=v*D;k.y=x*A;k.z=v*J;n.push(k.x,k.y,k.z);m.push(0,A,0);f.x=.5*J+.5;f.y=.5*D*A+.5;t.push(f.x,f.y);u++}for(e=0;e<d;e++)f=w+e,k=z+e,!0===c?r.push(k,k+1,f):r.push(k+1,k,f),q+=3;l.addGroup(y,q,!0===c?1:2);y+=q}F.call(this);this.type="CylinderBufferGeometry";
+this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var l=this;a=void 0!==a?a:20;b=void 0!==b?b:20;c=void 0!==c?c:100;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==h?h:2*Math.PI;var r=[],n=[],m=[],t=[],u=0,v=[],x=c/2,y=0;(function(){var f,k,q=new p,H=new p,w=0,z=(b-a)/c;for(k=0;k<=e;k++){var E=[],D=k/e,F=D*(b-a)+a;for(f=0;f<=d;f++){var L=f/d,J=L*h+g,K=Math.sin(J),J=Math.cos(J);H.x=F*K;
+H.y=-D*c+x;H.z=F*J;n.push(H.x,H.y,H.z);q.set(K,z,J).normalize();m.push(q.x,q.y,q.z);t.push(L,1-D);E.push(u++)}v.push(E)}for(f=0;f<d;f++)for(k=0;k<e;k++)q=v[k+1][f],H=v[k+1][f+1],z=v[k][f+1],r.push(v[k][f],q,z),r.push(q,H,z),w+=6;l.addGroup(y,w,0);y+=w})();!1===f&&(0<a&&k(!0),0<b&&k(!1));this.setIndex(r);this.addAttribute("position",new z(n,3));this.addAttribute("normal",new z(m,3));this.addAttribute("uv",new z(t,2))}function Rc(a,b,c,d,e,f,g){mb.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";
+this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function Sc(a,b,c,d,e,f,g){Ua.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function Tc(a,b,c,d){O.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new ac(a,b,c,d));this.mergeVertices()}function ac(a,
+b,c,d){F.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||50;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],k,l=new p,r=new E;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);var n=0;for(k=3;n<=b;n++,k+=3){var m=c+n/b*d;l.x=a*Math.cos(m);l.y=a*Math.sin(m);f.push(l.x,l.y,l.z);g.push(0,0,1);r.x=(f[k]/a+1)/2;r.y=(f[k+1]/a+1)/2;h.push(r.x,r.y)}for(k=1;k<=b;k++)e.push(k,k+1,0);this.setIndex(e);this.addAttribute("position",
+new z(f,3));this.addAttribute("normal",new z(g,3));this.addAttribute("uv",new z(h,2))}function bc(a){qa.call(this,{uniforms:Aa.merge([L.lights,{opacity:{value:1}}]),vertexShader:S.shadow_vert,fragmentShader:S.shadow_frag});this.transparent=this.lights=!0;Object.defineProperties(this,{opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(a){this.uniforms.opacity.value=a}}});this.setValues(a)}function cc(a){qa.call(this,a);this.type="RawShaderMaterial"}function Oa(a){N.call(this);
+this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new D(16777215);this.metalness=this.roughness=.5;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new D(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new E(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;
+this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function nb(a){Oa.call(this);this.defines={PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=.5;this.clearCoatRoughness=this.clearCoat=0;this.setValues(a)}function Ia(a){N.call(this);this.type="MeshPhongMaterial";this.color=new D(16777215);this.specular=new D(1118481);this.shininess=
+30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new D(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new E(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;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.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function ob(a){Ia.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}function pb(a){N.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new E(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=
+this.lights=this.fog=!1;this.setValues(a)}function qb(a){N.call(this);this.type="MeshLambertMaterial";this.color=new D(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new D(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=
+this.morphTargets=this.skinning=!1;this.setValues(a)}function rb(a){N.call(this);this.type="LineDashedMaterial";this.color=new D(16777215);this.scale=this.linewidth=1;this.dashSize=3;this.gapSize=1;this.lights=!1;this.setValues(a)}function be(a,b,c){var d=this,e=!1,f=0,g=0;this.onStart=void 0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===
+g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)}}function Ja(a){this.manager=void 0!==a?a:wa}function Te(a){this.manager=void 0!==a?a:wa;this._parser=null}function ce(a){this.manager=void 0!==a?a:wa;this._parser=null}function Uc(a){this.manager=void 0!==a?a:wa}function de(a){this.manager=void 0!==a?a:wa}function td(a){this.manager=void 0!==a?a:wa}function R(a,b){w.call(this);this.type="Light";this.color=new D(a);this.intensity=void 0!==b?b:1;this.receiveShadow=
+void 0}function ud(a,b,c){R.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(w.DefaultUp);this.updateMatrix();this.groundColor=new D(b)}function sb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new E(512,512);this.map=null;this.matrix=new P}function vd(){sb.call(this,new X(50,1,.5,500))}function wd(a,b,c,d,e,f){R.call(this,a,b);this.type="SpotLight";this.position.copy(w.DefaultUp);this.updateMatrix();this.target=new w;Object.defineProperty(this,"power",
+{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new vd}function xd(a,b,c,d){R.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new sb(new X(90,
+1,.5,500))}function yd(){sb.call(this,new Fb(-5,5,5,-5,.5,500))}function zd(a,b){R.call(this,a,b);this.type="DirectionalLight";this.position.copy(w.DefaultUp);this.updateMatrix();this.target=new w;this.shadow=new yd}function Ad(a,b){R.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function Bd(a,b,c,d){R.call(this,a,b);this.type="RectAreaLight";this.position.set(0,1,0);this.updateMatrix();this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function xa(a,b,c,d){this.parameterPositions=
+a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=c}function Cd(a,b,c,d){xa.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function Vc(a,b,c,d){xa.call(this,a,b,c,d)}function Dd(a,b,c,d){xa.call(this,a,b,c,d)}function tb(a,b,c,d){if(void 0===a)throw Error("track name is undefined");if(void 0===b||0===b.length)throw Error("no keyframes in track named "+a);this.name=a;this.times=oa.convertArray(b,this.TimeBufferType);
+this.values=oa.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation);this.validate();this.optimize()}function dc(a,b,c,d){tb.call(this,a,b,c,d)}function Ed(a,b,c,d){xa.call(this,a,b,c,d)}function Wc(a,b,c,d){tb.call(this,a,b,c,d)}function ec(a,b,c,d){tb.call(this,a,b,c,d)}function Fd(a,b,c,d){tb.call(this,a,b,c,d)}function Gd(a,b,c){tb.call(this,a,b,c)}function Hd(a,b,c,d){tb.call(this,a,b,c,d)}function ub(a,b,c,d){tb.apply(this,arguments)}function za(a,b,c){this.name=
+a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=Q.generateUUID();0>this.duration&&this.resetDuration();this.optimize()}function Id(a){this.manager=void 0!==a?a:wa;this.textures={}}function ee(a){this.manager=void 0!==a?a:wa}function fc(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}}function fe(a){"boolean"===typeof a&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),a=void 0);this.manager=void 0!==
+a?a:wa;this.withCredentials=!1}function Ue(a){this.manager=void 0!==a?a:wa;this.texturePath=""}function Ve(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function vb(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function wb(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function ka(){this.arcLengthDivisions=200}function Pa(a,b){this.arcLengthDivisions=200;this.v1=a;this.v2=b}function Xc(){this.arcLengthDivisions=200;this.curves=
+[];this.autoClose=!1}function Va(a,b,c,d,e,f,g,h){this.arcLengthDivisions=200;this.aX=a;this.aY=b;this.xRadius=c;this.yRadius=d;this.aStartAngle=e;this.aEndAngle=f;this.aClockwise=g;this.aRotation=h||0}function xb(a){this.arcLengthDivisions=200;this.points=void 0===a?[]:a}function gc(a,b,c,d){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c;this.v3=d}function hc(a,b,c){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c}function Yc(a){Xc.call(this);this.currentPoint=new E;a&&this.fromPoints(a)}
+function yb(){Yc.apply(this,arguments);this.holes=[]}function ge(){this.subPaths=[];this.currentPath=null}function he(a){this.data=a}function We(a){this.manager=void 0!==a?a:wa}function ie(a){this.manager=void 0!==a?a:wa}function Xe(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new X;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new X;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function Jd(a,b,c){w.call(this);this.type="CubeCamera";
+var d=new X(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new p(1,0,0));this.add(d);var e=new X(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new p(-1,0,0));this.add(e);var f=new X(90,1,a,b);f.up.set(0,0,1);f.lookAt(new p(0,1,0));this.add(f);var g=new X(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new p(0,-1,0));this.add(g);var h=new X(90,1,a,b);h.up.set(0,-1,0);h.lookAt(new p(0,0,1));this.add(h);var k=new X(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new p(0,0,-1));this.add(k);this.renderTarget=new Cb(c,c,{format:1022,magFilter:1006,
+minFilter:1006});this.renderTarget.texture.name="CubeCamera";this.updateCubeMap=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=this.renderTarget,l=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace=2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.texture.generateMipmaps=l;c.activeCubeFace=5;a.render(b,k,c);a.setRenderTarget(null)}}function je(){w.call(this);
+this.type="AudioListener";this.context=ke.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null}function ic(a){w.call(this);this.type="Audio";this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.loop=!1;this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this.filters=[]}function le(a){ic.call(this,a);this.panner=
+this.context.createPanner();this.panner.connect(this.gain)}function me(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}function ne(a,b,c){this.binding=a;this.valueSize=c;a=Float64Array;switch(b){case "quaternion":b=this._slerp;break;case "string":case "bool":a=Array;b=this._select;break;default:b=this._lerp}this.buffer=new a(4*c);this._mixBufferRegion=b;this.referenceCount=
+this.useCount=this.cumulativeWeight=0}function Ye(a,b,c){c=c||pa.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function pa(a,b,c){this.path=b;this.parsedPath=c||pa.parseTrackName(b);this.node=pa.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function Ze(a){this.uuid=Q.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var b={};this._indicesByUUID=b;for(var c=0,d=arguments.length;c!==d;++c)b[arguments[c].uuid]=c;this._paths=[];
+this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}function $e(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,endingEnd:2400},e=0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=
+c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function af(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Kd(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=Q.generateUUID();this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function jc(a,b){this.uuid=Q.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){jc.call(this,a,b);this.meshPerAttribute=c||1}function re(a,b,c){K.call(this,a,b);this.meshPerAttribute=c||1}function bf(a,b,c,d){this.ray=new ib(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 cf(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 df(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function ef(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 ff(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 la(a,b){fa.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 Zc(a){w.call(this);this.material=a;this.render=function(a){}}function $c(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);T.call(this,c,new ba({color:a,
+linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function kc(a,b){w.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 ba({fog:!1});this.cone=new T(a,b);this.add(this.cone);this.update()}
+function gf(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,gf(a.children[c]));return b}function lc(a){for(var b=gf(a),c=new F,d=[],e=[],f=new D(0,0,1),g=new D(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 ba({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});T.call(this,c,d);this.root=
+a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.onBeforeRender()}function mc(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new lb(b,4,2);b=new va({wireframe:!0,fog:!1});fa.call(this,a,b);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function nc(a,b){w.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new ba({fog:!1});b=new F;b.addAttribute("position",new K(new Float32Array(15),
+3));this.line=new na(b,a);this.add(this.line);this.update()}function oc(a,b,c){w.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new kb(b);a.rotateY(.5*Math.PI);this.material=new va({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 K(b,3));this.add(new fa(a,this.material));this.update()}function ad(a,b,c,d){a=a||10;
+b=b||10;c=new D(void 0!==c?c:4473924);d=new D(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],k=0,l=0,r=-g;k<=b;k++,r+=f){a.push(-g,0,r,g,0,r);a.push(r,0,-g,r,0,g);var n=k===e?c:d;n.toArray(h,l);l+=3;n.toArray(h,l);l+=3;n.toArray(h,l);l+=3;n.toArray(h,l);l+=3}b=new F;b.addAttribute("position",new z(a,3));b.addAttribute("color",new z(h,3));c=new ba({vertexColors:2});T.call(this,b,c)}function Ld(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new D(void 0!==e?e:4473924);f=new D(void 0!==
+f?f:8947848);var g=[],h=[],k;for(k=0;k<=b;k++){var l=k/b*2*Math.PI;var r=Math.sin(l)*a;l=Math.cos(l)*a;g.push(0,0,0);g.push(r,0,l);var n=k&1?e:f;h.push(n.r,n.g,n.b);h.push(n.r,n.g,n.b)}for(k=0;k<=c;k++){n=k&1?e:f;var m=a-a/c*k;for(b=0;b<d;b++)l=b/d*2*Math.PI,r=Math.sin(l)*m,l=Math.cos(l)*m,g.push(r,0,l),h.push(n.r,n.g,n.b),l=(b+1)/d*2*Math.PI,r=Math.sin(l)*m,l=Math.cos(l)*m,g.push(r,0,l),h.push(n.r,n.g,n.b)}a=new F;a.addAttribute("position",new z(g,3));a.addAttribute("color",new z(h,3));g=new ba({vertexColors:2});
+T.call(this,a,g)}function bd(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);T.call(this,c,new ba({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function pc(a,b,c){w.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 ba({fog:!1});this.lightPlane=new na(a,b);this.add(this.lightPlane);a=new F;a.addAttribute("position",new z([0,0,0,0,0,1],3));this.targetLine=new na(a,b);this.add(this.targetLine);this.update()}function cd(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/
+3-1)}var d=new F,e=new ba({color:16777215,vertexColors:1}),f=[],g=[],h={},k=new D(16755200),l=new D(16711680),r=new D(43775),n=new D(16777215),m=new D(3355443);b("n1","n2",k);b("n2","n4",k);b("n4","n3",k);b("n3","n1",k);b("f1","f2",k);b("f2","f4",k);b("f4","f3",k);b("f3","f1",k);b("n1","f1",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",r);b("u2","u3",r);b("u3","u1",r);b("c","t",n);b("p","c",m);b("cn1","cn2",m);b("cn3","cn4",m);
+b("cf1","cf2",m);b("cf3","cf4",m);d.addAttribute("position",new z(f,3));d.addAttribute("color",new z(g,3));T.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 zb(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 K(a,1));d.addAttribute("position",
+new K(c,3));T.call(this,d,new ba({color:b}));this.matrixAutoUpdate=!1;this.update()}function dd(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 K(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));T.call(this,c,new ba({color:a}));this.geometry.computeBoundingSphere();this.onBeforeRender()}function ed(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();na.call(this,b,new ba({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 fa(b,new va({color:a,opacity:.2,transparent:!0,depthWrite:!1})));this.onBeforeRender()}function Ab(a,b,c,d,e,f){w.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===Md&&(Md=new F,Md.addAttribute("position",new z([0,0,0,0,1,0],3)),te=new Ua(0,.5,1,5,1),te.translate(0,-.5,0));this.position.copy(b);this.line=new na(Md,new ba({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new fa(te,new va({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function Nd(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 ba({vertexColors:2});T.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,r){e=((f-e)/k-(g-e)/(k+l)+(g-f)/l)*l;h=((g-f)/l-(h-f)/(l+r)+(h-g)/r)*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 fd(a,b,c,d){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c;this.v3=d}function gd(a,b,c){this.arcLengthDivisions=200;this.v0=a;this.v1=b;this.v2=c}function hd(a,b){this.arcLengthDivisions=200;this.v1=a;this.v2=b}function Od(a,b,c,d,e,f){Va.call(this,a,b,c,c,d,e,f)}function hf(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");
+Ka.call(this,a);this.type="catmullrom";this.closed=!0}function jf(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===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(ua.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 Q={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*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*Q.DEG2RAD},radToDeg:function(a){return a*Q.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))},nextPowerOfTwo:function(a){a--;a|=a>>1;a|=a>>2;a|=a>>4;a|=a>>8;a|=a>>16;a++;return a}};Object.defineProperties(E.prototype,{width:{get:function(){return this.x},set:function(a){this.x=a}},height:{get:function(){return this.y},
+set:function(a){this.y=a}}});Object.assign(E.prototype,{isVector2:!0,set:function(a,b){this.x=a;this.y=b;return this},setScalar:function(a){this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=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;default:throw Error("index is out of range: "+
+a);}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;return this},addScalar:function(a){this.x+=a;this.y+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;return this},
+sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;return this},subScalar:function(a){this.x-=a;this.y-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiply:function(a){this.x*=a.x;this.y*=a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divide:function(a){this.x/=a.x;this.y/=a.y;return this},divideScalar:function(a){return this.multiplyScalar(1/
+a)},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(){var a=new E,b=new E;return function(c,d){a.set(c,c);b.set(d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,
+Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);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,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 nf=0;ca.DEFAULT_IMAGE=void 0;ca.DEFAULT_MAPPING=300;Object.defineProperty(ca.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(ca.prototype,ua.prototype,{constructor:ca,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,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=
+Q.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(da.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/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,a.z);this.w=Math.max(this.w,a.w);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));this.w=Math.max(a.w,Math.min(b.w,this.w));return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new da,b=new da);a.set(c,
+c,c,c);b.set(d,d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,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.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(Bb.prototype,ua.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"})}});Cb.prototype=Object.create(Bb.prototype);Cb.prototype.constructor=Cb;Cb.prototype.isWebGLRenderTargetCube=!0;Object.assign(Y,{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 r=e[f+1],n=e[f+2];e=e[f+3];if(c!==e||h!==d||k!==r||l!==n){f=1-g;var m=h*d+k*r+l*n+c*e,t=0<=m?1:
+-1,p=1-m*m;p>Number.EPSILON&&(p=Math.sqrt(p),m=Math.atan2(p,m*t),f=Math.sin(f*m)/p,g=Math.sin(g*m)/p);t*=g;h=h*f+d*t;k=k*f+r*t;l=l*f+n*t;c=c*f+e*t;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(Y.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(Y.prototype,{set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this.onChangeCallback();return this},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=a.w;this.onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");
+var c=a._x,d=a._y,e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),k=f(d/2),f=f(e/2),c=g(c/2),d=g(d/2),e=g(e/2);"XYZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"YXZ"===a?(this._x=c*k*f+h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"ZXY"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f-c*d*e):"ZYX"===a?(this._x=c*k*f-h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f+c*d*e):"YZX"===a?(this._x=
+c*k*f+h*d*e,this._y=h*d*f+c*k*e,this._z=h*k*e-c*d*f,this._w=h*k*f-c*d*e):"XZY"===a&&(this._x=c*k*f-h*d*e,this._y=h*d*f-c*k*e,this._z=h*k*e+c*d*f,this._w=h*k*f+c*d*e);if(!1!==b)this.onChangeCallback();return this},setFromAxisAngle:function(a,b){b/=2;var c=Math.sin(b);this._x=a.x*c;this._y=a.y*c;this._z=a.z*c;this._w=Math.cos(b);this.onChangeCallback();return this},setFromRotationMatrix:function(a){var b=a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],k=b[6],b=b[10],l=c+f+b;0<l?(c=.5/
+Math.sqrt(l+1),this._w=.25/c,this._x=(k-g)*c,this._y=(d-h)*c,this._z=(e-a)*c):c>f&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(k-g)/c,this._x=.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=(d-h)/c,this._x=(a+e)/c,this._y=.25*c,this._z=(g+k)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+k)/c,this._z=.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var a=new p,b;return function(c,d){void 0===a&&(a=new p);b=c.dot(d)+1;1E-6>b?(b=0,
+Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._x=a.x;this._y=a.y;this._z=a.z;this._w=b;return this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){this._x*=-1;this._y*=-1;this._z*=-1;this.onChangeCallback();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)},normalize:function(){var a=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);this.onChangeCallback();return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},premultiply:function(a){return this.multiplyQuaternions(a,
+this)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z;a=a._w;var f=b._x,g=b._y,h=b._z;b=b._w;this._x=c*b+a*f+d*h-e*g;this._y=d*b+a*g+e*f-c*h;this._z=e*b+a*h+c*g-d*f;this._w=a*b-c*f-d*g-e*h;this.onChangeCallback();return this},slerp:function(a,b){if(0===b)return this;if(1===b)return this.copy(a);var c=this._x,d=this._y,e=this._z,f=this._w,g=f*a._w+c*a._x+d*a._y+e*a._z;0>g?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,g=-g):this.copy(a);if(1<=g)return this._w=f,this._x=c,this._y=
+d,this._z=e,this;a=Math.sqrt(1-g*g);if(.001>Math.abs(a))return this._w=.5*(f+this._w),this._x=.5*(c+this._x),this._y=.5*(d+this._y),this._z=.5*(e+this._z),this;var h=Math.atan2(a,g),g=Math.sin((1-b)*h)/a;b=Math.sin(b*h)/a;this._w=f*g+this._w*b;this._x=c*g+this._x*b;this._y=d*g+this._y*b;this._z=e*g+this._z*b;this.onChangeCallback();return this},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];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._w;return a},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});Object.assign(p.prototype,{isVector3:!0,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setScalar:function(a){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},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=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;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},
+add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .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;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=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;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .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;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=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;return this},multiply:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=
+a;return this},multiplyVectors:function(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyEuler:function(){var a=new Y;return function(b){b&&b.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.");return this.applyQuaternion(a.setFromEuler(b))}}(),applyAxisAngle:function(){var a=new Y;return function(b,c){return this.applyQuaternion(a.setFromAxisAngle(b,c))}}(),applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z;
+a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+a[4]*c+a[7]*d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;var e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]);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;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z;a=a.w;var h=a*b+f*d-g*c,k=a*c+g*b-e*d,l=a*d+e*c-f*b,b=-e*b-f*c-g*d;this.x=h*a+b*
+-e+k*-g-l*-f;this.y=k*a+b*-f+l*-e-h*-g;this.z=l*a+b*-g+h*-f-k*-e;return this},project:function(){var a=new P;return function(b){a.multiplyMatrices(b.projectionMatrix,a.getInverse(b.matrixWorld));return this.applyMatrix4(a)}}(),unproject:function(){var a=new P;return function(b){a.multiplyMatrices(b.matrixWorld,a.getInverse(b.projectionMatrix));return this.applyMatrix4(a)}}(),transformDirection:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+
+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;return this.normalize()},divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},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);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,a.z);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,
+this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));return this},clampScalar:function(){var a=new p,b=new p;return function(c,d){a.set(c,c,c);b.set(d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},
+round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);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);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},
+length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},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;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},cross:function(a,b){if(void 0!==
+b)return console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b);b=this.x;var c=this.y,d=this.z;this.x=c*a.z-d*a.y;this.y=d*a.x-b*a.z;this.z=b*a.y-c*a.x;return this},crossVectors:function(a,b){var c=a.x,d=a.y;a=a.z;var e=b.x,f=b.y;b=b.z;this.x=d*b-a*f;this.y=a*e-c*b;this.z=c*f-d*e;return this},projectOnVector:function(a){var b=a.dot(this)/a.lengthSq();return this.copy(a).multiplyScalar(b)},projectOnPlane:function(){var a=new p;
+return function(b){a.copy(this).projectOnVector(b);return this.sub(a)}}(),reflect:function(){var a=new p;return function(b){return this.sub(a.copy(b).multiplyScalar(2*this.dot(b)))}}(),angleTo:function(a){a=this.dot(a)/Math.sqrt(this.lengthSq()*a.lengthSq());return Math.acos(Q.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},distanceToManhattan:function(a){return Math.abs(this.x-
+a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){var b=Math.sin(a.phi)*a.radius;this.x=b*Math.sin(a.theta);this.y=Math.cos(a.phi)*a.radius;this.z=b*Math.cos(a.theta);return this},setFromCylindrical:function(a){this.x=a.radius*Math.sin(a.theta);this.y=a.y;this.z=a.radius*Math.cos(a.theta);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y=a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,0).length(),
+c=this.setFromMatrixColumn(a,1).length();a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];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;return a},fromBufferAttribute:function(a,b,c){void 0!==
+c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this}});Object.assign(P.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,k,l,r,n,m,t,p,v){var q=this.elements;q[0]=a;q[4]=b;q[8]=c;q[12]=d;q[1]=e;q[5]=f;q[9]=g;q[13]=h;q[2]=k;q[6]=l;q[10]=r;q[14]=n;q[3]=m;q[7]=t;q[11]=p;q[15]=v;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new P).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];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x,
+b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(){var a=new p;return function(b){var c=this.elements,d=b.elements,e=1/a.setFromMatrixColumn(b,0).length(),f=1/a.setFromMatrixColumn(b,1).length();b=1/a.setFromMatrixColumn(b,2).length();c[0]=d[0]*e;c[1]=d[1]*e;c[2]=d[2]*e;c[4]=d[4]*f;c[5]=d[5]*f;c[6]=d[6]*f;c[8]=d[8]*b;c[9]=d[9]*b;c[10]=d[10]*b;return this}}(),makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");
+var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c),c=Math.sin(c),g=Math.cos(d),d=Math.sin(d),h=Math.cos(e),e=Math.sin(e);if("XYZ"===a.order){var k=f*h;var l=f*e;var r=c*h;a=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=l+r*d;b[5]=k-a*d;b[9]=-c*g;b[2]=a-k*d;b[6]=r+l*d;b[10]=f*g}else"YXZ"===a.order?(k=g*h,l=g*e,r=d*h,a=d*e,b[0]=k+a*c,b[4]=r*c-l,b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=l*c-r,b[6]=a+k*c,b[10]=f*g):"ZXY"===a.order?(k=g*h,l=g*e,r=d*h,a=d*e,b[0]=k-a*c,b[4]=-f*e,b[8]=r+l*c,b[1]=l+r*c,b[5]=f*h,b[9]=
+a-k*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(k=f*h,l=f*e,r=c*h,a=c*e,b[0]=g*h,b[4]=r*d-l,b[8]=k*d+a,b[1]=g*e,b[5]=a*d+k,b[9]=l*d-r,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(k=f*g,l=f*d,r=c*g,a=c*d,b[0]=g*h,b[4]=a-k*e,b[8]=r*e+l,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=l*e+r,b[10]=k-a*e):"XZY"===a.order&&(k=f*g,l=f*d,r=c*g,a=c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=k*e+a,b[5]=f*h,b[9]=l*e-r,b[2]=r*e-l,b[6]=c*h,b[10]=a*e+k);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(a){var b=
+this.elements,c=a._x,d=a._y,e=a._z,f=a._w,g=c+c,h=d+d,k=e+e;a=c*g;var l=c*h,c=c*k,r=d*h,d=d*k,e=e*k,g=f*g,h=f*h,f=f*k;b[0]=1-(r+e);b[4]=l-f;b[8]=c+h;b[1]=l+f;b[5]=1-(a+e);b[9]=d-g;b[2]=c-h;b[6]=d+g;b[10]=1-(a+r);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},lookAt:function(){var a=new p,b=new p,c=new p;return function(d,e,f){var g=this.elements;c.subVectors(d,e);0===c.lengthSq()&&(c.z=1);c.normalize();a.crossVectors(f,c);0===a.lengthSq()&&(1===Math.abs(f.z)?c.x+=1E-4:c.z+=1E-4,
+c.normalize(),a.crossVectors(f,c));a.normalize();b.crossVectors(c,a);g[0]=a.x;g[4]=b.x;g[8]=c.x;g[1]=a.y;g[5]=b.y;g[9]=c.y;g[2]=a.z;g[6]=b.z;g[10]=c.z;return this}}(),multiply:function(a,b){return void 0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):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[4],f=c[8],g=c[12],h=c[1],k=c[5],l=c[9],r=c[13],n=c[2],m=c[6],t=c[10],p=c[14],v=c[3],x=c[7],y=c[11],c=c[15],A=d[0],I=d[4],B=d[8],H=d[12],w=d[1],z=d[5],E=d[9],D=d[13],F=d[2],L=d[6],J=d[10],K=d[14],U=d[3],M=d[7],V=d[11],d=d[15];b[0]=a*A+e*w+f*F+g*U;b[4]=a*I+e*z+f*L+g*M;b[8]=a*B+e*E+f*J+g*V;b[12]=a*H+e*D+f*K+g*d;b[1]=h*A+k*w+l*F+r*U;b[5]=h*I+k*z+l*L+r*M;b[9]=h*B+k*E+l*J+r*V;b[13]=h*H+k*D+l*K+r*d;b[2]=n*A+m*w+t*F+p*U;b[6]=n*I+m*z+t*L+p*M;b[10]=n*B+m*E+t*J+p*V;b[14]=n*H+m*
+D+t*K+p*d;b[3]=v*A+x*w+y*F+c*U;b[7]=v*I+x*z+y*L+c*M;b[11]=v*B+x*E+y*J+c*V;b[15]=v*H+x*D+y*K+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},applyToBufferAttribute:function(){var a=new p;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.applyMatrix4(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),determinant:function(){var a=
+this.elements,b=a[0],c=a[4],d=a[8],e=a[12],f=a[1],g=a[5],h=a[9],k=a[13],l=a[2],m=a[6],n=a[10],q=a[14];return a[3]*(+e*h*m-d*k*m-e*g*n+c*k*n+d*g*q-c*h*q)+a[7]*(+b*h*q-b*k*n+e*f*n-d*f*q+d*k*l-e*h*l)+a[11]*(+b*k*m-b*g*q-e*f*m+c*f*q+e*g*l-c*k*l)+a[15]*(-d*g*l-b*h*m+b*g*n+d*f*m-c*f*n+c*h*l)},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return this},setPosition:function(a){var b=
+this.elements;b[12]=a.x;b[13]=a.y;b[14]=a.z;return this},getInverse:function(a,b){var c=this.elements,d=a.elements;a=d[0];var e=d[1],f=d[2],g=d[3],h=d[4],k=d[5],l=d[6],m=d[7],n=d[8],q=d[9],t=d[10],p=d[11],v=d[12],x=d[13],y=d[14],d=d[15],A=q*y*m-x*t*m+x*l*p-k*y*p-q*l*d+k*t*d,I=v*t*m-n*y*m-v*l*p+h*y*p+n*l*d-h*t*d,B=n*x*m-v*q*m+v*k*p-h*x*p-n*k*d+h*q*d,H=v*q*l-n*x*l-v*k*t+h*x*t+n*k*y-h*q*y,w=a*A+e*I+f*B+g*H;if(0===w){if(!0===b)throw Error("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");
+console.warn("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");return this.identity()}b=1/w;c[0]=A*b;c[1]=(x*t*g-q*y*g-x*f*p+e*y*p+q*f*d-e*t*d)*b;c[2]=(k*y*g-x*l*g+x*f*m-e*y*m-k*f*d+e*l*d)*b;c[3]=(q*l*g-k*t*g-q*f*m+e*t*m+k*f*p-e*l*p)*b;c[4]=I*b;c[5]=(n*y*g-v*t*g+v*f*p-a*y*p-n*f*d+a*t*d)*b;c[6]=(v*l*g-h*y*g-v*f*m+a*y*m+h*f*d-a*l*d)*b;c[7]=(h*t*g-n*l*g+n*f*m-a*t*m-h*f*p+a*l*p)*b;c[8]=B*b;c[9]=(v*q*g-n*x*g-v*e*p+a*x*p+n*e*d-a*q*d)*b;c[10]=(h*x*g-v*k*g+v*e*m-a*x*m-h*e*d+a*k*d)*b;c[11]=
+(n*k*g-h*q*g-n*e*m+a*q*m+h*e*p-a*k*p)*b;c[12]=H*b;c[13]=(n*x*f-v*q*f+v*e*t-a*x*t-n*e*y+a*q*y)*b;c[14]=(v*k*f-h*x*f-v*e*l+a*x*l+h*e*y-a*k*y)*b;c[15]=(h*q*f-n*k*f+n*e*l-a*q*l-h*e*t+a*k*t)*b;return this},scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;b[4]*=d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*a[4]+a[5]*a[5]+a[6]*a[6],
+a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))},makeTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},makeRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,b){var c=
+Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,h=d*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,h*f+c,h*a-b*e,0,g*a-b*f,h*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){this.makeRotationFromQuaternion(b);this.scale(c);this.setPosition(a);return this},decompose:function(){var a=new p,b=new P;return function(c,
+d,e){var f=this.elements,g=a.set(f[0],f[1],f[2]).length(),h=a.set(f[4],f[5],f[6]).length(),k=a.set(f[8],f[9],f[10]).length();0>this.determinant()&&(g=-g);c.x=f[12];c.y=f[13];c.z=f[14];b.copy(this);c=1/g;var f=1/h,l=1/k;b.elements[0]*=c;b.elements[1]*=c;b.elements[2]*=c;b.elements[4]*=f;b.elements[5]*=f;b.elements[6]*=f;b.elements[8]*=l;b.elements[9]*=l;b.elements[10]*=l;d.setFromRotationMatrix(b);e.x=g;e.y=h;e.z=k;return this}}(),makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");
 var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=0;g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=1/(b-a),k=1/(c-d),l=1/(f-e);g[0]=2*h;g[4]=0;g[8]=0;g[12]=-((b+a)*h);g[1]=0;g[5]=2*k;g[9]=0;g[13]=-((c+d)*k);g[2]=0;g[6]=0;g[10]=-2*l;g[14]=-((f+e)*l);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;
 a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});cb.prototype=Object.create(ca.prototype);
 cb.prototype.constructor=cb;cb.prototype.isDataTexture=!0;Wa.prototype=Object.create(ca.prototype);Wa.prototype.constructor=Wa;Wa.prototype.isCubeTexture=!0;Object.defineProperty(Wa.prototype,"images",{get:function(){return this.image},set:function(a){this.image=a}});var Fe=new ca,Ge=new Wa,Ae=[],Ce=[],Ee=new Float32Array(16),De=new Float32Array(9);Ke.prototype.setValue=function(a,b){for(var c=this.seq,d=0,e=c.length;d!==e;++d){var f=c[d];f.setValue(a,b[f.id])}};var Rd=/([\w\d_]+)(\])?(\[|\.)?/g;

+ 7 - 3
build/three.module.js

@@ -16327,10 +16327,11 @@ function WebGLBackground( renderer, state, geometries, premultipliedAlpha ) {
 
 			if ( boxMesh === undefined ) {
 
-				// TODO Adjust skybox to camera somehow
+				// Normalized box
+				// 1.1547 = (1,1,1).normalize() * 2.0
 
 				boxMesh = new Mesh(
-					new BoxBufferGeometry( 2, 2, 2 ),
+					new BoxBufferGeometry( 1.1547, 1.1547, 1.1547 ),
 					new ShaderMaterial( {
 						uniforms: ShaderLib.cube.uniforms,
 						vertexShader: ShaderLib.cube.vertexShader,
@@ -16342,9 +16343,12 @@ function WebGLBackground( renderer, state, geometries, premultipliedAlpha ) {
 					} )
 				);
 
+				boxMesh.geometry.removeAttribute( 'normal' );
+				boxMesh.geometry.removeAttribute( 'uv' );
+
 				boxMesh.onBeforeRender = function ( renderer, scene, camera ) {
 
-					var scale = camera.far / 1.732; // distance from 0,0,0 to 1,1,1
+					var scale = camera.far;
 
 					this.matrixWorld.makeScale( scale, scale, scale );
 					this.matrixWorld.copyPosition( camera.matrixWorld );