|
@@ -451,55 +451,52 @@ i=["precision "+h.precision+" float;",g.bumpMap||g.normalMap?"#extension GL_OES_
|
|
|
g.shadowMapEnabled?"#define "+i:"",g.shadowMapDebug?"#define SHADOWMAP_DEBUG":"",g.shadowMapCascade?"#define SHADOWMAP_CASCADE":"","uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\n"].join("\n");b=h.compileShader(f+c,i+b);b.uniforms={};b.attributes={};var n,m,c="viewMatrix modelViewMatrix projectionMatrix normalMatrix modelMatrix cameraPosition morphTargetInfluences".split(" ");g.useVertexTexture?c.push("boneTexture"):c.push("boneGlobalMatrices");for(n in d)c.push(n);this.cacheUniformLocations(b,
|
|
|
c);c="position normal uv uv2 tangent color skinIndex skinWeight lineDistance".split(" ");for(d=0;d<g.maxMorphTargets;d++)c.push("morphTarget"+d);for(d=0;d<g.maxMorphNormals;d++)c.push("morphNormal"+d);for(m in e)c.push(m);this.cacheAttributeLocations(b,c);b.id=this.programs_counter++;this.programs.push({program:b,code:a,usedTimes:1});this.info.memory.programs=this.programs.length;return b};
|
|
|
THREE.WebGLRenderer.ShaderBuilder.prototype.generateDefines=function(a){var b,c=[],d;for(d in a)b=a[d],!1!==b&&(b="#define "+d+" "+b,c.push(b));return c.join("\n")};THREE.WebGLRenderer.ShaderBuilder.prototype.cacheUniformLocations=function(a,b){var c,d,e,f=this.renderer;c=0;for(d=b.length;c<d;c++)e=b[c],a.uniforms[e]=f.getUniformLocation(a,e)};
|
|
|
-THREE.WebGLRenderer.ShaderBuilder.prototype.cacheAttributeLocations=function(a,b){var c,d,e,f=this.renderer;c=0;for(d=b.length;c<d;c++)e=b[c],a.attributes[e]=f.getAttribLocation(a,e)};THREE.WebGLRenderer.ShaderBuilder.prototype.removeProgram=function(a){var b,c,d,e=!1,f=this.programs;b=0;for(c=f.length;b<c;b++)if(d=f[b],d.program===a){d.usedTimes--;0===d.usedTimes&&(e=!0);break}if(!0===e){e=[];b=0;for(c=f.length;b<c;b++)d=f[b],d.program!==a&&e.push(d);this.renderer.deleteProgram(a);this.info.memory.programs--}};THREE.WebGLRenderer.Object3DRenderer=function(a,b){this.renderer=a;this.info=b};THREE.WebGLRenderer.Object3DRenderer.prototype.getBufferMaterial=function(a,b){return a.material instanceof THREE.MeshFaceMaterial?a.material.materials[b.materialIndex]:a.material};THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessUVType=function(a){return a.map||a.lightMap||a.bumpMap||a.normalMap||a.specularMap||a instanceof THREE.ShaderMaterial?!0:!1};
|
|
|
-THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessNormalType=function(a){return a instanceof THREE.MeshBasicMaterial&&!a.envMap||a instanceof THREE.MeshDepthMaterial?!1:this.materialNeedsSmoothNormals(a)?THREE.SmoothShading:THREE.FlatShading};THREE.WebGLRenderer.Object3DRenderer.prototype.materialNeedsSmoothNormals=function(a){return a&&void 0!==a.shading&&a.shading===THREE.SmoothShading};
|
|
|
-THREE.WebGLRenderer.Object3DRenderer.prototype.bufferGuessVertexColorType=function(a){return a.vertexColors?a.vertexColors:!1};
|
|
|
-THREE.WebGLRenderer.Object3DRenderer.prototype.initCustomAttributes=function(a,b){var c=a.vertices.length,d=b.material;if(d.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var e in d.attributes){var f=d.attributes[e];if(!f.__webglInitialized||f.createUniqueBuffers){f.__webglInitialized=!0;var g=1;"v2"===f.type?g=2:"v3"===f.type?g=3:"v4"===f.type?g=4:"c"===f.type&&(g=3);f.size=g;f.array=new Float32Array(c*g);f.buffer=this.renderer.createBuffer();f.buffer.belongsToAttribute=
|
|
|
-e;f.needsUpdate=!0}a.__webglCustomAttributesList.push(f)}}};THREE.WebGLRenderer.Object3DRenderer.prototype.numericalSort=function(a,b){return b[0]-a[0]};THREE.WebGLRenderer.MeshRenderer=function(a,b){THREE.WebGLRenderer.Object3DRenderer.call(this,a,b)};THREE.WebGLRenderer.MeshRenderer.prototype=Object.create(THREE.WebGLRenderer.Object3DRenderer.prototype);
|
|
|
-THREE.WebGLRenderer.MeshRenderer.prototype.createBuffers=function(a){var b=this.renderer;a.__webglVertexBuffer=b.createBuffer();a.__webglNormalBuffer=b.createBuffer();a.__webglTangentBuffer=b.createBuffer();a.__webglColorBuffer=b.createBuffer();a.__webglUVBuffer=b.createBuffer();a.__webglUV2Buffer=b.createBuffer();a.__webglSkinIndicesBuffer=b.createBuffer();a.__webglSkinWeightsBuffer=b.createBuffer();a.__webglFaceBuffer=b.createBuffer();a.__webglLineBuffer=b.createBuffer();var c,d;if(a.numMorphTargets){a.__webglMorphTargetsBuffers=
|
|
|
-[];c=0;for(d=a.numMorphTargets;c<d;c++)a.__webglMorphTargetsBuffers.push(b.createBuffer())}if(a.numMorphNormals){a.__webglMorphNormalsBuffers=[];c=0;for(d=a.numMorphNormals;c<d;c++)a.__webglMorphNormalsBuffers.push(b.createBuffer())}this.info.memory.geometries++};
|
|
|
-THREE.WebGLRenderer.MeshRenderer.prototype.initBuffers=function(a,b){var c=b.geometry,d=a.faces3,e=a.faces4,f=3*d.length+4*e.length,g=1*d.length+2*e.length,e=3*d.length+4*e.length,d=this.getBufferMaterial(b,a),h=this.bufferGuessUVType(d),i=this.bufferGuessNormalType(d),j=this.bufferGuessVertexColorType(d);a.__vertexArray=new Float32Array(3*f);i&&(a.__normalArray=new Float32Array(3*f));c.hasTangents&&(a.__tangentArray=new Float32Array(4*f));j&&(a.__colorArray=new Float32Array(3*f));if(h){if(0<c.faceUvs.length||
|
|
|
-0<c.faceVertexUvs.length)a.__uvArray=new Float32Array(2*f);if(1<c.faceUvs.length||1<c.faceVertexUvs.length)a.__uv2Array=new Float32Array(2*f)}b.geometry.skinWeights.length&&b.geometry.skinIndices.length&&(a.__skinIndexArray=new Float32Array(4*f),a.__skinWeightArray=new Float32Array(4*f));a.__faceArray=new Uint16Array(3*g);a.__lineArray=new Uint16Array(2*e);if(a.numMorphTargets){a.__morphTargetsArrays=[];c=0;for(h=a.numMorphTargets;c<h;c++)a.__morphTargetsArrays.push(new Float32Array(3*f))}if(a.numMorphNormals){a.__morphNormalsArrays=
|
|
|
-[];c=0;for(h=a.numMorphNormals;c<h;c++)a.__morphNormalsArrays.push(new Float32Array(3*f))}a.__webglFaceCount=3*g;a.__webglLineCount=2*e;if(d.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var k in d.attributes){var g=d.attributes[k],c={},n;for(n in g)c[n]=g[n];if(!c.__webglInitialized||c.createUniqueBuffers)c.__webglInitialized=!0,e=1,"v2"===c.type?e=2:"v3"===c.type?e=3:"v4"===c.type?e=4:"c"===c.type&&(e=3),c.size=e,c.array=new Float32Array(f*e),c.buffer=
|
|
|
-this.renderer.createBuffer(),c.buffer.belongsToAttribute=k,g.needsUpdate=!0,c.__original=g;a.__webglCustomAttributesList.push(c)}}a.__inittedArrays=!0};
|
|
|
-THREE.WebGLRenderer.MeshRenderer.prototype.setBuffers=function(a,b,c,d){if(a.__inittedArrays){var e=this.renderer,f=this.bufferGuessNormalType(d),g=this.bufferGuessVertexColorType(d),h=this.bufferGuessUVType(d),i=f===THREE.SmoothShading,j,k,n,m,s,u,p,q,w,v,y,z,r,E,D,l,H,F,B,N,A,Q,C,G,t=N=A=F=0,I=0,M=n=B=0,J=s=y=0,x=0,J=a.__vertexArray,K=a.__uvArray,x=a.__uv2Array,S=a.__normalArray;m=a.__tangentArray;z=a.__colorArray;r=a.__skinIndexArray;E=a.__skinWeightArray;l=a.__morphTargetsArrays;H=a.__morphNormalsArrays;
|
|
|
-var aa=a.__webglCustomAttributesList,Y=a.__faceArray,V=a.__lineArray;p=b.geometry;var L=p.elementsNeedUpdate,ka=p.uvsNeedUpdate,qa=p.normalsNeedUpdate,ra=p.tangentsNeedUpdate;D=p.colorsNeedUpdate;Q=p.morphTargetsNeedUpdate;G=p.vertices;var X=a.faces3,U=a.faces4,T=p.faces,$=p.faceVertexUvs[0],ba=p.faceVertexUvs[1];u=p.skinIndices;var P=p.skinWeights,Z=p.morphTargets,ca=p.morphNormals;if(p.verticesNeedUpdate){b=0;for(j=X.length;b<j;b++)k=T[X[b]],q=G[k.a],w=G[k.b],v=G[k.c],J[A]=q.x,J[A+1]=q.y,J[A+2]=
|
|
|
-q.z,J[A+3]=w.x,J[A+4]=w.y,J[A+5]=w.z,J[A+6]=v.x,J[A+7]=v.y,J[A+8]=v.z,A+=9;b=0;for(j=U.length;b<j;b++)k=T[U[b]],q=G[k.a],w=G[k.b],v=G[k.c],k=G[k.d],J[A]=q.x,J[A+1]=q.y,J[A+2]=q.z,J[A+3]=w.x,J[A+4]=w.y,J[A+5]=w.z,J[A+6]=v.x,J[A+7]=v.y,J[A+8]=v.z,J[A+9]=k.x,J[A+10]=k.y,J[A+11]=k.z,A+=12;e.setDynamicArrayBuffer(a.__webglVertexBuffer,J)}if(Q){A=0;for(Q=Z.length;A<Q;A++){b=J=0;for(j=X.length;b<j;b++)G=X[b],k=T[G],q=Z[A].vertices[k.a],w=Z[A].vertices[k.b],v=Z[A].vertices[k.c],C=l[A],C[J]=q.x,C[J+1]=q.y,
|
|
|
-C[J+2]=q.z,C[J+3]=w.x,C[J+4]=w.y,C[J+5]=w.z,C[J+6]=v.x,C[J+7]=v.y,C[J+8]=v.z,d.morphNormals&&(i?(v=ca[A].vertexNormals[G],k=v.a,q=v.b,w=v.c):w=q=k=ca[A].faceNormals[G],G=H[A],G[J]=k.x,G[J+1]=k.y,G[J+2]=k.z,G[J+3]=q.x,G[J+4]=q.y,G[J+5]=q.z,G[J+6]=w.x,G[J+7]=w.y,G[J+8]=w.z),J+=9;b=0;for(j=U.length;b<j;b++)G=U[b],k=T[G],q=Z[A].vertices[k.a],w=Z[A].vertices[k.b],v=Z[A].vertices[k.c],k=Z[A].vertices[k.d],C=l[A],C[J]=q.x,C[J+1]=q.y,C[J+2]=q.z,C[J+3]=w.x,C[J+4]=w.y,C[J+5]=w.z,C[J+6]=v.x,C[J+7]=v.y,C[J+8]=
|
|
|
-v.z,C[J+9]=k.x,C[J+10]=k.y,C[J+11]=k.z,d.morphNormals&&(i?(v=ca[A].vertexNormals[G],k=v.a,q=v.b,w=v.c,v=v.d):v=w=q=k=ca[A].faceNormals[G],G=H[A],G[J]=k.x,G[J+1]=k.y,G[J+2]=k.z,G[J+3]=q.x,G[J+4]=q.y,G[J+5]=q.z,G[J+6]=w.x,G[J+7]=w.y,G[J+8]=w.z,G[J+9]=v.x,G[J+10]=v.y,G[J+11]=v.z),J+=12;this.renderer.setDynamicArrayBuffer(a.__webglMorphTargetsBuffers[A],l[A]);d.morphNormals&&this.renderer.setDynamicArrayBuffer(a.__webglMorphNormalsBuffers[A],H[A])}}if(P.length){b=0;for(j=X.length;b<j;b++)k=T[X[b]],d=
|
|
|
-P[k.a],l=P[k.b],H=P[k.c],E[s]=d.x,E[s+1]=d.y,E[s+2]=d.z,E[s+3]=d.w,E[s+4]=l.x,E[s+5]=l.y,E[s+6]=l.z,E[s+7]=l.w,E[s+8]=H.x,E[s+9]=H.y,E[s+10]=H.z,E[s+11]=H.w,d=u[k.a],l=u[k.b],H=u[k.c],r[s]=d.x,r[s+1]=d.y,r[s+2]=d.z,r[s+3]=d.w,r[s+4]=l.x,r[s+5]=l.y,r[s+6]=l.z,r[s+7]=l.w,r[s+8]=H.x,r[s+9]=H.y,r[s+10]=H.z,r[s+11]=H.w,s+=12;b=0;for(j=U.length;b<j;b++)k=T[U[b]],d=P[k.a],l=P[k.b],H=P[k.c],q=P[k.d],E[s]=d.x,E[s+1]=d.y,E[s+2]=d.z,E[s+3]=d.w,E[s+4]=l.x,E[s+5]=l.y,E[s+6]=l.z,E[s+7]=l.w,E[s+8]=H.x,E[s+9]=H.y,
|
|
|
-E[s+10]=H.z,E[s+11]=H.w,E[s+12]=q.x,E[s+13]=q.y,E[s+14]=q.z,E[s+15]=q.w,d=u[k.a],l=u[k.b],H=u[k.c],k=u[k.d],r[s]=d.x,r[s+1]=d.y,r[s+2]=d.z,r[s+3]=d.w,r[s+4]=l.x,r[s+5]=l.y,r[s+6]=l.z,r[s+7]=l.w,r[s+8]=H.x,r[s+9]=H.y,r[s+10]=H.z,r[s+11]=H.w,r[s+12]=k.x,r[s+13]=k.y,r[s+14]=k.z,r[s+15]=k.w,s+=16;0<s&&(e.setDynamicArrayBuffer(a.__webglSkinIndicesBuffer,r),e.setDynamicArrayBuffer(a.__webglSkinWeightsBuffer,E))}if(D&&g){b=0;for(j=X.length;b<j;b++)k=T[X[b]],s=k.vertexColors,u=k.color,3===s.length&&g===THREE.VertexColors?
|
|
|
-(r=s[0],E=s[1],D=s[2]):D=E=r=u,z[y]=r.r,z[y+1]=r.g,z[y+2]=r.b,z[y+3]=E.r,z[y+4]=E.g,z[y+5]=E.b,z[y+6]=D.r,z[y+7]=D.g,z[y+8]=D.b,y+=9;b=0;for(j=U.length;b<j;b++)k=T[U[b]],s=k.vertexColors,u=k.color,4===s.length&&g===THREE.VertexColors?(r=s[0],E=s[1],D=s[2],s=s[3]):s=D=E=r=u,z[y]=r.r,z[y+1]=r.g,z[y+2]=r.b,z[y+3]=E.r,z[y+4]=E.g,z[y+5]=E.b,z[y+6]=D.r,z[y+7]=D.g,z[y+8]=D.b,z[y+9]=s.r,z[y+10]=s.g,z[y+11]=s.b,y+=12;0<y&&e.setDynamicArrayBuffer(a.__webglColorBuffer,z)}if(ra&&p.hasTangents){b=0;for(j=X.length;b<
|
|
|
-j;b++)k=T[X[b]],p=k.vertexTangents,g=p[0],y=p[1],z=p[2],m[n]=g.x,m[n+1]=g.y,m[n+2]=g.z,m[n+3]=g.w,m[n+4]=y.x,m[n+5]=y.y,m[n+6]=y.z,m[n+7]=y.w,m[n+8]=z.x,m[n+9]=z.y,m[n+10]=z.z,m[n+11]=z.w,n+=12;b=0;for(j=U.length;b<j;b++)k=T[U[b]],p=k.vertexTangents,g=p[0],y=p[1],z=p[2],p=p[3],m[n]=g.x,m[n+1]=g.y,m[n+2]=g.z,m[n+3]=g.w,m[n+4]=y.x,m[n+5]=y.y,m[n+6]=y.z,m[n+7]=y.w,m[n+8]=z.x,m[n+9]=z.y,m[n+10]=z.z,m[n+11]=z.w,m[n+12]=p.x,m[n+13]=p.y,m[n+14]=p.z,m[n+15]=p.w,n+=16;e.setDynamicArrayBuffer(a.__webglTangentBuffer,
|
|
|
-m)}if(qa&&f){b=0;for(j=X.length;b<j;b++)if(k=T[X[b]],n=k.vertexNormals,m=k.normal,3===n.length&&i)for(f=0;3>f;f++)m=n[f],S[B]=m.x,S[B+1]=m.y,S[B+2]=m.z,B+=3;else for(f=0;3>f;f++)S[B]=m.x,S[B+1]=m.y,S[B+2]=m.z,B+=3;b=0;for(j=U.length;b<j;b++)if(k=T[U[b]],n=k.vertexNormals,m=k.normal,4===n.length&&i)for(f=0;4>f;f++)m=n[f],S[B]=m.x,S[B+1]=m.y,S[B+2]=m.z,B+=3;else for(f=0;4>f;f++)S[B]=m.x,S[B+1]=m.y,S[B+2]=m.z,B+=3;e.setDynamicArrayBuffer(a.__webglNormalBuffer,S)}if(ka&&$&&h){b=0;for(j=X.length;b<j;b++)if(i=
|
|
|
-X[b],i=$[i],void 0!==i)for(f=0;3>f;f++)B=i[f],K[N]=B.x,K[N+1]=B.y,N+=2;b=0;for(j=U.length;b<j;b++)if(i=U[b],i=$[i],void 0!==i)for(f=0;4>f;f++)B=i[f],K[N]=B.x,K[N+1]=B.y,N+=2;0<N&&e.setDynamicArrayBuffer(a.__webglUVBuffer,K)}if(ka&&ba&&h){b=0;for(j=X.length;b<j;b++)if(i=X[b],h=ba[i],void 0!==h)for(f=0;3>f;f++)N=h[f],x[t]=N.x,x[t+1]=N.y,t+=2;b=0;for(j=U.length;b<j;b++)if(i=U[b],h=ba[i],void 0!==h)for(f=0;4>f;f++)N=h[f],x[t]=N.x,x[t+1]=N.y,t+=2;0<t&&e.setDynamicArrayBuffer(a.__webglUV2Buffer,x)}if(L){b=
|
|
|
-0;for(j=X.length;b<j;b++)Y[I]=F,Y[I+1]=F+1,Y[I+2]=F+2,I+=3,V[M]=F,V[M+1]=F+1,V[M+2]=F,V[M+3]=F+2,V[M+4]=F+1,V[M+5]=F+2,M+=6,F+=3;b=0;for(j=U.length;b<j;b++)Y[I]=F,Y[I+1]=F+1,Y[I+2]=F+3,Y[I+3]=F+1,Y[I+4]=F+2,Y[I+5]=F+3,I+=6,V[M]=F,V[M+1]=F+1,V[M+2]=F,V[M+3]=F+3,V[M+4]=F+1,V[M+5]=F+2,V[M+6]=F+2,V[M+7]=F+3,M+=8,F+=4;e.setDynamicIndexBuffer(a.__webglFaceBuffer,Y);e.setDynamicIndexBuffer(a.__webglLineBuffer,V)}if(aa){f=0;for(F=aa.length;f<F;f++)if(t=aa[f],t.__original.needsUpdate){x=0;if(1===t.size)if(void 0===
|
|
|
-t.boundTo||"vertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)k=T[X[b]],t.array[x]=t.value[k.a],t.array[x+1]=t.value[k.b],t.array[x+2]=t.value[k.c],x+=3;b=0;for(j=U.length;b<j;b++)k=T[U[b]],t.array[x]=t.value[k.a],t.array[x+1]=t.value[k.b],t.array[x+2]=t.value[k.c],t.array[x+3]=t.value[k.d],x+=4}else{if("faces"===t.boundTo){b=0;for(j=X.length;b<j;b++)M=t.value[X[b]],t.array[x]=M,t.array[x+1]=M,t.array[x+2]=M,x+=3;b=0;for(j=U.length;b<j;b++)M=t.value[U[b]],t.array[x]=M,t.array[x+1]=M,t.array[x+2]=
|
|
|
-M,t.array[x+3]=M,x+=4}}else if(2===t.size)if(void 0===t.boundTo||"vertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)k=T[X[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=w.x,t.array[x+3]=w.y,t.array[x+4]=v.x,t.array[x+5]=v.y,x+=6;b=0;for(j=U.length;b<j;b++)k=T[U[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],k=t.value[k.d],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=w.x,t.array[x+3]=w.y,t.array[x+4]=v.x,t.array[x+5]=v.y,t.array[x+6]=k.x,t.array[x+7]=
|
|
|
-k.y,x+=8}else{if("faces"===t.boundTo){b=0;for(j=X.length;b<j;b++)v=w=q=M=t.value[X[b]],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=w.x,t.array[x+3]=w.y,t.array[x+4]=v.x,t.array[x+5]=v.y,x+=6;b=0;for(j=U.length;b<j;b++)k=v=w=q=M=t.value[U[b]],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=w.x,t.array[x+3]=w.y,t.array[x+4]=v.x,t.array[x+5]=v.y,t.array[x+6]=k.x,t.array[x+7]=k.y,x+=8}}else if(3===t.size)if(I="c"===t.type?["r","g","b"]:["x","y","z"],void 0===t.boundTo||"vertices"===t.boundTo){b=0;for(j=
|
|
|
-X.length;b<j;b++)k=T[X[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],x+=9;b=0;for(j=U.length;b<j;b++)k=T[U[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],k=t.value[k.d],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],
|
|
|
-t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],t.array[x+9]=k[I[0]],t.array[x+10]=k[I[1]],t.array[x+11]=k[I[2]],x+=12}else if("faces"===t.boundTo){b=0;for(j=X.length;b<j;b++)v=w=q=M=t.value[X[b]],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],x+=9;b=0;for(j=U.length;b<j;b++)k=v=w=q=M=t.value[U[b]],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+
|
|
|
-3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],t.array[x+9]=k[I[0]],t.array[x+10]=k[I[1]],t.array[x+11]=k[I[2]],x+=12}else{if("faceVertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)M=t.value[X[b]],q=M[0],w=M[1],v=M[2],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],x+=9;b=0;for(j=U.length;b<j;b++)M=
|
|
|
-t.value[U[b]],q=M[0],w=M[1],v=M[2],k=M[3],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],t.array[x+9]=k[I[0]],t.array[x+10]=k[I[1]],t.array[x+11]=k[I[2]],x+=12}}else if(4===t.size)if(void 0===t.boundTo||"vertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)k=T[X[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+
|
|
|
-3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,x+=12;b=0;for(j=U.length;b<j;b++)k=T[U[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],k=t.value[k.d],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,t.array[x+12]=k.x,t.array[x+13]=k.y,t.array[x+14]=
|
|
|
-k.z,t.array[x+15]=k.w,x+=16}else if("faces"===t.boundTo){b=0;for(j=X.length;b<j;b++)v=w=q=M=t.value[X[b]],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,x+=12;b=0;for(j=U.length;b<j;b++)k=v=w=q=M=t.value[U[b]],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,
|
|
|
-t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,t.array[x+12]=k.x,t.array[x+13]=k.y,t.array[x+14]=k.z,t.array[x+15]=k.w,x+=16}else if("faceVertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)M=t.value[X[b]],q=M[0],w=M[1],v=M[2],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,x+=12;b=0;for(j=U.length;b<j;b++)M=t.value[U[b]],
|
|
|
-q=M[0],w=M[1],v=M[2],k=M[3],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,t.array[x+12]=k.x,t.array[x+13]=k.y,t.array[x+14]=k.z,t.array[x+15]=k.w,x+=16}e.setDynamicArrayBuffer(t.buffer,t.array)}}c&&(delete a.__inittedArrays,delete a.__colorArray,delete a.__normalArray,delete a.__tangentArray,delete a.__uvArray,delete a.__uv2Array,delete a.__faceArray,
|
|
|
-delete a.__vertexArray,delete a.__lineArray,delete a.__skinIndexArray,delete a.__skinWeightArray)}};THREE.WebGLRenderer.ParticleRenderer=function(a,b){THREE.WebGLRenderer.Object3DRenderer.call(this,a,b)};THREE.WebGLRenderer.ParticleRenderer.prototype=Object.create(THREE.WebGLRenderer.Object3DRenderer.prototype);THREE.WebGLRenderer.ParticleRenderer.prototype.createBuffers=function(a){var b=this.renderer;a.__webglVertexBuffer=b.createBuffer();a.__webglColorBuffer=b.createBuffer();this.info.memory.geometries++};
|
|
|
-THREE.WebGLRenderer.ParticleRenderer.prototype.initBuffers=function(a,b){var c=a.vertices.length;a.__vertexArray=new Float32Array(3*c);a.__colorArray=new Float32Array(3*c);a.__sortArray=[];a.__webglParticleCount=c;this.initCustomAttributes(a,b)};
|
|
|
-THREE.WebGLRenderer.ParticleRenderer.prototype.setBuffers=function(a,b,c){var d=this.renderer,e,f,g,h;e=a.vertices;h=e.length;var i=a.colors,j=i.length,k=a.__vertexArray,n=a.__colorArray,m=a.__sortArray,s=a.verticesNeedUpdate,u=a.colorsNeedUpdate,p=a.__webglCustomAttributesList;g=THREE.WebGLRenderer.ParticleRenderer._m1;var q=THREE.WebGLRenderer.ParticleRenderer._v1;if(b.sortParticles){g.multiplyMatrices(c,b.matrixWorld);for(c=0;c<h;c++)f=e[c],q.copy(f),q.applyProjection(g),m[c]=[q.z,c];m.sort(this.numericalSort);
|
|
|
-for(c=0;c<h;c++)f=e[m[c][1]],g=3*c,k[g]=f.x,k[g+1]=f.y,k[g+2]=f.z;for(e=0;e<j;e++)g=3*e,h=i[m[e][1]],n[g]=h.r,n[g+1]=h.g,n[g+2]=h.b;if(p){i=0;for(j=p.length;i<j;i++)if(c=p[i],void 0===c.boundTo||"vertices"===c.boundTo)if(g=0,h=c.value.length,1===c.size)for(e=0;e<h;e++)f=m[e][1],c.array[e]=c.value[f];else if(2===c.size)for(e=0;e<h;e++)f=m[e][1],f=c.value[f],c.array[g]=f.x,c.array[g+1]=f.y,g+=2;else if(3===c.size)if("c"===c.type)for(e=0;e<h;e++)f=m[e][1],f=c.value[f],c.array[g]=f.r,c.array[g+1]=f.g,
|
|
|
-c.array[g+2]=f.b,g+=3;else for(e=0;e<h;e++)f=m[e][1],f=c.value[f],c.array[g]=f.x,c.array[g+1]=f.y,c.array[g+2]=f.z,g+=3;else if(4===c.size)for(e=0;e<h;e++)f=m[e][1],f=c.value[f],c.array[g]=f.x,c.array[g+1]=f.y,c.array[g+2]=f.z,c.array[g+3]=f.w,g+=4}}else{if(s)for(c=0;c<h;c++)f=e[c],g=3*c,k[g]=f.x,k[g+1]=f.y,k[g+2]=f.z;if(u)for(e=0;e<j;e++)h=i[e],g=3*e,n[g]=h.r,n[g+1]=h.g,n[g+2]=h.b;if(p){i=0;for(j=p.length;i<j;i++)if(c=p[i],c.needsUpdate&&(void 0===c.boundTo||"vertices"===c.boundTo))if(h=c.value.length,
|
|
|
-g=0,1===c.size)for(e=0;e<h;e++)c.array[e]=c.value[e];else if(2===c.size)for(e=0;e<h;e++)f=c.value[e],c.array[g]=f.x,c.array[g+1]=f.y,g+=2;else if(3===c.size)if("c"===c.type)for(e=0;e<h;e++)f=c.value[e],c.array[g]=f.r,c.array[g+1]=f.g,c.array[g+2]=f.b,g+=3;else for(e=0;e<h;e++)f=c.value[e],c.array[g]=f.x,c.array[g+1]=f.y,c.array[g+2]=f.z,g+=3;else if(4===c.size)for(e=0;e<h;e++)f=c.value[e],c.array[g]=f.x,c.array[g+1]=f.y,c.array[g+2]=f.z,c.array[g+3]=f.w,g+=4}}(s||b.sortParticles)&&d.setDynamicArrayBuffer(a.__webglVertexBuffer,
|
|
|
-k);(u||b.sortParticles)&&d.setDynamicArrayBuffer(a.__webglColorBuffer,n);if(p){i=0;for(j=p.length;i<j;i++)c=p[i],(c.needsUpdate||b.sortParticles)&&d.setDynamicArrayBuffer(c.buffer,c.array)}};THREE.WebGLRenderer.ParticleRenderer._m1=new THREE.Matrix4;THREE.WebGLRenderer.ParticleRenderer._v1=new THREE.Vector3;THREE.WebGLRenderer.LineRenderer=function(a,b){THREE.WebGLRenderer.Object3DRenderer.call(this,a,b)};THREE.WebGLRenderer.LineRenderer.prototype=Object.create(THREE.WebGLRenderer.Object3DRenderer.prototype);THREE.WebGLRenderer.LineRenderer.prototype.createBuffers=function(a){var b=this.renderer;a.__webglVertexBuffer=b.createBuffer();a.__webglColorBuffer=b.createBuffer();a.__webglLineDistanceBuffer=b.createBuffer();this.info.memory.geometries++};
|
|
|
-THREE.WebGLRenderer.LineRenderer.prototype.initBuffers=function(a,b){var c=a.vertices.length;a.__vertexArray=new Float32Array(3*c);a.__colorArray=new Float32Array(3*c);a.__lineDistanceArray=new Float32Array(1*c);a.__webglLineCount=c;this.initCustomAttributes(a,b)};
|
|
|
-THREE.WebGLRenderer.LineRenderer.prototype.setBuffers=function(a){var b=this.renderer,c,d,e,f=a.vertices,g=a.colors,h=a.lineDistances,i=f.length,j=g.length,k=h.length,n=a.__vertexArray,m=a.__colorArray,s=a.__lineDistanceArray,u=a.colorsNeedUpdate,p=a.lineDistancesNeedUpdate,q=a.__webglCustomAttributesList;if(a.verticesNeedUpdate){for(c=0;c<i;c++)e=f[c],d=3*c,n[d]=e.x,n[d+1]=e.y,n[d+2]=e.z;b.setDynamicArrayBuffer(a.__webglVertexBuffer,n)}if(u){for(c=0;c<j;c++)e=g[c],d=3*c,m[d]=e.r,m[d+1]=e.g,m[d+2]=
|
|
|
-e.b;b.setDynamicArrayBuffer(a.__webglColorBuffer,m)}if(p){for(d=0;d<k;d++)s[d]=h[d];b.setDynamicArrayBuffer(a.__webglLineDistanceBuffer,s)}if(q){a=0;for(h=q.length;a<h;a++)if(j=q[a],j.needsUpdate&&(void 0===j.boundTo||"vertices"===j.boundTo)){d=0;s=j.value.length;if(1===j.size)for(k=0;k<s;k++)j.array[k]=j.value[k];else if(2===j.size)for(k=0;k<s;k++)g=j.value[k],j.array[d]=g.x,j.array[d+1]=g.y,d+=2;else if(3===j.size)if("c"===j.type)for(k=0;k<s;k++)g=j.value[k],j.array[d]=g.r,j.array[d+1]=g.g,j.array[d+
|
|
|
-2]=g.b,d+=3;else for(k=0;k<s;k++)g=j.value[k],j.array[d]=g.x,j.array[d+1]=g.y,j.array[d+2]=g.z,d+=3;else if(4===j.size)for(k=0;k<s;k++)g=j.value[k],j.array[d]=g.x,j.array[d+1]=g.y,j.array[d+2]=g.z,j.array[d+3]=g.w,d+=4;b.setDynamicArrayBuffer(j.buffer,j.array)}}};THREE.WebGLRenderer.RibbonRenderer=function(a,b){THREE.WebGLRenderer.Object3DRenderer.call(this,a,b)};THREE.WebGLRenderer.RibbonRenderer.prototype=Object.create(THREE.WebGLRenderer.Object3DRenderer.prototype);THREE.WebGLRenderer.RibbonRenderer.prototype.createBuffers=function(a){var b=this.renderer;a.__webglVertexBuffer=b.createBuffer();a.__webglColorBuffer=b.createBuffer();a.__webglNormalBuffer=b.createBuffer();this.info.memory.geometries++};
|
|
|
-THREE.WebGLRenderer.RibbonRenderer.prototype.initBuffers=function(a,b){var c=a.vertices.length;a.__vertexArray=new Float32Array(3*c);a.__colorArray=new Float32Array(3*c);a.__normalArray=new Float32Array(3*c);a.__webglVertexCount=c;this.initCustomAttributes(a,b)};
|
|
|
-THREE.WebGLRenderer.RibbonRenderer.prototype.setBuffers=function(a){var b=this.renderer,c,d,e,f,g,h,i,j,k=a.vertices;d=a.colors;h=a.normals;var n=k.length;g=d.length;i=h.length;var m=a.__vertexArray,s=a.__colorArray;j=a.__normalArray;var u=a.colorsNeedUpdate,p=a.normalsNeedUpdate,q=a.__webglCustomAttributesList;if(a.verticesNeedUpdate){for(c=0;c<n;c++)e=k[c],f=3*c,m[f]=e.x,m[f+1]=e.y,m[f+2]=e.z;b.setDynamicArrayBuffer(a.__webglVertexBuffer,m)}if(u){for(c=0;c<g;c++)e=d[c],f=3*c,s[f]=e.r,s[f+1]=e.g,
|
|
|
-s[f+2]=e.b;b.setDynamicArrayBuffer(a.__webglColorBuffer,s)}if(p){for(d=0;d<i;d++)g=h[d],f=3*d,j[f]=g.x,j[f+1]=g.y,j[f+2]=g.z;b.setDynamicArrayBuffer(a.__webglNormalBuffer,j)}if(q){a=0;for(h=q.length;a<h;a++)if(d=q[a],d.needsUpdate&&(void 0===d.boundTo||"vertices"===d.boundTo)){f=0;j=d.value.length;if(1===d.size)for(i=0;i<j;i++)d.array[i]=d.value[i];else if(2===d.size)for(i=0;i<j;i++)g=d.value[i],d.array[f]=g.x,d.array[f+1]=g.y,f+=2;else if(3===d.size)if("c"===d.type)for(i=0;i<j;i++)g=d.value[i],d.array[f]=
|
|
|
-g.r,d.array[f+1]=g.g,d.array[f+2]=g.b,f+=3;else for(i=0;i<j;i++)g=d.value[i],d.array[f]=g.x,d.array[f+1]=g.y,d.array[f+2]=g.z,f+=3;else if(4===d.size)for(i=0;i<j;i++)g=d.value[i],d.array[f]=g.x,d.array[f+1]=g.y,d.array[f+2]=g.z,d.array[f+3]=g.w,f+=4;b.setDynamicArrayBuffer(d.buffer,d.array)}}};THREE.WebGLRenderTarget=function(a,b,c){THREE.EventDispatcher.call(this);this.width=a;this.height=b;c=c||{};this.wrapS=void 0!==c.wrapS?c.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==c.wrapT?c.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==c.magFilter?c.magFilter:THREE.LinearFilter;this.minFilter=void 0!==c.minFilter?c.minFilter:THREE.LinearMipMapLinearFilter;this.anisotropy=void 0!==c.anisotropy?c.anisotropy:1;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);
|
|
|
+THREE.WebGLRenderer.ShaderBuilder.prototype.cacheAttributeLocations=function(a,b){var c,d,e,f=this.renderer;c=0;for(d=b.length;c<d;c++)e=b[c],a.attributes[e]=f.getAttribLocation(a,e)};THREE.WebGLRenderer.ShaderBuilder.prototype.removeProgram=function(a){var b,c,d,e=!1,f=this.programs;b=0;for(c=f.length;b<c;b++)if(d=f[b],d.program===a){d.usedTimes--;0===d.usedTimes&&(e=!0);break}if(!0===e){e=[];b=0;for(c=f.length;b<c;b++)d=f[b],d.program!==a&&e.push(d);this.renderer.deleteProgram(a);this.info.memory.programs--}};THREE.WebGLRenderer.Object3DRenderer=function(a,b){this.renderer=a;this.info=b};
|
|
|
+THREE.extend(THREE.WebGLRenderer.Object3DRenderer.prototype,{getBufferMaterial:function(a,b){return a.material instanceof THREE.MeshFaceMaterial?a.material.materials[b.materialIndex]:a.material},bufferGuessUVType:function(a){return a.map||a.lightMap||a.bumpMap||a.normalMap||a.specularMap||a instanceof THREE.ShaderMaterial?!0:!1},bufferGuessNormalType:function(a){return a instanceof THREE.MeshBasicMaterial&&!a.envMap||a instanceof THREE.MeshDepthMaterial?!1:this.materialNeedsSmoothNormals(a)?THREE.SmoothShading:
|
|
|
+THREE.FlatShading},materialNeedsSmoothNormals:function(a){return a&&void 0!==a.shading&&a.shading===THREE.SmoothShading},bufferGuessVertexColorType:function(a){return a.vertexColors?a.vertexColors:!1},initCustomAttributes:function(a,b){var c=a.vertices.length,d=b.material;if(d.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var e in d.attributes){var f=d.attributes[e];if(!f.__webglInitialized||f.createUniqueBuffers){f.__webglInitialized=!0;var g=1;"v2"===
|
|
|
+f.type?g=2:"v3"===f.type?g=3:"v4"===f.type?g=4:"c"===f.type&&(g=3);f.size=g;f.array=new Float32Array(c*g);f.buffer=this.renderer.createBuffer();f.buffer.belongsToAttribute=e;f.needsUpdate=!0}a.__webglCustomAttributesList.push(f)}}},numericalSort:function(a,b){return b[0]-a[0]}});THREE.WebGLRenderer.MeshRenderer=function(a,b){THREE.WebGLRenderer.Object3DRenderer.call(this,a,b)};THREE.WebGLRenderer.MeshRenderer.prototype=Object.create(THREE.WebGLRenderer.Object3DRenderer.prototype);
|
|
|
+THREE.extend(THREE.WebGLRenderer.MeshRenderer.prototype,{createBuffers:function(a){var b=this.renderer;a.__webglVertexBuffer=b.createBuffer();a.__webglNormalBuffer=b.createBuffer();a.__webglTangentBuffer=b.createBuffer();a.__webglColorBuffer=b.createBuffer();a.__webglUVBuffer=b.createBuffer();a.__webglUV2Buffer=b.createBuffer();a.__webglSkinIndicesBuffer=b.createBuffer();a.__webglSkinWeightsBuffer=b.createBuffer();a.__webglFaceBuffer=b.createBuffer();a.__webglLineBuffer=b.createBuffer();var c,d;if(a.numMorphTargets){a.__webglMorphTargetsBuffers=
|
|
|
+[];c=0;for(d=a.numMorphTargets;c<d;c++)a.__webglMorphTargetsBuffers.push(b.createBuffer())}if(a.numMorphNormals){a.__webglMorphNormalsBuffers=[];c=0;for(d=a.numMorphNormals;c<d;c++)a.__webglMorphNormalsBuffers.push(b.createBuffer())}this.info.memory.geometries++},initBuffers:function(a,b){var c=b.geometry,d=a.faces3,e=a.faces4,f=3*d.length+4*e.length,g=1*d.length+2*e.length,e=3*d.length+4*e.length,d=this.getBufferMaterial(b,a),h=this.bufferGuessUVType(d),i=this.bufferGuessNormalType(d),j=this.bufferGuessVertexColorType(d);
|
|
|
+a.__vertexArray=new Float32Array(3*f);i&&(a.__normalArray=new Float32Array(3*f));c.hasTangents&&(a.__tangentArray=new Float32Array(4*f));j&&(a.__colorArray=new Float32Array(3*f));if(h){if(0<c.faceUvs.length||0<c.faceVertexUvs.length)a.__uvArray=new Float32Array(2*f);if(1<c.faceUvs.length||1<c.faceVertexUvs.length)a.__uv2Array=new Float32Array(2*f)}b.geometry.skinWeights.length&&b.geometry.skinIndices.length&&(a.__skinIndexArray=new Float32Array(4*f),a.__skinWeightArray=new Float32Array(4*f));a.__faceArray=
|
|
|
+new Uint16Array(3*g);a.__lineArray=new Uint16Array(2*e);if(a.numMorphTargets){a.__morphTargetsArrays=[];c=0;for(h=a.numMorphTargets;c<h;c++)a.__morphTargetsArrays.push(new Float32Array(3*f))}if(a.numMorphNormals){a.__morphNormalsArrays=[];c=0;for(h=a.numMorphNormals;c<h;c++)a.__morphNormalsArrays.push(new Float32Array(3*f))}a.__webglFaceCount=3*g;a.__webglLineCount=2*e;if(d.attributes){void 0===a.__webglCustomAttributesList&&(a.__webglCustomAttributesList=[]);for(var k in d.attributes){var g=d.attributes[k],
|
|
|
+c={},n;for(n in g)c[n]=g[n];if(!c.__webglInitialized||c.createUniqueBuffers)c.__webglInitialized=!0,e=1,"v2"===c.type?e=2:"v3"===c.type?e=3:"v4"===c.type?e=4:"c"===c.type&&(e=3),c.size=e,c.array=new Float32Array(f*e),c.buffer=this.renderer.createBuffer(),c.buffer.belongsToAttribute=k,g.needsUpdate=!0,c.__original=g;a.__webglCustomAttributesList.push(c)}}a.__inittedArrays=!0},setBuffers:function(a,b,c,d){if(a.__inittedArrays){var e=this.renderer,f=this.bufferGuessNormalType(d),g=this.bufferGuessVertexColorType(d),
|
|
|
+h=this.bufferGuessUVType(d),i=f===THREE.SmoothShading,j,k,n,m,s,u,p,q,w,v,y,z,r,E,D,l,H,F,B,N,A,Q,C,G,t=N=A=F=0,I=0,M=n=B=0,J=s=y=0,x=0,J=a.__vertexArray,K=a.__uvArray,x=a.__uv2Array,S=a.__normalArray;m=a.__tangentArray;z=a.__colorArray;r=a.__skinIndexArray;E=a.__skinWeightArray;l=a.__morphTargetsArrays;H=a.__morphNormalsArrays;var aa=a.__webglCustomAttributesList,Y=a.__faceArray,V=a.__lineArray;p=b.geometry;var L=p.elementsNeedUpdate,ka=p.uvsNeedUpdate,qa=p.normalsNeedUpdate,ra=p.tangentsNeedUpdate;
|
|
|
+D=p.colorsNeedUpdate;Q=p.morphTargetsNeedUpdate;G=p.vertices;var X=a.faces3,U=a.faces4,T=p.faces,$=p.faceVertexUvs[0],ba=p.faceVertexUvs[1];u=p.skinIndices;var P=p.skinWeights,Z=p.morphTargets,ca=p.morphNormals;if(p.verticesNeedUpdate){b=0;for(j=X.length;b<j;b++)k=T[X[b]],q=G[k.a],w=G[k.b],v=G[k.c],J[A]=q.x,J[A+1]=q.y,J[A+2]=q.z,J[A+3]=w.x,J[A+4]=w.y,J[A+5]=w.z,J[A+6]=v.x,J[A+7]=v.y,J[A+8]=v.z,A+=9;b=0;for(j=U.length;b<j;b++)k=T[U[b]],q=G[k.a],w=G[k.b],v=G[k.c],k=G[k.d],J[A]=q.x,J[A+1]=q.y,J[A+2]=
|
|
|
+q.z,J[A+3]=w.x,J[A+4]=w.y,J[A+5]=w.z,J[A+6]=v.x,J[A+7]=v.y,J[A+8]=v.z,J[A+9]=k.x,J[A+10]=k.y,J[A+11]=k.z,A+=12;e.setDynamicArrayBuffer(a.__webglVertexBuffer,J)}if(Q){A=0;for(Q=Z.length;A<Q;A++){b=J=0;for(j=X.length;b<j;b++)G=X[b],k=T[G],q=Z[A].vertices[k.a],w=Z[A].vertices[k.b],v=Z[A].vertices[k.c],C=l[A],C[J]=q.x,C[J+1]=q.y,C[J+2]=q.z,C[J+3]=w.x,C[J+4]=w.y,C[J+5]=w.z,C[J+6]=v.x,C[J+7]=v.y,C[J+8]=v.z,d.morphNormals&&(i?(v=ca[A].vertexNormals[G],k=v.a,q=v.b,w=v.c):w=q=k=ca[A].faceNormals[G],G=H[A],
|
|
|
+G[J]=k.x,G[J+1]=k.y,G[J+2]=k.z,G[J+3]=q.x,G[J+4]=q.y,G[J+5]=q.z,G[J+6]=w.x,G[J+7]=w.y,G[J+8]=w.z),J+=9;b=0;for(j=U.length;b<j;b++)G=U[b],k=T[G],q=Z[A].vertices[k.a],w=Z[A].vertices[k.b],v=Z[A].vertices[k.c],k=Z[A].vertices[k.d],C=l[A],C[J]=q.x,C[J+1]=q.y,C[J+2]=q.z,C[J+3]=w.x,C[J+4]=w.y,C[J+5]=w.z,C[J+6]=v.x,C[J+7]=v.y,C[J+8]=v.z,C[J+9]=k.x,C[J+10]=k.y,C[J+11]=k.z,d.morphNormals&&(i?(v=ca[A].vertexNormals[G],k=v.a,q=v.b,w=v.c,v=v.d):v=w=q=k=ca[A].faceNormals[G],G=H[A],G[J]=k.x,G[J+1]=k.y,G[J+2]=k.z,
|
|
|
+G[J+3]=q.x,G[J+4]=q.y,G[J+5]=q.z,G[J+6]=w.x,G[J+7]=w.y,G[J+8]=w.z,G[J+9]=v.x,G[J+10]=v.y,G[J+11]=v.z),J+=12;this.renderer.setDynamicArrayBuffer(a.__webglMorphTargetsBuffers[A],l[A]);d.morphNormals&&this.renderer.setDynamicArrayBuffer(a.__webglMorphNormalsBuffers[A],H[A])}}if(P.length){b=0;for(j=X.length;b<j;b++)k=T[X[b]],d=P[k.a],l=P[k.b],H=P[k.c],E[s]=d.x,E[s+1]=d.y,E[s+2]=d.z,E[s+3]=d.w,E[s+4]=l.x,E[s+5]=l.y,E[s+6]=l.z,E[s+7]=l.w,E[s+8]=H.x,E[s+9]=H.y,E[s+10]=H.z,E[s+11]=H.w,d=u[k.a],l=u[k.b],H=
|
|
|
+u[k.c],r[s]=d.x,r[s+1]=d.y,r[s+2]=d.z,r[s+3]=d.w,r[s+4]=l.x,r[s+5]=l.y,r[s+6]=l.z,r[s+7]=l.w,r[s+8]=H.x,r[s+9]=H.y,r[s+10]=H.z,r[s+11]=H.w,s+=12;b=0;for(j=U.length;b<j;b++)k=T[U[b]],d=P[k.a],l=P[k.b],H=P[k.c],q=P[k.d],E[s]=d.x,E[s+1]=d.y,E[s+2]=d.z,E[s+3]=d.w,E[s+4]=l.x,E[s+5]=l.y,E[s+6]=l.z,E[s+7]=l.w,E[s+8]=H.x,E[s+9]=H.y,E[s+10]=H.z,E[s+11]=H.w,E[s+12]=q.x,E[s+13]=q.y,E[s+14]=q.z,E[s+15]=q.w,d=u[k.a],l=u[k.b],H=u[k.c],k=u[k.d],r[s]=d.x,r[s+1]=d.y,r[s+2]=d.z,r[s+3]=d.w,r[s+4]=l.x,r[s+5]=l.y,r[s+
|
|
|
+6]=l.z,r[s+7]=l.w,r[s+8]=H.x,r[s+9]=H.y,r[s+10]=H.z,r[s+11]=H.w,r[s+12]=k.x,r[s+13]=k.y,r[s+14]=k.z,r[s+15]=k.w,s+=16;0<s&&(e.setDynamicArrayBuffer(a.__webglSkinIndicesBuffer,r),e.setDynamicArrayBuffer(a.__webglSkinWeightsBuffer,E))}if(D&&g){b=0;for(j=X.length;b<j;b++)k=T[X[b]],s=k.vertexColors,u=k.color,3===s.length&&g===THREE.VertexColors?(r=s[0],E=s[1],D=s[2]):D=E=r=u,z[y]=r.r,z[y+1]=r.g,z[y+2]=r.b,z[y+3]=E.r,z[y+4]=E.g,z[y+5]=E.b,z[y+6]=D.r,z[y+7]=D.g,z[y+8]=D.b,y+=9;b=0;for(j=U.length;b<j;b++)k=
|
|
|
+T[U[b]],s=k.vertexColors,u=k.color,4===s.length&&g===THREE.VertexColors?(r=s[0],E=s[1],D=s[2],s=s[3]):s=D=E=r=u,z[y]=r.r,z[y+1]=r.g,z[y+2]=r.b,z[y+3]=E.r,z[y+4]=E.g,z[y+5]=E.b,z[y+6]=D.r,z[y+7]=D.g,z[y+8]=D.b,z[y+9]=s.r,z[y+10]=s.g,z[y+11]=s.b,y+=12;0<y&&e.setDynamicArrayBuffer(a.__webglColorBuffer,z)}if(ra&&p.hasTangents){b=0;for(j=X.length;b<j;b++)k=T[X[b]],p=k.vertexTangents,g=p[0],y=p[1],z=p[2],m[n]=g.x,m[n+1]=g.y,m[n+2]=g.z,m[n+3]=g.w,m[n+4]=y.x,m[n+5]=y.y,m[n+6]=y.z,m[n+7]=y.w,m[n+8]=z.x,m[n+
|
|
|
+9]=z.y,m[n+10]=z.z,m[n+11]=z.w,n+=12;b=0;for(j=U.length;b<j;b++)k=T[U[b]],p=k.vertexTangents,g=p[0],y=p[1],z=p[2],p=p[3],m[n]=g.x,m[n+1]=g.y,m[n+2]=g.z,m[n+3]=g.w,m[n+4]=y.x,m[n+5]=y.y,m[n+6]=y.z,m[n+7]=y.w,m[n+8]=z.x,m[n+9]=z.y,m[n+10]=z.z,m[n+11]=z.w,m[n+12]=p.x,m[n+13]=p.y,m[n+14]=p.z,m[n+15]=p.w,n+=16;e.setDynamicArrayBuffer(a.__webglTangentBuffer,m)}if(qa&&f){b=0;for(j=X.length;b<j;b++)if(k=T[X[b]],n=k.vertexNormals,m=k.normal,3===n.length&&i)for(f=0;3>f;f++)m=n[f],S[B]=m.x,S[B+1]=m.y,S[B+2]=
|
|
|
+m.z,B+=3;else for(f=0;3>f;f++)S[B]=m.x,S[B+1]=m.y,S[B+2]=m.z,B+=3;b=0;for(j=U.length;b<j;b++)if(k=T[U[b]],n=k.vertexNormals,m=k.normal,4===n.length&&i)for(f=0;4>f;f++)m=n[f],S[B]=m.x,S[B+1]=m.y,S[B+2]=m.z,B+=3;else for(f=0;4>f;f++)S[B]=m.x,S[B+1]=m.y,S[B+2]=m.z,B+=3;e.setDynamicArrayBuffer(a.__webglNormalBuffer,S)}if(ka&&$&&h){b=0;for(j=X.length;b<j;b++)if(i=X[b],i=$[i],void 0!==i)for(f=0;3>f;f++)B=i[f],K[N]=B.x,K[N+1]=B.y,N+=2;b=0;for(j=U.length;b<j;b++)if(i=U[b],i=$[i],void 0!==i)for(f=0;4>f;f++)B=
|
|
|
+i[f],K[N]=B.x,K[N+1]=B.y,N+=2;0<N&&e.setDynamicArrayBuffer(a.__webglUVBuffer,K)}if(ka&&ba&&h){b=0;for(j=X.length;b<j;b++)if(i=X[b],h=ba[i],void 0!==h)for(f=0;3>f;f++)N=h[f],x[t]=N.x,x[t+1]=N.y,t+=2;b=0;for(j=U.length;b<j;b++)if(i=U[b],h=ba[i],void 0!==h)for(f=0;4>f;f++)N=h[f],x[t]=N.x,x[t+1]=N.y,t+=2;0<t&&e.setDynamicArrayBuffer(a.__webglUV2Buffer,x)}if(L){b=0;for(j=X.length;b<j;b++)Y[I]=F,Y[I+1]=F+1,Y[I+2]=F+2,I+=3,V[M]=F,V[M+1]=F+1,V[M+2]=F,V[M+3]=F+2,V[M+4]=F+1,V[M+5]=F+2,M+=6,F+=3;b=0;for(j=U.length;b<
|
|
|
+j;b++)Y[I]=F,Y[I+1]=F+1,Y[I+2]=F+3,Y[I+3]=F+1,Y[I+4]=F+2,Y[I+5]=F+3,I+=6,V[M]=F,V[M+1]=F+1,V[M+2]=F,V[M+3]=F+3,V[M+4]=F+1,V[M+5]=F+2,V[M+6]=F+2,V[M+7]=F+3,M+=8,F+=4;e.setDynamicIndexBuffer(a.__webglFaceBuffer,Y);e.setDynamicIndexBuffer(a.__webglLineBuffer,V)}if(aa){f=0;for(F=aa.length;f<F;f++)if(t=aa[f],t.__original.needsUpdate){x=0;if(1===t.size)if(void 0===t.boundTo||"vertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)k=T[X[b]],t.array[x]=t.value[k.a],t.array[x+1]=t.value[k.b],t.array[x+2]=t.value[k.c],
|
|
|
+x+=3;b=0;for(j=U.length;b<j;b++)k=T[U[b]],t.array[x]=t.value[k.a],t.array[x+1]=t.value[k.b],t.array[x+2]=t.value[k.c],t.array[x+3]=t.value[k.d],x+=4}else{if("faces"===t.boundTo){b=0;for(j=X.length;b<j;b++)M=t.value[X[b]],t.array[x]=M,t.array[x+1]=M,t.array[x+2]=M,x+=3;b=0;for(j=U.length;b<j;b++)M=t.value[U[b]],t.array[x]=M,t.array[x+1]=M,t.array[x+2]=M,t.array[x+3]=M,x+=4}}else if(2===t.size)if(void 0===t.boundTo||"vertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)k=T[X[b]],q=t.value[k.a],w=t.value[k.b],
|
|
|
+v=t.value[k.c],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=w.x,t.array[x+3]=w.y,t.array[x+4]=v.x,t.array[x+5]=v.y,x+=6;b=0;for(j=U.length;b<j;b++)k=T[U[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],k=t.value[k.d],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=w.x,t.array[x+3]=w.y,t.array[x+4]=v.x,t.array[x+5]=v.y,t.array[x+6]=k.x,t.array[x+7]=k.y,x+=8}else{if("faces"===t.boundTo){b=0;for(j=X.length;b<j;b++)v=w=q=M=t.value[X[b]],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=w.x,t.array[x+3]=w.y,t.array[x+
|
|
|
+4]=v.x,t.array[x+5]=v.y,x+=6;b=0;for(j=U.length;b<j;b++)k=v=w=q=M=t.value[U[b]],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=w.x,t.array[x+3]=w.y,t.array[x+4]=v.x,t.array[x+5]=v.y,t.array[x+6]=k.x,t.array[x+7]=k.y,x+=8}}else if(3===t.size)if(I="c"===t.type?["r","g","b"]:["x","y","z"],void 0===t.boundTo||"vertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)k=T[X[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+
|
|
|
+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],x+=9;b=0;for(j=U.length;b<j;b++)k=T[U[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],k=t.value[k.d],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],t.array[x+9]=k[I[0]],t.array[x+10]=k[I[1]],t.array[x+11]=k[I[2]],x+=12}else if("faces"===t.boundTo){b=0;for(j=X.length;b<
|
|
|
+j;b++)v=w=q=M=t.value[X[b]],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],x+=9;b=0;for(j=U.length;b<j;b++)k=v=w=q=M=t.value[U[b]],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],t.array[x+9]=k[I[0]],t.array[x+10]=k[I[1]],
|
|
|
+t.array[x+11]=k[I[2]],x+=12}else{if("faceVertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)M=t.value[X[b]],q=M[0],w=M[1],v=M[2],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],x+=9;b=0;for(j=U.length;b<j;b++)M=t.value[U[b]],q=M[0],w=M[1],v=M[2],k=M[3],t.array[x]=q[I[0]],t.array[x+1]=q[I[1]],t.array[x+2]=q[I[2]],t.array[x+3]=w[I[0]],t.array[x+4]=w[I[1]],t.array[x+
|
|
|
+5]=w[I[2]],t.array[x+6]=v[I[0]],t.array[x+7]=v[I[1]],t.array[x+8]=v[I[2]],t.array[x+9]=k[I[0]],t.array[x+10]=k[I[1]],t.array[x+11]=k[I[2]],x+=12}}else if(4===t.size)if(void 0===t.boundTo||"vertices"===t.boundTo){b=0;for(j=X.length;b<j;b++)k=T[X[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,x+=
|
|
|
+12;b=0;for(j=U.length;b<j;b++)k=T[U[b]],q=t.value[k.a],w=t.value[k.b],v=t.value[k.c],k=t.value[k.d],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,t.array[x+12]=k.x,t.array[x+13]=k.y,t.array[x+14]=k.z,t.array[x+15]=k.w,x+=16}else if("faces"===t.boundTo){b=0;for(j=X.length;b<j;b++)v=w=q=M=t.value[X[b]],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+
|
|
|
+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,x+=12;b=0;for(j=U.length;b<j;b++)k=v=w=q=M=t.value[U[b]],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,t.array[x+12]=k.x,t.array[x+13]=k.y,t.array[x+14]=k.z,t.array[x+15]=k.w,x+=16}else if("faceVertices"===
|
|
|
+t.boundTo){b=0;for(j=X.length;b<j;b++)M=t.value[X[b]],q=M[0],w=M[1],v=M[2],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,x+=12;b=0;for(j=U.length;b<j;b++)M=t.value[U[b]],q=M[0],w=M[1],v=M[2],k=M[3],t.array[x]=q.x,t.array[x+1]=q.y,t.array[x+2]=q.z,t.array[x+3]=q.w,t.array[x+4]=w.x,t.array[x+5]=w.y,t.array[x+6]=w.z,t.array[x+7]=w.w,t.array[x+8]=
|
|
|
+v.x,t.array[x+9]=v.y,t.array[x+10]=v.z,t.array[x+11]=v.w,t.array[x+12]=k.x,t.array[x+13]=k.y,t.array[x+14]=k.z,t.array[x+15]=k.w,x+=16}e.setDynamicArrayBuffer(t.buffer,t.array)}}c&&(delete a.__inittedArrays,delete a.__colorArray,delete a.__normalArray,delete a.__tangentArray,delete a.__uvArray,delete a.__uv2Array,delete a.__faceArray,delete a.__vertexArray,delete a.__lineArray,delete a.__skinIndexArray,delete a.__skinWeightArray)}}});THREE.WebGLRenderer.ParticleRenderer=function(a,b){THREE.WebGLRenderer.Object3DRenderer.call(this,a,b)};THREE.WebGLRenderer.ParticleRenderer.prototype=Object.create(THREE.WebGLRenderer.Object3DRenderer.prototype);
|
|
|
+THREE.extend(THREE.WebGLRenderer.ParticleRenderer.prototype,{createBuffers:function(a){var b=this.renderer;a.__webglVertexBuffer=b.createBuffer();a.__webglColorBuffer=b.createBuffer();this.info.memory.geometries++},initBuffers:function(a,b){var c=a.vertices.length;a.__vertexArray=new Float32Array(3*c);a.__colorArray=new Float32Array(3*c);a.__sortArray=[];a.__webglParticleCount=c;this.initCustomAttributes(a,b)},setBuffers:function(a,b,c){var d=this.renderer,e,f,g,h;e=a.vertices;h=e.length;var i=a.colors,
|
|
|
+j=i.length,k=a.__vertexArray,n=a.__colorArray,m=a.__sortArray,s=a.verticesNeedUpdate,u=a.colorsNeedUpdate,p=a.__webglCustomAttributesList;g=THREE.WebGLRenderer.ParticleRenderer._m1;var q=THREE.WebGLRenderer.ParticleRenderer._v1;if(b.sortParticles){g.multiplyMatrices(c,b.matrixWorld);for(c=0;c<h;c++)f=e[c],q.copy(f),q.applyProjection(g),m[c]=[q.z,c];m.sort(this.numericalSort);for(c=0;c<h;c++)f=e[m[c][1]],g=3*c,k[g]=f.x,k[g+1]=f.y,k[g+2]=f.z;for(e=0;e<j;e++)g=3*e,h=i[m[e][1]],n[g]=h.r,n[g+1]=h.g,n[g+
|
|
|
+2]=h.b;if(p){i=0;for(j=p.length;i<j;i++)if(c=p[i],void 0===c.boundTo||"vertices"===c.boundTo)if(g=0,h=c.value.length,1===c.size)for(e=0;e<h;e++)f=m[e][1],c.array[e]=c.value[f];else if(2===c.size)for(e=0;e<h;e++)f=m[e][1],f=c.value[f],c.array[g]=f.x,c.array[g+1]=f.y,g+=2;else if(3===c.size)if("c"===c.type)for(e=0;e<h;e++)f=m[e][1],f=c.value[f],c.array[g]=f.r,c.array[g+1]=f.g,c.array[g+2]=f.b,g+=3;else for(e=0;e<h;e++)f=m[e][1],f=c.value[f],c.array[g]=f.x,c.array[g+1]=f.y,c.array[g+2]=f.z,g+=3;else if(4===
|
|
|
+c.size)for(e=0;e<h;e++)f=m[e][1],f=c.value[f],c.array[g]=f.x,c.array[g+1]=f.y,c.array[g+2]=f.z,c.array[g+3]=f.w,g+=4}}else{if(s)for(c=0;c<h;c++)f=e[c],g=3*c,k[g]=f.x,k[g+1]=f.y,k[g+2]=f.z;if(u)for(e=0;e<j;e++)h=i[e],g=3*e,n[g]=h.r,n[g+1]=h.g,n[g+2]=h.b;if(p){i=0;for(j=p.length;i<j;i++)if(c=p[i],c.needsUpdate&&(void 0===c.boundTo||"vertices"===c.boundTo))if(h=c.value.length,g=0,1===c.size)for(e=0;e<h;e++)c.array[e]=c.value[e];else if(2===c.size)for(e=0;e<h;e++)f=c.value[e],c.array[g]=f.x,c.array[g+
|
|
|
+1]=f.y,g+=2;else if(3===c.size)if("c"===c.type)for(e=0;e<h;e++)f=c.value[e],c.array[g]=f.r,c.array[g+1]=f.g,c.array[g+2]=f.b,g+=3;else for(e=0;e<h;e++)f=c.value[e],c.array[g]=f.x,c.array[g+1]=f.y,c.array[g+2]=f.z,g+=3;else if(4===c.size)for(e=0;e<h;e++)f=c.value[e],c.array[g]=f.x,c.array[g+1]=f.y,c.array[g+2]=f.z,c.array[g+3]=f.w,g+=4}}(s||b.sortParticles)&&d.setDynamicArrayBuffer(a.__webglVertexBuffer,k);(u||b.sortParticles)&&d.setDynamicArrayBuffer(a.__webglColorBuffer,n);if(p){i=0;for(j=p.length;i<
|
|
|
+j;i++)c=p[i],(c.needsUpdate||b.sortParticles)&&d.setDynamicArrayBuffer(c.buffer,c.array)}}});THREE.WebGLRenderer.ParticleRenderer._m1=new THREE.Matrix4;THREE.WebGLRenderer.ParticleRenderer._v1=new THREE.Vector3;THREE.WebGLRenderer.LineRenderer=function(a,b){THREE.WebGLRenderer.Object3DRenderer.call(this,a,b)};THREE.WebGLRenderer.LineRenderer.prototype=Object.create(THREE.WebGLRenderer.Object3DRenderer.prototype);
|
|
|
+THREE.extend(THREE.WebGLRenderer.LineRenderer.prototype,{createBuffers:function(a){var b=this.renderer;a.__webglVertexBuffer=b.createBuffer();a.__webglColorBuffer=b.createBuffer();a.__webglLineDistanceBuffer=b.createBuffer();this.info.memory.geometries++},initBuffers:function(a,b){var c=a.vertices.length;a.__vertexArray=new Float32Array(3*c);a.__colorArray=new Float32Array(3*c);a.__lineDistanceArray=new Float32Array(1*c);a.__webglLineCount=c;this.initCustomAttributes(a,b)},setBuffers:function(a){var b=
|
|
|
+this.renderer,c,d,e,f=a.vertices,g=a.colors,h=a.lineDistances,i=f.length,j=g.length,k=h.length,n=a.__vertexArray,m=a.__colorArray,s=a.__lineDistanceArray,u=a.colorsNeedUpdate,p=a.lineDistancesNeedUpdate,q=a.__webglCustomAttributesList;if(a.verticesNeedUpdate){for(c=0;c<i;c++)e=f[c],d=3*c,n[d]=e.x,n[d+1]=e.y,n[d+2]=e.z;b.setDynamicArrayBuffer(a.__webglVertexBuffer,n)}if(u){for(c=0;c<j;c++)e=g[c],d=3*c,m[d]=e.r,m[d+1]=e.g,m[d+2]=e.b;b.setDynamicArrayBuffer(a.__webglColorBuffer,m)}if(p){for(d=0;d<k;d++)s[d]=
|
|
|
+h[d];b.setDynamicArrayBuffer(a.__webglLineDistanceBuffer,s)}if(q){a=0;for(h=q.length;a<h;a++)if(j=q[a],j.needsUpdate&&(void 0===j.boundTo||"vertices"===j.boundTo)){d=0;s=j.value.length;if(1===j.size)for(k=0;k<s;k++)j.array[k]=j.value[k];else if(2===j.size)for(k=0;k<s;k++)g=j.value[k],j.array[d]=g.x,j.array[d+1]=g.y,d+=2;else if(3===j.size)if("c"===j.type)for(k=0;k<s;k++)g=j.value[k],j.array[d]=g.r,j.array[d+1]=g.g,j.array[d+2]=g.b,d+=3;else for(k=0;k<s;k++)g=j.value[k],j.array[d]=g.x,j.array[d+1]=
|
|
|
+g.y,j.array[d+2]=g.z,d+=3;else if(4===j.size)for(k=0;k<s;k++)g=j.value[k],j.array[d]=g.x,j.array[d+1]=g.y,j.array[d+2]=g.z,j.array[d+3]=g.w,d+=4;b.setDynamicArrayBuffer(j.buffer,j.array)}}}});THREE.WebGLRenderer.RibbonRenderer=function(a,b){THREE.WebGLRenderer.Object3DRenderer.call(this,a,b)};THREE.WebGLRenderer.RibbonRenderer.prototype=Object.create(THREE.WebGLRenderer.Object3DRenderer.prototype);
|
|
|
+THREE.extend(THREE.WebGLRenderer.RibbonRenderer.prototype,{createBuffers:function(a){var b=this.renderer;a.__webglVertexBuffer=b.createBuffer();a.__webglColorBuffer=b.createBuffer();a.__webglNormalBuffer=b.createBuffer();this.info.memory.geometries++},initBuffers:function(a,b){var c=a.vertices.length;a.__vertexArray=new Float32Array(3*c);a.__colorArray=new Float32Array(3*c);a.__normalArray=new Float32Array(3*c);a.__webglVertexCount=c;this.initCustomAttributes(a,b)},setBuffers:function(a){var b=this.renderer,
|
|
|
+c,d,e,f,g,h,i,j,k=a.vertices;d=a.colors;h=a.normals;var n=k.length;g=d.length;i=h.length;var m=a.__vertexArray,s=a.__colorArray;j=a.__normalArray;var u=a.colorsNeedUpdate,p=a.normalsNeedUpdate,q=a.__webglCustomAttributesList;if(a.verticesNeedUpdate){for(c=0;c<n;c++)e=k[c],f=3*c,m[f]=e.x,m[f+1]=e.y,m[f+2]=e.z;b.setDynamicArrayBuffer(a.__webglVertexBuffer,m)}if(u){for(c=0;c<g;c++)e=d[c],f=3*c,s[f]=e.r,s[f+1]=e.g,s[f+2]=e.b;b.setDynamicArrayBuffer(a.__webglColorBuffer,s)}if(p){for(d=0;d<i;d++)g=h[d],
|
|
|
+f=3*d,j[f]=g.x,j[f+1]=g.y,j[f+2]=g.z;b.setDynamicArrayBuffer(a.__webglNormalBuffer,j)}if(q){a=0;for(h=q.length;a<h;a++)if(d=q[a],d.needsUpdate&&(void 0===d.boundTo||"vertices"===d.boundTo)){f=0;j=d.value.length;if(1===d.size)for(i=0;i<j;i++)d.array[i]=d.value[i];else if(2===d.size)for(i=0;i<j;i++)g=d.value[i],d.array[f]=g.x,d.array[f+1]=g.y,f+=2;else if(3===d.size)if("c"===d.type)for(i=0;i<j;i++)g=d.value[i],d.array[f]=g.r,d.array[f+1]=g.g,d.array[f+2]=g.b,f+=3;else for(i=0;i<j;i++)g=d.value[i],d.array[f]=
|
|
|
+g.x,d.array[f+1]=g.y,d.array[f+2]=g.z,f+=3;else if(4===d.size)for(i=0;i<j;i++)g=d.value[i],d.array[f]=g.x,d.array[f+1]=g.y,d.array[f+2]=g.z,d.array[f+3]=g.w,f+=4;b.setDynamicArrayBuffer(d.buffer,d.array)}}}});THREE.WebGLRenderTarget=function(a,b,c){THREE.EventDispatcher.call(this);this.width=a;this.height=b;c=c||{};this.wrapS=void 0!==c.wrapS?c.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==c.wrapT?c.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==c.magFilter?c.magFilter:THREE.LinearFilter;this.minFilter=void 0!==c.minFilter?c.minFilter:THREE.LinearMipMapLinearFilter;this.anisotropy=void 0!==c.anisotropy?c.anisotropy:1;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);
|
|
|
this.format=void 0!==c.format?c.format:THREE.RGBAFormat;this.type=void 0!==c.type?c.type:THREE.UnsignedByteType;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.generateMipmaps=!0;this.shareDepthFrom=null};
|
|
|
THREE.WebGLRenderTarget.prototype.clone=function(){var a=new THREE.WebGLRenderTarget(this.width,this.height);a.wrapS=this.wrapS;a.wrapT=this.wrapT;a.magFilter=this.magFilter;a.minFilter=this.minFilter;a.anisotropy=this.anisotropy;a.offset.copy(this.offset);a.repeat.copy(this.repeat);a.format=this.format;a.type=this.type;a.depthBuffer=this.depthBuffer;a.stencilBuffer=this.stencilBuffer;a.generateMipmaps=this.generateMipmaps;a.shareDepthFrom=this.shareDepthFrom;return a};
|
|
|
THREE.WebGLRenderTarget.prototype.dispose=function(){this.dispatchEvent({type:"dispose"})};THREE.WebGLRenderTargetCube=function(a,b,c){THREE.WebGLRenderTarget.call(this,a,b,c);this.activeCubeFace=0};THREE.WebGLRenderTargetCube.prototype=Object.create(THREE.WebGLRenderTarget.prototype);THREE.RenderableVertex=function(){this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.visible=!0};THREE.RenderableVertex.prototype.copy=function(a){this.positionWorld.copy(a.positionWorld);this.positionScreen.copy(a.positionScreen)};THREE.RenderableFace3=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.centroidModel=new THREE.Vector3;this.normalModel=new THREE.Vector3;this.normalModelView=new THREE.Vector3;this.vertexNormalsLength=0;this.vertexNormalsModel=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.vertexNormalsModelView=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.material=this.color=null;this.uvs=[[]];this.z=null};THREE.RenderableFace4=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.v4=new THREE.RenderableVertex;this.centroidModel=new THREE.Vector3;this.normalModel=new THREE.Vector3;this.normalModelView=new THREE.Vector3;this.vertexNormalsLength=0;this.vertexNormalsModel=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.vertexNormalsModelView=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];
|