Browse Source

Updated builds.

Mr.doob 8 years ago
parent
commit
2d561781f0
3 changed files with 278 additions and 148 deletions
  1. 68 3
      build/three.js
  2. 142 142
      build/three.min.js
  3. 68 3
      build/three.module.js

+ 68 - 3
build/three.js

@@ -14625,6 +14625,23 @@
 
 		copy: function ( source ) {
 
+			var name, i, l;
+
+			// reset
+
+			this.index = null;
+			this.attributes = {};
+			this.morphAttributes = {};
+			this.groups = [];
+			this.boundingBox = null;
+			this.boundingSphere = null;
+
+			// name
+
+			this.name = source.name;
+
+			// index
+
 			var index = source.index;
 
 			if ( index !== null ) {
@@ -14633,24 +14650,72 @@
 
 			}
 
+			// attributes
+
 			var attributes = source.attributes;
 
-			for ( var name in attributes ) {
+			for ( name in attributes ) {
 
 				var attribute = attributes[ name ];
 				this.addAttribute( name, attribute.clone() );
 
 			}
 
+			// morph attributes
+
+			var morphAttributes = source.morphAttributes;
+
+			for ( name in morphAttributes ) {
+
+				var array = [];
+				var morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes
+
+				for ( i = 0, l = morphAttribute.length; i < l; i ++ ) {
+
+					array.push( morphAttribute[ i ].clone() );
+
+				}
+
+				this.morphAttributes[ name ] = array;
+
+			}
+
+			// groups
+
 			var groups = source.groups;
 
-			for ( var i = 0, l = groups.length; i < l; i ++ ) {
+			for ( i = 0, l = groups.length; i < l; i ++ ) {
 
 				var group = groups[ i ];
 				this.addGroup( group.start, group.count, group.materialIndex );
 
 			}
 
+			// bounding box
+
+			var boundingBox = source.boundingBox;
+
+			if ( boundingBox !== null ) {
+
+				this.boundingBox = boundingBox.clone();
+
+			}
+
+			// bounding sphere
+
+			var boundingSphere = source.boundingSphere;
+
+			if ( boundingSphere !== null ) {
+
+				this.boundingSphere = boundingSphere.clone();
+
+			}
+
+			// draw range
+
+			this.drawRange.start = source.drawRange.start;
+			this.drawRange.count = source.drawRange.count;
+
 			return this;
 
 		},
@@ -29396,7 +29461,7 @@
 
 			image.addEventListener( 'load', function () {
 
-				THREE.Cache.add( url, this );
+				Cache.add( url, this );
 
 				if ( onLoad ) onLoad( this );
 

+ 142 - 142
build/three.min.js

@@ -39,8 +39,8 @@ da;y[D]=U;I=new Ia({defines:{USE_SHADOWMAP:""},uniforms:Q,vertexShader:d.vertexS
 q,u=0,y=z.length;u<y;u++){var D=z[u],Q=D.shadow;if(void 0===Q)console.warn("THREE.WebGLShadowMap:",D,"has no shadow.");else{var I=Q.camera;p.copy(Q.mapSize);p.min(n);if(D&&D.isPointLight){v=6;q=!0;var da=p.x,U=p.y;B[0].set(2*da,U,da,U);B[1].set(0,U,da,U);B[2].set(3*da,U,da,U);B[3].set(da,U,da,U);B[4].set(3*da,0,da,U);B[5].set(da,0,da,U);p.x*=4;p.y*=2}else v=1,q=!1;null===Q.map&&(Q.map=new $a(p.x,p.y,{minFilter:1003,magFilter:1003,format:1023}),I.updateProjectionMatrix());Q.isSpotLightShadow&&Q.update(D);
 Q&&Q.isRectAreaLightShadow&&Q.update(D);da=Q.map;Q=Q.matrix;m.setFromMatrixPosition(D.matrixWorld);I.position.copy(m);a.setRenderTarget(da);a.clear();for(da=0;da<v;da++){q?(r.copy(I.position),r.add(L[da]),I.up.copy(x[da]),I.lookAt(r),h.viewport(B[da])):(r.setFromMatrixPosition(D.target.matrixWorld),I.lookAt(r));I.updateMatrixWorld();I.matrixWorldInverse.getInverse(I.matrixWorld);Q.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);Q.multiply(I.projectionMatrix);Q.multiply(I.matrixWorldInverse);k.multiplyMatrices(I.projectionMatrix,
 I.matrixWorldInverse);l.setFromMatrix(k);t.length=0;f(b,d,I);for(var U=0,w=t.length;U<w;U++){var E=t[U],Td=c.update(E),Sa=E.material;if(Sa&&Sa.isMultiMaterial)for(var A=Td.groups,Sa=Sa.materials,G=0,Fa=A.length;G<Fa;G++){var F=A[G],M=Sa[F.materialIndex];!0===M.visible&&(M=e(E,M,q,m),a.renderBufferDirect(I,null,Td,M,E,F))}else M=e(E,Sa,q,m),a.renderBufferDirect(I,null,Td,M,E,null)}}}}v=a.getClearColor();q=a.getClearAlpha();a.setClearColor(v,q);ea.needsUpdate=!1}}}function db(a,b){this.origin=void 0!==
-a?a:new q;this.direction=void 0!==b?b:new q}function eb(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||eb.DefaultOrder}function od(){this.mask=1}function A(){Object.defineProperty(this,"id",{value:Af++});this.uuid=S.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=A.DefaultUp.clone();var a=new q,b=new eb,c=new Z,d=new q(1,1,1);b.onChange(function(){c.setFromEuler(b,!1)});c.onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,
-{position:{enumerable:!0,value:a},rotation:{enumerable:!0,value:b},quaternion:{enumerable:!0,value:c},scale:{enumerable:!0,value:d},modelViewMatrix:{value:new M},normalMatrix:{value:new xa}});this.matrix=new M;this.matrixWorld=new M;this.matrixAutoUpdate=A.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new od;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={};this.onBeforeRender=function(){};this.onAfterRender=function(){}}
+a?a:new q;this.direction=void 0!==b?b:new q}function eb(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||eb.DefaultOrder}function pd(){this.mask=1}function A(){Object.defineProperty(this,"id",{value:Af++});this.uuid=S.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=A.DefaultUp.clone();var a=new q,b=new eb,c=new Z,d=new q(1,1,1);b.onChange(function(){c.setFromEuler(b,!1)});c.onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,
+{position:{enumerable:!0,value:a},rotation:{enumerable:!0,value:b},quaternion:{enumerable:!0,value:c},scale:{enumerable:!0,value:d},modelViewMatrix:{value:new M},normalMatrix:{value:new xa}});this.matrix=new M;this.matrixWorld=new M;this.matrixAutoUpdate=A.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new pd;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={};this.onBeforeRender=function(){};this.onAfterRender=function(){}}
 function ib(a,b){this.start=void 0!==a?a:new q;this.end=void 0!==b?b:new q}function ya(a,b,c){this.a=void 0!==a?a:new q;this.b=void 0!==b?b:new q;this.c=void 0!==c?c:new q}function ha(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d&&d.isVector3?d:new q;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new F;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function Ka(a){X.call(this);this.type="MeshBasicMaterial";this.color=new F(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 w(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.uuid=S.generateUUID();this.array=a;
 this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};this.version=0}function wc(a,b){w.call(this,new Int8Array(a),b)}function xc(a,b){w.call(this,new Uint8Array(a),b)}function yc(a,b){w.call(this,new Uint8ClampedArray(a),b)}function zc(a,b){w.call(this,new Int16Array(a),b)}function Ua(a,b){w.call(this,new Uint16Array(a),b)}function Ac(a,b){w.call(this,new Int32Array(a),b)}function Va(a,b){w.call(this,
@@ -153,12 +153,12 @@ if(203===a)return C.ONE_MINUS_SRC_COLOR;if(204===a)return C.SRC_ALPHA;if(205===a
 if(2004===a)return b.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(2100===a||2101===a||2102===a||2103===a)if(b=ja.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=ja.get("WEBGL_compressed_texture_etc1"),null!==b))return b.COMPRESSED_RGB_ETC1_WEBGL;if(103===a||104===a)if(b=ja.get("EXT_blend_minmax"),
 null!==b){if(103===a)return b.MIN_EXT;if(104===a)return b.MAX_EXT}return 1020===a&&(b=ja.get("WEBGL_depth_texture"),null!==b)?b.UNSIGNED_INT_24_8_WEBGL:0}console.log("THREE.WebGLRenderer","84dev");a=a||{};var v=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),L=void 0!==a.context?a.context:null,x=void 0!==a.alpha?a.alpha:!1,B=void 0!==a.depth?a.depth:!0,Q=void 0!==a.stencil?a.stencil:!0,D=void 0!==a.antialias?a.antialias:!1,I=void 0!==a.premultipliedAlpha?
 a.premultipliedAlpha:!0,w=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,U=[],ea=[],E=-1,A=[],H=-1,N=new Float32Array(8),O=[],R=[];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 T=this,S=null,W=null,P=null,K=-1,X="",V=null,ba=new fa,Sa=null,vc=new fa,ca=0,Fa=new F(0),hb=0,nd=v.width,Dc=v.height,Ra=1,ga=new fa(0,0,nd,Dc),ka=!1,ia=new fa(0,0,nd,Dc),ma=new uc,Z=new Tf,oa=!1,sa=!1,na=new Ea,ua=new M,Ha=new q,Aa=new M,va=new M,aa={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],shadows:[]},pa={calls:0,
+8;this.maxMorphNormals=4;var T=this,S=null,W=null,P=null,K=-1,X="",V=null,ba=new fa,Sa=null,vc=new fa,ca=0,Fa=new F(0),hb=0,od=v.width,Dc=v.height,Ra=1,ga=new fa(0,0,od,Dc),ka=!1,ia=new fa(0,0,od,Dc),ma=new uc,Z=new Tf,oa=!1,sa=!1,na=new Ea,ua=new M,Ha=new q,Aa=new M,va=new M,aa={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],shadows:[]},pa={calls:0,
 vertices:0,faces:0,points:0};this.info={render:pa,memory:{geometries:0,textures:0},programs:null};var C;try{x={alpha:x,depth:B,stencil:Q,antialias:D,premultipliedAlpha:I,preserveDrawingBuffer:w};C=L||v.getContext("webgl",x)||v.getContext("experimental-webgl",x);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",d,!1)}catch(Uf){console.error("THREE.WebGLRenderer: "+Uf)}var ja=new Sf(C);ja.get("WEBGL_depth_texture");ja.get("OES_texture_float");ja.get("OES_texture_float_linear");ja.get("OES_texture_half_float");ja.get("OES_texture_half_float_linear");ja.get("OES_standard_derivatives");ja.get("ANGLE_instanced_arrays");ja.get("OES_element_index_uint")&&(G.MaxIndex=4294967296);var la=new Rf(C,ja,a),Y=new Qf(C,ja,u),ha=new Pf,ta=new Of(C,ja,Y,ha,la,
 u,this.info),ra=new Nf(C,ha,this.info),xa=new Lf(this,la),ya=new Df;this.info.programs=xa.programs;var La=new Cf(C,ja,pa),Na=new Bf(C,ja,pa),Oa=new Jb(-1,1,1,-1,0,1),Ba=new Ga,Da=new za(new kb(2,2),new Ka({depthTest:!1,depthWrite:!1,fog:!1}));a=Ib.cube;var wa=new za(new jb(5,5,5),new Ia({uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}));b();this.context=C;this.capabilities=la;this.extensions=ja;this.properties=ha;this.state=
 Y;var Ma=new Ie(this,aa,ra,la);this.shadowMap=Ma;var Pa=new yf(this,O),Qa=new xf(this,R);this.getContext=function(){return C};this.getContextAttributes=function(){return C.getContextAttributes()};this.forceContextLoss=function(){ja.get("WEBGL_lose_context").loseContext()};this.getMaxAnisotropy=function(){return la.getMaxAnisotropy()};this.getPrecision=function(){return la.precision};this.getPixelRatio=function(){return Ra};this.setPixelRatio=function(a){void 0!==a&&(Ra=a,this.setSize(ia.z,ia.w,!1))};
-this.getSize=function(){return{width:nd,height:Dc}};this.setSize=function(a,b,c){nd=a;Dc=b;v.width=a*Ra;v.height=b*Ra;!1!==c&&(v.style.width=a+"px",v.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){Y.viewport(ia.set(a,b,c,d))};this.setScissor=function(a,b,c,d){Y.scissor(ga.set(a,b,c,d))};this.setScissorTest=function(a){Y.setScissorTest(ka=a)};this.getClearColor=function(){return Fa};this.setClearColor=function(a,b){Fa.set(a);hb=void 0!==b?b:1;Y.buffers.color.setClear(Fa.r,
+this.getSize=function(){return{width:od,height:Dc}};this.setSize=function(a,b,c){od=a;Dc=b;v.width=a*Ra;v.height=b*Ra;!1!==c&&(v.style.width=a+"px",v.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){Y.viewport(ia.set(a,b,c,d))};this.setScissor=function(a,b,c,d){Y.scissor(ga.set(a,b,c,d))};this.setScissorTest=function(a){Y.setScissorTest(ka=a)};this.getClearColor=function(){return Fa};this.setClearColor=function(a,b){Fa.set(a);hb=void 0!==b?b:1;Y.buffers.color.setClear(Fa.r,
 Fa.g,Fa.b,hb,I)};this.getClearAlpha=function(){return hb};this.setClearAlpha=function(a){hb=a;Y.buffers.color.setClear(Fa.r,Fa.g,Fa.b,hb,I)};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.resetGLState=c;this.dispose=function(){A=[];H=-1;ea=[];E=-1;v.removeEventListener("webglcontextlost",d,!1)};this.renderBufferImmediate=function(a,b,c){Y.initAttributes();var d=ha.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),Y.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&&1===c.shading)for(var e=0,f=3*a.count;e<f;e+=9){var g=a.normalArray,h=(g[e+0]+g[e+3]+g[e+6])/3,k=(g[e+1]+g[e+4]+g[e+7])/3,l=(g[e+2]+g[e+5]+g[e+8])/3;g[e+0]=h;g[e+1]=k;g[e+2]=l;g[e+3]=h;g[e+4]=k;g[e+5]=l;g[e+6]=h;g[e+7]=k;g[e+8]=l}C.bufferData(C.ARRAY_BUFFER,
@@ -184,12 +184,12 @@ Sa=ka,vc.copy(ia).multiplyScalar(Ra));P!==c&&(C.bindFramebuffer(C.FRAMEBUFFER,c)
 ha.get(a).__webglFramebuffer;if(g){var h=!1;g!==P&&(C.bindFramebuffer(C.FRAMEBUFFER,g),h=!0);try{var k=a.texture,l=k.format,n=k.type;1023!==l&&u(l)!==C.getParameter(C.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===n||u(n)===C.getParameter(C.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n&&(ja.get("OES_texture_float")||ja.get("WEBGL_color_buffer_float"))||1016===n&&ja.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,u(l),u(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,P)}}}}}function Kb(a,b){this.name="";this.color=new F(a);this.density=
 void 0!==b?b:2.5E-4}function Lb(a,b,c){this.name="";this.color=new F(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function lb(){A.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function Yd(a,b,c,d,e){A.call(this);this.lensFlares=[];this.positionScreen=new q;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)}function mb(a){X.call(this);this.type="SpriteMaterial";this.color=new F(16777215);this.map=null;this.rotation=0;this.lights=
-this.fog=!1;this.setValues(a)}function Ec(a){A.call(this);this.type="Sprite";this.material=void 0!==a?a:new mb}function Fc(){A.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function pd(a,b,c){this.useVertexTexture=void 0!==c?c:!0;this.identityMatrix=new M;a=a||[];this.bones=a.slice(0);this.useVertexTexture?(a=Math.sqrt(4*this.bones.length),a=S.nextPowerOfTwo(Math.ceil(a)),this.boneTextureHeight=this.boneTextureWidth=a=Math.max(a,4),this.boneMatrices=new Float32Array(this.boneTextureWidth*
-this.boneTextureHeight*4),this.boneTexture=new fb(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,1023,1015)):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 bonInverses is the wrong length."),this.boneInverses=[],b=0,a=this.bones.length;b<a;b++)this.boneInverses.push(new M)}function qd(){A.call(this);this.type="Bone"}function rd(a,
-b,c){za.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new M;this.bindMatrixInverse=new M;a=[];if(this.geometry&&void 0!==this.geometry.bones){for(var d,e=0,f=this.geometry.bones.length;e<f;++e)d=this.geometry.bones[e],b=new qd,a.push(b),b.name=d.name,b.position.fromArray(d.pos),b.quaternion.fromArray(d.rotq),void 0!==d.scl&&b.scale.fromArray(d.scl);e=0;for(f=this.geometry.bones.length;e<f;++e)d=this.geometry.bones[e],-1!==d.parent&&null!==d.parent&&void 0!==a[d.parent]?
-a[d.parent].add(a[e]):this.add(a[e])}this.normalizeSkinWeights();this.updateMatrixWorld(!0);this.bind(new pd(a,void 0,c),this.matrixWorld)}function ia(a){X.call(this);this.type="LineBasicMaterial";this.color=new F(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(a)}function Wa(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new ga(a,b);A.call(this);this.type="Line";this.geometry=
+this.fog=!1;this.setValues(a)}function Ec(a){A.call(this);this.type="Sprite";this.material=void 0!==a?a:new mb}function Fc(){A.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function qd(a,b,c){this.useVertexTexture=void 0!==c?c:!0;this.identityMatrix=new M;a=a||[];this.bones=a.slice(0);this.useVertexTexture?(a=Math.sqrt(4*this.bones.length),a=S.nextPowerOfTwo(Math.ceil(a)),this.boneTextureHeight=this.boneTextureWidth=a=Math.max(a,4),this.boneMatrices=new Float32Array(this.boneTextureWidth*
+this.boneTextureHeight*4),this.boneTexture=new fb(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,1023,1015)):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 bonInverses is the wrong length."),this.boneInverses=[],b=0,a=this.bones.length;b<a;b++)this.boneInverses.push(new M)}function rd(){A.call(this);this.type="Bone"}function sd(a,
+b,c){za.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new M;this.bindMatrixInverse=new M;a=[];if(this.geometry&&void 0!==this.geometry.bones){for(var d,e=0,f=this.geometry.bones.length;e<f;++e)d=this.geometry.bones[e],b=new rd,a.push(b),b.name=d.name,b.position.fromArray(d.pos),b.quaternion.fromArray(d.rotq),void 0!==d.scl&&b.scale.fromArray(d.scl);e=0;for(f=this.geometry.bones.length;e<f;++e)d=this.geometry.bones[e],-1!==d.parent&&null!==d.parent&&void 0!==a[d.parent]?
+a[d.parent].add(a[e]):this.add(a[e])}this.normalizeSkinWeights();this.updateMatrixWorld(!0);this.bind(new qd(a,void 0,c),this.matrixWorld)}function ia(a){X.call(this);this.type="LineBasicMaterial";this.color=new F(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(a)}function Wa(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new ga(a,b);A.call(this);this.type="Line";this.geometry=
 void 0!==a?a:new G;this.material=void 0!==b?b:new ia({color:16777215*Math.random()})}function ga(a,b){Wa.call(this,a,b);this.type="LineSegments"}function Na(a){X.call(this);this.type="PointsMaterial";this.color=new F(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=!1;this.setValues(a)}function Mb(a,b){A.call(this);this.type="Points";this.geometry=void 0!==a?a:new G;this.material=void 0!==b?b:new Na({color:16777215*Math.random()})}function Gc(){A.call(this);this.type="Group"}
-function sd(a,b,c,d,e,f,g,h,l){function k(){requestAnimationFrame(k);a.readyState>=a.HAVE_CURRENT_DATA&&(z.needsUpdate=!0)}ca.call(this,a,b,c,d,e,f,g,h,l);this.generateMipmaps=!1;var z=this;k()}function Nb(a,b,c,d,e,f,g,h,l,k,z,p){ca.call(this,null,f,g,h,l,k,d,e,z,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function td(a,b,c,d,e,f,g,h,l){ca.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Hc(a,b,c,d,e,f,g,h,l,k){k=void 0!==k?k:1026;if(1026!==k&&1027!==
+function td(a,b,c,d,e,f,g,h,l){function k(){requestAnimationFrame(k);a.readyState>=a.HAVE_CURRENT_DATA&&(z.needsUpdate=!0)}ca.call(this,a,b,c,d,e,f,g,h,l);this.generateMipmaps=!1;var z=this;k()}function Nb(a,b,c,d,e,f,g,h,l,k,z,p){ca.call(this,null,f,g,h,l,k,d,e,z,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function ud(a,b,c,d,e,f,g,h,l){ca.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Hc(a,b,c,d,e,f,g,h,l,k){k=void 0!==k?k:1026;if(1026!==k&&1027!==
 k)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===k&&(c=1012);void 0===c&&1027===k&&(c=1020);ca.call(this,null,d,e,f,g,h,k,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Ob(a){function b(a,b){return a-b}G.call(this);var c=[0,0],d={},e=["a","b","c"];if(a&&a.isGeometry){var f=a.vertices,g=a.faces,h=0,l=new Uint32Array(6*g.length);a=0;for(var k=
 g.length;a<k;a++)for(var z=g[a],p=0;3>p;p++){c[0]=z[e[p]];c[1]=z[e[(p+1)%3]];c.sort(b);var n=c.toString();void 0===d[n]&&(l[2*h]=c[0],l[2*h+1]=c[1],d[n]=!0,h++)}c=new Float32Array(6*h);a=0;for(k=h;a<k;a++)for(p=0;2>p;p++)d=f[l[2*a+p]],h=6*a+3*p,c[h+0]=d.x,c[h+1]=d.y,c[h+2]=d.z;this.addAttribute("position",new w(c,3))}else if(a&&a.isBufferGeometry){if(null!==a.index){k=a.index.array;f=a.attributes.position;e=a.groups;h=0;0===e.length&&a.addGroup(0,k.length);l=new Uint32Array(2*k.length);g=0;for(z=
 e.length;g<z;++g){a=e[g];p=a.start;n=a.count;a=p;for(var r=p+n;a<r;a+=3)for(p=0;3>p;p++)c[0]=k[a+p],c[1]=k[a+(p+1)%3],c.sort(b),n=c.toString(),void 0===d[n]&&(l[2*h]=c[0],l[2*h+1]=c[1],d[n]=!0,h++)}c=new Float32Array(6*h);a=0;for(k=h;a<k;a++)for(p=0;2>p;p++)h=6*a+3*p,d=l[2*a+p],c[h+0]=f.getX(d),c[h+1]=f.getY(d),c[h+2]=f.getZ(d)}else for(f=a.attributes.position.array,h=f.length/3,l=h/3,c=new Float32Array(6*h),a=0,k=l;a<k;a++)for(p=0;3>p;p++)h=18*a+6*p,l=9*a+3*p,c[h+0]=f[l],c[h+1]=f[l+1],c[h+2]=f[l+
@@ -237,23 +237,23 @@ this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new
 this.morphTargets=this.skinning=!1;this.setValues(a)}function rb(a){Ba.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}function sb(a){X.call(this,a);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 tb(a){X.call(this);this.type="MeshLambertMaterial";this.color=new F(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new F(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 ub(a){X.call(this);this.type="LineDashedMaterial";this.color=new F(16777215);this.scale=this.linewidth=1;this.dashSize=3;this.gapSize=1;this.lights=!1;this.setValues(a)}function Zd(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 Da(a){this.manager=void 0!==a?a:ta}function Oe(a){this.manager=void 0!==a?a:ta;this._parser=null}function $d(a){this.manager=void 0!==a?a:ta;this._parser=null}function $c(a){this.manager=void 0!==a?a:ta}function ae(a){this.manager=void 0!==a?a:ta}function ud(a){this.manager=void 0!==a?a:ta}function ma(a,b){A.call(this);this.type="Light";this.color=new F(a);this.intensity=void 0!==b?b:1;this.receiveShadow=
-void 0}function vd(a,b,c){ma.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(A.DefaultUp);this.updateMatrix();this.groundColor=new F(b)}function vb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new E(512,512);this.map=null;this.matrix=new M}function wd(){vb.call(this,new Ga(50,1,.5,500))}function xd(a,b,c,d,e,f){ma.call(this,a,b);this.type="SpotLight";this.position.copy(A.DefaultUp);this.updateMatrix();this.target=new A;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 wd}function yd(a,b,c,d){ma.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 vb(new Ga(90,
-1,.5,500))}function zd(){vb.call(this,new Jb(-5,5,5,-5,.5,500))}function Ad(a,b){ma.call(this,a,b);this.type="DirectionalLight";this.position.copy(A.DefaultUp);this.updateMatrix();this.target=new A;this.shadow=new zd}function Bd(a,b){ma.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function va(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){va.call(this,a,b,c,d);this._offsetNext=
-this._weightNext=this._offsetPrev=this._weightPrev=-0}function ad(a,b,c,d){va.call(this,a,b,c,d)}function Dd(a,b,c,d){va.call(this,a,b,c,d)}function wb(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=na.convertArray(b,this.TimeBufferType);this.values=na.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation);this.validate();this.optimize()}function ec(a,b,
-c,d){wb.call(this,a,b,c,d)}function Ed(a,b,c,d){va.call(this,a,b,c,d)}function bd(a,b,c,d){wb.call(this,a,b,c,d)}function fc(a,b,c,d){wb.call(this,a,b,c,d)}function Fd(a,b,c,d){wb.call(this,a,b,c,d)}function Gd(a,b,c){wb.call(this,a,b,c)}function Hd(a,b,c,d){wb.call(this,a,b,c,d)}function xb(a,b,c,d){wb.apply(this,arguments)}function ra(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=S.generateUUID();0>this.duration&&this.resetDuration();this.optimize()}function Id(a){this.manager=
+d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)}}function Da(a){this.manager=void 0!==a?a:ta}function Oe(a){this.manager=void 0!==a?a:ta;this._parser=null}function $d(a){this.manager=void 0!==a?a:ta;this._parser=null}function $c(a){this.manager=void 0!==a?a:ta}function ae(a){this.manager=void 0!==a?a:ta}function vd(a){this.manager=void 0!==a?a:ta}function ma(a,b){A.call(this);this.type="Light";this.color=new F(a);this.intensity=void 0!==b?b:1;this.receiveShadow=
+void 0}function wd(a,b,c){ma.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(A.DefaultUp);this.updateMatrix();this.groundColor=new F(b)}function vb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new E(512,512);this.map=null;this.matrix=new M}function xd(){vb.call(this,new Ga(50,1,.5,500))}function yd(a,b,c,d,e,f){ma.call(this,a,b);this.type="SpotLight";this.position.copy(A.DefaultUp);this.updateMatrix();this.target=new A;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 xd}function zd(a,b,c,d){ma.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 vb(new Ga(90,
+1,.5,500))}function Ad(){vb.call(this,new Jb(-5,5,5,-5,.5,500))}function Bd(a,b){ma.call(this,a,b);this.type="DirectionalLight";this.position.copy(A.DefaultUp);this.updateMatrix();this.target=new A;this.shadow=new Ad}function Cd(a,b){ma.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function va(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 Dd(a,b,c,d){va.call(this,a,b,c,d);this._offsetNext=
+this._weightNext=this._offsetPrev=this._weightPrev=-0}function ad(a,b,c,d){va.call(this,a,b,c,d)}function Ed(a,b,c,d){va.call(this,a,b,c,d)}function wb(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=na.convertArray(b,this.TimeBufferType);this.values=na.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation);this.validate();this.optimize()}function ec(a,b,
+c,d){wb.call(this,a,b,c,d)}function Fd(a,b,c,d){va.call(this,a,b,c,d)}function bd(a,b,c,d){wb.call(this,a,b,c,d)}function fc(a,b,c,d){wb.call(this,a,b,c,d)}function Gd(a,b,c,d){wb.call(this,a,b,c,d)}function Hd(a,b,c){wb.call(this,a,b,c)}function Id(a,b,c,d){wb.call(this,a,b,c,d)}function xb(a,b,c,d){wb.apply(this,arguments)}function ra(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=S.generateUUID();0>this.duration&&this.resetDuration();this.optimize()}function Jd(a){this.manager=
 void 0!==a?a:ta;this.textures={}}function be(a){this.manager=void 0!==a?a:ta}function yb(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}}function ce(a){"boolean"===typeof a&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),a=void 0);this.manager=void 0!==a?a:ta;this.withCredentials=!1}function Pe(a){this.manager=void 0!==a?a:ta;this.texturePath=""}function Qe(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 zb(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function Ab(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 ua(){}function Ta(a,b){this.v1=a;this.v2=b}function cd(){this.curves=[];this.autoClose=!1}function Ya(a,b,c,d,e,f,g,h){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 Bb(a){this.points=void 0===a?[]:a}function gc(a,b,c,
 d){this.v0=a;this.v1=b;this.v2=c;this.v3=d}function hc(a,b,c){this.v0=a;this.v1=b;this.v2=c}function dd(a){cd.call(this);this.currentPoint=new E;a&&this.fromPoints(a)}function Cb(){dd.apply(this,arguments);this.holes=[]}function de(){this.subPaths=[];this.currentPath=null}function ee(a){this.data=a}function Re(a){this.manager=void 0!==a?a:ta}function fe(a){this.manager=void 0!==a?a:ta}function ge(a,b,c,d){ma.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 Se(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new Ga;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new Ga;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function Jd(a,b,c){A.call(this);this.type="CubeCamera";var d=new Ga(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new q(1,0,0));this.add(d);var e=new Ga(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new q(-1,0,0));this.add(e);var f=new Ga(90,
+void 0!==c?c:10;this.height=void 0!==d?d:10}function Se(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new Ga;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new Ga;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function Kd(a,b,c){A.call(this);this.type="CubeCamera";var d=new Ga(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new q(1,0,0));this.add(d);var e=new Ga(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new q(-1,0,0));this.add(e);var f=new Ga(90,
 1,a,b);f.up.set(0,0,1);f.lookAt(new q(0,1,0));this.add(f);var g=new Ga(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new q(0,-1,0));this.add(g);var h=new Ga(90,1,a,b);h.up.set(0,-1,0);h.lookAt(new q(0,0,1));this.add(h);var l=new Ga(90,1,a,b);l.up.set(0,-1,0);l.lookAt(new q(0,0,-1));this.add(l);this.renderTarget=new Fb(c,c,{format:1022,magFilter:1006,minFilter:1006});this.updateCubeMap=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=this.renderTarget,n=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=n;c.activeCubeFace=5;a.render(b,l,c);a.setRenderTarget(null)}}function he(){A.call(this);this.type="AudioListener";this.context=ie.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null}function ic(a){A.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 je(a){ic.call(this,a);this.panner=this.context.createPanner();this.panner.connect(this.gain)}function ke(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 Kd(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 ka(a,b,c){this.path=b;this.parsedPath=c||ka.parseTrackName(b);this.node=ka.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function le(a){this.uuid=S.generateUUID();
+a.getOutput().connect(this.analyser)}function Ld(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 ka(a,b,c){this.path=b;this.parsedPath=c||ka.parseTrackName(b);this.node=ka.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function le(a){this.uuid=S.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 me(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 ed(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Ld(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function Db(){G.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function ne(a,b,c,d){this.uuid=S.generateUUID();this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===
+!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function ed(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Md(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function Db(){G.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function ne(a,b,c,d){this.uuid=S.generateUUID();this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===
 d}function jc(a,b){this.uuid=S.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 kc(a,b,c){jc.call(this,a,b);this.meshPerAttribute=c||1}function lc(a,b,c){w.call(this,a,b);this.meshPerAttribute=c||1}function oe(a,b,c,d){this.ray=new db(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 Te(a,b){return a.distance-b.distance}function pe(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++)pe(a[d],b,c,!0)}}function qe(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function re(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 se(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 oa(a,b){za.call(this,a,b);this.animationsMap={};this.animationsList=[];var c=this.geometry.morphTargets.length;this.createAnimation("__default",0,c-1,c/1);this.setAnimationWeight("__default",1)}function fd(a){A.call(this);this.material=a;this.render=function(a){}}function gd(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;
@@ -261,15 +261,15 @@ c?c:0;return this}function se(a,b,c){this.radius=void 0!==a?a:1;this.theta=void
 Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.addAttribute("position",new V(b,3));b=new ia({fog:!1});this.cone=new ga(a,b);this.add(this.cone);this.update()}function nc(a){this.bones=this.getBoneList(a);for(var b=new G,c=[],d=[],e=new F(0,0,1),f=new F(0,1,0),g=0;g<this.bones.length;g++){var h=this.bones[g];h.parent&&h.parent.isBone&&(c.push(0,0,0),c.push(0,0,0),d.push(e.r,e.g,e.b),d.push(f.r,f.g,f.b))}b.addAttribute("position",new V(c,3));b.addAttribute("color",new V(d,3));
 c=new ia({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});ga.call(this,b,c);this.root=a;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function oc(a,b){this.light=a;this.light.updateMatrixWorld();var c=new ob(b,4,2),d=new Ka({wireframe:!0,fog:!1});d.color.copy(this.light.color).multiplyScalar(this.light.intensity);za.call(this,c,d);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1}function pc(a){A.call(this);this.light=a;this.light.updateMatrixWorld();var b=
 new Ka({color:a.color,fog:!1});a=new Ka({color:a.color,fog:!1,wireframe:!0});var c=new G;c.addAttribute("position",new w(new Float32Array(18),3));this.add(new za(c,b));this.add(new za(c,a));this.update()}function qc(a,b){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;var c=new nb(b);c.rotateY(.5*Math.PI);var d=new Ka({vertexColors:2,wireframe:!0}),e=c.getAttribute("position"),e=new Float32Array(3*e.count);c.addAttribute("color",new w(e,
-3));this.add(new za(c,d));this.update()}function hd(a,b,c,d){a=a||10;b=b||10;c=new F(void 0!==c?c:4473924);d=new F(void 0!==d?d:8947848);for(var e=b/2,f=2*a/b,g=[],h=[],l=0,k=0,m=-a;l<=b;l++,m+=f){g.push(-a,0,m,a,0,m);g.push(m,0,-a,m,0,a);var p=l===e?c:d;p.toArray(h,k);k+=3;p.toArray(h,k);k+=3;p.toArray(h,k);k+=3;p.toArray(h,k);k+=3}a=new G;a.addAttribute("position",new V(g,3));a.addAttribute("color",new V(h,3));g=new ia({vertexColors:2});ga.call(this,a,g)}function Md(a,b,c,d,e,f){a=a||10;b=b||16;
+3));this.add(new za(c,d));this.update()}function hd(a,b,c,d){a=a||10;b=b||10;c=new F(void 0!==c?c:4473924);d=new F(void 0!==d?d:8947848);for(var e=b/2,f=2*a/b,g=[],h=[],l=0,k=0,m=-a;l<=b;l++,m+=f){g.push(-a,0,m,a,0,m);g.push(m,0,-a,m,0,a);var p=l===e?c:d;p.toArray(h,k);k+=3;p.toArray(h,k);k+=3;p.toArray(h,k);k+=3;p.toArray(h,k);k+=3}a=new G;a.addAttribute("position",new V(g,3));a.addAttribute("color",new V(h,3));g=new ia({vertexColors:2});ga.call(this,a,g)}function Nd(a,b,c,d,e,f){a=a||10;b=b||16;
 c=c||8;d=d||64;e=new F(void 0!==e?e:4473924);f=new F(void 0!==f?f:8947848);var g=[],h=[],l,k,m,p,n;for(m=0;m<=b;m++)k=m/b*2*Math.PI,l=Math.sin(k)*a,k=Math.cos(k)*a,g.push(0,0,0),g.push(l,0,k),n=m&1?e:f,h.push(n.r,n.g,n.b),h.push(n.r,n.g,n.b);for(m=0;m<=c;m++)for(n=m&1?e:f,p=a-a/c*m,b=0;b<d;b++)k=b/d*2*Math.PI,l=Math.sin(k)*p,k=Math.cos(k)*p,g.push(l,0,k),h.push(n.r,n.g,n.b),k=(b+1)/d*2*Math.PI,l=Math.sin(k)*p,k=Math.cos(k)*p,g.push(l,0,k),h.push(n.r,n.g,n.b);a=new G;a.addAttribute("position",new V(g,
 3));a.addAttribute("color",new V(h,3));g=new ia({vertexColors:2});ga.call(this,a,g)}function id(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 G;b=new V(6*b,3);c.addAttribute("position",b);ga.call(this,c,new ia({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function rc(a,
 b){A.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;void 0===b&&(b=1);var c=new G;c.addAttribute("position",new V([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));var d=new ia({fog:!1});this.add(new Wa(c,d));c=new G;c.addAttribute("position",new V([0,0,0,0,0,1],3));this.add(new Wa(c,d));this.update()}function jd(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 G,e=new ia({color:16777215,vertexColors:1}),f=[],g=[],h={},l=new F(16755200),k=new F(16711680),m=new F(43775),p=new F(16777215),n=new F(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);b("f1","f2",l);b("f2","f4",l);b("f4","f3",l);b("f3","f1",l);b("n1","f1",l);b("n2","f2",l);b("n3","f3",l);b("n4","f4",l);b("p","n1",k);b("p","n2",k);b("p","n3",k);b("p","n4",k);b("u1","u2",m);b("u2","u3",m);b("u3","u1",m);b("c","t",p);b("p","c",n);b("cn1","cn2",n);b("cn3","cn4",n);b("cf1","cf2",
 n);b("cf3","cf4",n);d.addAttribute("position",new V(f,3));d.addAttribute("color",new V(g,3));ga.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 sc(a,b){void 0===b&&(b=16776960);var c=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]),d=new Float32Array(24),e=new G;e.setIndex(new w(c,1));e.addAttribute("position",new w(d,3));ga.call(this,e,
-new ia({color:b}));void 0!==a&&this.update(a)}function Eb(a,b,c,d,e,f){A.call(this);void 0===d&&(d=16776960);void 0===c&&(c=1);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);this.position.copy(b);this.line=new Wa(Ue,new ia({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new za(Ve,new Ka({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 G;a.addAttribute("position",
+new ia({color:b}));void 0!==a&&this.update(a)}function Eb(a,b,c,d,e,f){A.call(this);void 0===d&&(d=16776960);void 0===c&&(c=1);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);this.position.copy(b);this.line=new Wa(Ue,new ia({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new za(Ve,new Ka({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function Od(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new G;a.addAttribute("position",
 new V(b,3));a.addAttribute("color",new V([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new ia({vertexColors:2});ga.call(this,a,b)}function te(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,l){e=l*(g-e);h=l*(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,l,k,m){e=((f-e)/l-(g-e)/(l+k)+(g-f)/k)*k;h=((g-f)/k-(h-f)/(k+m)+(h-g)/m)*k;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 wa(a){this.points=
-a||[];this.closed=!1}function kd(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d}function ld(a,b,c){this.v0=a;this.v1=b;this.v2=c}function md(a,b){this.v1=a;this.v2=b}function Od(a,b,c,d,e,f){Ya.call(this,a,b,c,c,d,e,f)}function We(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");wa.call(this,a);this.type="catmullrom";this.closed=!0}function Xe(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");wa.call(this,
+a||[];this.closed=!1}function kd(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d}function ld(a,b,c){this.v0=a;this.v1=b;this.v2=c}function md(a,b){this.v1=a;this.v2=b}function Pd(a,b,c,d,e,f){Ya.call(this,a,b,c,c,d,e,f)}function We(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");wa.call(this,a);this.type="catmullrom";this.closed=!0}function Xe(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");wa.call(this,
 a);this.type="catmullrom"}function ue(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");wa.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));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}}();pa.prototype={addEventListener:function(a,b){void 0===this._listeners&&(this._listeners={});var c=this._listeners;void 0===c[a]&&(c[a]=[]);-1===c[a].indexOf(b)&&c[a].push(b)},hasEventListener:function(a,b){if(void 0===this._listeners)return!1;var c=
 this._listeners;return void 0!==c[a]&&-1!==c[a].indexOf(b)},removeEventListener:function(a,b){if(void 0!==this._listeners){var c=this._listeners[a];if(void 0!==c){var d=c.indexOf(b);-1!==d&&c.splice(d,1)}}},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;var c=[],d,e=b.length;for(d=0;d<e;d++)c[d]=b[d];for(d=0;d<e;d++)c[d].call(this,a)}}}};var S={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),
@@ -476,7 +476,7 @@ clone:function(){return new this.constructor(this._x,this._y,this._z,this._order
 b?(this._x=Math.asin(-d(k,-1,1)),.99999>Math.abs(k)?(this._y=Math.atan2(g,e),this._z=Math.atan2(h,l)):(this._y=Math.atan2(-m,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(p,-1,1)),.99999>Math.abs(p)?(this._y=Math.atan2(-m,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(m,-1,1)),.99999>Math.abs(m)?(this._x=Math.atan2(p,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,l))):"YZX"===b?(this._z=Math.asin(d(h,-1,1)),.99999>Math.abs(h)?(this._x=
 Math.atan2(-k,l),this._y=Math.atan2(-m,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(this._z=Math.asin(-d(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(p,l),this._y=Math.atan2(g,a)):(this._x=Math.atan2(-k,e),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;if(!1!==c)this.onChangeCallback();return this},setFromQuaternion:function(){var a;return function(b,c,d){void 0===a&&(a=new M);a.makeRotationFromQuaternion(b);return this.setFromRotationMatrix(a,
 c,d)}}(),setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(){var a=new Z;return function(b){a.setFromEuler(this);return this.setFromQuaternion(a,b)}}(),equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=
-this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):new q(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}};od.prototype={constructor:od,set:function(a){this.mask=1<<a},enable:function(a){this.mask|=1<<a},toggle:function(a){this.mask^=1<<a},disable:function(a){this.mask&=~(1<<a)},test:function(a){return 0!==(this.mask&a.mask)}};var Af=0;A.DefaultUp=new q(0,1,0);A.DefaultMatrixAutoUpdate=
+this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):new q(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}};pd.prototype={constructor:pd,set:function(a){this.mask=1<<a},enable:function(a){this.mask|=1<<a},toggle:function(a){this.mask^=1<<a},disable:function(a){this.mask&=~(1<<a)},test:function(a){return 0!==(this.mask&a.mask)}};var Af=0;A.DefaultUp=new q(0,1,0);A.DefaultMatrixAutoUpdate=
 !0;A.prototype={constructor:A,isObject3D:!0,applyMatrix:function(a){this.matrix.multiplyMatrices(a,this.matrix);this.matrix.decompose(this.position,this.quaternion,this.scale)},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(){var a=new Z;return function(b,
 c){a.setFromAxisAngle(b,c);this.quaternion.multiply(a);return this}}(),rotateX:function(){var a=new q(1,0,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateY:function(){var a=new q(0,1,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateZ:function(){var a=new q(0,0,1);return function(b){return this.rotateOnAxis(a,b)}}(),translateOnAxis:function(){var a=new q;return function(b,c){a.copy(b).applyQuaternion(this.quaternion);this.position.add(a.multiplyScalar(c));return this}}(),
 translateX:function(){var a=new q(1,0,0);return function(b){return this.translateOnAxis(a,b)}}(),translateY:function(){var a=new q(0,1,0);return function(b){return this.translateOnAxis(a,b)}}(),translateZ:function(){var a=new q(0,0,1);return function(b){return this.translateOnAxis(a,b)}}(),localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var a=new M;return function(b){return b.applyMatrix4(a.getInverse(this.matrixWorld))}}(),lookAt:function(){var a=new M;return function(b){a.lookAt(b,
@@ -545,111 +545,111 @@ b.y=c.getY(f),b.z=c.getZ(f),e=Math.max(e,d.distanceToSquared(b));this.boundingSp
 0,g=d.length;f<g;f+=9)m.fromArray(d,f),p.fromArray(d,f+3),n.fromArray(d,f+6),r.subVectors(n,p),J.subVectors(m,p),r.cross(J),e[f]=r.x,e[f+1]=r.y,e[f+2]=r.z,e[f+3]=r.x,e[f+4]=r.y,e[f+5]=r.z,e[f+6]=r.x,e[f+7]=r.y,e[f+8]=r.z;this.normalizeNormals();b.normal.needsUpdate=!0}},merge:function(a,b){if(!1===(a&&a.isBufferGeometry))console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",a);else{void 0===b&&(b=0);var c=this.attributes,d;for(d in c)if(void 0!==a.attributes[d])for(var e=
 c[d].array,f=a.attributes[d],g=f.array,h=0,f=f.itemSize*b;h<g.length;h++,f++)e[f]=g[h];return this}},normalizeNormals:function(){for(var a=this.attributes.normal.array,b,c,d,e=0,f=a.length;e<f;e+=3)b=a[e],c=a[e+1],d=a[e+2],b=1/Math.sqrt(b*b+c*c+d*d),a[e]*=b,a[e+1]*=b,a[e+2]*=b},toNonIndexed:function(){if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var a=new G,b=this.index.array,c=this.attributes,d;for(d in c){for(var e=c[d],f=
 e.array,e=e.itemSize,g=new f.constructor(b.length*e),h,l=0,k=0,m=b.length;k<m;k++){h=b[k]*e;for(var p=0;p<e;p++)g[l++]=f[h++]}a.addAttribute(d,new w(g,e))}return a},toJSON:function(){var a={metadata:{version:4.4,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};a.uuid=this.uuid;a.type=this.type;""!==this.name&&(a.name=this.name);if(void 0!==this.parameters){var b=this.parameters,c;for(c in b)void 0!==b[c]&&(a[c]=b[c]);return a}a.data={attributes:{}};var d=this.index;null!==d&&(b=Array.prototype.slice.call(d.array),
-a.data.index={type:d.array.constructor.name,array:b});d=this.attributes;for(c in d){var e=d[c],b=Array.prototype.slice.call(e.array);a.data.attributes[c]={itemSize:e.itemSize,type:e.array.constructor.name,array:b,normalized:e.normalized}}c=this.groups;0<c.length&&(a.data.groups=JSON.parse(JSON.stringify(c)));c=this.boundingSphere;null!==c&&(a.data.boundingSphere={center:c.center.toArray(),radius:c.radius});return a},clone:function(){return(new G).copy(this)},copy:function(a){var b=a.index;null!==
-b&&this.setIndex(b.clone());var b=a.attributes,c;for(c in b)this.addAttribute(c,b[c].clone());a=a.groups;c=0;for(b=a.length;c<b;c++){var d=a[c];this.addGroup(d.start,d.count,d.materialIndex)}return this},dispose:function(){this.dispatchEvent({type:"dispose"})}};G.MaxIndex=65535;Object.assign(G.prototype,pa.prototype);za.prototype=Object.assign(Object.create(A.prototype),{constructor:za,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){A.prototype.copy.call(this,a);this.drawMode=
-a.drawMode;return this},updateMorphTargets:function(){var a=this.geometry.morphTargets;if(void 0!==a&&0<a.length){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var b=0,c=a.length;b<c;b++)this.morphTargetInfluences.push(0),this.morphTargetDictionary[a[b].name]=b}},raycast:function(){function a(a,b,c,d,e,f,g){ya.barycoordFromPoint(a,b,c,d,t);e.multiplyScalar(t.x);f.multiplyScalar(t.y);g.multiplyScalar(t.z);e.add(f).add(g);return e.clone()}function b(a,b,c,d,e,f,g){var h=a.material;
-if(null===(1===h.side?c.intersectTriangle(f,e,d,!0,g):c.intersectTriangle(d,e,f,2!==h.side,g)))return null;u.copy(g);u.applyMatrix4(a.matrixWorld);c=b.ray.origin.distanceTo(u);return c<b.near||c>b.far?null:{distance:c,point:u.clone(),object:a}}function c(c,d,e,f,k,m,p,q){g.fromBufferAttribute(f,m);h.fromBufferAttribute(f,p);l.fromBufferAttribute(f,q);if(c=b(c,d,e,g,h,l,y))k&&(n.fromBufferAttribute(k,m),r.fromBufferAttribute(k,p),J.fromBufferAttribute(k,q),c.uv=a(y,g,h,l,n,r,J)),c.face=new ha(m,p,
-q,ya.normal(g,h,l)),c.faceIndex=m;return c}var d=new M,e=new db,f=new Ea,g=new q,h=new q,l=new q,k=new q,m=new q,p=new q,n=new E,r=new E,J=new E,t=new q,y=new q,u=new q;return function(q,t){var u=this.geometry,B=this.material,w=this.matrixWorld;if(void 0!==B&&(null===u.boundingSphere&&u.computeBoundingSphere(),f.copy(u.boundingSphere),f.applyMatrix4(w),!1!==q.ray.intersectsSphere(f)&&(d.getInverse(w),e.copy(q.ray).applyMatrix4(d),null===u.boundingBox||!1!==e.intersectsBox(u.boundingBox)))){var D;
-if(u.isBufferGeometry){var I,E,B=u.index,A=u.attributes.position,w=u.attributes.uv,F,G;if(null!==B)for(F=0,G=B.count;F<G;F+=3){if(u=B.getX(F),I=B.getX(F+1),E=B.getX(F+2),D=c(this,q,e,A,w,u,I,E))D.faceIndex=Math.floor(F/3),t.push(D)}else for(F=0,G=A.count;F<G;F+=3)if(u=F,I=F+1,E=F+2,D=c(this,q,e,A,w,u,I,E))D.index=u,t.push(D)}else if(u.isGeometry){var H,M,w=B&&B.isMultiMaterial;F=!0===w?B.materials:null;G=u.vertices;I=u.faces;E=u.faceVertexUvs[0];0<E.length&&(A=E);for(var N=0,O=I.length;N<O;N++){var R=
-I[N];D=!0===w?F[R.materialIndex]:B;if(void 0!==D){E=G[R.a];H=G[R.b];M=G[R.c];if(!0===D.morphTargets){D=u.morphTargets;var T=this.morphTargetInfluences;g.set(0,0,0);h.set(0,0,0);l.set(0,0,0);for(var S=0,W=D.length;S<W;S++){var P=T[S];if(0!==P){var K=D[S].vertices;g.addScaledVector(k.subVectors(K[R.a],E),P);h.addScaledVector(m.subVectors(K[R.b],H),P);l.addScaledVector(p.subVectors(K[R.c],M),P)}}g.add(E);h.add(H);l.add(M);E=g;H=h;M=l}if(D=b(this,q,e,E,H,M,y))A&&(T=A[N],n.copy(T[0]),r.copy(T[1]),J.copy(T[2]),
-D.uv=a(y,E,H,M,n,r,J)),D.face=R,D.faceIndex=N,t.push(D)}}}}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});jb.prototype=Object.create(G.prototype);jb.prototype.constructor=jb;kb.prototype=Object.create(G.prototype);kb.prototype.constructor=kb;sa.prototype=Object.create(A.prototype);sa.prototype.constructor=sa;sa.prototype.isCamera=!0;sa.prototype.getWorldDirection=function(){var a=new Z;return function(b){b=b||new q;this.getWorldQuaternion(a);return b.set(0,
-0,-1).applyQuaternion(a)}}();sa.prototype.lookAt=function(){var a=new M;return function(b){a.lookAt(this.position,b,this.up);this.quaternion.setFromRotationMatrix(a)}}();sa.prototype.clone=function(){return(new this.constructor).copy(this)};sa.prototype.copy=function(a){A.prototype.copy.call(this,a);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);return this};Ga.prototype=Object.assign(Object.create(sa.prototype),{constructor:Ga,isPerspectiveCamera:!0,
-copy:function(a){sa.prototype.copy.call(this,a);this.fov=a.fov;this.zoom=a.zoom;this.near=a.near;this.far=a.far;this.focus=a.focus;this.aspect=a.aspect;this.view=null===a.view?null:Object.assign({},a.view);this.filmGauge=a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*S.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*S.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*
-S.RAD2DEG*Math.atan(Math.tan(.5*S.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;this.view={fullWidth:a,fullHeight:b,offsetX:c,offsetY:d,width:e,height:f};this.updateProjectionMatrix()},clearViewOffset:function(){this.view=null;this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*
-S.DEG2RAD*this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=this.view;if(null!==f)var g=f.fullWidth,h=f.fullHeight,e=e+f.offsetX*d/g,b=b-f.offsetY*c/h,d=f.width/g*d,c=f.height/h*c;f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far)},toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==
-this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Jb.prototype=Object.assign(Object.create(sa.prototype),{constructor:Jb,isOrthographicCamera:!0,copy:function(a){sa.prototype.copy.call(this,a);this.left=a.left;this.right=a.right;this.top=a.top;this.bottom=a.bottom;this.near=a.near;this.far=a.far;this.zoom=a.zoom;this.view=null===a.view?null:Object.assign({},a.view);return this},setViewOffset:function(a,b,c,d,e,
-f){this.view={fullWidth:a,fullHeight:b,offsetX:c,offsetY:d,width:e,height:f};this.updateProjectionMatrix()},clearViewOffset:function(){this.view=null;this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=(this.right-this.left)/(2*this.zoom),b=(this.top-this.bottom)/(2*this.zoom),c=(this.right+this.left)/2,d=(this.top+this.bottom)/2,e=c-a,c=c+a,a=d+b,b=d-b;if(null!==this.view)var c=this.zoom/(this.view.width/this.view.fullWidth),b=this.zoom/(this.view.height/this.view.fullHeight),
-f=(this.right-this.left)/this.view.width,d=(this.top-this.bottom)/this.view.height,e=e+this.view.offsetX/c*f,c=e+this.view.width/c*f,a=a-this.view.offsetY/b*d,b=a-this.view.height/b*d;this.projectionMatrix.makeOrthographic(e,c,a,b,this.near,this.far)},toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.zoom=this.zoom;a.object.left=this.left;a.object.right=this.right;a.object.top=this.top;a.object.bottom=this.bottom;a.object.near=this.near;a.object.far=this.far;null!==this.view&&(a.object.view=
-Object.assign({},this.view));return a}});var Kf=0;Kb.prototype.isFogExp2=!0;Kb.prototype.clone=function(){return new Kb(this.color.getHex(),this.density)};Kb.prototype.toJSON=function(a){return{type:"FogExp2",color:this.color.getHex(),density:this.density}};Lb.prototype.isFog=!0;Lb.prototype.clone=function(){return new Lb(this.color.getHex(),this.near,this.far)};Lb.prototype.toJSON=function(a){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}};lb.prototype=Object.create(A.prototype);
-lb.prototype.constructor=lb;lb.prototype.copy=function(a,b){A.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.clone());null!==a.fog&&(this.fog=a.fog.clone());null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone());this.autoUpdate=a.autoUpdate;this.matrixAutoUpdate=a.matrixAutoUpdate;return this};lb.prototype.toJSON=function(a){var b=A.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==
-this.fog&&(b.object.fog=this.fog.toJSON());return b};Yd.prototype=Object.assign(Object.create(A.prototype),{constructor:Yd,isLensFlare:!0,copy:function(a){A.prototype.copy.call(this,a);this.positionScreen.copy(a.positionScreen);this.customUpdateCallback=a.customUpdateCallback;for(var b=0,c=a.lensFlares.length;b<c;b++)this.lensFlares.push(a.lensFlares[b]);return this},add:function(a,b,c,d,e,f){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===f&&(f=1);void 0===e&&(e=new F(16777215));void 0===d&&(d=1);
-c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:0,opacity:f,color:e,blending:d})},updateLensFlares:function(){var a,b=this.lensFlares.length,c,d=2*-this.positionScreen.x,e=2*-this.positionScreen.y;for(a=0;a<b;a++)c=this.lensFlares[a],c.x=this.positionScreen.x+d*c.distance,c.y=this.positionScreen.y+e*c.distance,c.wantedRotation=c.x*Math.PI*.25,c.rotation+=.25*(c.wantedRotation-c.rotation)}});mb.prototype=Object.create(X.prototype);mb.prototype.constructor=
-mb;mb.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.rotation=a.rotation;return this};Ec.prototype=Object.assign(Object.create(A.prototype),{constructor:Ec,isSprite:!0,raycast:function(){var a=new q;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.distanceSqToPoint(a);d>this.scale.x*this.scale.y/4||c.push({distance:Math.sqrt(d),point:this.position,face:null,object:this})}}(),clone:function(){return(new this.constructor(this.material)).copy(this)}});
-Fc.prototype=Object.assign(Object.create(A.prototype),{constructor:Fc,copy:function(a){A.prototype.copy.call(this,a,!1);a=a.levels;for(var b=0,c=a.length;b<c;b++){var d=a[b];this.addLevel(d.object.clone(),d.distance)}return this},addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a)},getObjectForDistance:function(a){for(var b=this.levels,c=1,d=b.length;c<d&&!(a<b[c].distance);c++);return b[c-
-1].object},raycast:function(){var a=new q;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.origin.distanceTo(a);this.getObjectForDistance(d).raycast(b,c)}}(),update:function(){var a=new q,b=new q;return function(c){var d=this.levels;if(1<d.length){a.setFromMatrixPosition(c.matrixWorld);b.setFromMatrixPosition(this.matrixWorld);c=a.distanceTo(b);d[0].object.visible=!0;for(var e=1,f=d.length;e<f;e++)if(c>=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=!0;else break;
-for(;e<f;e++)d[e].object.visible=!1}}}(),toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.levels=[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Object.assign(pd.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new M;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){for(var a,b=0,c=this.bones.length;b<
-c;b++)(a=this.bones[b])&&a.matrixWorld.getInverse(this.boneInverses[b]);b=0;for(c=this.bones.length;b<c;b++)if(a=this.bones[b])a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)},update:function(){var a=new M;return function(){for(var b=0,c=this.bones.length;b<c;b++)a.multiplyMatrices(this.bones[b]?this.bones[b].matrixWorld:this.identityMatrix,this.boneInverses[b]),
-a.toArray(this.boneMatrices,16*b);this.useVertexTexture&&(this.boneTexture.needsUpdate=!0)}}(),clone:function(){return new pd(this.bones,this.boneInverses,this.useVertexTexture)}});qd.prototype=Object.assign(Object.create(A.prototype),{constructor:qd,isBone:!0});rd.prototype=Object.assign(Object.create(za.prototype),{constructor:rd,isSkinnedMesh:!0,bind:function(a,b){this.skeleton=a;void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),b=this.matrixWorld);this.bindMatrix.copy(b);
-this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){if(this.geometry&&this.geometry.isGeometry)for(var a=0;a<this.geometry.skinWeights.length;a++){var b=this.geometry.skinWeights[a],c=1/b.lengthManhattan();Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry)for(var b=new fa,d=this.geometry.attributes.skinWeight,a=0;a<d.count;a++)b.x=d.getX(a),b.y=d.getY(a),b.z=d.getZ(a),b.w=d.getW(a),c=1/b.lengthManhattan(),
-Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0),d.setXYZW(a,b.x,b.y,b.z,b.w)},updateMatrixWorld:function(a){za.prototype.updateMatrixWorld.call(this,!0);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh unrecognized bindMode: "+this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material,this.skeleton.useVertexTexture)).copy(this)}});
-ia.prototype=Object.create(X.prototype);ia.prototype.constructor=ia;ia.prototype.isLineBasicMaterial=!0;ia.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};Wa.prototype=Object.assign(Object.create(A.prototype),{constructor:Wa,isLine:!0,raycast:function(){var a=new M,b=new db,c=new Ea;return function(d,e){var f=d.linePrecision,f=f*f,g=this.geometry,h=this.matrixWorld;null===g.boundingSphere&&
-g.computeBoundingSphere();c.copy(g.boundingSphere);c.applyMatrix4(h);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(h);b.copy(d.ray).applyMatrix4(a);var l=new q,k=new q,h=new q,m=new q,p=this&&this.isLineSegments?2:1;if(g.isBufferGeometry){var n=g.index,r=g.attributes.position.array;if(null!==n)for(var n=n.array,g=0,J=n.length-1;g<J;g+=p){var t=n[g+1];l.fromArray(r,3*n[g]);k.fromArray(r,3*t);t=b.distanceSqToSegment(l,k,m,h);t>f||(m.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(m),t<d.near||
-t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else for(g=0,J=r.length/3-1;g<J;g+=p)l.fromArray(r,3*g),k.fromArray(r,3*g+3),t=b.distanceSqToSegment(l,k,m,h),t>f||(m.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(m),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else if(g.isGeometry)for(l=g.vertices,k=l.length,g=0;g<k-1;g+=p)t=b.distanceSqToSegment(l[g],
-l[g+1],m,h),t>f||(m.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(m),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});ga.prototype=Object.assign(Object.create(Wa.prototype),{constructor:ga,isLineSegments:!0});Na.prototype=Object.create(X.prototype);Na.prototype.constructor=Na;Na.prototype.isPointsMaterial=!0;Na.prototype.copy=
-function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;return this};Mb.prototype=Object.assign(Object.create(A.prototype),{constructor:Mb,isPoints:!0,raycast:function(){var a=new M,b=new db,c=new Ea;return function(d,e){function f(a,c){var f=b.distanceSqToPoint(a);if(f<m){var h=b.closestPointToPoint(a);h.applyMatrix4(l);var k=d.ray.origin.distanceTo(h);k<d.near||k>d.far||e.push({distance:k,distanceToRay:Math.sqrt(f),
-point:h.clone(),index:c,face:null,object:g})}}var g=this,h=this.geometry,l=this.matrixWorld,k=d.params.Points.threshold;null===h.boundingSphere&&h.computeBoundingSphere();c.copy(h.boundingSphere);c.applyMatrix4(l);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(l);b.copy(d.ray).applyMatrix4(a);var k=k/((this.scale.x+this.scale.y+this.scale.z)/3),m=k*k,k=new q;if(h.isBufferGeometry){var p=h.index,h=h.attributes.position.array;if(null!==p)for(var n=p.array,p=0,r=n.length;p<r;p++){var J=n[p];k.fromArray(h,
-3*J);f(k,J)}else for(p=0,n=h.length/3;p<n;p++)k.fromArray(h,3*p),f(k,p)}else for(k=h.vertices,p=0,n=k.length;p<n;p++)f(k[p],p)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Gc.prototype=Object.assign(Object.create(A.prototype),{constructor:Gc});sd.prototype=Object.create(ca.prototype);sd.prototype.constructor=sd;Nb.prototype=Object.create(ca.prototype);Nb.prototype.constructor=Nb;Nb.prototype.isCompressedTexture=!0;td.prototype=Object.create(ca.prototype);
-td.prototype.constructor=td;Hc.prototype=Object.create(ca.prototype);Hc.prototype.constructor=Hc;Hc.prototype.isDepthTexture=!0;Ob.prototype=Object.create(G.prototype);Ob.prototype.constructor=Ob;Pb.prototype=Object.create(G.prototype);Pb.prototype.constructor=Pb;Ic.prototype=Object.create(H.prototype);Ic.prototype.constructor=Ic;Aa.prototype=Object.create(G.prototype);Aa.prototype.constructor=Aa;Qb.prototype=Object.create(Aa.prototype);Qb.prototype.constructor=Qb;Jc.prototype=Object.create(H.prototype);
-Jc.prototype.constructor=Jc;nb.prototype=Object.create(Aa.prototype);nb.prototype.constructor=nb;Kc.prototype=Object.create(H.prototype);Kc.prototype.constructor=Kc;Rb.prototype=Object.create(Aa.prototype);Rb.prototype.constructor=Rb;Lc.prototype=Object.create(H.prototype);Lc.prototype.constructor=Lc;Sb.prototype=Object.create(Aa.prototype);Sb.prototype.constructor=Sb;Mc.prototype=Object.create(H.prototype);Mc.prototype.constructor=Mc;Nc.prototype=Object.create(H.prototype);Nc.prototype.constructor=
-Nc;Tb.prototype=Object.create(G.prototype);Tb.prototype.constructor=Tb;Oc.prototype=Object.create(H.prototype);Oc.prototype.constructor=Oc;Ub.prototype=Object.create(G.prototype);Ub.prototype.constructor=Ub;Pc.prototype=Object.create(H.prototype);Pc.prototype.constructor=Pc;Vb.prototype=Object.create(G.prototype);Vb.prototype.constructor=Vb;Qc.prototype=Object.create(H.prototype);Qc.prototype.constructor=Qc;var Oa={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*
-a[d].y;return.5*c},triangulate:function(){return function(a,b){var c=a.length;if(3>c)return null;var d=[],e=[],f=[],g,h,l;if(0<Oa.area(a))for(h=0;h<c;h++)e[h]=h;else for(h=0;h<c;h++)e[h]=c-1-h;var k=2*c;for(h=c-1;2<c;){if(0>=k--){console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()");break}g=h;c<=g&&(g=0);h=g+1;c<=h&&(h=0);l=h+1;c<=l&&(l=0);var m;a:{var p,n,r,q,t,y,u,v;p=a[e[g]].x;n=a[e[g]].y;r=a[e[h]].x;q=a[e[h]].y;t=a[e[l]].x;y=a[e[l]].y;if(0>=(r-p)*(y-n)-(q-n)*(t-p))m=
-!1;else{var L,x,B,w,D,I,E,A,F,G;L=t-r;x=y-q;B=p-t;w=n-y;D=r-p;I=q-n;for(m=0;m<c;m++)if(u=a[e[m]].x,v=a[e[m]].y,!(u===p&&v===n||u===r&&v===q||u===t&&v===y)&&(E=u-p,A=v-n,F=u-r,G=v-q,u-=t,v-=y,F=L*G-x*F,E=D*A-I*E,A=B*v-w*u,F>=-Number.EPSILON&&A>=-Number.EPSILON&&E>=-Number.EPSILON)){m=!1;break a}m=!0}}if(m){d.push([a[e[g]],a[e[h]],a[e[l]]]);f.push([e[g],e[h],e[l]]);g=h;for(l=h+1;l<c;g++,l++)e[g]=e[l];c--;k=2*c}}return b?f:d}}(),triangulateShape:function(a,b){function c(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&
-a.pop()}function d(a,b,c){return a.x!==b.x?a.x<b.x?a.x<=c.x&&c.x<=b.x:b.x<=c.x&&c.x<=a.x:a.y<b.y?a.y<=c.y&&c.y<=b.y:b.y<=c.y&&c.y<=a.y}function e(a,b,c,e,f){var g=b.x-a.x,h=b.y-a.y,k=e.x-c.x,l=e.y-c.y,m=a.x-c.x,n=a.y-c.y,p=h*k-g*l,q=h*m-g*n;if(Math.abs(p)>Number.EPSILON){if(0<p){if(0>q||q>p)return[];k=l*m-k*n;if(0>k||k>p)return[]}else{if(0<q||q<p)return[];k=l*m-k*n;if(0<k||k<p)return[]}if(0===k)return!f||0!==q&&q!==p?[a]:[];if(k===p)return!f||0!==q&&q!==p?[b]:[];if(0===q)return[c];if(q===p)return[e];
-f=k/p;return[{x:a.x+f*g,y:a.y+f*h}]}if(0!==q||l*m!==k*n)return[];h=0===g&&0===h;k=0===k&&0===l;if(h&&k)return a.x!==c.x||a.y!==c.y?[]:[a];if(h)return d(c,e,a)?[a]:[];if(k)return d(a,b,c)?[c]:[];0!==g?(a.x<b.x?(g=a,k=a.x,h=b,a=b.x):(g=b,k=b.x,h=a,a=a.x),c.x<e.x?(b=c,p=c.x,l=e,c=e.x):(b=e,p=e.x,l=c,c=c.x)):(a.y<b.y?(g=a,k=a.y,h=b,a=b.y):(g=b,k=b.y,h=a,a=a.y),c.y<e.y?(b=c,p=c.y,l=e,c=e.y):(b=e,p=e.y,l=c,c=c.y));return k<=p?a<p?[]:a===p?f?[]:[b]:a<=c?[b,h]:[b,l]:k>c?[]:k===c?f?[]:[g]:a<=c?[g,h]:[g,l]}
-function f(a,b,c,d){var e=b.x-a.x,f=b.y-a.y;b=c.x-a.x;c=c.y-a.y;var g=d.x-a.x;d=d.y-a.y;a=e*c-f*b;e=e*d-f*g;return Math.abs(a)>Number.EPSILON?(b=g*c-d*b,0<a?0<=e&&0<=b:0<=e||0<=b):0<e}c(a);b.forEach(c);var g,h,l,k,m,p={};l=a.concat();g=0;for(h=b.length;g<h;g++)Array.prototype.push.apply(l,b[g]);g=0;for(h=l.length;g<h;g++)m=l[g].x+":"+l[g].y,void 0!==p[m]&&console.warn("THREE.ShapeUtils: Duplicate point",m,g),p[m]=g;g=function(a,b){function c(a,b){var d=h.length-1,e=a-1;0>e&&(e=d);var g=a+1;g>d&&(g=
-0);d=f(h[a],h[e],h[g],k[b]);if(!d)return!1;d=k.length-1;e=b-1;0>e&&(e=d);g=b+1;g>d&&(g=0);return(d=f(k[b],k[e],k[g],h[a]))?!0:!1}function d(a,b){var c,f;for(c=0;c<h.length;c++)if(f=c+1,f%=h.length,f=e(a,b,h[c],h[f],!0),0<f.length)return!0;return!1}function g(a,c){var d,f,h,k;for(d=0;d<l.length;d++)for(f=b[l[d]],h=0;h<f.length;h++)if(k=h+1,k%=f.length,k=e(a,c,f[h],f[k],!0),0<k.length)return!0;return!1}var h=a.concat(),k,l=[],m,n,p,q,z,w=[],E,A,F,G=0;for(m=b.length;G<m;G++)l.push(G);E=0;for(var H=2*
-l.length;0<l.length;){H--;if(0>H){console.log("Infinite Loop! Holes left:"+l.length+", Probably Hole outside Shape!");break}for(n=E;n<h.length;n++){p=h[n];m=-1;for(G=0;G<l.length;G++)if(q=l[G],z=p.x+":"+p.y+":"+q,void 0===w[z]){k=b[q];for(A=0;A<k.length;A++)if(q=k[A],c(n,A)&&!d(p,q)&&!g(p,q)){m=A;l.splice(G,1);E=h.slice(0,n+1);q=h.slice(n);A=k.slice(m);F=k.slice(0,m+1);h=E.concat(A).concat(F).concat(q);E=n;break}if(0<=m)break;w[z]=!0}if(0<=m)break}}return h}(a,b);var n=Oa.triangulate(g,!1);g=0;for(h=
-n.length;g<h;g++)for(k=n[g],l=0;3>l;l++)m=k[l].x+":"+k[l].y,m=p[m],void 0!==m&&(k[l]=m);return n.concat()},isClockWise:function(a){return 0>Oa.area(a)}};La.prototype=Object.create(H.prototype);La.prototype.constructor=La;La.prototype.addShapeList=function(a,b){for(var c=a.length,d=0;d<c;d++)this.addShape(a[d],b)};La.prototype.addShape=function(a,b){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function d(a,b,c){var d,e,f;
-e=a.x-b.x;f=a.y-b.y;d=c.x-a.x;var g=c.y-a.y,h=e*e+f*f;if(Math.abs(e*g-f*d)>Number.EPSILON){var k=Math.sqrt(h),l=Math.sqrt(d*d+g*g),h=b.x-f/k;b=b.y+e/k;g=((c.x-g/l-h)*g-(c.y+d/l-b)*d)/(e*g-f*d);d=h+e*g-a.x;e=b+f*g-a.y;f=d*d+e*e;if(2>=f)return new E(d,e);f=Math.sqrt(f/2)}else a=!1,e>Number.EPSILON?d>Number.EPSILON&&(a=!0):e<-Number.EPSILON?d<-Number.EPSILON&&(a=!0):Math.sign(f)===Math.sign(g)&&(a=!0),a?(d=-f,f=Math.sqrt(h)):(d=e,e=f,f=Math.sqrt(h/2));return new E(d/f,e/f)}function e(a,b){var c,d;for(K=
-a.length;0<=--K;){c=K;d=K-1;0>d&&(d=a.length-1);var e,f=r+2*m;for(e=0;e<f;e++){var g=V*e,h=V*(e+1),k=b+c+g,g=b+d+g,l=b+d+h,h=b+c+h,k=k+G,g=g+G,l=l+G,h=h+G;F.faces.push(new ha(k,g,h,null,null,1));F.faces.push(new ha(g,l,h,null,null,1));k=u.generateSideWallUV(F,k,g,l,h);F.faceVertexUvs[0].push([k[0],k[1],k[3]]);F.faceVertexUvs[0].push([k[1],k[2],k[3]])}}}function f(a,b,c){F.vertices.push(new q(a,b,c))}function g(a,b,c){a+=G;b+=G;c+=G;F.faces.push(new ha(a,b,c,null,null,0));a=u.generateTopUV(F,a,b,c);
-F.faceVertexUvs[0].push(a)}var h=void 0!==b.amount?b.amount:100,l=void 0!==b.bevelThickness?b.bevelThickness:6,k=void 0!==b.bevelSize?b.bevelSize:l-2,m=void 0!==b.bevelSegments?b.bevelSegments:3,p=void 0!==b.bevelEnabled?b.bevelEnabled:!0,n=void 0!==b.curveSegments?b.curveSegments:12,r=void 0!==b.steps?b.steps:1,J=b.extrudePath,t,y=!1,u=void 0!==b.UVGenerator?b.UVGenerator:La.WorldUVGenerator,v,w,x,B;J&&(t=J.getSpacedPoints(r),y=!0,p=!1,v=void 0!==b.frames?b.frames:J.computeFrenetFrames(r,!1),w=new q,
-x=new q,B=new q);p||(k=l=m=0);var A,D,I,F=this,G=this.vertices.length,J=a.extractPoints(n),n=J.shape,H=J.holes;if(J=!Oa.isClockWise(n)){n=n.reverse();D=0;for(I=H.length;D<I;D++)A=H[D],Oa.isClockWise(A)&&(H[D]=A.reverse());J=!1}var M=Oa.triangulateShape(n,H),S=n;D=0;for(I=H.length;D<I;D++)A=H[D],n=n.concat(A);var P,N,O,R,T,V=n.length,W,X=M.length,J=[],K=0;O=S.length;P=O-1;for(N=K+1;K<O;K++,P++,N++)P===O&&(P=0),N===O&&(N=0),J[K]=d(S[K],S[P],S[N]);var ba=[],Z,ca=J.concat();D=0;for(I=H.length;D<I;D++){A=
-H[D];Z=[];K=0;O=A.length;P=O-1;for(N=K+1;K<O;K++,P++,N++)P===O&&(P=0),N===O&&(N=0),Z[K]=d(A[K],A[P],A[N]);ba.push(Z);ca=ca.concat(Z)}for(P=0;P<m;P++){O=P/m;R=l*Math.cos(O*Math.PI/2);N=k*Math.sin(O*Math.PI/2);K=0;for(O=S.length;K<O;K++)T=c(S[K],J[K],N),f(T.x,T.y,-R);D=0;for(I=H.length;D<I;D++)for(A=H[D],Z=ba[D],K=0,O=A.length;K<O;K++)T=c(A[K],Z[K],N),f(T.x,T.y,-R)}N=k;for(K=0;K<V;K++)T=p?c(n[K],ca[K],N):n[K],y?(x.copy(v.normals[0]).multiplyScalar(T.x),w.copy(v.binormals[0]).multiplyScalar(T.y),B.copy(t[0]).add(x).add(w),
-f(B.x,B.y,B.z)):f(T.x,T.y,0);for(O=1;O<=r;O++)for(K=0;K<V;K++)T=p?c(n[K],ca[K],N):n[K],y?(x.copy(v.normals[O]).multiplyScalar(T.x),w.copy(v.binormals[O]).multiplyScalar(T.y),B.copy(t[O]).add(x).add(w),f(B.x,B.y,B.z)):f(T.x,T.y,h/r*O);for(P=m-1;0<=P;P--){O=P/m;R=l*Math.cos(O*Math.PI/2);N=k*Math.sin(O*Math.PI/2);K=0;for(O=S.length;K<O;K++)T=c(S[K],J[K],N),f(T.x,T.y,h+R);D=0;for(I=H.length;D<I;D++)for(A=H[D],Z=ba[D],K=0,O=A.length;K<O;K++)T=c(A[K],Z[K],N),y?f(T.x,T.y+t[r-1].y,t[r-1].x+R):f(T.x,T.y,h+
-R)}(function(){if(p){var a=0*V;for(K=0;K<X;K++)W=M[K],g(W[2]+a,W[1]+a,W[0]+a);a=V*(r+2*m);for(K=0;K<X;K++)W=M[K],g(W[0]+a,W[1]+a,W[2]+a)}else{for(K=0;K<X;K++)W=M[K],g(W[2],W[1],W[0]);for(K=0;K<X;K++)W=M[K],g(W[0]+V*r,W[1]+V*r,W[2]+V*r)}})();(function(){var a=0;e(S,a);a+=S.length;D=0;for(I=H.length;D<I;D++)A=H[D],e(A,a),a+=A.length})()};La.WorldUVGenerator={generateTopUV:function(a,b,c,d){a=a.vertices;b=a[b];c=a[c];d=a[d];return[new E(b.x,b.y),new E(c.x,c.y),new E(d.x,d.y)]},generateSideWallUV:function(a,
-b,c,d,e){a=a.vertices;b=a[b];c=a[c];d=a[d];e=a[e];return.01>Math.abs(b.y-c.y)?[new E(b.x,1-b.z),new E(c.x,1-c.z),new E(d.x,1-d.z),new E(e.x,1-e.z)]:[new E(b.y,1-b.z),new E(c.y,1-c.z),new E(d.y,1-d.z),new E(e.y,1-e.z)]}};Rc.prototype=Object.create(La.prototype);Rc.prototype.constructor=Rc;ob.prototype=Object.create(G.prototype);ob.prototype.constructor=ob;Sc.prototype=Object.create(H.prototype);Sc.prototype.constructor=Sc;Wb.prototype=Object.create(G.prototype);Wb.prototype.constructor=Wb;Tc.prototype=
-Object.create(H.prototype);Tc.prototype.constructor=Tc;Uc.prototype=Object.create(H.prototype);Uc.prototype.constructor=Uc;Xb.prototype=Object.create(G.prototype);Xb.prototype.constructor=Xb;Vc.prototype=Object.create(H.prototype);Vc.prototype.constructor=Vc;Yb.prototype=Object.create(G.prototype);Yb.prototype.constructor=Yb;Zb.prototype=Object.create(H.prototype);Zb.prototype.constructor=Zb;$b.prototype=Object.create(G.prototype);$b.prototype.constructor=$b;Xa.prototype=Object.create(G.prototype);
-Xa.prototype.constructor=Xa;pb.prototype=Object.create(H.prototype);pb.prototype.constructor=pb;Wc.prototype=Object.create(pb.prototype);Wc.prototype.constructor=Wc;Xc.prototype=Object.create(Xa.prototype);Xc.prototype.constructor=Xc;ac.prototype=Object.create(G.prototype);ac.prototype.constructor=ac;Yc.prototype=Object.create(H.prototype);Yc.prototype.constructor=Yc;bc.prototype=Object.create(H.prototype);bc.prototype.constructor=bc;var Ma=Object.freeze({WireframeGeometry:Ob,ParametricGeometry:Ic,
-ParametricBufferGeometry:Pb,TetrahedronGeometry:Jc,TetrahedronBufferGeometry:Qb,OctahedronGeometry:Kc,OctahedronBufferGeometry:nb,IcosahedronGeometry:Lc,IcosahedronBufferGeometry:Rb,DodecahedronGeometry:Mc,DodecahedronBufferGeometry:Sb,PolyhedronGeometry:Nc,PolyhedronBufferGeometry:Aa,TubeGeometry:Oc,TubeBufferGeometry:Tb,TorusKnotGeometry:Pc,TorusKnotBufferGeometry:Ub,TorusGeometry:Qc,TorusBufferGeometry:Vb,TextGeometry:Rc,SphereBufferGeometry:ob,SphereGeometry:Sc,RingGeometry:Tc,RingBufferGeometry:Wb,
-PlaneBufferGeometry:kb,PlaneGeometry:Uc,LatheGeometry:Vc,LatheBufferGeometry:Xb,ShapeGeometry:Zb,ShapeBufferGeometry:Yb,ExtrudeGeometry:La,EdgesGeometry:$b,ConeGeometry:Wc,ConeBufferGeometry:Xc,CylinderGeometry:pb,CylinderBufferGeometry:Xa,CircleBufferGeometry:ac,CircleGeometry:Yc,BoxBufferGeometry:jb,BoxGeometry:bc});cc.prototype=Object.create(Ia.prototype);cc.prototype.constructor=cc;cc.prototype.isShadowMaterial=!0;dc.prototype=Object.create(Ia.prototype);dc.prototype.constructor=dc;dc.prototype.isRawShaderMaterial=
-!0;Zc.prototype={constructor:Zc,isMultiMaterial:!0,toJSON:function(a){for(var b={metadata:{version:4.2,type:"material",generator:"MaterialExporter"},uuid:this.uuid,type:this.type,materials:[]},c=this.materials,d=0,e=c.length;d<e;d++){var f=c[d].toJSON(a);delete f.metadata;b.materials.push(f)}b.visible=this.visible;return b},clone:function(){for(var a=new this.constructor,b=0;b<this.materials.length;b++)a.materials.push(this.materials[b].clone());a.visible=this.visible;return a}};Qa.prototype=Object.create(X.prototype);
-Qa.prototype.constructor=Qa;Qa.prototype.isMeshStandardMaterial=!0;Qa.prototype.copy=function(a){X.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);this.roughness=a.roughness;this.metalness=a.metalness;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=
-a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.roughnessMap=a.roughnessMap;this.metalnessMap=a.metalnessMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;
-this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};qb.prototype=Object.create(Qa.prototype);qb.prototype.constructor=qb;qb.prototype.isMeshPhysicalMaterial=!0;qb.prototype.copy=function(a){Qa.prototype.copy.call(this,a);this.defines={PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearCoat=a.clearCoat;this.clearCoatRoughness=a.clearCoatRoughness;return this};Ba.prototype=Object.create(X.prototype);
-Ba.prototype.constructor=Ba;Ba.prototype.isMeshPhongMaterial=!0;Ba.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;
-this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;
-this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};rb.prototype=Object.create(Ba.prototype);rb.prototype.constructor=rb;rb.prototype.isMeshToonMaterial=!0;rb.prototype.copy=function(a){Ba.prototype.copy.call(this,a);this.gradientMap=a.gradientMap;return this};sb.prototype=Object.create(X.prototype);sb.prototype.constructor=sb;sb.prototype.isMeshNormalMaterial=!0;sb.prototype.copy=function(a){X.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;
-this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};tb.prototype=Object.create(X.prototype);tb.prototype.constructor=tb;tb.prototype.isMeshLambertMaterial=!0;tb.prototype.copy=
-function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;
-this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};ub.prototype=Object.create(X.prototype);ub.prototype.constructor=ub;ub.prototype.isLineDashedMaterial=!0;ub.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=
-a.gapSize;return this};var Wf=Object.freeze({ShadowMaterial:cc,SpriteMaterial:mb,RawShaderMaterial:dc,ShaderMaterial:Ia,PointsMaterial:Na,MultiMaterial:Zc,MeshPhysicalMaterial:qb,MeshStandardMaterial:Qa,MeshPhongMaterial:Ba,MeshToonMaterial:rb,MeshNormalMaterial:sb,MeshLambertMaterial:tb,MeshDepthMaterial:cb,MeshBasicMaterial:Ka,LineDashedMaterial:ub,LineBasicMaterial:ia,Material:X}),Pd={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},
-remove:function(a){delete this.files[a]},clear:function(){this.files={}}},ta=new Zd;Object.assign(Da.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=this,f=Pd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){var h=g[1],l=!!g[2],g=g[3],g=window.decodeURIComponent(g);l&&(g=window.atob(g));try{var k,m=(this.responseType||"").toLowerCase();switch(m){case "arraybuffer":case "blob":k=
-new ArrayBuffer(g.length);for(var p=new Uint8Array(k),l=0;l<g.length;l++)p[l]=g.charCodeAt(l);"blob"===m&&(k=new Blob([k],{type:h}));break;case "document":k=(new DOMParser).parseFromString(g,h);break;case "json":k=JSON.parse(g);break;default:k=g}window.setTimeout(function(){b&&b(k);e.manager.itemEnd(a)},0)}catch(q){window.setTimeout(function(){d&&d(q);e.manager.itemError(a)},0)}}else{var n=new XMLHttpRequest;n.open("GET",a,!0);n.addEventListener("load",function(c){var f=c.target.response;Pd.add(a,
-f);200===this.status?(b&&b(f),e.manager.itemEnd(a)):0===this.status?(console.warn("THREE.FileLoader: HTTP Status 0 received."),b&&b(f),e.manager.itemEnd(a)):(d&&d(c),e.manager.itemError(a))},!1);void 0!==c&&n.addEventListener("progress",function(a){c(a)},!1);n.addEventListener("error",function(b){d&&d(b);e.manager.itemError(a)},!1);void 0!==this.responseType&&(n.responseType=this.responseType);void 0!==this.withCredentials&&(n.withCredentials=this.withCredentials);n.overrideMimeType&&n.overrideMimeType(void 0!==
-this.mimeType?this.mimeType:"text/plain");n.send(null)}e.manager.itemStart(a);return n},setPath:function(a){this.path=a;return this},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this}});Object.assign(Oe.prototype,{load:function(a,b,c,d){function e(e){l.load(a[e],function(a){a=f._parser(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};k+=1;6===
-k&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=!0,b&&b(h))},c,d)}var f=this,g=[],h=new Nb;h.image=g;var l=new Da(this.manager);l.setPath(this.path);l.setResponseType("arraybuffer");if(Array.isArray(a))for(var k=0,m=0,p=a.length;m<p;++m)e(m);else l.load(a,function(a){a=f._parser(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=
-a.width,g[d].height=a.height}else h.image.width=a.width,h.image.height=a.height,h.mipmaps=a.mipmaps;1===a.mipmapCount&&(h.minFilter=1006);h.format=a.format;h.needsUpdate=!0;b&&b(h)},c,d);return h},setPath:function(a){this.path=a;return this}});Object.assign($d.prototype,{load:function(a,b,c,d){var e=this,f=new fb,g=new Da(this.manager);g.setResponseType("arraybuffer");g.load(a,function(a){if(a=e._parser(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,
-f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1008,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});Object.assign($c.prototype,{load:function(a,b,c,d){void 0===
-a&&(a="");void 0!==this.path&&(a=this.path+a);var e=this,f=Pd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;c=document.createElementNS("http://www.w3.org/1999/xhtml","img");c.addEventListener("load",function(){THREE.Cache.add(a,this);b&&b(this);e.manager.itemEnd(a)},!1);c.addEventListener("error",function(b){d&&d(b);e.manager.itemError(a)},!1);void 0!==this.crossOrigin&&(c.crossOrigin=this.crossOrigin);e.manager.itemStart(a);c.src=a;return c},
-setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(ae.prototype,{load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;h++;6===h&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new ab,g=new $c(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var h=0;for(c=0;c<a.length;++c)e(c);return f},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});
-Object.assign(ud.prototype,{load:function(a,b,c,d){var e=new ca,f=new $c(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){var d=0<a.search(/\.(jpg|jpeg)$/)||0===a.search(/^data\:image\/jpeg/);e.format=d?1022:1023;e.image=c;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});ma.prototype=Object.assign(Object.create(A.prototype),{constructor:ma,isLight:!0,
-copy:function(a){A.prototype.copy.call(this,a);this.color.copy(a.color);this.intensity=a.intensity;return this},toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.color=this.color.getHex();a.object.intensity=this.intensity;void 0!==this.groundColor&&(a.object.groundColor=this.groundColor.getHex());void 0!==this.distance&&(a.object.distance=this.distance);void 0!==this.angle&&(a.object.angle=this.angle);void 0!==this.decay&&(a.object.decay=this.decay);void 0!==this.penumbra&&(a.object.penumbra=
-this.penumbra);void 0!==this.shadow&&(a.object.shadow=this.shadow.toJSON());return a}});vd.prototype=Object.assign(Object.create(ma.prototype),{constructor:vd,isHemisphereLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.groundColor.copy(a.groundColor);return this}});Object.assign(vb.prototype,{copy:function(a){this.camera=a.camera.clone();this.bias=a.bias;this.radius=a.radius;this.mapSize.copy(a.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a=
-{};0!==this.bias&&(a.bias=this.bias);1!==this.radius&&(a.radius=this.radius);if(512!==this.mapSize.x||512!==this.mapSize.y)a.mapSize=this.mapSize.toArray();a.camera=this.camera.toJSON(!1).object;delete a.camera.matrix;return a}});wd.prototype=Object.assign(Object.create(vb.prototype),{constructor:wd,isSpotLightShadow:!0,update:function(a){var b=2*S.RAD2DEG*a.angle,c=this.mapSize.width/this.mapSize.height;a=a.distance||500;var d=this.camera;if(b!==d.fov||c!==d.aspect||a!==d.far)d.fov=b,d.aspect=c,
-d.far=a,d.updateProjectionMatrix()}});xd.prototype=Object.assign(Object.create(ma.prototype),{constructor:xd,isSpotLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.distance=a.distance;this.angle=a.angle;this.penumbra=a.penumbra;this.decay=a.decay;this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});yd.prototype=Object.assign(Object.create(ma.prototype),{constructor:yd,isPointLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.distance=a.distance;this.decay=
-a.decay;this.shadow=a.shadow.clone();return this}});zd.prototype=Object.assign(Object.create(vb.prototype),{constructor:zd});Ad.prototype=Object.assign(Object.create(ma.prototype),{constructor:Ad,isDirectionalLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});Bd.prototype=Object.assign(Object.create(ma.prototype),{constructor:Bd,isAmbientLight:!0});var na={arraySlice:function(a,b,c){return na.isTypedArray(a)?new a.constructor(a.subarray(b,
-c)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&!(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=a.length,c=Array(b),d=0;d!==b;++d)c[d]=d;c.sort(function(b,c){return a[b]-a[c]});return c},sortedArray:function(a,b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var h=c[f]*b,l=0;l!==b;++l)e[g++]=a[h+l];
-return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.push(f.time),g.toArray(c,c.length)),f=a[e++];while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),c.push(g)),f=a[e++];while(void 0!==f)}}}};va.prototype={constructor:va,evaluate:function(a){var b=this.parameterPositions,
-c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];if(a<d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,
-a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(a,b,c,d){throw Error("call to abstract method");},intervalChanged_:function(a,
-b,c){}};Object.assign(va.prototype,{beforeStart_:va.prototype.copySampleValue_,afterEnd_:va.prototype.copySampleValue_});Cd.prototype=Object.assign(Object.create(va.prototype),{constructor:Cd,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=a;g=2*b-c;break;case 2402:e=d.length-2;g=b+d[e]-d[e+1];break;default:e=a,g=c}if(void 0===h)switch(this.getSettings_().endingEnd){case 2401:f=
-a;h=2*c-b;break;case 2402:f=1;h=c+d[1]-d[0];break;default:f=a-1,h=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,l=this._offsetPrev,k=this._offsetNext,m=this._weightPrev,p=this._weightNext,n=(c-b)/(d-b);c=n*n;d=c*n;b=-m*d+2*m*c-m*n;m=(1+m)*d+(-1.5-2*m)*c+(-.5+m)*n+1;n=(-1-p)*d+(1.5+p)*c+.5*n;p=p*d-p*c;for(c=0;c!==g;++c)e[c]=
-b*f[l+c]+m*f[h+c]+n*f[a+c]+p*f[k+c];return e}});ad.prototype=Object.assign(Object.create(va.prototype),{constructor:ad,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Dd.prototype=Object.assign(Object.create(va.prototype),{constructor:Dd,interpolate_:function(a,b,c,d){return this.copySampleValue_(a-1)}});var Za;Za={TimeBufferType:Float32Array,ValueBufferType:Float32Array,
-DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Dd(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new ad(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Cd(this.times,this.values,this.getValueSize(),a)},setInterpolation:function(a){var b;switch(a){case 2300:b=this.InterpolantFactoryMethodDiscrete;break;case 2301:b=this.InterpolantFactoryMethodLinear;break;case 2302:b=
-this.InterpolantFactoryMethodSmooth}if(void 0===b){b="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant)if(a!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(b);console.warn(b)}else this.createInterpolant=b},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},
-getValueSize:function(){return this.values.length/this.times.length},shift:function(a){if(0!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]+=a;return this},scale:function(a){if(1!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]*=a;return this},trim:function(a,b){for(var c=this.times,d=c.length,e=0,f=d-1;e!==d&&c[e]<a;)++e;for(;-1!==f&&c[f]>b;)--f;++f;if(0!==e||f!==d)e>=f&&(f=Math.max(f,1),e=f-1),d=this.getValueSize(),this.times=na.arraySlice(c,e,f),this.values=na.arraySlice(this.values,
-e*d,f*d);return this},validate:function(){var a=!0,b=this.getValueSize();0!==b-Math.floor(b)&&(console.error("invalid value size in track",this),a=!1);var c=this.times,b=this.values,d=c.length;0===d&&(console.error("track is empty",this),a=!1);for(var e=null,f=0;f!==d;f++){var g=c[f];if("number"===typeof g&&isNaN(g)){console.error("time is not a valid number",this,f,g);a=!1;break}if(null!==e&&e>g){console.error("out of order keys",this,f,g,e);a=!1;break}e=g}if(void 0!==b&&na.isTypedArray(b))for(f=
-0,c=b.length;f!==c;++f)if(d=b[f],isNaN(d)){console.error("value is not a valid number",this,f,d);a=!1;break}return a},optimize:function(){for(var a=this.times,b=this.values,c=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=a.length-1,g=1;g<f;++g){var h=!1,l=a[g];if(l!==a[g+1]&&(1!==g||l!==l[0]))if(d)h=!0;else for(var k=g*c,m=k-c,p=k+c,l=0;l!==c;++l){var n=b[k+l];if(n!==b[m+l]||n!==b[p+l]){h=!0;break}}if(h){if(g!==e)for(a[e]=a[g],h=g*c,k=e*c,l=0;l!==c;++l)b[k+l]=b[h+l];++e}}if(0<f){a[e]=
-a[f];h=f*c;k=e*c;for(l=0;l!==c;++l)b[k+l]=b[h+l];++e}e!==a.length&&(this.times=na.arraySlice(a,0,e),this.values=na.arraySlice(b,0,e*c));return this}};ec.prototype=Object.assign(Object.create(Za),{constructor:ec,ValueTypeName:"vector"});Ed.prototype=Object.assign(Object.create(va.prototype),{constructor:Ed,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;b=(c-b)/(d-b);for(c=a+g;a!==c;a+=4)Z.slerpFlat(e,0,f,a-g,f,a,b);return e}});bd.prototype=Object.assign(Object.create(Za),
-{constructor:bd,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new Ed(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});fc.prototype=Object.assign(Object.create(Za),{constructor:fc,ValueTypeName:"number"});Fd.prototype=Object.assign(Object.create(Za),{constructor:Fd,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});
-Gd.prototype=Object.assign(Object.create(Za),{constructor:Gd,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Hd.prototype=Object.assign(Object.create(Za),{constructor:Hd,ValueTypeName:"color"});xb.prototype=Za;Za.constructor=xb;Object.assign(xb,{parse:function(a){if(void 0===a.type)throw Error("track type undefined, can not parse");var b=xb._getTrackTypeForValueTypeName(a.type);if(void 0===a.times){var c=
-[],d=[];na.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)},toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{var b={name:a.name,times:na.convertArray(a.times,Array),values:na.convertArray(a.values,Array)},c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b},_getTrackTypeForValueTypeName:function(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return fc;
-case "vector":case "vector2":case "vector3":case "vector4":return ec;case "color":return Hd;case "quaternion":return bd;case "bool":case "boolean":return Gd;case "string":return Fd}throw Error("Unsupported typeName: "+a);}});ra.prototype={constructor:ra,resetDuration:function(){for(var a=0,b=0,c=this.tracks.length;b!==c;++b)var d=this.tracks[b],a=Math.max(a,d.times[d.times.length-1]);this.duration=a},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},
+a.data.index={type:d.array.constructor.name,array:b});d=this.attributes;for(c in d){var e=d[c],b=Array.prototype.slice.call(e.array);a.data.attributes[c]={itemSize:e.itemSize,type:e.array.constructor.name,array:b,normalized:e.normalized}}c=this.groups;0<c.length&&(a.data.groups=JSON.parse(JSON.stringify(c)));c=this.boundingSphere;null!==c&&(a.data.boundingSphere={center:c.center.toArray(),radius:c.radius});return a},clone:function(){return(new G).copy(this)},copy:function(a){var b,c,d;this.index=
+null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.name=a.name;c=a.index;null!==c&&this.setIndex(c.clone());c=a.attributes;for(b in c)this.addAttribute(b,c[b].clone());var e=a.morphAttributes;for(b in e){var f=[],g=e[b];c=0;for(d=g.length;c<d;c++)f.push(g[c].clone());this.morphAttributes[b]=f}b=a.groups;c=0;for(d=b.length;c<d;c++)e=b[c],this.addGroup(e.start,e.count,e.materialIndex);b=a.boundingBox;null!==b&&(this.boundingBox=b.clone());b=
+a.boundingSphere;null!==b&&(this.boundingSphere=b.clone());this.drawRange.start=a.drawRange.start;this.drawRange.count=a.drawRange.count;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}};G.MaxIndex=65535;Object.assign(G.prototype,pa.prototype);za.prototype=Object.assign(Object.create(A.prototype),{constructor:za,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){A.prototype.copy.call(this,a);this.drawMode=a.drawMode;return this},updateMorphTargets:function(){var a=
+this.geometry.morphTargets;if(void 0!==a&&0<a.length){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var b=0,c=a.length;b<c;b++)this.morphTargetInfluences.push(0),this.morphTargetDictionary[a[b].name]=b}},raycast:function(){function a(a,b,c,d,e,f,g){ya.barycoordFromPoint(a,b,c,d,t);e.multiplyScalar(t.x);f.multiplyScalar(t.y);g.multiplyScalar(t.z);e.add(f).add(g);return e.clone()}function b(a,b,c,d,e,f,g){var h=a.material;if(null===(1===h.side?c.intersectTriangle(f,e,d,!0,g):c.intersectTriangle(d,
+e,f,2!==h.side,g)))return null;u.copy(g);u.applyMatrix4(a.matrixWorld);c=b.ray.origin.distanceTo(u);return c<b.near||c>b.far?null:{distance:c,point:u.clone(),object:a}}function c(c,d,e,f,k,m,p,q){g.fromBufferAttribute(f,m);h.fromBufferAttribute(f,p);l.fromBufferAttribute(f,q);if(c=b(c,d,e,g,h,l,y))k&&(n.fromBufferAttribute(k,m),r.fromBufferAttribute(k,p),J.fromBufferAttribute(k,q),c.uv=a(y,g,h,l,n,r,J)),c.face=new ha(m,p,q,ya.normal(g,h,l)),c.faceIndex=m;return c}var d=new M,e=new db,f=new Ea,g=new q,
+h=new q,l=new q,k=new q,m=new q,p=new q,n=new E,r=new E,J=new E,t=new q,y=new q,u=new q;return function(q,t){var u=this.geometry,B=this.material,w=this.matrixWorld;if(void 0!==B&&(null===u.boundingSphere&&u.computeBoundingSphere(),f.copy(u.boundingSphere),f.applyMatrix4(w),!1!==q.ray.intersectsSphere(f)&&(d.getInverse(w),e.copy(q.ray).applyMatrix4(d),null===u.boundingBox||!1!==e.intersectsBox(u.boundingBox)))){var D;if(u.isBufferGeometry){var I,E,B=u.index,A=u.attributes.position,w=u.attributes.uv,
+F,G;if(null!==B)for(F=0,G=B.count;F<G;F+=3){if(u=B.getX(F),I=B.getX(F+1),E=B.getX(F+2),D=c(this,q,e,A,w,u,I,E))D.faceIndex=Math.floor(F/3),t.push(D)}else for(F=0,G=A.count;F<G;F+=3)if(u=F,I=F+1,E=F+2,D=c(this,q,e,A,w,u,I,E))D.index=u,t.push(D)}else if(u.isGeometry){var H,M,w=B&&B.isMultiMaterial;F=!0===w?B.materials:null;G=u.vertices;I=u.faces;E=u.faceVertexUvs[0];0<E.length&&(A=E);for(var N=0,O=I.length;N<O;N++){var R=I[N];D=!0===w?F[R.materialIndex]:B;if(void 0!==D){E=G[R.a];H=G[R.b];M=G[R.c];if(!0===
+D.morphTargets){D=u.morphTargets;var T=this.morphTargetInfluences;g.set(0,0,0);h.set(0,0,0);l.set(0,0,0);for(var S=0,W=D.length;S<W;S++){var P=T[S];if(0!==P){var K=D[S].vertices;g.addScaledVector(k.subVectors(K[R.a],E),P);h.addScaledVector(m.subVectors(K[R.b],H),P);l.addScaledVector(p.subVectors(K[R.c],M),P)}}g.add(E);h.add(H);l.add(M);E=g;H=h;M=l}if(D=b(this,q,e,E,H,M,y))A&&(T=A[N],n.copy(T[0]),r.copy(T[1]),J.copy(T[2]),D.uv=a(y,E,H,M,n,r,J)),D.face=R,D.faceIndex=N,t.push(D)}}}}}}(),clone:function(){return(new this.constructor(this.geometry,
+this.material)).copy(this)}});jb.prototype=Object.create(G.prototype);jb.prototype.constructor=jb;kb.prototype=Object.create(G.prototype);kb.prototype.constructor=kb;sa.prototype=Object.create(A.prototype);sa.prototype.constructor=sa;sa.prototype.isCamera=!0;sa.prototype.getWorldDirection=function(){var a=new Z;return function(b){b=b||new q;this.getWorldQuaternion(a);return b.set(0,0,-1).applyQuaternion(a)}}();sa.prototype.lookAt=function(){var a=new M;return function(b){a.lookAt(this.position,b,
+this.up);this.quaternion.setFromRotationMatrix(a)}}();sa.prototype.clone=function(){return(new this.constructor).copy(this)};sa.prototype.copy=function(a){A.prototype.copy.call(this,a);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);return this};Ga.prototype=Object.assign(Object.create(sa.prototype),{constructor:Ga,isPerspectiveCamera:!0,copy:function(a){sa.prototype.copy.call(this,a);this.fov=a.fov;this.zoom=a.zoom;this.near=a.near;this.far=a.far;
+this.focus=a.focus;this.aspect=a.aspect;this.view=null===a.view?null:Object.assign({},a.view);this.filmGauge=a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*S.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*S.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*S.RAD2DEG*Math.atan(Math.tan(.5*S.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*
+Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;this.view={fullWidth:a,fullHeight:b,offsetX:c,offsetY:d,width:e,height:f};this.updateProjectionMatrix()},clearViewOffset:function(){this.view=null;this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*S.DEG2RAD*this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=this.view;if(null!==f)var g=f.fullWidth,h=f.fullHeight,
+e=e+f.offsetX*d/g,b=b-f.offsetY*c/h,d=f.width/g*d,c=f.height/h*c;f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far)},toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;
+return a}});Jb.prototype=Object.assign(Object.create(sa.prototype),{constructor:Jb,isOrthographicCamera:!0,copy:function(a){sa.prototype.copy.call(this,a);this.left=a.left;this.right=a.right;this.top=a.top;this.bottom=a.bottom;this.near=a.near;this.far=a.far;this.zoom=a.zoom;this.view=null===a.view?null:Object.assign({},a.view);return this},setViewOffset:function(a,b,c,d,e,f){this.view={fullWidth:a,fullHeight:b,offsetX:c,offsetY:d,width:e,height:f};this.updateProjectionMatrix()},clearViewOffset:function(){this.view=
+null;this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=(this.right-this.left)/(2*this.zoom),b=(this.top-this.bottom)/(2*this.zoom),c=(this.right+this.left)/2,d=(this.top+this.bottom)/2,e=c-a,c=c+a,a=d+b,b=d-b;if(null!==this.view)var c=this.zoom/(this.view.width/this.view.fullWidth),b=this.zoom/(this.view.height/this.view.fullHeight),f=(this.right-this.left)/this.view.width,d=(this.top-this.bottom)/this.view.height,e=e+this.view.offsetX/c*f,c=e+this.view.width/c*f,a=a-this.view.offsetY/
+b*d,b=a-this.view.height/b*d;this.projectionMatrix.makeOrthographic(e,c,a,b,this.near,this.far)},toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.zoom=this.zoom;a.object.left=this.left;a.object.right=this.right;a.object.top=this.top;a.object.bottom=this.bottom;a.object.near=this.near;a.object.far=this.far;null!==this.view&&(a.object.view=Object.assign({},this.view));return a}});var Kf=0;Kb.prototype.isFogExp2=!0;Kb.prototype.clone=function(){return new Kb(this.color.getHex(),this.density)};
+Kb.prototype.toJSON=function(a){return{type:"FogExp2",color:this.color.getHex(),density:this.density}};Lb.prototype.isFog=!0;Lb.prototype.clone=function(){return new Lb(this.color.getHex(),this.near,this.far)};Lb.prototype.toJSON=function(a){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}};lb.prototype=Object.create(A.prototype);lb.prototype.constructor=lb;lb.prototype.copy=function(a,b){A.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.clone());
+null!==a.fog&&(this.fog=a.fog.clone());null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone());this.autoUpdate=a.autoUpdate;this.matrixAutoUpdate=a.matrixAutoUpdate;return this};lb.prototype.toJSON=function(a){var b=A.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.fog&&(b.object.fog=this.fog.toJSON());return b};Yd.prototype=Object.assign(Object.create(A.prototype),{constructor:Yd,isLensFlare:!0,copy:function(a){A.prototype.copy.call(this,
+a);this.positionScreen.copy(a.positionScreen);this.customUpdateCallback=a.customUpdateCallback;for(var b=0,c=a.lensFlares.length;b<c;b++)this.lensFlares.push(a.lensFlares[b]);return this},add:function(a,b,c,d,e,f){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===f&&(f=1);void 0===e&&(e=new F(16777215));void 0===d&&(d=1);c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:0,opacity:f,color:e,blending:d})},updateLensFlares:function(){var a,b=this.lensFlares.length,
+c,d=2*-this.positionScreen.x,e=2*-this.positionScreen.y;for(a=0;a<b;a++)c=this.lensFlares[a],c.x=this.positionScreen.x+d*c.distance,c.y=this.positionScreen.y+e*c.distance,c.wantedRotation=c.x*Math.PI*.25,c.rotation+=.25*(c.wantedRotation-c.rotation)}});mb.prototype=Object.create(X.prototype);mb.prototype.constructor=mb;mb.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.rotation=a.rotation;return this};Ec.prototype=Object.assign(Object.create(A.prototype),
+{constructor:Ec,isSprite:!0,raycast:function(){var a=new q;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.distanceSqToPoint(a);d>this.scale.x*this.scale.y/4||c.push({distance:Math.sqrt(d),point:this.position,face:null,object:this})}}(),clone:function(){return(new this.constructor(this.material)).copy(this)}});Fc.prototype=Object.assign(Object.create(A.prototype),{constructor:Fc,copy:function(a){A.prototype.copy.call(this,a,!1);a=a.levels;for(var b=0,c=a.length;b<c;b++){var d=
+a[b];this.addLevel(d.object.clone(),d.distance)}return this},addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a)},getObjectForDistance:function(a){for(var b=this.levels,c=1,d=b.length;c<d&&!(a<b[c].distance);c++);return b[c-1].object},raycast:function(){var a=new q;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.origin.distanceTo(a);this.getObjectForDistance(d).raycast(b,
+c)}}(),update:function(){var a=new q,b=new q;return function(c){var d=this.levels;if(1<d.length){a.setFromMatrixPosition(c.matrixWorld);b.setFromMatrixPosition(this.matrixWorld);c=a.distanceTo(b);d[0].object.visible=!0;for(var e=1,f=d.length;e<f;e++)if(c>=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=!0;else break;for(;e<f;e++)d[e].object.visible=!1}}}(),toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.levels=[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,
+distance:e.distance})}return a}});Object.assign(qd.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new M;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){for(var a,b=0,c=this.bones.length;b<c;b++)(a=this.bones[b])&&a.matrixWorld.getInverse(this.boneInverses[b]);b=0;for(c=this.bones.length;b<c;b++)if(a=this.bones[b])a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):
+a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)},update:function(){var a=new M;return function(){for(var b=0,c=this.bones.length;b<c;b++)a.multiplyMatrices(this.bones[b]?this.bones[b].matrixWorld:this.identityMatrix,this.boneInverses[b]),a.toArray(this.boneMatrices,16*b);this.useVertexTexture&&(this.boneTexture.needsUpdate=!0)}}(),clone:function(){return new qd(this.bones,this.boneInverses,this.useVertexTexture)}});rd.prototype=Object.assign(Object.create(A.prototype),
+{constructor:rd,isBone:!0});sd.prototype=Object.assign(Object.create(za.prototype),{constructor:sd,isSkinnedMesh:!0,bind:function(a,b){this.skeleton=a;void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),b=this.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){if(this.geometry&&this.geometry.isGeometry)for(var a=0;a<this.geometry.skinWeights.length;a++){var b=this.geometry.skinWeights[a],
+c=1/b.lengthManhattan();Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry)for(var b=new fa,d=this.geometry.attributes.skinWeight,a=0;a<d.count;a++)b.x=d.getX(a),b.y=d.getY(a),b.z=d.getZ(a),b.w=d.getW(a),c=1/b.lengthManhattan(),Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0),d.setXYZW(a,b.x,b.y,b.z,b.w)},updateMatrixWorld:function(a){za.prototype.updateMatrixWorld.call(this,!0);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):
+"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh unrecognized bindMode: "+this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material,this.skeleton.useVertexTexture)).copy(this)}});ia.prototype=Object.create(X.prototype);ia.prototype.constructor=ia;ia.prototype.isLineBasicMaterial=!0;ia.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;
+this.linejoin=a.linejoin;return this};Wa.prototype=Object.assign(Object.create(A.prototype),{constructor:Wa,isLine:!0,raycast:function(){var a=new M,b=new db,c=new Ea;return function(d,e){var f=d.linePrecision,f=f*f,g=this.geometry,h=this.matrixWorld;null===g.boundingSphere&&g.computeBoundingSphere();c.copy(g.boundingSphere);c.applyMatrix4(h);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(h);b.copy(d.ray).applyMatrix4(a);var l=new q,k=new q,h=new q,m=new q,p=this&&this.isLineSegments?2:1;if(g.isBufferGeometry){var n=
+g.index,r=g.attributes.position.array;if(null!==n)for(var n=n.array,g=0,J=n.length-1;g<J;g+=p){var t=n[g+1];l.fromArray(r,3*n[g]);k.fromArray(r,3*t);t=b.distanceSqToSegment(l,k,m,h);t>f||(m.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(m),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else for(g=0,J=r.length/3-1;g<J;g+=p)l.fromArray(r,3*g),k.fromArray(r,3*g+3),t=b.distanceSqToSegment(l,k,m,h),t>f||(m.applyMatrix4(this.matrixWorld),
+t=d.ray.origin.distanceTo(m),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else if(g.isGeometry)for(l=g.vertices,k=l.length,g=0;g<k-1;g+=p)t=b.distanceSqToSegment(l[g],l[g+1],m,h),t>f||(m.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(m),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return(new this.constructor(this.geometry,
+this.material)).copy(this)}});ga.prototype=Object.assign(Object.create(Wa.prototype),{constructor:ga,isLineSegments:!0});Na.prototype=Object.create(X.prototype);Na.prototype.constructor=Na;Na.prototype.isPointsMaterial=!0;Na.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;return this};Mb.prototype=Object.assign(Object.create(A.prototype),{constructor:Mb,isPoints:!0,raycast:function(){var a=new M,
+b=new db,c=new Ea;return function(d,e){function f(a,c){var f=b.distanceSqToPoint(a);if(f<m){var h=b.closestPointToPoint(a);h.applyMatrix4(l);var k=d.ray.origin.distanceTo(h);k<d.near||k>d.far||e.push({distance:k,distanceToRay:Math.sqrt(f),point:h.clone(),index:c,face:null,object:g})}}var g=this,h=this.geometry,l=this.matrixWorld,k=d.params.Points.threshold;null===h.boundingSphere&&h.computeBoundingSphere();c.copy(h.boundingSphere);c.applyMatrix4(l);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(l);
+b.copy(d.ray).applyMatrix4(a);var k=k/((this.scale.x+this.scale.y+this.scale.z)/3),m=k*k,k=new q;if(h.isBufferGeometry){var p=h.index,h=h.attributes.position.array;if(null!==p)for(var n=p.array,p=0,r=n.length;p<r;p++){var J=n[p];k.fromArray(h,3*J);f(k,J)}else for(p=0,n=h.length/3;p<n;p++)k.fromArray(h,3*p),f(k,p)}else for(k=h.vertices,p=0,n=k.length;p<n;p++)f(k[p],p)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Gc.prototype=Object.assign(Object.create(A.prototype),
+{constructor:Gc});td.prototype=Object.create(ca.prototype);td.prototype.constructor=td;Nb.prototype=Object.create(ca.prototype);Nb.prototype.constructor=Nb;Nb.prototype.isCompressedTexture=!0;ud.prototype=Object.create(ca.prototype);ud.prototype.constructor=ud;Hc.prototype=Object.create(ca.prototype);Hc.prototype.constructor=Hc;Hc.prototype.isDepthTexture=!0;Ob.prototype=Object.create(G.prototype);Ob.prototype.constructor=Ob;Pb.prototype=Object.create(G.prototype);Pb.prototype.constructor=Pb;Ic.prototype=
+Object.create(H.prototype);Ic.prototype.constructor=Ic;Aa.prototype=Object.create(G.prototype);Aa.prototype.constructor=Aa;Qb.prototype=Object.create(Aa.prototype);Qb.prototype.constructor=Qb;Jc.prototype=Object.create(H.prototype);Jc.prototype.constructor=Jc;nb.prototype=Object.create(Aa.prototype);nb.prototype.constructor=nb;Kc.prototype=Object.create(H.prototype);Kc.prototype.constructor=Kc;Rb.prototype=Object.create(Aa.prototype);Rb.prototype.constructor=Rb;Lc.prototype=Object.create(H.prototype);
+Lc.prototype.constructor=Lc;Sb.prototype=Object.create(Aa.prototype);Sb.prototype.constructor=Sb;Mc.prototype=Object.create(H.prototype);Mc.prototype.constructor=Mc;Nc.prototype=Object.create(H.prototype);Nc.prototype.constructor=Nc;Tb.prototype=Object.create(G.prototype);Tb.prototype.constructor=Tb;Oc.prototype=Object.create(H.prototype);Oc.prototype.constructor=Oc;Ub.prototype=Object.create(G.prototype);Ub.prototype.constructor=Ub;Pc.prototype=Object.create(H.prototype);Pc.prototype.constructor=
+Pc;Vb.prototype=Object.create(G.prototype);Vb.prototype.constructor=Vb;Qc.prototype=Object.create(H.prototype);Qc.prototype.constructor=Qc;var Oa={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*c},triangulate:function(){return function(a,b){var c=a.length;if(3>c)return null;var d=[],e=[],f=[],g,h,l;if(0<Oa.area(a))for(h=0;h<c;h++)e[h]=h;else for(h=0;h<c;h++)e[h]=c-1-h;var k=2*c;for(h=c-1;2<c;){if(0>=k--){console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()");
+break}g=h;c<=g&&(g=0);h=g+1;c<=h&&(h=0);l=h+1;c<=l&&(l=0);var m;a:{var p,n,r,q,t,y,u,v;p=a[e[g]].x;n=a[e[g]].y;r=a[e[h]].x;q=a[e[h]].y;t=a[e[l]].x;y=a[e[l]].y;if(0>=(r-p)*(y-n)-(q-n)*(t-p))m=!1;else{var L,x,B,w,D,I,E,A,F,G;L=t-r;x=y-q;B=p-t;w=n-y;D=r-p;I=q-n;for(m=0;m<c;m++)if(u=a[e[m]].x,v=a[e[m]].y,!(u===p&&v===n||u===r&&v===q||u===t&&v===y)&&(E=u-p,A=v-n,F=u-r,G=v-q,u-=t,v-=y,F=L*G-x*F,E=D*A-I*E,A=B*v-w*u,F>=-Number.EPSILON&&A>=-Number.EPSILON&&E>=-Number.EPSILON)){m=!1;break a}m=!0}}if(m){d.push([a[e[g]],
+a[e[h]],a[e[l]]]);f.push([e[g],e[h],e[l]]);g=h;for(l=h+1;l<c;g++,l++)e[g]=e[l];c--;k=2*c}}return b?f:d}}(),triangulateShape:function(a,b){function c(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function d(a,b,c){return a.x!==b.x?a.x<b.x?a.x<=c.x&&c.x<=b.x:b.x<=c.x&&c.x<=a.x:a.y<b.y?a.y<=c.y&&c.y<=b.y:b.y<=c.y&&c.y<=a.y}function e(a,b,c,e,f){var g=b.x-a.x,h=b.y-a.y,k=e.x-c.x,l=e.y-c.y,m=a.x-c.x,n=a.y-c.y,p=h*k-g*l,q=h*m-g*n;if(Math.abs(p)>Number.EPSILON){if(0<p){if(0>q||q>p)return[];k=l*m-k*
+n;if(0>k||k>p)return[]}else{if(0<q||q<p)return[];k=l*m-k*n;if(0<k||k<p)return[]}if(0===k)return!f||0!==q&&q!==p?[a]:[];if(k===p)return!f||0!==q&&q!==p?[b]:[];if(0===q)return[c];if(q===p)return[e];f=k/p;return[{x:a.x+f*g,y:a.y+f*h}]}if(0!==q||l*m!==k*n)return[];h=0===g&&0===h;k=0===k&&0===l;if(h&&k)return a.x!==c.x||a.y!==c.y?[]:[a];if(h)return d(c,e,a)?[a]:[];if(k)return d(a,b,c)?[c]:[];0!==g?(a.x<b.x?(g=a,k=a.x,h=b,a=b.x):(g=b,k=b.x,h=a,a=a.x),c.x<e.x?(b=c,p=c.x,l=e,c=e.x):(b=e,p=e.x,l=c,c=c.x)):
+(a.y<b.y?(g=a,k=a.y,h=b,a=b.y):(g=b,k=b.y,h=a,a=a.y),c.y<e.y?(b=c,p=c.y,l=e,c=e.y):(b=e,p=e.y,l=c,c=c.y));return k<=p?a<p?[]:a===p?f?[]:[b]:a<=c?[b,h]:[b,l]:k>c?[]:k===c?f?[]:[g]:a<=c?[g,h]:[g,l]}function f(a,b,c,d){var e=b.x-a.x,f=b.y-a.y;b=c.x-a.x;c=c.y-a.y;var g=d.x-a.x;d=d.y-a.y;a=e*c-f*b;e=e*d-f*g;return Math.abs(a)>Number.EPSILON?(b=g*c-d*b,0<a?0<=e&&0<=b:0<=e||0<=b):0<e}c(a);b.forEach(c);var g,h,l,k,m,p={};l=a.concat();g=0;for(h=b.length;g<h;g++)Array.prototype.push.apply(l,b[g]);g=0;for(h=
+l.length;g<h;g++)m=l[g].x+":"+l[g].y,void 0!==p[m]&&console.warn("THREE.ShapeUtils: Duplicate point",m,g),p[m]=g;g=function(a,b){function c(a,b){var d=h.length-1,e=a-1;0>e&&(e=d);var g=a+1;g>d&&(g=0);d=f(h[a],h[e],h[g],k[b]);if(!d)return!1;d=k.length-1;e=b-1;0>e&&(e=d);g=b+1;g>d&&(g=0);return(d=f(k[b],k[e],k[g],h[a]))?!0:!1}function d(a,b){var c,f;for(c=0;c<h.length;c++)if(f=c+1,f%=h.length,f=e(a,b,h[c],h[f],!0),0<f.length)return!0;return!1}function g(a,c){var d,f,h,k;for(d=0;d<l.length;d++)for(f=
+b[l[d]],h=0;h<f.length;h++)if(k=h+1,k%=f.length,k=e(a,c,f[h],f[k],!0),0<k.length)return!0;return!1}var h=a.concat(),k,l=[],m,n,p,q,z,w=[],E,A,F,G=0;for(m=b.length;G<m;G++)l.push(G);E=0;for(var H=2*l.length;0<l.length;){H--;if(0>H){console.log("Infinite Loop! Holes left:"+l.length+", Probably Hole outside Shape!");break}for(n=E;n<h.length;n++){p=h[n];m=-1;for(G=0;G<l.length;G++)if(q=l[G],z=p.x+":"+p.y+":"+q,void 0===w[z]){k=b[q];for(A=0;A<k.length;A++)if(q=k[A],c(n,A)&&!d(p,q)&&!g(p,q)){m=A;l.splice(G,
+1);E=h.slice(0,n+1);q=h.slice(n);A=k.slice(m);F=k.slice(0,m+1);h=E.concat(A).concat(F).concat(q);E=n;break}if(0<=m)break;w[z]=!0}if(0<=m)break}}return h}(a,b);var n=Oa.triangulate(g,!1);g=0;for(h=n.length;g<h;g++)for(k=n[g],l=0;3>l;l++)m=k[l].x+":"+k[l].y,m=p[m],void 0!==m&&(k[l]=m);return n.concat()},isClockWise:function(a){return 0>Oa.area(a)}};La.prototype=Object.create(H.prototype);La.prototype.constructor=La;La.prototype.addShapeList=function(a,b){for(var c=a.length,d=0;d<c;d++)this.addShape(a[d],
+b)};La.prototype.addShape=function(a,b){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function d(a,b,c){var d,e,f;e=a.x-b.x;f=a.y-b.y;d=c.x-a.x;var g=c.y-a.y,h=e*e+f*f;if(Math.abs(e*g-f*d)>Number.EPSILON){var k=Math.sqrt(h),l=Math.sqrt(d*d+g*g),h=b.x-f/k;b=b.y+e/k;g=((c.x-g/l-h)*g-(c.y+d/l-b)*d)/(e*g-f*d);d=h+e*g-a.x;e=b+f*g-a.y;f=d*d+e*e;if(2>=f)return new E(d,e);f=Math.sqrt(f/2)}else a=!1,e>Number.EPSILON?d>Number.EPSILON&&
+(a=!0):e<-Number.EPSILON?d<-Number.EPSILON&&(a=!0):Math.sign(f)===Math.sign(g)&&(a=!0),a?(d=-f,f=Math.sqrt(h)):(d=e,e=f,f=Math.sqrt(h/2));return new E(d/f,e/f)}function e(a,b){var c,d;for(K=a.length;0<=--K;){c=K;d=K-1;0>d&&(d=a.length-1);var e,f=r+2*m;for(e=0;e<f;e++){var g=V*e,h=V*(e+1),k=b+c+g,g=b+d+g,l=b+d+h,h=b+c+h,k=k+G,g=g+G,l=l+G,h=h+G;F.faces.push(new ha(k,g,h,null,null,1));F.faces.push(new ha(g,l,h,null,null,1));k=u.generateSideWallUV(F,k,g,l,h);F.faceVertexUvs[0].push([k[0],k[1],k[3]]);
+F.faceVertexUvs[0].push([k[1],k[2],k[3]])}}}function f(a,b,c){F.vertices.push(new q(a,b,c))}function g(a,b,c){a+=G;b+=G;c+=G;F.faces.push(new ha(a,b,c,null,null,0));a=u.generateTopUV(F,a,b,c);F.faceVertexUvs[0].push(a)}var h=void 0!==b.amount?b.amount:100,l=void 0!==b.bevelThickness?b.bevelThickness:6,k=void 0!==b.bevelSize?b.bevelSize:l-2,m=void 0!==b.bevelSegments?b.bevelSegments:3,p=void 0!==b.bevelEnabled?b.bevelEnabled:!0,n=void 0!==b.curveSegments?b.curveSegments:12,r=void 0!==b.steps?b.steps:
+1,J=b.extrudePath,t,y=!1,u=void 0!==b.UVGenerator?b.UVGenerator:La.WorldUVGenerator,v,w,x,B;J&&(t=J.getSpacedPoints(r),y=!0,p=!1,v=void 0!==b.frames?b.frames:J.computeFrenetFrames(r,!1),w=new q,x=new q,B=new q);p||(k=l=m=0);var A,D,I,F=this,G=this.vertices.length,J=a.extractPoints(n),n=J.shape,H=J.holes;if(J=!Oa.isClockWise(n)){n=n.reverse();D=0;for(I=H.length;D<I;D++)A=H[D],Oa.isClockWise(A)&&(H[D]=A.reverse());J=!1}var M=Oa.triangulateShape(n,H),S=n;D=0;for(I=H.length;D<I;D++)A=H[D],n=n.concat(A);
+var P,N,O,R,T,V=n.length,W,X=M.length,J=[],K=0;O=S.length;P=O-1;for(N=K+1;K<O;K++,P++,N++)P===O&&(P=0),N===O&&(N=0),J[K]=d(S[K],S[P],S[N]);var ba=[],Z,ca=J.concat();D=0;for(I=H.length;D<I;D++){A=H[D];Z=[];K=0;O=A.length;P=O-1;for(N=K+1;K<O;K++,P++,N++)P===O&&(P=0),N===O&&(N=0),Z[K]=d(A[K],A[P],A[N]);ba.push(Z);ca=ca.concat(Z)}for(P=0;P<m;P++){O=P/m;R=l*Math.cos(O*Math.PI/2);N=k*Math.sin(O*Math.PI/2);K=0;for(O=S.length;K<O;K++)T=c(S[K],J[K],N),f(T.x,T.y,-R);D=0;for(I=H.length;D<I;D++)for(A=H[D],Z=
+ba[D],K=0,O=A.length;K<O;K++)T=c(A[K],Z[K],N),f(T.x,T.y,-R)}N=k;for(K=0;K<V;K++)T=p?c(n[K],ca[K],N):n[K],y?(x.copy(v.normals[0]).multiplyScalar(T.x),w.copy(v.binormals[0]).multiplyScalar(T.y),B.copy(t[0]).add(x).add(w),f(B.x,B.y,B.z)):f(T.x,T.y,0);for(O=1;O<=r;O++)for(K=0;K<V;K++)T=p?c(n[K],ca[K],N):n[K],y?(x.copy(v.normals[O]).multiplyScalar(T.x),w.copy(v.binormals[O]).multiplyScalar(T.y),B.copy(t[O]).add(x).add(w),f(B.x,B.y,B.z)):f(T.x,T.y,h/r*O);for(P=m-1;0<=P;P--){O=P/m;R=l*Math.cos(O*Math.PI/
+2);N=k*Math.sin(O*Math.PI/2);K=0;for(O=S.length;K<O;K++)T=c(S[K],J[K],N),f(T.x,T.y,h+R);D=0;for(I=H.length;D<I;D++)for(A=H[D],Z=ba[D],K=0,O=A.length;K<O;K++)T=c(A[K],Z[K],N),y?f(T.x,T.y+t[r-1].y,t[r-1].x+R):f(T.x,T.y,h+R)}(function(){if(p){var a=0*V;for(K=0;K<X;K++)W=M[K],g(W[2]+a,W[1]+a,W[0]+a);a=V*(r+2*m);for(K=0;K<X;K++)W=M[K],g(W[0]+a,W[1]+a,W[2]+a)}else{for(K=0;K<X;K++)W=M[K],g(W[2],W[1],W[0]);for(K=0;K<X;K++)W=M[K],g(W[0]+V*r,W[1]+V*r,W[2]+V*r)}})();(function(){var a=0;e(S,a);a+=S.length;D=
+0;for(I=H.length;D<I;D++)A=H[D],e(A,a),a+=A.length})()};La.WorldUVGenerator={generateTopUV:function(a,b,c,d){a=a.vertices;b=a[b];c=a[c];d=a[d];return[new E(b.x,b.y),new E(c.x,c.y),new E(d.x,d.y)]},generateSideWallUV:function(a,b,c,d,e){a=a.vertices;b=a[b];c=a[c];d=a[d];e=a[e];return.01>Math.abs(b.y-c.y)?[new E(b.x,1-b.z),new E(c.x,1-c.z),new E(d.x,1-d.z),new E(e.x,1-e.z)]:[new E(b.y,1-b.z),new E(c.y,1-c.z),new E(d.y,1-d.z),new E(e.y,1-e.z)]}};Rc.prototype=Object.create(La.prototype);Rc.prototype.constructor=
+Rc;ob.prototype=Object.create(G.prototype);ob.prototype.constructor=ob;Sc.prototype=Object.create(H.prototype);Sc.prototype.constructor=Sc;Wb.prototype=Object.create(G.prototype);Wb.prototype.constructor=Wb;Tc.prototype=Object.create(H.prototype);Tc.prototype.constructor=Tc;Uc.prototype=Object.create(H.prototype);Uc.prototype.constructor=Uc;Xb.prototype=Object.create(G.prototype);Xb.prototype.constructor=Xb;Vc.prototype=Object.create(H.prototype);Vc.prototype.constructor=Vc;Yb.prototype=Object.create(G.prototype);
+Yb.prototype.constructor=Yb;Zb.prototype=Object.create(H.prototype);Zb.prototype.constructor=Zb;$b.prototype=Object.create(G.prototype);$b.prototype.constructor=$b;Xa.prototype=Object.create(G.prototype);Xa.prototype.constructor=Xa;pb.prototype=Object.create(H.prototype);pb.prototype.constructor=pb;Wc.prototype=Object.create(pb.prototype);Wc.prototype.constructor=Wc;Xc.prototype=Object.create(Xa.prototype);Xc.prototype.constructor=Xc;ac.prototype=Object.create(G.prototype);ac.prototype.constructor=
+ac;Yc.prototype=Object.create(H.prototype);Yc.prototype.constructor=Yc;bc.prototype=Object.create(H.prototype);bc.prototype.constructor=bc;var Ma=Object.freeze({WireframeGeometry:Ob,ParametricGeometry:Ic,ParametricBufferGeometry:Pb,TetrahedronGeometry:Jc,TetrahedronBufferGeometry:Qb,OctahedronGeometry:Kc,OctahedronBufferGeometry:nb,IcosahedronGeometry:Lc,IcosahedronBufferGeometry:Rb,DodecahedronGeometry:Mc,DodecahedronBufferGeometry:Sb,PolyhedronGeometry:Nc,PolyhedronBufferGeometry:Aa,TubeGeometry:Oc,
+TubeBufferGeometry:Tb,TorusKnotGeometry:Pc,TorusKnotBufferGeometry:Ub,TorusGeometry:Qc,TorusBufferGeometry:Vb,TextGeometry:Rc,SphereBufferGeometry:ob,SphereGeometry:Sc,RingGeometry:Tc,RingBufferGeometry:Wb,PlaneBufferGeometry:kb,PlaneGeometry:Uc,LatheGeometry:Vc,LatheBufferGeometry:Xb,ShapeGeometry:Zb,ShapeBufferGeometry:Yb,ExtrudeGeometry:La,EdgesGeometry:$b,ConeGeometry:Wc,ConeBufferGeometry:Xc,CylinderGeometry:pb,CylinderBufferGeometry:Xa,CircleBufferGeometry:ac,CircleGeometry:Yc,BoxBufferGeometry:jb,
+BoxGeometry:bc});cc.prototype=Object.create(Ia.prototype);cc.prototype.constructor=cc;cc.prototype.isShadowMaterial=!0;dc.prototype=Object.create(Ia.prototype);dc.prototype.constructor=dc;dc.prototype.isRawShaderMaterial=!0;Zc.prototype={constructor:Zc,isMultiMaterial:!0,toJSON:function(a){for(var b={metadata:{version:4.2,type:"material",generator:"MaterialExporter"},uuid:this.uuid,type:this.type,materials:[]},c=this.materials,d=0,e=c.length;d<e;d++){var f=c[d].toJSON(a);delete f.metadata;b.materials.push(f)}b.visible=
+this.visible;return b},clone:function(){for(var a=new this.constructor,b=0;b<this.materials.length;b++)a.materials.push(this.materials[b].clone());a.visible=this.visible;return a}};Qa.prototype=Object.create(X.prototype);Qa.prototype.constructor=Qa;Qa.prototype.isMeshStandardMaterial=!0;Qa.prototype.copy=function(a){X.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);this.roughness=a.roughness;this.metalness=a.metalness;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=
+a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.roughnessMap=a.roughnessMap;this.metalnessMap=a.metalnessMap;this.alphaMap=a.alphaMap;
+this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};qb.prototype=Object.create(Qa.prototype);qb.prototype.constructor=qb;qb.prototype.isMeshPhysicalMaterial=!0;qb.prototype.copy=function(a){Qa.prototype.copy.call(this,
+a);this.defines={PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearCoat=a.clearCoat;this.clearCoatRoughness=a.clearCoatRoughness;return this};Ba.prototype=Object.create(X.prototype);Ba.prototype.constructor=Ba;Ba.prototype.isMeshPhongMaterial=!0;Ba.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=
+a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=
+a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};rb.prototype=Object.create(Ba.prototype);rb.prototype.constructor=rb;rb.prototype.isMeshToonMaterial=!0;rb.prototype.copy=function(a){Ba.prototype.copy.call(this,a);this.gradientMap=a.gradientMap;return this};sb.prototype=Object.create(X.prototype);
+sb.prototype.constructor=sb;sb.prototype.isMeshNormalMaterial=!0;sb.prototype.copy=function(a){X.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=
+a.morphNormals;return this};tb.prototype=Object.create(X.prototype);tb.prototype.constructor=tb;tb.prototype.isMeshLambertMaterial=!0;tb.prototype.copy=function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.specularMap=a.specularMap;this.alphaMap=
+a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};ub.prototype=Object.create(X.prototype);ub.prototype.constructor=ub;ub.prototype.isLineDashedMaterial=!0;ub.prototype.copy=
+function(a){X.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Wf=Object.freeze({ShadowMaterial:cc,SpriteMaterial:mb,RawShaderMaterial:dc,ShaderMaterial:Ia,PointsMaterial:Na,MultiMaterial:Zc,MeshPhysicalMaterial:qb,MeshStandardMaterial:Qa,MeshPhongMaterial:Ba,MeshToonMaterial:rb,MeshNormalMaterial:sb,MeshLambertMaterial:tb,MeshDepthMaterial:cb,MeshBasicMaterial:Ka,LineDashedMaterial:ub,
+LineBasicMaterial:ia,Material:X}),nd={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files={}}},ta=new Zd;Object.assign(Da.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=this,f=nd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);
+if(g){var h=g[1],l=!!g[2],g=g[3],g=window.decodeURIComponent(g);l&&(g=window.atob(g));try{var k,m=(this.responseType||"").toLowerCase();switch(m){case "arraybuffer":case "blob":k=new ArrayBuffer(g.length);for(var p=new Uint8Array(k),l=0;l<g.length;l++)p[l]=g.charCodeAt(l);"blob"===m&&(k=new Blob([k],{type:h}));break;case "document":k=(new DOMParser).parseFromString(g,h);break;case "json":k=JSON.parse(g);break;default:k=g}window.setTimeout(function(){b&&b(k);e.manager.itemEnd(a)},0)}catch(q){window.setTimeout(function(){d&&
+d(q);e.manager.itemError(a)},0)}}else{var n=new XMLHttpRequest;n.open("GET",a,!0);n.addEventListener("load",function(c){var f=c.target.response;nd.add(a,f);200===this.status?(b&&b(f),e.manager.itemEnd(a)):0===this.status?(console.warn("THREE.FileLoader: HTTP Status 0 received."),b&&b(f),e.manager.itemEnd(a)):(d&&d(c),e.manager.itemError(a))},!1);void 0!==c&&n.addEventListener("progress",function(a){c(a)},!1);n.addEventListener("error",function(b){d&&d(b);e.manager.itemError(a)},!1);void 0!==this.responseType&&
+(n.responseType=this.responseType);void 0!==this.withCredentials&&(n.withCredentials=this.withCredentials);n.overrideMimeType&&n.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");n.send(null)}e.manager.itemStart(a);return n},setPath:function(a){this.path=a;return this},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this}});Object.assign(Oe.prototype,{load:function(a,
+b,c,d){function e(e){l.load(a[e],function(a){a=f._parser(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};k+=1;6===k&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=!0,b&&b(h))},c,d)}var f=this,g=[],h=new Nb;h.image=g;var l=new Da(this.manager);l.setPath(this.path);l.setResponseType("arraybuffer");if(Array.isArray(a))for(var k=0,m=0,p=a.length;m<p;++m)e(m);else l.load(a,function(a){a=f._parser(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,
+d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else h.image.width=a.width,h.image.height=a.height,h.mipmaps=a.mipmaps;1===a.mipmapCount&&(h.minFilter=1006);h.format=a.format;h.needsUpdate=!0;b&&b(h)},c,d);return h},setPath:function(a){this.path=a;return this}});Object.assign($d.prototype,{load:function(a,b,c,d){var e=this,f=new fb,g=new Da(this.manager);g.setResponseType("arraybuffer");
+g.load(a,function(a){if(a=e._parser(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1008,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps),1===
+a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});Object.assign($c.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=this,f=nd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;c=document.createElementNS("http://www.w3.org/1999/xhtml","img");c.addEventListener("load",function(){nd.add(a,this);b&&b(this);e.manager.itemEnd(a)},!1);c.addEventListener("error",function(b){d&&
+d(b);e.manager.itemError(a)},!1);void 0!==this.crossOrigin&&(c.crossOrigin=this.crossOrigin);e.manager.itemStart(a);c.src=a;return c},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(ae.prototype,{load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;h++;6===h&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new ab,g=new $c(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var h=0;for(c=0;c<
+a.length;++c)e(c);return f},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(vd.prototype,{load:function(a,b,c,d){var e=new ca,f=new $c(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){var d=0<a.search(/\.(jpg|jpeg)$/)||0===a.search(/^data\:image\/jpeg/);e.format=d?1022:1023;e.image=c;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e},setCrossOrigin:function(a){this.crossOrigin=a;return this},
+setPath:function(a){this.path=a;return this}});ma.prototype=Object.assign(Object.create(A.prototype),{constructor:ma,isLight:!0,copy:function(a){A.prototype.copy.call(this,a);this.color.copy(a.color);this.intensity=a.intensity;return this},toJSON:function(a){a=A.prototype.toJSON.call(this,a);a.object.color=this.color.getHex();a.object.intensity=this.intensity;void 0!==this.groundColor&&(a.object.groundColor=this.groundColor.getHex());void 0!==this.distance&&(a.object.distance=this.distance);void 0!==
+this.angle&&(a.object.angle=this.angle);void 0!==this.decay&&(a.object.decay=this.decay);void 0!==this.penumbra&&(a.object.penumbra=this.penumbra);void 0!==this.shadow&&(a.object.shadow=this.shadow.toJSON());return a}});wd.prototype=Object.assign(Object.create(ma.prototype),{constructor:wd,isHemisphereLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.groundColor.copy(a.groundColor);return this}});Object.assign(vb.prototype,{copy:function(a){this.camera=a.camera.clone();this.bias=a.bias;
+this.radius=a.radius;this.mapSize.copy(a.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a={};0!==this.bias&&(a.bias=this.bias);1!==this.radius&&(a.radius=this.radius);if(512!==this.mapSize.x||512!==this.mapSize.y)a.mapSize=this.mapSize.toArray();a.camera=this.camera.toJSON(!1).object;delete a.camera.matrix;return a}});xd.prototype=Object.assign(Object.create(vb.prototype),{constructor:xd,isSpotLightShadow:!0,update:function(a){var b=2*S.RAD2DEG*
+a.angle,c=this.mapSize.width/this.mapSize.height;a=a.distance||500;var d=this.camera;if(b!==d.fov||c!==d.aspect||a!==d.far)d.fov=b,d.aspect=c,d.far=a,d.updateProjectionMatrix()}});yd.prototype=Object.assign(Object.create(ma.prototype),{constructor:yd,isSpotLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.distance=a.distance;this.angle=a.angle;this.penumbra=a.penumbra;this.decay=a.decay;this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});zd.prototype=Object.assign(Object.create(ma.prototype),
+{constructor:zd,isPointLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.distance=a.distance;this.decay=a.decay;this.shadow=a.shadow.clone();return this}});Ad.prototype=Object.assign(Object.create(vb.prototype),{constructor:Ad});Bd.prototype=Object.assign(Object.create(ma.prototype),{constructor:Bd,isDirectionalLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});Cd.prototype=Object.assign(Object.create(ma.prototype),
+{constructor:Cd,isAmbientLight:!0});var na={arraySlice:function(a,b,c){return na.isTypedArray(a)?new a.constructor(a.subarray(b,c)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&!(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=a.length,c=Array(b),d=0;d!==b;++d)c[d]=d;c.sort(function(b,c){return a[b]-a[c]});return c},sortedArray:function(a,
+b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var h=c[f]*b,l=0;l!==b;++l)e[g++]=a[h+l];return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.push(f.time),g.toArray(c,c.length)),f=a[e++];while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),
+c.push(g)),f=a[e++];while(void 0!==f)}}}};va.prototype={constructor:va,evaluate:function(a){var b=this.parameterPositions,c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];if(a<d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];
+if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=
+0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(a,b,c,d){throw Error("call to abstract method");},intervalChanged_:function(a,b,c){}};Object.assign(va.prototype,{beforeStart_:va.prototype.copySampleValue_,afterEnd_:va.prototype.copySampleValue_});Dd.prototype=Object.assign(Object.create(va.prototype),{constructor:Dd,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=
+a;g=2*b-c;break;case 2402:e=d.length-2;g=b+d[e]-d[e+1];break;default:e=a,g=c}if(void 0===h)switch(this.getSettings_().endingEnd){case 2401:f=a;h=2*c-b;break;case 2402:f=1;h=c+d[1]-d[0];break;default:f=a-1,h=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,l=this._offsetPrev,k=this._offsetNext,m=this._weightPrev,p=this._weightNext,
+n=(c-b)/(d-b);c=n*n;d=c*n;b=-m*d+2*m*c-m*n;m=(1+m)*d+(-1.5-2*m)*c+(-.5+m)*n+1;n=(-1-p)*d+(1.5+p)*c+.5*n;p=p*d-p*c;for(c=0;c!==g;++c)e[c]=b*f[l+c]+m*f[h+c]+n*f[a+c]+p*f[k+c];return e}});ad.prototype=Object.assign(Object.create(va.prototype),{constructor:ad,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Ed.prototype=Object.assign(Object.create(va.prototype),{constructor:Ed,
+interpolate_:function(a,b,c,d){return this.copySampleValue_(a-1)}});var Za;Za={TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Ed(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new ad(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Dd(this.times,this.values,this.getValueSize(),a)},setInterpolation:function(a){var b;
+switch(a){case 2300:b=this.InterpolantFactoryMethodDiscrete;break;case 2301:b=this.InterpolantFactoryMethodLinear;break;case 2302:b=this.InterpolantFactoryMethodSmooth}if(void 0===b){b="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant)if(a!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(b);console.warn(b)}else this.createInterpolant=b},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;
+case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(a){if(0!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]+=a;return this},scale:function(a){if(1!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]*=a;return this},trim:function(a,b){for(var c=this.times,d=c.length,e=0,f=d-1;e!==d&&c[e]<a;)++e;for(;-1!==f&&c[f]>b;)--f;++f;if(0!==e||f!==d)e>=f&&(f=Math.max(f,
+1),e=f-1),d=this.getValueSize(),this.times=na.arraySlice(c,e,f),this.values=na.arraySlice(this.values,e*d,f*d);return this},validate:function(){var a=!0,b=this.getValueSize();0!==b-Math.floor(b)&&(console.error("invalid value size in track",this),a=!1);var c=this.times,b=this.values,d=c.length;0===d&&(console.error("track is empty",this),a=!1);for(var e=null,f=0;f!==d;f++){var g=c[f];if("number"===typeof g&&isNaN(g)){console.error("time is not a valid number",this,f,g);a=!1;break}if(null!==e&&e>g){console.error("out of order keys",
+this,f,g,e);a=!1;break}e=g}if(void 0!==b&&na.isTypedArray(b))for(f=0,c=b.length;f!==c;++f)if(d=b[f],isNaN(d)){console.error("value is not a valid number",this,f,d);a=!1;break}return a},optimize:function(){for(var a=this.times,b=this.values,c=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=a.length-1,g=1;g<f;++g){var h=!1,l=a[g];if(l!==a[g+1]&&(1!==g||l!==l[0]))if(d)h=!0;else for(var k=g*c,m=k-c,p=k+c,l=0;l!==c;++l){var n=b[k+l];if(n!==b[m+l]||n!==b[p+l]){h=!0;break}}if(h){if(g!==e)for(a[e]=
+a[g],h=g*c,k=e*c,l=0;l!==c;++l)b[k+l]=b[h+l];++e}}if(0<f){a[e]=a[f];h=f*c;k=e*c;for(l=0;l!==c;++l)b[k+l]=b[h+l];++e}e!==a.length&&(this.times=na.arraySlice(a,0,e),this.values=na.arraySlice(b,0,e*c));return this}};ec.prototype=Object.assign(Object.create(Za),{constructor:ec,ValueTypeName:"vector"});Fd.prototype=Object.assign(Object.create(va.prototype),{constructor:Fd,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;b=(c-b)/(d-b);for(c=a+g;a!==c;a+=4)Z.slerpFlat(e,
+0,f,a-g,f,a,b);return e}});bd.prototype=Object.assign(Object.create(Za),{constructor:bd,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new Fd(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});fc.prototype=Object.assign(Object.create(Za),{constructor:fc,ValueTypeName:"number"});Gd.prototype=Object.assign(Object.create(Za),{constructor:Gd,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,
+InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Hd.prototype=Object.assign(Object.create(Za),{constructor:Hd,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Id.prototype=Object.assign(Object.create(Za),{constructor:Id,ValueTypeName:"color"});xb.prototype=Za;Za.constructor=xb;Object.assign(xb,{parse:function(a){if(void 0===a.type)throw Error("track type undefined, can not parse");
+var b=xb._getTrackTypeForValueTypeName(a.type);if(void 0===a.times){var c=[],d=[];na.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)},toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{var b={name:a.name,times:na.convertArray(a.times,Array),values:na.convertArray(a.values,Array)},c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b},_getTrackTypeForValueTypeName:function(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return fc;
+case "vector":case "vector2":case "vector3":case "vector4":return ec;case "color":return Id;case "quaternion":return bd;case "bool":case "boolean":return Hd;case "string":return Gd}throw Error("Unsupported typeName: "+a);}});ra.prototype={constructor:ra,resetDuration:function(){for(var a=0,b=0,c=this.tracks.length;b!==c;++b)var d=this.tracks[b],a=Math.max(a,d.times[d.times.length-1]);this.duration=a},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},
 optimize:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].optimize();return this}};Object.assign(ra,{parse:function(a){for(var b=[],c=a.tracks,d=1/(a.fps||1),e=0,f=c.length;e!==f;++e)b.push(xb.parse(c[e]).scale(d));return new ra(a.name,a.duration,b)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b};for(var d=0,e=c.length;d!==e;++d)b.push(xb.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=
 [],l=[];h.push((g+e-1)%e,g,(g+1)%e);l.push(0,1,0);var k=na.getKeyframeOrder(h),h=na.sortedArray(h,1,k),l=na.sortedArray(l,1,k);d||0!==h[0]||(h.push(e),l.push(l[0]));f.push((new fc(".morphTargetInfluences["+b[g].name+"]",h,l)).scale(1/c))}return new ra(a,-1,f)},findByName:function(a,b){var c=a;Array.isArray(a)||(c=a.geometry&&a.geometry.animations||a.animations);for(var d=0;d<c.length;d++)if(c[d].name===b)return c[d];return null},CreateClipsFromMorphTargetSequences:function(a,b,c){for(var d={},e=/^([\w-]*?)([\d]+)$/,
 f=0,g=a.length;f<g;f++){var h=a[f],l=h.name.match(e);if(l&&1<l.length){var k=l[1];(l=d[k])||(d[k]=l=[]);l.push(h)}}a=[];for(k in d)a.push(ra.CreateFromMorphTargetSequence(k,d[k],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("  no animation in JSONLoader data"),null;for(var c=function(a,b,c,d,e){if(0!==c.length){var f=[],g=[];na.flattenJSON(c,f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=a.length||-1,g=a.fps||30,h=a.hierarchy||[],l=0;l<h.length;l++){var k=
 h[l].keys;if(k&&0!==k.length)if(k[0].morphTargets){for(var f={},m=0;m<k.length;m++)if(k[m].morphTargets)for(var p=0;p<k[m].morphTargets.length;p++)f[k[m].morphTargets[p]]=-1;for(var n in f){for(var q=[],w=[],p=0;p!==k[m].morphTargets.length;++p){var t=k[m];q.push(t.time);w.push(t.morphTarget===n?1:0)}d.push(new fc(".morphTargetInfluence["+n+"]",q,w))}f=f.length*(g||1)}else m=".bones["+b[l].name+"]",c(ec,m+".position",k,"pos",d),c(bd,m+".quaternion",k,"rot",d),c(ec,m+".scale",k,"scl",d)}return 0===
-d.length?null:new ra(e,f,d)}});Object.assign(Id.prototype,{load:function(a,b,c,d){var e=this;(new Da(e.manager)).load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},setTextures:function(a){this.textures=a},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",a);return c[a]}var c=this.textures,d=new Wf[a.type];void 0!==a.uuid&&(d.uuid=a.uuid);void 0!==a.name&&(d.name=a.name);void 0!==a.color&&d.color.setHex(a.color);void 0!==a.roughness&&(d.roughness=
+d.length?null:new ra(e,f,d)}});Object.assign(Jd.prototype,{load:function(a,b,c,d){var e=this;(new Da(e.manager)).load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},setTextures:function(a){this.textures=a},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",a);return c[a]}var c=this.textures,d=new Wf[a.type];void 0!==a.uuid&&(d.uuid=a.uuid);void 0!==a.name&&(d.name=a.name);void 0!==a.color&&d.color.setHex(a.color);void 0!==a.roughness&&(d.roughness=
 a.roughness);void 0!==a.metalness&&(d.metalness=a.metalness);void 0!==a.emissive&&d.emissive.setHex(a.emissive);void 0!==a.specular&&d.specular.setHex(a.specular);void 0!==a.shininess&&(d.shininess=a.shininess);void 0!==a.clearCoat&&(d.clearCoat=a.clearCoat);void 0!==a.clearCoatRoughness&&(d.clearCoatRoughness=a.clearCoatRoughness);void 0!==a.uniforms&&(d.uniforms=a.uniforms);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&(d.fragmentShader=a.fragmentShader);void 0!==
 a.vertexColors&&(d.vertexColors=a.vertexColors);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.shading&&(d.shading=a.shading);void 0!==a.blending&&(d.blending=a.blending);void 0!==a.side&&(d.side=a.side);void 0!==a.opacity&&(d.opacity=a.opacity);void 0!==a.transparent&&(d.transparent=a.transparent);void 0!==a.alphaTest&&(d.alphaTest=a.alphaTest);void 0!==a.depthTest&&(d.depthTest=a.depthTest);void 0!==a.depthWrite&&(d.depthWrite=a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==
 a.wireframe&&(d.wireframe=a.wireframe);void 0!==a.wireframeLinewidth&&(d.wireframeLinewidth=a.wireframeLinewidth);void 0!==a.wireframeLinecap&&(d.wireframeLinecap=a.wireframeLinecap);void 0!==a.wireframeLinejoin&&(d.wireframeLinejoin=a.wireframeLinejoin);void 0!==a.skinning&&(d.skinning=a.skinning);void 0!==a.morphTargets&&(d.morphTargets=a.morphTargets);void 0!==a.size&&(d.size=a.size);void 0!==a.sizeAttenuation&&(d.sizeAttenuation=a.sizeAttenuation);void 0!==a.map&&(d.map=b(a.map));void 0!==a.alphaMap&&
@@ -659,7 +659,7 @@ a.lightMapIntensity);void 0!==a.aoMap&&(d.aoMap=b(a.aoMap));void 0!==a.aoMapInte
 Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};void 0!==c&&(c=new d[c.type](c.array),b.setIndex(new w(c,1)));var e=a.data.attributes,f;for(f in e){var g=e[f],c=new d[g.type](g.array);b.addAttribute(f,new w(c,g.itemSize,g.normalized))}d=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==d)for(f=0,c=d.length;f!==c;++f)e=d[f],b.addGroup(e.start,
 e.count,e.materialIndex);a=a.data.boundingSphere;void 0!==a&&(d=new q,void 0!==a.center&&d.fromArray(a.center),b.boundingSphere=new Ea(d,a.radius));return b}});yb.prototype={constructor:yb,crossOrigin:void 0,extractUrlBase:function(a){a=a.split("/");if(1===a.length)return"./";a.pop();return a.join("/")+"/"},initMaterials:function(a,b,c){for(var d=[],e=0;e<a.length;++e)d[e]=this.createMaterial(a[e],b,c);return d},createMaterial:function(){var a={NoBlending:0,NormalBlending:1,AdditiveBlending:2,SubtractiveBlending:3,
 MultiplyBlending:4,CustomBlending:5},b,c,d;return function(e,f,g){function h(a,b,d,e,h){a=f+a;var k=yb.Handlers.get(a);null!==k?a=k.load(a):(c.setCrossOrigin(g),a=c.load(a));void 0!==b&&(a.repeat.fromArray(b),1!==b[0]&&(a.wrapS=1E3),1!==b[1]&&(a.wrapT=1E3));void 0!==d&&a.offset.fromArray(d);void 0!==e&&("repeat"===e[0]&&(a.wrapS=1E3),"mirror"===e[0]&&(a.wrapS=1002),"repeat"===e[1]&&(a.wrapT=1E3),"mirror"===e[1]&&(a.wrapT=1002));void 0!==h&&(a.anisotropy=h);b=S.generateUUID();l[b]=a;return b}void 0===
-b&&(b=new F);void 0===c&&(c=new ud);void 0===d&&(d=new Id);var l={},k={uuid:S.generateUUID(),type:"MeshLambertMaterial"},m;for(m in e){var p=e[m];switch(m){case "DbgColor":case "DbgIndex":case "opticalDensity":case "illumination":break;case "DbgName":k.name=p;break;case "blending":k.blending=a[p];break;case "colorAmbient":case "mapAmbient":console.warn("THREE.Loader.createMaterial:",m,"is no longer supported.");break;case "colorDiffuse":k.color=b.fromArray(p).getHex();break;case "colorSpecular":k.specular=
+b&&(b=new F);void 0===c&&(c=new vd);void 0===d&&(d=new Jd);var l={},k={uuid:S.generateUUID(),type:"MeshLambertMaterial"},m;for(m in e){var p=e[m];switch(m){case "DbgColor":case "DbgIndex":case "opticalDensity":case "illumination":break;case "DbgName":k.name=p;break;case "blending":k.blending=a[p];break;case "colorAmbient":case "mapAmbient":console.warn("THREE.Loader.createMaterial:",m,"is no longer supported.");break;case "colorDiffuse":k.color=b.fromArray(p).getHex();break;case "colorSpecular":k.specular=
 b.fromArray(p).getHex();break;case "colorEmissive":k.emissive=b.fromArray(p).getHex();break;case "specularCoef":k.shininess=p;break;case "shading":"basic"===p.toLowerCase()&&(k.type="MeshBasicMaterial");"phong"===p.toLowerCase()&&(k.type="MeshPhongMaterial");"standard"===p.toLowerCase()&&(k.type="MeshStandardMaterial");break;case "mapDiffuse":k.map=h(p,e.mapDiffuseRepeat,e.mapDiffuseOffset,e.mapDiffuseWrap,e.mapDiffuseAnisotropy);break;case "mapDiffuseRepeat":case "mapDiffuseOffset":case "mapDiffuseWrap":case "mapDiffuseAnisotropy":break;
 case "mapEmissive":k.emissiveMap=h(p,e.mapEmissiveRepeat,e.mapEmissiveOffset,e.mapEmissiveWrap,e.mapEmissiveAnisotropy);break;case "mapEmissiveRepeat":case "mapEmissiveOffset":case "mapEmissiveWrap":case "mapEmissiveAnisotropy":break;case "mapLight":k.lightMap=h(p,e.mapLightRepeat,e.mapLightOffset,e.mapLightWrap,e.mapLightAnisotropy);break;case "mapLightRepeat":case "mapLightOffset":case "mapLightWrap":case "mapLightAnisotropy":break;case "mapAO":k.aoMap=h(p,e.mapAORepeat,e.mapAOOffset,e.mapAOWrap,
 e.mapAOAnisotropy);break;case "mapAORepeat":case "mapAOOffset":case "mapAOWrap":case "mapAOAnisotropy":break;case "mapBump":k.bumpMap=h(p,e.mapBumpRepeat,e.mapBumpOffset,e.mapBumpWrap,e.mapBumpAnisotropy);break;case "mapBumpScale":k.bumpScale=p;break;case "mapBumpRepeat":case "mapBumpOffset":case "mapBumpWrap":case "mapBumpAnisotropy":break;case "mapNormal":k.normalMap=h(p,e.mapNormalRepeat,e.mapNormalOffset,e.mapNormalWrap,e.mapNormalAnisotropy);break;case "mapNormalFactor":k.normalScale=[p,p];break;
@@ -680,14 +680,14 @@ a},parse:function(a,b){var c=this.parseGeometries(a.geometries),d=this.parseImag
 new Ma[h.type](h.width,h.height,h.widthSegments,h.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":g=new Ma[h.type](h.width,h.height,h.depth,h.widthSegments,h.heightSegments,h.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":g=new Ma[h.type](h.radius,h.segments,h.thetaStart,h.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":g=new Ma[h.type](h.radiusTop,h.radiusBottom,h.height,h.radialSegments,h.heightSegments,h.openEnded,
 h.thetaStart,h.thetaLength);break;case "ConeGeometry":case "ConeBufferGeometry":g=new Ma[h.type](h.radius,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);break;case "SphereGeometry":case "SphereBufferGeometry":g=new Ma[h.type](h.radius,h.widthSegments,h.heightSegments,h.phiStart,h.phiLength,h.thetaStart,h.thetaLength);break;case "DodecahedronGeometry":case "IcosahedronGeometry":case "OctahedronGeometry":case "TetrahedronGeometry":g=new Ma[h.type](h.radius,h.detail);
 break;case "RingGeometry":case "RingBufferGeometry":g=new Ma[h.type](h.innerRadius,h.outerRadius,h.thetaSegments,h.phiSegments,h.thetaStart,h.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":g=new Ma[h.type](h.radius,h.tube,h.radialSegments,h.tubularSegments,h.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":g=new Ma[h.type](h.radius,h.tube,h.tubularSegments,h.radialSegments,h.p,h.q);break;case "LatheGeometry":case "LatheBufferGeometry":g=new Ma[h.type](h.points,
-h.segments,h.phiStart,h.phiLength);break;case "BufferGeometry":g=d.parse(h);break;case "Geometry":g=c.parse(h.data,this.texturePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+h.type+'"');continue}g.uuid=h.uuid;void 0!==h.name&&(g.name=h.name);b[h.uuid]=g}return b},parseMaterials:function(a,b){var c={};if(void 0!==a){var d=new Id;d.setTextures(b);for(var e=0,f=a.length;e<f;e++){var g=d.parse(a[e]);c[g.uuid]=g}}return c},parseAnimations:function(a){for(var b=
+h.segments,h.phiStart,h.phiLength);break;case "BufferGeometry":g=d.parse(h);break;case "Geometry":g=c.parse(h.data,this.texturePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+h.type+'"');continue}g.uuid=h.uuid;void 0!==h.name&&(g.name=h.name);b[h.uuid]=g}return b},parseMaterials:function(a,b){var c={};if(void 0!==a){var d=new Jd;d.setTextures(b);for(var e=0,f=a.length;e<f;e++){var g=d.parse(a[e]);c[g.uuid]=g}}return c},parseAnimations:function(a){for(var b=
 [],c=0;c<a.length;c++){var d=ra.parse(a[c]);b.push(d)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);return g.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemError(a)})}var d=this,e={};if(void 0!==a&&0<a.length){var f=new Zd(b),g=new $c(f);g.setCrossOrigin(this.crossOrigin);for(var f=0,h=a.length;f<h;f++){var l=a[f],k=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(l.url)?l.url:d.texturePath+l.url;e[l.uuid]=c(k)}}return e},parseTextures:function(a,b){function c(a,
 b){if("number"===typeof a)return a;console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",a);return b[a]}var d={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},e={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},f={NearestFilter:1003,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,
 LinearFilter:1006,LinearMipMapNearestFilter:1007,LinearMipMapLinearFilter:1008},g={};if(void 0!==a)for(var h=0,l=a.length;h<l;h++){var k=a[h];void 0===k.image&&console.warn('THREE.ObjectLoader: No "image" specified for',k.uuid);void 0===b[k.image]&&console.warn("THREE.ObjectLoader: Undefined image",k.image);var m=new ca(b[k.image]);m.needsUpdate=!0;m.uuid=k.uuid;void 0!==k.name&&(m.name=k.name);void 0!==k.mapping&&(m.mapping=c(k.mapping,d));void 0!==k.offset&&m.offset.fromArray(k.offset);void 0!==
 k.repeat&&m.repeat.fromArray(k.repeat);void 0!==k.wrap&&(m.wrapS=c(k.wrap[0],e),m.wrapT=c(k.wrap[1],e));void 0!==k.minFilter&&(m.minFilter=c(k.minFilter,f));void 0!==k.magFilter&&(m.magFilter=c(k.magFilter,f));void 0!==k.anisotropy&&(m.anisotropy=k.anisotropy);void 0!==k.flipY&&(m.flipY=k.flipY);g[k.uuid]=m}return g},parseObject:function(){var a=new M;return function(b,c,d){function e(a){void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return c[a]}function f(a){if(void 0!==
 a)return void 0===d[a]&&console.warn("THREE.ObjectLoader: Undefined material",a),d[a]}var g;switch(b.type){case "Scene":g=new lb;void 0!==b.background&&Number.isInteger(b.background)&&(g.background=new F(b.background));void 0!==b.fog&&("Fog"===b.fog.type?g.fog=new Lb(b.fog.color,b.fog.near,b.fog.far):"FogExp2"===b.fog.type&&(g.fog=new Kb(b.fog.color,b.fog.density)));break;case "PerspectiveCamera":g=new Ga(b.fov,b.aspect,b.near,b.far);void 0!==b.focus&&(g.focus=b.focus);void 0!==b.zoom&&(g.zoom=b.zoom);
-void 0!==b.filmGauge&&(g.filmGauge=b.filmGauge);void 0!==b.filmOffset&&(g.filmOffset=b.filmOffset);void 0!==b.view&&(g.view=Object.assign({},b.view));break;case "OrthographicCamera":g=new Jb(b.left,b.right,b.top,b.bottom,b.near,b.far);break;case "AmbientLight":g=new Bd(b.color,b.intensity);break;case "DirectionalLight":g=new Ad(b.color,b.intensity);break;case "PointLight":g=new yd(b.color,b.intensity,b.distance,b.decay);break;case "SpotLight":g=new xd(b.color,b.intensity,b.distance,b.angle,b.penumbra,
-b.decay);break;case "HemisphereLight":g=new vd(b.color,b.groundColor,b.intensity);break;case "Mesh":g=e(b.geometry);var h=f(b.material);g=g.bones&&0<g.bones.length?new rd(g,h):new za(g,h);break;case "LOD":g=new Fc;break;case "Line":g=new Wa(e(b.geometry),f(b.material),b.mode);break;case "LineSegments":g=new ga(e(b.geometry),f(b.material));break;case "PointCloud":case "Points":g=new Mb(e(b.geometry),f(b.material));break;case "Sprite":g=new Ec(f(b.material));break;case "Group":g=new Gc;break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh type. Instantiates Object3D instead.");
+void 0!==b.filmGauge&&(g.filmGauge=b.filmGauge);void 0!==b.filmOffset&&(g.filmOffset=b.filmOffset);void 0!==b.view&&(g.view=Object.assign({},b.view));break;case "OrthographicCamera":g=new Jb(b.left,b.right,b.top,b.bottom,b.near,b.far);break;case "AmbientLight":g=new Cd(b.color,b.intensity);break;case "DirectionalLight":g=new Bd(b.color,b.intensity);break;case "PointLight":g=new zd(b.color,b.intensity,b.distance,b.decay);break;case "SpotLight":g=new yd(b.color,b.intensity,b.distance,b.angle,b.penumbra,
+b.decay);break;case "HemisphereLight":g=new wd(b.color,b.groundColor,b.intensity);break;case "Mesh":g=e(b.geometry);var h=f(b.material);g=g.bones&&0<g.bones.length?new sd(g,h):new za(g,h);break;case "LOD":g=new Fc;break;case "Line":g=new Wa(e(b.geometry),f(b.material),b.mode);break;case "LineSegments":g=new ga(e(b.geometry),f(b.material));break;case "PointCloud":case "Points":g=new Mb(e(b.geometry),f(b.material));break;case "Sprite":g=new Ec(f(b.material));break;case "Group":g=new Gc;break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh type. Instantiates Object3D instead.");
 default:g=new A}g.uuid=b.uuid;void 0!==b.name&&(g.name=b.name);void 0!==b.matrix?(a.fromArray(b.matrix),a.decompose(g.position,g.quaternion,g.scale)):(void 0!==b.position&&g.position.fromArray(b.position),void 0!==b.rotation&&g.rotation.fromArray(b.rotation),void 0!==b.quaternion&&g.quaternion.fromArray(b.quaternion),void 0!==b.scale&&g.scale.fromArray(b.scale));void 0!==b.castShadow&&(g.castShadow=b.castShadow);void 0!==b.receiveShadow&&(g.receiveShadow=b.receiveShadow);b.shadow&&(void 0!==b.shadow.bias&&
 (g.shadow.bias=b.shadow.bias),void 0!==b.shadow.radius&&(g.shadow.radius=b.shadow.radius),void 0!==b.shadow.mapSize&&g.shadow.mapSize.fromArray(b.shadow.mapSize),void 0!==b.shadow.camera&&(g.shadow.camera=this.parseObject(b.shadow.camera)));void 0!==b.visible&&(g.visible=b.visible);void 0!==b.userData&&(g.userData=b.userData);if(void 0!==b.children)for(var l in b.children)g.add(this.parseObject(b.children[l],c,d));if("LOD"===b.type)for(b=b.levels,h=0;h<b.length;h++){var k=b[h];l=g.getObjectByProperty("uuid",
 k.object);void 0!==l&&g.addLevel(l,k.distance)}return g}}()});ua.prototype={constructor:ua,getPoint:function(a){console.warn("THREE.Curve: Warning, getPoint() not implemented!");return null},getPointAt:function(a){a=this.getUtoTmapping(a);return this.getPoint(a)},getPoints:function(a){a||(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){a||(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();
@@ -712,7 +712,7 @@ var l=f,k=d.glyphs[a[g]]||d.glyphs["?"];if(k){var m=new de,p=[],n,q,w,t,y,u,v,A;
 h,y=x[B++]*h+l,u=x[B++]*h,v=x[B++]*h+l,A=x[B++]*h,m.bezierCurveTo(y,u,v,A,n,q),t=p[p.length-1])for(w=t.x,t=t.y,D=1;D<=c;D++)F=D/c,Ab(F,w,y,v,n),Ab(F,t,u,A,q)}h={offset:k.ha*h,path:m}}else h=void 0;f+=h.offset;b.push(h.path)}c=[];d=0;for(a=b.length;d<a;d++)Array.prototype.push.apply(c,b[d].toShapes());return c}});Object.assign(Re.prototype,{load:function(a,b,c,d){var e=this;(new Da(this.manager)).load(a,function(a){var c;try{c=JSON.parse(a)}catch(d){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),
 c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new ee(a)}});var Qd,ie={getContext:function(){void 0===Qd&&(Qd=new (window.AudioContext||window.webkitAudioContext));return Qd},setContext:function(a){Qd=a}};Object.assign(fe.prototype,{load:function(a,b,c,d){var e=new Da(this.manager);e.setResponseType("arraybuffer");e.load(a,function(a){ie.getContext().decodeAudioData(a,function(a){b(a)})},c,d)}});ge.prototype=Object.assign(Object.create(ma.prototype),
 {constructor:ge,isRectAreaLight:!0,copy:function(a){ma.prototype.copy.call(this,a);this.width=a.width;this.height=a.height;return this}});Object.assign(Se.prototype,{update:function(){var a,b,c,d,e,f,g,h=new M,l=new M;return function(k){if(a!==this||b!==k.focus||c!==k.fov||d!==k.aspect*this.aspect||e!==k.near||f!==k.far||g!==k.zoom){a=this;b=k.focus;c=k.fov;d=k.aspect*this.aspect;e=k.near;f=k.far;g=k.zoom;var m=k.projectionMatrix.clone(),p=this.eyeSep/2,n=p*e/b,q=e*Math.tan(S.DEG2RAD*c*.5)/g,w;l.elements[12]=
--p;h.elements[12]=p;p=-q*d+n;w=q*d+n;m.elements[0]=2*e/(w-p);m.elements[8]=(w+p)/(w-p);this.cameraL.projectionMatrix.copy(m);p=-q*d-n;w=q*d-n;m.elements[0]=2*e/(w-p);m.elements[8]=(w+p)/(w-p);this.cameraR.projectionMatrix.copy(m)}this.cameraL.matrixWorld.copy(k.matrixWorld).multiply(l);this.cameraR.matrixWorld.copy(k.matrixWorld).multiply(h)}}()});Jd.prototype=Object.create(A.prototype);Jd.prototype.constructor=Jd;he.prototype=Object.assign(Object.create(A.prototype),{constructor:he,getInput:function(){return this.gain},
+-p;h.elements[12]=p;p=-q*d+n;w=q*d+n;m.elements[0]=2*e/(w-p);m.elements[8]=(w+p)/(w-p);this.cameraL.projectionMatrix.copy(m);p=-q*d-n;w=q*d-n;m.elements[0]=2*e/(w-p);m.elements[8]=(w+p)/(w-p);this.cameraR.projectionMatrix.copy(m)}this.cameraL.matrixWorld.copy(k.matrixWorld).multiply(l);this.cameraR.matrixWorld.copy(k.matrixWorld).multiply(h)}}()});Kd.prototype=Object.create(A.prototype);Kd.prototype.constructor=Kd;he.prototype=Object.assign(Object.create(A.prototype),{constructor:he,getInput:function(){return this.gain},
 removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null)},getFilter:function(){return this.filter},setFilter:function(a){null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filter=a;this.gain.connect(this.filter);this.filter.connect(this.context.destination)},getMasterVolume:function(){return this.gain.gain.value},
 setMasterVolume:function(a){this.gain.gain.value=a},updateMatrixWorld:function(){var a=new q,b=new Z,c=new q,d=new q;return function(e){A.prototype.updateMatrixWorld.call(this,e);e=this.context.listener;var f=this.up;this.matrixWorld.decompose(a,b,c);d.set(0,0,-1).applyQuaternion(b);e.positionX?(e.positionX.setValueAtTime(a.x,this.context.currentTime),e.positionY.setValueAtTime(a.y,this.context.currentTime),e.positionZ.setValueAtTime(a.z,this.context.currentTime),e.forwardX.setValueAtTime(d.x,this.context.currentTime),
 e.forwardY.setValueAtTime(d.y,this.context.currentTime),e.forwardZ.setValueAtTime(d.z,this.context.currentTime),e.upX.setValueAtTime(f.x,this.context.currentTime),e.upY.setValueAtTime(f.y,this.context.currentTime),e.upZ.setValueAtTime(f.z,this.context.currentTime)):(e.setPosition(a.x,a.y,a.z),e.setOrientation(d.x,d.y,d.z,f.x,f.y,f.z))}}()});ic.prototype=Object.assign(Object.create(A.prototype),{constructor:ic,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl=
@@ -723,7 +723,7 @@ return this},getFilters:function(){return this.filters},setFilters:function(a){a
 this.context.currentTime),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.loop=a,!0===this.isPlaying&&(this.source.loop=this.loop),this},getVolume:function(){return this.gain.gain.value},
 setVolume:function(a){this.gain.gain.value=a;return this}});je.prototype=Object.assign(Object.create(ic.prototype),{constructor:je,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(a){this.panner.refDistance=a},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(a){this.panner.rolloffFactor=a},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(a){this.panner.distanceModel=
 a},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(a){this.panner.maxDistance=a},updateMatrixWorld:function(){var a=new q;return function(b){A.prototype.updateMatrixWorld.call(this,b);a.setFromMatrixPosition(this.matrixWorld);this.panner.setPosition(a.x,a.y,a.z)}}()});Object.assign(ke.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},getAverageFrequency:function(){for(var a=0,b=this.getFrequencyData(),c=0;c<b.length;c++)a+=
-b[c];return a/b.length}});Kd.prototype={constructor:Kd,accumulate:function(a,b){var c=this.buffer,d=this.valueSize,e=a*d+d,f=this.cumulativeWeight;if(0===f){for(f=0;f!==d;++f)c[e+f]=c[f];f=b}else f+=b,this._mixBufferRegion(c,e,0,b/f,d);this.cumulativeWeight=f},apply:function(a){var b=this.valueSize,c=this.buffer;a=a*b+b;var d=this.cumulativeWeight,e=this.binding;this.cumulativeWeight=0;1>d&&this._mixBufferRegion(c,a,3*b,1-d,b);for(var d=b,f=b+b;d!==f;++d)if(c[d]!==c[d+b]){e.setValue(c,a);break}},
+b[c];return a/b.length}});Ld.prototype={constructor:Ld,accumulate:function(a,b){var c=this.buffer,d=this.valueSize,e=a*d+d,f=this.cumulativeWeight;if(0===f){for(f=0;f!==d;++f)c[e+f]=c[f];f=b}else f+=b,this._mixBufferRegion(c,e,0,b/f,d);this.cumulativeWeight=f},apply:function(a){var b=this.valueSize,c=this.buffer;a=a*b+b;var d=this.cumulativeWeight,e=this.binding;this.cumulativeWeight=0;1>d&&this._mixBufferRegion(c,a,3*b,1-d,b);for(var d=b,f=b+b;d!==f;++d)if(c[d]!==c[d+b]){e.setValue(c,a);break}},
 saveOriginalState:function(){var a=this.buffer,b=this.valueSize,c=3*b;this.binding.getValue(a,c);for(var d=b;d!==c;++d)a[d]=a[c+d%b];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(a,b,c,d,e){if(.5<=d)for(d=0;d!==e;++d)a[b+d]=a[c+d]},_slerp:function(a,b,c,d,e){Z.slerpFlat(a,b,a,b,a,c,d)},_lerp:function(a,b,c,d,e){for(var f=1-d,g=0;g!==e;++g){var h=b+g;a[h]=a[h]*f+a[c+g]*d}}};ka.prototype={constructor:ka,getValue:function(a,
 b){this.bind();this.getValue(a,b)},setValue:function(a,b){this.bind();this.setValue(a,b)},bind:function(){var a=this.node,b=this.parsedPath,c=b.objectName,d=b.propertyName,e=b.propertyIndex;a||(this.node=a=ka.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(a){if(c){var f=b.objectIndex;switch(c){case "materials":if(!a.material){console.error("  can not bind to material as node does not have a material",this);return}if(!a.material.materials){console.error("  can not bind to material.materials as node.material does not have a materials array",
 this);return}a=a.material.materials;break;case "bones":if(!a.skeleton){console.error("  can not bind to bones as node does not have a skeleton",this);return}a=a.skeleton.bones;for(c=0;c<a.length;c++)if(a[c].name===f){f=c;break}break;default:if(void 0===a[c]){console.error("  can not bind to objectName of node, undefined",this);return}a=a[c]}if(void 0!==f){if(void 0===a[f]){console.error("  trying to bind to objectIndex of objectName, but is undefined:",this,a);return}a=a[f]}}f=a[d];if(void 0===f)console.error("  trying to update property for track: "+
@@ -752,7 +752,7 @@ f=this._weightInterpolant;null===f&&(this._weightInterpolant=f=d._lendControlInt
 g);this._addInactiveAction(e,c,d);return e},existingAction:function(a,b){var c=b||this._root,d=c.uuid,c="string"===typeof a?ra.findByName(c,a):a,c=this._actionsByClip[c?c.uuid:a];return void 0!==c?c.actionByRoot[d]||null:null},stopAllAction:function(){for(var a=this._actions,b=this._nActiveActions,c=this._bindings,d=this._nActiveBindings,e=this._nActiveBindings=this._nActiveActions=0;e!==b;++e)a[e].reset();for(e=0;e!==d;++e)c[e].useCount=0;return this},update:function(a){a*=this.timeScale;for(var b=
 this._actions,c=this._nActiveActions,d=this.time+=a,e=Math.sign(a),f=this._accuIndex^=1,g=0;g!==c;++g){var h=b[g];h.enabled&&h._update(d,a,e,f)}a=this._bindings;b=this._nActiveBindings;for(g=0;g!==b;++g)a[g].apply(f);return this},getRoot:function(){return this._root},uncacheClip:function(a){var b=this._actions;a=a.uuid;var c=this._actionsByClip,d=c[a];if(void 0!==d){for(var d=d.knownActions,e=0,f=d.length;e!==f;++e){var g=d[e];this._deactivateAction(g);var h=g._cacheIndex,l=b[b.length-1];g._cacheIndex=
 null;g._byClipCacheIndex=null;l._cacheIndex=h;b[h]=l;b.pop();this._removeInactiveBindingsForAction(g)}delete c[a]}},uncacheRoot:function(a){a=a.uuid;var b=this._actionsByClip,c;for(c in b){var d=b[c].actionByRoot[a];void 0!==d&&(this._deactivateAction(d),this._removeInactiveAction(d))}c=this._bindingsByRootAndName[a];if(void 0!==c)for(var e in c)a=c[e],a.restoreOriginalState(),this._removeInactiveBinding(a)},uncacheAction:function(a,b){var c=this.existingAction(a,b);null!==c&&(this._deactivateAction(c),
-this._removeInactiveAction(c))}};Object.assign(ed.prototype,{_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings,g=a._interpolants,h=c.uuid,l=this._bindingsByRootAndName,k=l[h];void 0===k&&(k={},l[h]=k);for(l=0;l!==e;++l){var m=d[l],p=m.name,n=k[p];if(void 0===n){n=f[l];if(void 0!==n){null===n._cacheIndex&&(++n.referenceCount,this._addInactiveBinding(n,h,p));continue}n=new Kd(ka.create(c,p,b&&b._propertyBindings[l].binding.parsedPath),m.ValueTypeName,
+this._removeInactiveAction(c))}};Object.assign(ed.prototype,{_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings,g=a._interpolants,h=c.uuid,l=this._bindingsByRootAndName,k=l[h];void 0===k&&(k={},l[h]=k);for(l=0;l!==e;++l){var m=d[l],p=m.name,n=k[p];if(void 0===n){n=f[l];if(void 0!==n){null===n._cacheIndex&&(++n.referenceCount,this._addInactiveBinding(n,h,p));continue}n=new Ld(ka.create(c,p,b&&b._propertyBindings[l].binding.parsedPath),m.ValueTypeName,
 m.getValueSize());++n.referenceCount;this._addInactiveBinding(n,h,p)}f[l]=n;g[l].resultBuffer=n.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(null===a._cacheIndex){var b=(a._localRoot||this._root).uuid,c=a._clip.uuid,d=this._actionsByClip[c];this._bindAction(a,d&&d.knownActions[0]);this._addInactiveAction(a,c,b)}b=a._propertyBindings;c=0;for(d=b.length;c!==d;++c){var e=b[c];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var b=
 a._propertyBindings,c=0,d=b.length;c!==d;++c){var e=b[c];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},
 get inUse(){return a._nActiveBindings}},controlInterpolants:{get total(){return a._controlInterpolants.length},get inUse(){return a._nActiveControlInterpolants}}}},_isActiveAction:function(a){a=a._cacheIndex;return null!==a&&a<this._nActiveActions},_addInactiveAction:function(a,b,c){var d=this._actions,e=this._actionsByClip,f=e[b];void 0===f?(f={knownActions:[a],actionByRoot:{}},a._byClipCacheIndex=0,e[b]=f):(b=f.knownActions,a._byClipCacheIndex=b.length,b.push(a));a._cacheIndex=d.length;d.push(a);
@@ -760,7 +760,7 @@ f.actionByRoot[c]=a},_removeInactiveAction:function(a){var b=this._actions,c=b[b
 for(var b=0,c=a.length;b!==c;++b){var d=a[b];0===--d.referenceCount&&this._removeInactiveBinding(d)}},_lendAction:function(a){var b=this._actions,c=a._cacheIndex,d=this._nActiveActions++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackAction:function(a){var b=this._actions,c=a._cacheIndex,d=--this._nActiveActions,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_addInactiveBinding:function(a,b,c){var d=this._bindingsByRootAndName,e=d[b],f=this._bindings;void 0===e&&(e={},d[b]=
 e);e[c]=a;a._cacheIndex=f.length;f.push(a)},_removeInactiveBinding:function(a){var b=this._bindings,c=a.binding,d=c.rootNode.uuid,c=c.path,e=this._bindingsByRootAndName,f=e[d],g=b[b.length-1];a=a._cacheIndex;g._cacheIndex=a;b[a]=g;b.pop();delete f[c];a:{for(var h in f)break a;delete e[d]}},_lendBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=this._nActiveBindings++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=
 --this._nActiveBindings,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_lendControlInterpolant:function(){var a=this._controlInterpolants,b=this._nActiveControlInterpolants++,c=a[b];void 0===c&&(c=new ad(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),c.__cacheIndex=b,a[b]=c);return c},_takeBackControlInterpolant:function(a){var b=this._controlInterpolants,c=a.__cacheIndex,d=--this._nActiveControlInterpolants,e=b[d];a.__cacheIndex=d;b[d]=a;e.__cacheIndex=c;
-b[c]=e},_controlInterpolantsResultBuffer:new Float32Array(1)});Object.assign(ed.prototype,pa.prototype);Ld.prototype.clone=function(){return new Ld(void 0===this.value.clone?this.value:this.value.clone())};Db.prototype=Object.create(G.prototype);Db.prototype.constructor=Db;Db.prototype.isInstancedBufferGeometry=!0;Db.prototype.addGroup=function(a,b,c){this.groups.push({start:a,count:b,materialIndex:c})};Db.prototype.copy=function(a){var b=a.index;null!==b&&this.setIndex(b.clone());var b=a.attributes,
+b[c]=e},_controlInterpolantsResultBuffer:new Float32Array(1)});Object.assign(ed.prototype,pa.prototype);Md.prototype.clone=function(){return new Md(void 0===this.value.clone?this.value:this.value.clone())};Db.prototype=Object.create(G.prototype);Db.prototype.constructor=Db;Db.prototype.isInstancedBufferGeometry=!0;Db.prototype.addGroup=function(a,b,c){this.groups.push({start:a,count:b,materialIndex:c})};Db.prototype.copy=function(a){var b=a.index;null!==b&&this.setIndex(b.clone());var b=a.attributes,
 c;for(c in b)this.addAttribute(c,b[c].clone());a=a.groups;c=0;for(b=a.length;c<b;c++){var d=a[c];this.addGroup(d.start,d.count,d.materialIndex)}return this};ne.prototype={constructor:ne,isInterleavedBufferAttribute:!0,get count(){return this.data.count},get array(){return this.data.array},setX:function(a,b){this.data.array[a*this.data.stride+this.offset]=b;return this},setY:function(a,b){this.data.array[a*this.data.stride+this.offset+1]=b;return this},setZ:function(a,b){this.data.array[a*this.data.stride+
 this.offset+2]=b;return this},setW:function(a,b){this.data.array[a*this.data.stride+this.offset+3]=b;return this},getX:function(a){return this.data.array[a*this.data.stride+this.offset]},getY:function(a){return this.data.array[a*this.data.stride+this.offset+1]},getZ:function(a){return this.data.array[a*this.data.stride+this.offset+2]},getW:function(a){return this.data.array[a*this.data.stride+this.offset+3]},setXY:function(a,b,c){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+
 1]=c;return this},setXYZ:function(a,b,c,d){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;return this},setXYZW:function(a,b,c,d,e){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;this.data.array[a+3]=e;return this}};jc.prototype={constructor:jc,isInterleavedBuffer:!0,set needsUpdate(a){!0===a&&this.version++},setArray:function(a){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");
@@ -783,18 +783,18 @@ return b};nc.prototype.update=function(){var a=new q,b=new M,c=new M;return func
 Object.create(za.prototype);oc.prototype.constructor=oc;oc.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};oc.prototype.update=function(){this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity)};pc.prototype=Object.create(A.prototype);pc.prototype.constructor=pc;pc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose();this.children[1].geometry.dispose();this.children[1].material.dispose()};pc.prototype.update=
 function(){var a=new q,b=new q;return function(){var c=this.children[0],d=this.children[1];if(this.light.target){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);var e=b.clone().sub(a);c.lookAt(e);d.lookAt(e)}c.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);d.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);var d=.5*this.light.width,e=.5*this.light.height,c=c.geometry.getAttribute("position"),
 f=c.array;f[0]=d;f[1]=-e;f[2]=0;f[3]=d;f[4]=e;f[5]=0;f[6]=-d;f[7]=e;f[8]=0;f[9]=-d;f[10]=e;f[11]=0;f[12]=-d;f[13]=-e;f[14]=0;f[15]=d;f[16]=-e;f[17]=0;c.needsUpdate=!0}}();qc.prototype=Object.create(A.prototype);qc.prototype.constructor=qc;qc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};qc.prototype.update=function(){var a=new q,b=new F,c=new F;return function(){var d=this.children[0],e=d.geometry.getAttribute("color");b.copy(this.light.color).multiplyScalar(this.light.intensity);
-c.copy(this.light.groundColor).multiplyScalar(this.light.intensity);for(var f=0,g=e.count;f<g;f++){var h=f<g/2?b:c;e.setXYZ(f,h.r,h.g,h.b)}d.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate());e.needsUpdate=!0}}();hd.prototype=Object.create(ga.prototype);hd.prototype.constructor=hd;Md.prototype=Object.create(ga.prototype);Md.prototype.constructor=Md;id.prototype=Object.create(ga.prototype);id.prototype.constructor=id;id.prototype.update=function(){var a=new q,b=new q,c=new xa;return function(){this.object.updateMatrixWorld(!0);
+c.copy(this.light.groundColor).multiplyScalar(this.light.intensity);for(var f=0,g=e.count;f<g;f++){var h=f<g/2?b:c;e.setXYZ(f,h.r,h.g,h.b)}d.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate());e.needsUpdate=!0}}();hd.prototype=Object.create(ga.prototype);hd.prototype.constructor=hd;Nd.prototype=Object.create(ga.prototype);Nd.prototype.constructor=Nd;id.prototype=Object.create(ga.prototype);id.prototype.constructor=id;id.prototype.update=function(){var a=new q,b=new q,c=new xa;return function(){this.object.updateMatrixWorld(!0);
 c.getNormalMatrix(this.object.matrixWorld);for(var d=this.object.matrixWorld,e=this.geometry.attributes.position,f=this.object.geometry,g=f.vertices,f=f.faces,h=0,l=0,k=f.length;l<k;l++){var m=f[l],p=m.normal;a.copy(g[m.a]).add(g[m.b]).add(g[m.c]).divideScalar(3).applyMatrix4(d);b.copy(p).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);e.setXYZ(h,a.x,a.y,a.z);h+=1;e.setXYZ(h,b.x,b.y,b.z);h+=1}e.needsUpdate=!0;return this}}();rc.prototype=Object.create(A.prototype);rc.prototype.constructor=
 rc;rc.prototype.dispose=function(){var a=this.children[0],b=this.children[1];a.geometry.dispose();a.material.dispose();b.geometry.dispose();b.material.dispose()};rc.prototype.update=function(){var a=new q,b=new q,c=new q;return function(){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);c.subVectors(b,a);var d=this.children[0],e=this.children[1];d.lookAt(c);d.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);e.lookAt(c);
 e.scale.z=c.length()}}();jd.prototype=Object.create(ga.prototype);jd.prototype.constructor=jd;jd.prototype.update=function(){function a(a,g,h,l){d.set(g,h,l).unproject(e);a=c[a];if(void 0!==a)for(g=b.getAttribute("position"),h=0,l=a.length;h<l;h++)g.setXYZ(a[h],d.x,d.y,d.z)}var b,c,d=new q,e=new sa;return function(){b=this.geometry;c=this.pointMap;e.projectionMatrix.copy(this.camera.projectionMatrix);a("c",0,0,-1);a("t",0,0,1);a("n1",-1,-1,-1);a("n2",1,-1,-1);a("n3",-1,1,-1);a("n4",1,1,-1);a("f1",
 -1,-1,1);a("f2",1,-1,1);a("f3",-1,1,1);a("f4",1,1,1);a("u1",.7,1.1,-1);a("u2",-.7,1.1,-1);a("u3",0,2,-1);a("cf1",-1,0,1);a("cf2",1,0,1);a("cf3",0,-1,1);a("cf4",0,1,1);a("cn1",-1,0,-1);a("cn2",1,0,-1);a("cn3",0,-1,-1);a("cn4",0,1,-1);b.getAttribute("position").needsUpdate=!0}}();sc.prototype=Object.create(ga.prototype);sc.prototype.constructor=sc;sc.prototype.update=function(){var a=new Pa;return function(b){b&&b.isBox3?a.copy(b):a.setFromObject(b);if(!a.isEmpty()){b=a.min;var c=a.max,d=this.geometry.attributes.position,
 e=d.array;e[0]=c.x;e[1]=c.y;e[2]=c.z;e[3]=b.x;e[4]=c.y;e[5]=c.z;e[6]=b.x;e[7]=b.y;e[8]=c.z;e[9]=c.x;e[10]=b.y;e[11]=c.z;e[12]=c.x;e[13]=c.y;e[14]=b.z;e[15]=b.x;e[16]=c.y;e[17]=b.z;e[18]=b.x;e[19]=b.y;e[20]=b.z;e[21]=c.x;e[22]=b.y;e[23]=b.z;d.needsUpdate=!0;this.geometry.computeBoundingSphere()}}}();var Ue=new G;Ue.addAttribute("position",new V([0,0,0,0,1,0],3));var Ve=new Xa(0,.5,1,5,1);Ve.translate(0,-.5,0);Eb.prototype=Object.create(A.prototype);Eb.prototype.constructor=Eb;Eb.prototype.setDirection=
 function(){var a=new q,b;return function(c){.99999<c.y?this.quaternion.set(0,0,0,1):-.99999>c.y?this.quaternion.set(1,0,0,0):(a.set(c.z,0,-c.x).normalize(),b=Math.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}();Eb.prototype.setLength=function(a,b,c){void 0===b&&(b=.2*a);void 0===c&&(c=.2*b);this.line.scale.set(1,Math.max(0,a-b),1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};Eb.prototype.setColor=function(a){this.line.material.color.copy(a);
-this.cone.material.color.copy(a)};Nd.prototype=Object.create(ga.prototype);Nd.prototype.constructor=Nd;var Rd=new q,we=new te,xe=new te,ye=new te;wa.prototype=Object.create(ua.prototype);wa.prototype.constructor=wa;wa.prototype.getPoint=function(a){var b=this.points,c=b.length;2>c&&console.log("duh, you need at least 2 points");a*=c-(this.closed?0:1);var d=Math.floor(a);a-=d;this.closed?d+=0<d?0:(Math.floor(Math.abs(d)/b.length)+1)*b.length:0===a&&d===c-1&&(d=c-2,a=1);var e,f,g;this.closed||0<d?e=
+this.cone.material.color.copy(a)};Od.prototype=Object.create(ga.prototype);Od.prototype.constructor=Od;var Rd=new q,we=new te,xe=new te,ye=new te;wa.prototype=Object.create(ua.prototype);wa.prototype.constructor=wa;wa.prototype.getPoint=function(a){var b=this.points,c=b.length;2>c&&console.log("duh, you need at least 2 points");a*=c-(this.closed?0:1);var d=Math.floor(a);a-=d;this.closed?d+=0<d?0:(Math.floor(Math.abs(d)/b.length)+1)*b.length:0===a&&d===c-1&&(d=c-2,a=1);var e,f,g;this.closed||0<d?e=
 b[(d-1)%c]:(Rd.subVectors(b[0],b[1]).add(b[0]),e=Rd);f=b[d%c];g=b[(d+1)%c];this.closed||d+2<c?b=b[(d+2)%c]:(Rd.subVectors(b[c-1],b[c-2]).add(b[c-1]),b=Rd);if(void 0===this.type||"centripetal"===this.type||"chordal"===this.type){var h="chordal"===this.type?.5:.25,c=Math.pow(e.distanceToSquared(f),h),d=Math.pow(f.distanceToSquared(g),h),h=Math.pow(g.distanceToSquared(b),h);1E-4>d&&(d=1);1E-4>c&&(c=d);1E-4>h&&(h=d);we.initNonuniformCatmullRom(e.x,f.x,g.x,b.x,c,d,h);xe.initNonuniformCatmullRom(e.y,f.y,
 g.y,b.y,c,d,h);ye.initNonuniformCatmullRom(e.z,f.z,g.z,b.z,c,d,h)}else"catmullrom"===this.type&&(c=void 0!==this.tension?this.tension:.5,we.initCatmullRom(e.x,f.x,g.x,b.x,c),xe.initCatmullRom(e.y,f.y,g.y,b.y,c),ye.initCatmullRom(e.z,f.z,g.z,b.z,c));return new q(we.calc(a),xe.calc(a),ye.calc(a))};kd.prototype=Object.create(ua.prototype);kd.prototype.constructor=kd;kd.prototype.getPoint=function(a){var b=this.v0,c=this.v1,d=this.v2,e=this.v3;return new q(Ab(a,b.x,c.x,d.x,e.x),Ab(a,b.y,c.y,d.y,e.y),
-Ab(a,b.z,c.z,d.z,e.z))};ld.prototype=Object.create(ua.prototype);ld.prototype.constructor=ld;ld.prototype.getPoint=function(a){var b=this.v0,c=this.v1,d=this.v2;return new q(zb(a,b.x,c.x,d.x),zb(a,b.y,c.y,d.y),zb(a,b.z,c.z,d.z))};md.prototype=Object.create(ua.prototype);md.prototype.constructor=md;md.prototype.getPoint=function(a){if(1===a)return this.v2.clone();var b=new q;b.subVectors(this.v2,this.v1);b.multiplyScalar(a);b.add(this.v1);return b};Od.prototype=Object.create(Ya.prototype);Od.prototype.constructor=
-Od;ua.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(ua.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};We.prototype=Object.create(wa.prototype);Xe.prototype=Object.create(wa.prototype);ue.prototype=Object.create(wa.prototype);Object.assign(ue.prototype,{initFromArray:function(a){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(a){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},
+Ab(a,b.z,c.z,d.z,e.z))};ld.prototype=Object.create(ua.prototype);ld.prototype.constructor=ld;ld.prototype.getPoint=function(a){var b=this.v0,c=this.v1,d=this.v2;return new q(zb(a,b.x,c.x,d.x),zb(a,b.y,c.y,d.y),zb(a,b.z,c.z,d.z))};md.prototype=Object.create(ua.prototype);md.prototype.constructor=md;md.prototype.getPoint=function(a){if(1===a)return this.v2.clone();var b=new q;b.subVectors(this.v2,this.v1);b.multiplyScalar(a);b.add(this.v1);return b};Pd.prototype=Object.create(Ya.prototype);Pd.prototype.constructor=
+Pd;ua.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(ua.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};We.prototype=Object.create(wa.prototype);Xe.prototype=Object.create(wa.prototype);ue.prototype=Object.create(wa.prototype);Object.assign(ue.prototype,{initFromArray:function(a){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(a){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},
 reparametrizeByArcLength:function(a){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});hd.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};Object.assign(tc.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},
 isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(Pa.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");return this.getCenter(a)},empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},
 isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");return this.getSize(a)}});ib.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");
@@ -817,7 +817,7 @@ this.shadow.camera.right=a}},shadowCameraTop:{set:function(a){console.warn("THRE
 this.shadow.camera.far=a}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(a){console.warn("THREE.Light: .shadowBias is now .shadow.bias.");this.shadow.bias=a}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(a){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.");
 this.shadow.mapSize.width=a}},shadowMapHeight:{set:function(a){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.");this.shadow.mapSize.height=a}}});Object.defineProperties(w.prototype,{length:{get:function(){console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead.");return this.array.length}}});Object.assign(G.prototype,{addIndex:function(a){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().");this.setIndex(a)},addDrawCall:function(a,
 b,c){void 0!==c&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.");console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup().");this.addGroup(a,b)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().");this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")}});
-Object.defineProperties(G.prototype,{drawcalls:{get:function(){console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups.");return this.groups}},offsets:{get:function(){console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups.");return this.groups}}});Object.defineProperties(Ld.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.");
+Object.defineProperties(G.prototype,{drawcalls:{get:function(){console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups.");return this.groups}},offsets:{get:function(){console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups.");return this.groups}}});Object.defineProperties(Md.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.");
 return this}}});Object.defineProperties(X.prototype,{wrapAround:{get:function(){console.warn("THREE."+this.type+": .wrapAround has been removed.")},set:function(){console.warn("THREE."+this.type+": .wrapAround has been removed.")}},wrapRGB:{get:function(){console.warn("THREE."+this.type+": .wrapRGB has been removed.");return new F}}});Object.defineProperties(Ba.prototype,{metal:{get:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.");
 return!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}});Object.defineProperties(Ia.prototype,{derivatives:{get:function(){console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");return this.extensions.derivatives},set:function(a){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");this.extensions.derivatives=a}}});Object.assign(Xd.prototype,
 {supportsFloatTextures:function(){console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).");return this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).");return this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).");
@@ -831,11 +831,11 @@ a}},minFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .minFilter
 a}},offset:{get:function(){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");return this.texture.offset},set:function(a){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");this.texture.offset=a}},repeat:{get:function(){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(a){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");
 return this.texture.format},set:function(a){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");this.texture.format=a}},type:{get:function(){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");return this.texture.type},set:function(a){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");this.texture.type=a}},generateMipmaps:{get:function(){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");return this.texture.generateMipmaps},
 set:function(a){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");this.texture.generateMipmaps=a}}});ic.prototype.load=function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new fe).load(a,function(a){b.setBuffer(a)});return this};ke.prototype.getData=function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};m.WebGLRenderTargetCube=Fb;m.WebGLRenderTarget=
-$a;m.WebGLRenderer=Xd;m.ShaderLib=Ib;m.UniformsLib=P;m.UniformsUtils=Ja;m.ShaderChunk=ba;m.FogExp2=Kb;m.Fog=Lb;m.Scene=lb;m.LensFlare=Yd;m.Sprite=Ec;m.LOD=Fc;m.SkinnedMesh=rd;m.Skeleton=pd;m.Bone=qd;m.Mesh=za;m.LineSegments=ga;m.Line=Wa;m.Points=Mb;m.Group=Gc;m.VideoTexture=sd;m.DataTexture=fb;m.CompressedTexture=Nb;m.CubeTexture=ab;m.CanvasTexture=td;m.DepthTexture=Hc;m.Texture=ca;m.CompressedTextureLoader=Oe;m.DataTextureLoader=$d;m.CubeTextureLoader=ae;m.TextureLoader=ud;m.ObjectLoader=Pe;m.MaterialLoader=
-Id;m.BufferGeometryLoader=be;m.DefaultLoadingManager=ta;m.LoadingManager=Zd;m.JSONLoader=ce;m.ImageLoader=$c;m.FontLoader=Re;m.FileLoader=Da;m.Loader=yb;m.Cache=Pd;m.AudioLoader=fe;m.SpotLightShadow=wd;m.SpotLight=xd;m.PointLight=yd;m.RectAreaLight=ge;m.HemisphereLight=vd;m.DirectionalLightShadow=zd;m.DirectionalLight=Ad;m.AmbientLight=Bd;m.LightShadow=vb;m.Light=ma;m.StereoCamera=Se;m.PerspectiveCamera=Ga;m.OrthographicCamera=Jb;m.CubeCamera=Jd;m.Camera=sa;m.AudioListener=he;m.PositionalAudio=je;
-m.AudioContext=ie;m.AudioAnalyser=ke;m.Audio=ic;m.VectorKeyframeTrack=ec;m.StringKeyframeTrack=Fd;m.QuaternionKeyframeTrack=bd;m.NumberKeyframeTrack=fc;m.ColorKeyframeTrack=Hd;m.BooleanKeyframeTrack=Gd;m.PropertyMixer=Kd;m.PropertyBinding=ka;m.KeyframeTrack=xb;m.AnimationUtils=na;m.AnimationObjectGroup=le;m.AnimationMixer=ed;m.AnimationClip=ra;m.Uniform=Ld;m.InstancedBufferGeometry=Db;m.BufferGeometry=G;m.GeometryIdCount=function(){return Ud++};m.Geometry=H;m.InterleavedBufferAttribute=ne;m.InstancedInterleavedBuffer=
-kc;m.InterleavedBuffer=jc;m.InstancedBufferAttribute=lc;m.Face3=ha;m.Object3D=A;m.Raycaster=oe;m.Layers=od;m.EventDispatcher=pa;m.Clock=qe;m.QuaternionLinearInterpolant=Ed;m.LinearInterpolant=ad;m.DiscreteInterpolant=Dd;m.CubicInterpolant=Cd;m.Interpolant=va;m.Triangle=ya;m.Math=S;m.Spherical=re;m.Cylindrical=se;m.Plane=la;m.Frustum=uc;m.Sphere=Ea;m.Ray=db;m.Matrix4=M;m.Matrix3=xa;m.Box3=Pa;m.Box2=tc;m.Line3=ib;m.Euler=eb;m.Vector4=fa;m.Vector3=q;m.Vector2=E;m.Quaternion=Z;m.Color=F;m.MorphBlendMesh=
-oa;m.ImmediateRenderObject=fd;m.VertexNormalsHelper=gd;m.SpotLightHelper=mc;m.SkeletonHelper=nc;m.PointLightHelper=oc;m.RectAreaLightHelper=pc;m.HemisphereLightHelper=qc;m.GridHelper=hd;m.PolarGridHelper=Md;m.FaceNormalsHelper=id;m.DirectionalLightHelper=rc;m.CameraHelper=jd;m.BoxHelper=sc;m.ArrowHelper=Eb;m.AxisHelper=Nd;m.CatmullRomCurve3=wa;m.CubicBezierCurve3=kd;m.QuadraticBezierCurve3=ld;m.LineCurve3=md;m.ArcCurve=Od;m.EllipseCurve=Ya;m.SplineCurve=Bb;m.CubicBezierCurve=gc;m.QuadraticBezierCurve=
+$a;m.WebGLRenderer=Xd;m.ShaderLib=Ib;m.UniformsLib=P;m.UniformsUtils=Ja;m.ShaderChunk=ba;m.FogExp2=Kb;m.Fog=Lb;m.Scene=lb;m.LensFlare=Yd;m.Sprite=Ec;m.LOD=Fc;m.SkinnedMesh=sd;m.Skeleton=qd;m.Bone=rd;m.Mesh=za;m.LineSegments=ga;m.Line=Wa;m.Points=Mb;m.Group=Gc;m.VideoTexture=td;m.DataTexture=fb;m.CompressedTexture=Nb;m.CubeTexture=ab;m.CanvasTexture=ud;m.DepthTexture=Hc;m.Texture=ca;m.CompressedTextureLoader=Oe;m.DataTextureLoader=$d;m.CubeTextureLoader=ae;m.TextureLoader=vd;m.ObjectLoader=Pe;m.MaterialLoader=
+Jd;m.BufferGeometryLoader=be;m.DefaultLoadingManager=ta;m.LoadingManager=Zd;m.JSONLoader=ce;m.ImageLoader=$c;m.FontLoader=Re;m.FileLoader=Da;m.Loader=yb;m.Cache=nd;m.AudioLoader=fe;m.SpotLightShadow=xd;m.SpotLight=yd;m.PointLight=zd;m.RectAreaLight=ge;m.HemisphereLight=wd;m.DirectionalLightShadow=Ad;m.DirectionalLight=Bd;m.AmbientLight=Cd;m.LightShadow=vb;m.Light=ma;m.StereoCamera=Se;m.PerspectiveCamera=Ga;m.OrthographicCamera=Jb;m.CubeCamera=Kd;m.Camera=sa;m.AudioListener=he;m.PositionalAudio=je;
+m.AudioContext=ie;m.AudioAnalyser=ke;m.Audio=ic;m.VectorKeyframeTrack=ec;m.StringKeyframeTrack=Gd;m.QuaternionKeyframeTrack=bd;m.NumberKeyframeTrack=fc;m.ColorKeyframeTrack=Id;m.BooleanKeyframeTrack=Hd;m.PropertyMixer=Ld;m.PropertyBinding=ka;m.KeyframeTrack=xb;m.AnimationUtils=na;m.AnimationObjectGroup=le;m.AnimationMixer=ed;m.AnimationClip=ra;m.Uniform=Md;m.InstancedBufferGeometry=Db;m.BufferGeometry=G;m.GeometryIdCount=function(){return Ud++};m.Geometry=H;m.InterleavedBufferAttribute=ne;m.InstancedInterleavedBuffer=
+kc;m.InterleavedBuffer=jc;m.InstancedBufferAttribute=lc;m.Face3=ha;m.Object3D=A;m.Raycaster=oe;m.Layers=pd;m.EventDispatcher=pa;m.Clock=qe;m.QuaternionLinearInterpolant=Fd;m.LinearInterpolant=ad;m.DiscreteInterpolant=Ed;m.CubicInterpolant=Dd;m.Interpolant=va;m.Triangle=ya;m.Math=S;m.Spherical=re;m.Cylindrical=se;m.Plane=la;m.Frustum=uc;m.Sphere=Ea;m.Ray=db;m.Matrix4=M;m.Matrix3=xa;m.Box3=Pa;m.Box2=tc;m.Line3=ib;m.Euler=eb;m.Vector4=fa;m.Vector3=q;m.Vector2=E;m.Quaternion=Z;m.Color=F;m.MorphBlendMesh=
+oa;m.ImmediateRenderObject=fd;m.VertexNormalsHelper=gd;m.SpotLightHelper=mc;m.SkeletonHelper=nc;m.PointLightHelper=oc;m.RectAreaLightHelper=pc;m.HemisphereLightHelper=qc;m.GridHelper=hd;m.PolarGridHelper=Nd;m.FaceNormalsHelper=id;m.DirectionalLightHelper=rc;m.CameraHelper=jd;m.BoxHelper=sc;m.ArrowHelper=Eb;m.AxisHelper=Od;m.CatmullRomCurve3=wa;m.CubicBezierCurve3=kd;m.QuadraticBezierCurve3=ld;m.LineCurve3=md;m.ArcCurve=Pd;m.EllipseCurve=Ya;m.SplineCurve=Bb;m.CubicBezierCurve=gc;m.QuadraticBezierCurve=
 hc;m.LineCurve=Ta;m.Shape=Cb;m.Path=dd;m.ShapePath=de;m.Font=ee;m.CurvePath=cd;m.Curve=ua;m.ShapeUtils=Oa;m.SceneUtils={createMultiMaterialObject:function(a,b){for(var c=new Gc,d=0,e=b.length;d<e;d++)c.add(new za(a,b[d]));return c},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},attach:function(a,b,c){var d=new M;d.getInverse(c.matrixWorld);a.applyMatrix(d);b.remove(a);c.add(a)}};m.WireframeGeometry=Ob;m.ParametricGeometry=Ic;m.ParametricBufferGeometry=Pb;m.TetrahedronGeometry=
 Jc;m.TetrahedronBufferGeometry=Qb;m.OctahedronGeometry=Kc;m.OctahedronBufferGeometry=nb;m.IcosahedronGeometry=Lc;m.IcosahedronBufferGeometry=Rb;m.DodecahedronGeometry=Mc;m.DodecahedronBufferGeometry=Sb;m.PolyhedronGeometry=Nc;m.PolyhedronBufferGeometry=Aa;m.TubeGeometry=Oc;m.TubeBufferGeometry=Tb;m.TorusKnotGeometry=Pc;m.TorusKnotBufferGeometry=Ub;m.TorusGeometry=Qc;m.TorusBufferGeometry=Vb;m.TextGeometry=Rc;m.SphereBufferGeometry=ob;m.SphereGeometry=Sc;m.RingGeometry=Tc;m.RingBufferGeometry=Wb;m.PlaneBufferGeometry=
 kb;m.PlaneGeometry=Uc;m.LatheGeometry=Vc;m.LatheBufferGeometry=Xb;m.ShapeGeometry=Zb;m.ShapeBufferGeometry=Yb;m.ExtrudeGeometry=La;m.EdgesGeometry=$b;m.ConeGeometry=Wc;m.ConeBufferGeometry=Xc;m.CylinderGeometry=pb;m.CylinderBufferGeometry=Xa;m.CircleBufferGeometry=ac;m.CircleGeometry=Yc;m.BoxBufferGeometry=jb;m.BoxGeometry=bc;m.ShadowMaterial=cc;m.SpriteMaterial=mb;m.RawShaderMaterial=dc;m.ShaderMaterial=Ia;m.PointsMaterial=Na;m.MultiMaterial=Zc;m.MeshPhysicalMaterial=qb;m.MeshStandardMaterial=Qa;
@@ -853,7 +853,7 @@ b)};m.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been r
 return new Va(a,b)};m.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");return new V(a,b)};m.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");return new Bc(a,b)};m.ClosedSplineCurve3=We;m.SplineCurve3=Xe;m.Spline=ue;m.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");
 return new sc(a,b)};m.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new ga(new $b(a.geometry),new ia({color:void 0!==b?b:16777215}))};m.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new ga(new Ob(a.geometry),new ia({color:void 0!==b?b:16777215}))};m.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");return new Da(a)};
 m.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new $d(a)};m.GeometryUtils={merge:function(a,b,c){console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");var d;b.isMesh&&(b.matrixAutoUpdate&&b.updateMatrix(),d=b.matrix,b=b.geometry);a.merge(b,d,c)},center:function(a){console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.");
-return a.center()}};m.ImageUtils={crossOrigin:void 0,loadTexture:function(a,b,c,d){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var e=new ud;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a},loadTextureCube:function(a,b,c,d){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var e=new ae;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=
+return a.center()}};m.ImageUtils={crossOrigin:void 0,loadTexture:function(a,b,c,d){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var e=new vd;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a},loadTextureCube:function(a,b,c,d){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var e=new ae;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=
 b);return a},loadCompressedTexture:function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},loadCompressedTextureCube:function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")}};m.Projector=function(){console.error("THREE.Projector has been moved to /examples/js/renderers/Projector.js.");this.projectVector=function(a,b){console.warn("THREE.Projector: .projectVector() is now vector.project().");
 a.project(b)};this.unprojectVector=function(a,b){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject().");a.unproject(b)};this.pickingRay=function(){console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().")}};m.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js");this.domElement=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");this.clear=function(){};this.render=function(){};
 this.setClearColor=function(){};this.setSize=function(){}};Object.defineProperty(m,"__esModule",{value:!0})});

+ 68 - 3
build/three.module.js

@@ -14619,6 +14619,23 @@ BufferGeometry.prototype = {
 
 	copy: function ( source ) {
 
+		var name, i, l;
+
+		// reset
+
+		this.index = null;
+		this.attributes = {};
+		this.morphAttributes = {};
+		this.groups = [];
+		this.boundingBox = null;
+		this.boundingSphere = null;
+
+		// name
+
+		this.name = source.name;
+
+		// index
+
 		var index = source.index;
 
 		if ( index !== null ) {
@@ -14627,24 +14644,72 @@ BufferGeometry.prototype = {
 
 		}
 
+		// attributes
+
 		var attributes = source.attributes;
 
-		for ( var name in attributes ) {
+		for ( name in attributes ) {
 
 			var attribute = attributes[ name ];
 			this.addAttribute( name, attribute.clone() );
 
 		}
 
+		// morph attributes
+
+		var morphAttributes = source.morphAttributes;
+
+		for ( name in morphAttributes ) {
+
+			var array = [];
+			var morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes
+
+			for ( i = 0, l = morphAttribute.length; i < l; i ++ ) {
+
+				array.push( morphAttribute[ i ].clone() );
+
+			}
+
+			this.morphAttributes[ name ] = array;
+
+		}
+
+		// groups
+
 		var groups = source.groups;
 
-		for ( var i = 0, l = groups.length; i < l; i ++ ) {
+		for ( i = 0, l = groups.length; i < l; i ++ ) {
 
 			var group = groups[ i ];
 			this.addGroup( group.start, group.count, group.materialIndex );
 
 		}
 
+		// bounding box
+
+		var boundingBox = source.boundingBox;
+
+		if ( boundingBox !== null ) {
+
+			this.boundingBox = boundingBox.clone();
+
+		}
+
+		// bounding sphere
+
+		var boundingSphere = source.boundingSphere;
+
+		if ( boundingSphere !== null ) {
+
+			this.boundingSphere = boundingSphere.clone();
+
+		}
+
+		// draw range
+
+		this.drawRange.start = source.drawRange.start;
+		this.drawRange.count = source.drawRange.count;
+
 		return this;
 
 	},
@@ -29390,7 +29455,7 @@ Object.assign( ImageLoader.prototype, {
 
 		image.addEventListener( 'load', function () {
 
-			THREE.Cache.add( url, this );
+			Cache.add( url, this );
 
 			if ( onLoad ) onLoad( this );