f.getUniformLocation(n,p);this.uniforms=q;d="position normal uv uv2 tangent color skinIndex skinWeight lineDistance".split("");for(k=0;k<e.maxMorphTargets;k++)d.push("morphTarget"+k);for(k=0;k<e.maxMorphNormals;k++)d.push("morphNormal"+k);for(varvinl)d.push(v);e=d;l={};v=0;for(k=e.length;v<k;v++)q=e[v],l[q]=f.getAttribLocation(n,q);this.attributes=l;this.id=a++;this.code=c;this.usedTimes=1;this.program=n;this.vertexShader=h;this.fragmentShader=f.getShaderSource(g);f.deleteShader(h);f.deleteShader(g);
0;for(b=k.length;d<b;d++)p=k[d],q[p]=f.getUniformLocation(n,p);this.uniforms=q;d="position normal uv uv2 tangent color skinIndex skinWeight lineDistance".split("");for(k=0;k<e.maxMorphTargets;k++)d.push("morphTarget"+k);for(k=0;k<e.maxMorphNormals;k++)d.push("morphNormal"+k);for(varvinl)d.push(v);e=d;l={};v=0;for(k=e.length;v<k;v++)q=e[v],l[q]=f.getAttribLocation(n,q);this.attributes=l;this.id=a++;this.code=c;this.usedTimes=1;this.program=n;this.vertexShader=h;this.fragmentShader=g;returnthis}}();THREE.WebGLShader=function(){vara=function(a){a=a.split("\n");for(varc=0;c<a.length;c++)a[c]=c+1+": "+a[c];returna.join("\n")};returnfunction(b,c,d){c=b.createShader(c);b.shaderSource(c,d);b.compileShader(c);""!==b.getShaderInfoLog(c)&&(console.error("THREE.WebGLShader:","gl.getShaderInfoLog()",b.getShaderInfoLog(c)),console.error(a(d)));returnc}}();THREE.RenderableVertex=function(){this.position=newTHREE.Vector3;this.positionWorld=newTHREE.Vector3;this.positionScreen=newTHREE.Vector4;this.visible=!0};THREE.RenderableVertex.prototype.copy=function(a){this.positionWorld.copy(a.positionWorld);this.positionScreen.copy(a.positionScreen)};THREE.RenderableFace=function(){this.id=0;this.v1=newTHREE.RenderableVertex;this.v2=newTHREE.RenderableVertex;this.v3=newTHREE.RenderableVertex;this.normalModel=newTHREE.Vector3;this.vertexNormalsModel=[newTHREE.Vector3,newTHREE.Vector3,newTHREE.Vector3];this.vertexNormalsLength=0;this.material=this.color=null;this.uvs=[[]];this.z=0};THREE.RenderableObject=function(){this.id=0;this.object=null;this.z=0};THREE.RenderableSprite=function(){this.id=0;this.object=null;this.rotation=this.z=this.y=this.x=0;this.scale=newTHREE.Vector2;this.material=null};THREE.RenderableLine=function(){this.id=0;this.v1=newTHREE.RenderableVertex;this.v2=newTHREE.RenderableVertex;this.vertexColors=[newTHREE.Color,newTHREE.Color];this.material=null;this.z=0};THREE.GeometryUtils={merge:function(a,b,c){vard,e,f=a.vertices.length,g=binstanceofTHREE.Mesh?b.geometry:b,h=a.vertices,k=g.vertices,l=a.faces,n=g.faces;a=a.faceVertexUvs[0];g=g.faceVertexUvs[0];void0===c&&(c=0);binstanceofTHREE.Mesh&&(b.matrixAutoUpdate&&b.updateMatrix(),d=b.matrix,e=(newTHREE.Matrix3).getNormalMatrix(d));b=0;for(varp=k.length;b<p;b++){varr=k[b].clone();d&&r.applyMatrix4(d);h.push(r)}b=0;for(p=n.length;b<p;b++){vark=n[b],s,u=k.vertexNormals,q=k.vertexColors,r=newTHREE.Face3(k.a+