diff --git a/build/Three.js b/build/Three.js index 76094869..b81b3b3f 100644 --- a/build/Three.js +++ b/build/Three.js @@ -56,17 +56,17 @@ THREE.Object3D.prototype={constructor:THREE.Object3D,translate:function(b,c){thi b)return h;if(c&&(h=h.getChildByName(b,c),h!==void 0))return h}},updateMatrix:function(){this.matrix.setPosition(this.position);this.useQuaternion?this.matrix.setRotationFromQuaternion(this.quaternion):this.matrix.setRotationFromEuler(this.rotation,this.eulerOrder);if(this.scale.x!==1||this.scale.y!==1||this.scale.z!==1)this.matrix.scale(this.scale),this.boundRadiusScale=Math.max(this.scale.x,Math.max(this.scale.y,this.scale.z));this.matrixWorldNeedsUpdate=!0},update:function(b,c,e){this.matrixAutoUpdate&& this.updateMatrix();if(this.matrixWorldNeedsUpdate||c)b?this.matrixWorld.multiply(b,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixRotationWorld.extractRotation(this.matrixWorld,this.scale),this.matrixWorldNeedsUpdate=!1,c=!0;for(var b=0,f=this.children.length;b=0&&h>=0&&m>=0&&n>=0?!0:k<0&&h<0||m<0&&n<0?!1:(k<0?e=Math.max(e,k/(k-h)):h<0&&(f=Math.min(f,k/(k-h))),m<0?e=Math.max(e,m/(m-n)):n<0&&(f=Math.min(f,m/(m-n))),f=0&&k>=0&&m>=0&&n>=0?!0:h<0&&k<0||m<0&&n<0?!1:(h<0?e=Math.max(e,h/(h-k)):k<0&&(f=Math.min(f,h/(h-k))),m<0?e=Math.max(e,m/(m-n)):n<0&&(f=Math.min(f,m/(m-n))),fG&&m.positionScreen.z0&&K.z<1))ia=C[F]=C[F]||new THREE.RenderableParticle,F++,E=ia,E.x=K.x/K.w,E.y=K.y/K.w,E.z=K.z,E.rotation=U.rotation.z,E.scale.x=U.scale.x*Math.abs(E.x-(K.x+k.projectionMatrix.n11)/(K.w+k.projectionMatrix.n14)),E.scale.y=U.scale.y*Math.abs(E.y-(K.y+k.projectionMatrix.n22)/(K.w+k.projectionMatrix.n24)),E.materials=U.materials,J.push(E);h&&J.sort(c);return J}}; +(K.set(U.matrixWorld.n14,U.matrixWorld.n24,U.matrixWorld.n34,1),B.multiplyVector4(K),K.z/=K.w,K.z>0&&K.z<1))ia=C[F]=C[F]||new THREE.RenderableParticle,F++,E=ia,E.x=K.x/K.w,E.y=K.y/K.w,E.z=K.z,E.rotation=U.rotation.z,E.scale.x=U.scale.x*Math.abs(E.x-(K.x+h.projectionMatrix.n11)/(K.w+h.projectionMatrix.n14)),E.scale.y=U.scale.y*Math.abs(E.y-(K.y+h.projectionMatrix.n22)/(K.w+h.projectionMatrix.n24)),E.materials=U.materials,J.push(E);k&&J.sort(c);return J}}; THREE.Quaternion=function(b,c,e,f){this.set(b||0,c||0,e||0,f!==void 0?f:1)}; THREE.Quaternion.prototype={constructor:THREE.Quaternion,set:function(b,c,e,f){this.x=b;this.y=c;this.z=e;this.w=f;return this},copy:function(b){this.x=b.x;this.y=b.y;this.z=b.z;this.w=b.w;return this},setFromEuler:function(b){var c=Math.PI/360,e=b.x*c,f=b.y*c,h=b.z*c,b=Math.cos(f),f=Math.sin(f),c=Math.cos(-h),h=Math.sin(-h),k=Math.cos(e),e=Math.sin(e),m=b*c,n=f*h;this.w=m*k-n*e;this.x=m*e+n*k;this.y=f*c*k+b*h*e;this.z=b*h*k-f*c*e;return this},setFromAxisAngle:function(b,c){var e=c/2,f=Math.sin(e); this.x=b.x*f;this.y=b.y*f;this.z=b.z*f;this.w=Math.cos(e);return this},setFromRotationMatrix:function(b){var c=Math.pow(b.determinant(),1/3);this.w=Math.sqrt(Math.max(0,c+b.n11+b.n22+b.n33))/2;this.x=Math.sqrt(Math.max(0,c+b.n11-b.n22-b.n33))/2;this.y=Math.sqrt(Math.max(0,c-b.n11+b.n22-b.n33))/2;this.z=Math.sqrt(Math.max(0,c-b.n11-b.n22+b.n33))/2;this.x=b.n32-b.n23<0?-Math.abs(this.x):Math.abs(this.x);this.y=b.n13-b.n31<0?-Math.abs(this.y):Math.abs(this.y);this.z=b.n21-b.n12<0?-Math.abs(this.z):Math.abs(this.z); @@ -81,15 +81,15 @@ c;b++)e=this.faces[b],e.centroid.set(0,0,0),e instanceof THREE.Face3?(e.centroid e,f,h,k,m,n=new THREE.Vector3,p=new THREE.Vector3;f=0;for(h=this.faces.length;f0){this.boundingBox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y, this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var c=1,e=this.vertices.length;cthis.boundingBox.x[1])this.boundingBox.x[1]=b.position.x;if(b.position.ythis.boundingBox.y[1])this.boundingBox.y[1]=b.position.y;if(b.position.zthis.boundingBox.z[1])this.boundingBox.z[1]=b.position.z}}},computeBoundingSphere:function(){for(var b=0,c=0,e=this.vertices.length;cthis.points.length-2?k:k+1;e[3]=k>this.points.length-3?k:k+2;t=this.points[e[0]];w=this.points[e[1]]; -u=this.points[e[2]];x=this.points[e[3]];n=m*m;p=m*n;f.x=c(t.x,w.x,u.x,x.x,m,n,p);f.y=c(t.y,w.y,u.y,x.y,m,n,p);f.z=c(t.z,w.z,u.z,x.z,m,n,p);return f};this.getControlPointsArray=function(){var b,c,e=this.points.length,f=[];for(b=0;bthis.points.length-2?k:k+1;e[3]=k>this.points.length-3?k:k+2;t=this.points[e[0]];w=this.points[e[1]]; +u=this.points[e[2]];x=this.points[e[3]];n=m*m;p=m*n;f.x=c(t.x,w.x,u.x,x.x,m,n,p);f.y=c(t.y,w.y,u.y,x.y,m,n,p);f.z=c(t.z,w.z,u.z,x.z,m,n,p);return f};this.getControlPointsArray=function(){var b,c,e=this.points.length,f=[];for(b=0;b0&&(e(THREE.NormalBlending),c(1),h("rgba("+Math.floor(A.r*255)+","+Math.floor(A.g*255)+","+ -Math.floor(A.b*255)+","+z+")"),v.fillRect(Math.floor(S.getX()),Math.floor(S.getY()),Math.floor(S.getWidth()),Math.floor(S.getHeight()))),S.empty())};this.render=function(b,p){function t(b){var c,e,f,k=b.lights;N.setRGB(0,0,0);ma.setRGB(0,0,0);ua.setRGB(0,0,0);b=0;for(c=k.length;b>1,xa=t.height>>1,m=k.scale.x*u,p=k.scale.y*x,o=m*w,n=p*xa,O.set(b.x-o,b.y-n,b.x+o,b.y+n),za.intersects(O)&&(v.save(),v.translate(b.x,b.y),v.rotate(-k.rotation),v.scale(m,-p),v.translate(-w,-xa),v.drawImage(t,0,0),v.restore())}else m instanceof THREE.ParticleCanvasMaterial&&(o=k.scale.x*u,n=k.scale.y*x,O.set(b.x-o,b.y-n,b.x+o,b.y+n),za.intersects(O)&&(f(m.color.getContextStyle()),h(m.color.getContextStyle()),v.save(),v.translate(b.x,b.y),v.rotate(-k.rotation),v.scale(o,n),m.program(v), -v.restore()))}function eb(b,k,h,m){c(m.opacity);e(m.blending);v.beginPath();v.moveTo(b.positionScreen.x,b.positionScreen.y);v.lineTo(k.positionScreen.x,k.positionScreen.y);v.closePath();if(m instanceof THREE.LineBasicMaterial){b=m.linewidth;if(G!=b)v.lineWidth=G=b;b=m.linecap;if(J!=b)v.lineCap=J=b;b=m.linejoin;if(M!=b)v.lineJoin=M=b;f(m.color.getContextStyle());v.stroke();O.inflate(m.linewidth*2)}}function y(b,f,h,m,n,t,u,v,xa){k.info.render.vertices+=3;k.info.render.faces++;c(v.opacity);e(v.blending); +v.restore()))}function eb(b,h,k,m){c(m.opacity);e(m.blending);v.beginPath();v.moveTo(b.positionScreen.x,b.positionScreen.y);v.lineTo(h.positionScreen.x,h.positionScreen.y);v.closePath();if(m instanceof THREE.LineBasicMaterial){b=m.linewidth;if(G!=b)v.lineWidth=G=b;b=m.linecap;if(J!=b)v.lineCap=J=b;b=m.linejoin;if(M!=b)v.lineJoin=M=b;f(m.color.getContextStyle());v.stroke();O.inflate(m.linewidth*2)}}function y(b,f,h,m,n,t,u,v,xa){k.info.render.vertices+=3;k.info.render.faces++;c(v.opacity);e(v.blending); Q=b.positionScreen.x;Z=b.positionScreen.y;$=f.positionScreen.x;P=f.positionScreen.y;o=h.positionScreen.x;V=h.positionScreen.y;F(Q,Z,$,P,o,V);if(v instanceof THREE.MeshBasicMaterial)if(v.map)v.map.mapping instanceof THREE.UVMapping&&(ra=u.uvs[0],ab(Q,Z,$,P,o,V,ra[m].u,ra[m].v,ra[n].u,ra[n].v,ra[t].u,ra[t].v,v.map));else if(v.envMap){if(v.envMap.mapping instanceof THREE.SphericalReflectionMapping)b=p.matrixWorldInverse,oa.copy(u.vertexNormalsWorld[0]),sa=(oa.x*b.n11+oa.y*b.n12+oa.z*b.n13)*0.5+0.5,ya= -(oa.x*b.n21+oa.y*b.n22+oa.z*b.n23)*0.5+0.5,oa.copy(u.vertexNormalsWorld[1]),Ca=(oa.x*b.n11+oa.y*b.n12+oa.z*b.n13)*0.5+0.5,Ga=-(oa.x*b.n21+oa.y*b.n22+oa.z*b.n23)*0.5+0.5,oa.copy(u.vertexNormalsWorld[2]),Fa=(oa.x*b.n11+oa.y*b.n12+oa.z*b.n13)*0.5+0.5,Da=-(oa.x*b.n21+oa.y*b.n22+oa.z*b.n23)*0.5+0.5,ab(Q,Z,$,P,o,V,sa,ya,Ca,Ga,Fa,Da,v.envMap)}else v.wireframe?Na(v.color,v.wireframeLinewidth,v.wireframeLinecap,v.wireframeLinejoin):C(v.color);else if(v instanceof THREE.MeshLambertMaterial)v.map&&!v.wireframe&& (v.map.mapping instanceof THREE.UVMapping&&(ra=u.uvs[0],ab(Q,Z,$,P,o,V,ra[m].u,ra[m].v,ra[n].u,ra[n].v,ra[t].u,ra[t].v,v.map)),e(THREE.SubtractiveBlending)),da?!v.wireframe&&v.shading==THREE.SmoothShading&&u.vertexNormalsWorld.length==3?(W.r=U.r=ia.r=N.r,W.g=U.g=ia.g=N.g,W.b=U.b=ia.b=N.b,w(xa,u.v1.positionWorld,u.vertexNormalsWorld[0],W),w(xa,u.v2.positionWorld,u.vertexNormalsWorld[1],U),w(xa,u.v3.positionWorld,u.vertexNormalsWorld[2],ia),W.r=Math.max(0,Math.min(v.color.r*W.r,1)),W.g=Math.max(0,Math.min(v.color.g* @@ -171,18 +171,18 @@ $=f.positionScreen.x,P=f.positionScreen.y,o=h.positionScreen.x,V=h.positionScree U.r=ia.r=ja.r=N.r,W.g=U.g=ia.g=ja.g=N.g,W.b=U.b=ia.b=ja.b=N.b,w(xa,v.v1.positionWorld,v.vertexNormalsWorld[0],W),w(xa,v.v2.positionWorld,v.vertexNormalsWorld[1],U),w(xa,v.v4.positionWorld,v.vertexNormalsWorld[3],ia),w(xa,v.v3.positionWorld,v.vertexNormalsWorld[2],ja),W.r=Math.max(0,Math.min(u.color.r*W.r,1)),W.g=Math.max(0,Math.min(u.color.g*W.g,1)),W.b=Math.max(0,Math.min(u.color.b*W.b,1)),U.r=Math.max(0,Math.min(u.color.r*U.r,1)),U.g=Math.max(0,Math.min(u.color.g*U.g,1)),U.b=Math.max(0,Math.min(u.color.b* U.b,1)),ia.r=Math.max(0,Math.min(u.color.r*ia.r,1)),ia.g=Math.max(0,Math.min(u.color.g*ia.g,1)),ia.b=Math.max(0,Math.min(u.color.b*ia.b,1)),ja.r=Math.max(0,Math.min(u.color.r*ja.r,1)),ja.g=Math.max(0,Math.min(u.color.g*ja.g,1)),ja.b=Math.max(0,Math.min(u.color.b*ja.b,1)),pa=Ya(W,U,ia,ja),F(Q,Z,$,P,fa,ea),Ua(Q,Z,$,P,fa,ea,0,0,1,0,0,1,pa),F(ha,ga,o,V,ka,na),Ua(ha,ga,o,V,ka,na,1,0,1,1,0,1,pa)):(qa.r=N.r,qa.g=N.g,qa.b=N.b,w(xa,v.centroidWorld,v.normalWorld,qa),aa.r=Math.max(0,Math.min(u.color.r*qa.r, 1)),aa.g=Math.max(0,Math.min(u.color.g*qa.g,1)),aa.b=Math.max(0,Math.min(u.color.b*qa.b,1)),E(Q,Z,$,P,o,V,fa,ea),u.wireframe?Na(aa,u.wireframeLinewidth,u.wireframeLinecap,u.wireframeLinejoin):C(aa)):(E(Q,Z,$,P,o,V,fa,ea),u.wireframe?Na(u.color,u.wireframeLinewidth,u.wireframeLinecap,u.wireframeLinejoin):C(u.color));else if(u instanceof THREE.MeshNormalMaterial)aa.r=Va(v.normalWorld.x),aa.g=Va(v.normalWorld.y),aa.b=Va(v.normalWorld.z),E(Q,Z,$,P,o,V,fa,ea),u.wireframe?Na(aa,u.wireframeLinewidth,u.wireframeLinecap, -u.wireframeLinejoin):C(aa);else if(u instanceof THREE.MeshDepthMaterial)la=p.near,ca=p.far,W.r=W.g=W.b=1-Qa(b.positionScreen.z,la,ca),U.r=U.g=U.b=1-Qa(f.positionScreen.z,la,ca),ia.r=ia.g=ia.b=1-Qa(m.positionScreen.z,la,ca),ja.r=ja.g=ja.b=1-Qa(h.positionScreen.z,la,ca),pa=Ya(W,U,ia,ja),F(Q,Z,$,P,fa,ea),Ua(Q,Z,$,P,fa,ea,0,0,1,0,0,1,pa),F(ha,ga,o,V,ka,na),Ua(ha,ga,o,V,ka,na,1,0,1,1,0,1,pa)}function F(b,c,e,f,k,h){v.beginPath();v.moveTo(b,c);v.lineTo(e,f);v.lineTo(k,h);v.lineTo(b,c);v.closePath()}function E(b, -c,e,f,k,h,m,o){v.beginPath();v.moveTo(b,c);v.lineTo(e,f);v.lineTo(k,h);v.lineTo(m,o);v.lineTo(b,c);v.closePath()}function Na(b,c,e,k){if(G!=c)v.lineWidth=G=c;if(J!=e)v.lineCap=J=e;if(M!=k)v.lineJoin=M=k;f(b.getContextStyle());v.stroke();O.inflate(c*2)}function C(b){h(b.getContextStyle());v.fill()}function ab(b,c,e,f,k,m,o,n,p,u,t,xa,w){if(w.image.width!=0){if(w.needsUpdate==!0||ta[w.id]==void 0){var x=w.wrapS==THREE.RepeatWrapping,S=w.wrapT==THREE.RepeatWrapping;ta[w.id]=v.createPattern(w.image,x&& -S?"repeat":x&&!S?"repeat-x":!x&&S?"repeat-y":"no-repeat");w.needsUpdate=!1}h(ta[w.id]);var x=w.offset.x/w.repeat.x,S=w.offset.y/w.repeat.y,z=(w.image.width-1)*w.repeat.x,w=(w.image.height-1)*w.repeat.y,o=(o+x)*z,n=(n+S)*w,p=(p+x)*z,u=(u+S)*w,t=(t+x)*z,xa=(xa+S)*w;e-=b;f-=c;k-=b;m-=c;p-=o;u-=n;t-=o;xa-=n;x=1/(p*xa-t*u);w=(xa*e-u*k)*x;u=(xa*f-u*m)*x;e=(p*k-t*e)*x;f=(p*m-t*f)*x;b=b-w*o-e*n;c=c-u*o-f*n;v.save();v.transform(w,u,e,f,b,c);v.fill();v.restore()}}function Ua(b,c,e,f,k,h,m,o,n,p,u,t,w){var xa, -x;xa=w.width-1;x=w.height-1;m*=xa;o*=x;n*=xa;p*=x;u*=xa;t*=x;e-=b;f-=c;k-=b;h-=c;n-=m;p-=o;u-=m;t-=o;x=1/(n*t-u*p);xa=(t*e-p*k)*x;p=(t*f-p*h)*x;e=(n*k-u*e)*x;f=(n*h-u*f)*x;b=b-xa*m-e*o;c=c-p*m-f*o;v.save();v.transform(xa,p,e,f,b,c);v.clip();v.drawImage(w,0,0);v.restore()}function Ya(b,c,e,f){var k=~~(b.r*255),h=~~(b.g*255),b=~~(b.b*255),m=~~(c.r*255),o=~~(c.g*255),c=~~(c.b*255),n=~~(e.r*255),p=~~(e.g*255),e=~~(e.b*255),u=~~(f.r*255),t=~~(f.g*255),f=~~(f.b*255);va[0]=k<0?0:k>255?255:k;va[1]=h<0?0: -h>255?255:h;va[2]=b<0?0:b>255?255:b;va[4]=m<0?0:m>255?255:m;va[5]=o<0?0:o>255?255:o;va[6]=c<0?0:c>255?255:c;va[8]=n<0?0:n>255?255:n;va[9]=p<0?0:p>255?255:p;va[10]=e<0?0:e>255?255:e;va[12]=u<0?0:u>255?255:u;va[13]=t<0?0:t>255?255:t;va[14]=f<0?0:f>255?255:f;Ia.putImageData(Ba,0,0);Ha.drawImage(Ea,0,0);return Ka}function Qa(b,c,e){b=(b-c)/(e-c);return b*b*(3-2*b)}function Va(b){b=(b+1)*0.5;return b<0?0:b>1?1:b}function Oa(b,c){var e=c.x-b.x,f=c.y-b.y,k=e*e+f*f;k!=0&&(k=1/Math.sqrt(k),e*=k,f*=k,c.x+= +u.wireframeLinejoin):C(aa);else if(u instanceof THREE.MeshDepthMaterial)la=p.near,ca=p.far,W.r=W.g=W.b=1-Qa(b.positionScreen.z,la,ca),U.r=U.g=U.b=1-Qa(f.positionScreen.z,la,ca),ia.r=ia.g=ia.b=1-Qa(m.positionScreen.z,la,ca),ja.r=ja.g=ja.b=1-Qa(h.positionScreen.z,la,ca),pa=Ya(W,U,ia,ja),F(Q,Z,$,P,fa,ea),Ua(Q,Z,$,P,fa,ea,0,0,1,0,0,1,pa),F(ha,ga,o,V,ka,na),Ua(ha,ga,o,V,ka,na,1,0,1,1,0,1,pa)}function F(b,c,e,f,h,k){v.beginPath();v.moveTo(b,c);v.lineTo(e,f);v.lineTo(h,k);v.lineTo(b,c);v.closePath()}function E(b, +c,e,f,h,k,m,o){v.beginPath();v.moveTo(b,c);v.lineTo(e,f);v.lineTo(h,k);v.lineTo(m,o);v.lineTo(b,c);v.closePath()}function Na(b,c,e,h){if(G!=c)v.lineWidth=G=c;if(J!=e)v.lineCap=J=e;if(M!=h)v.lineJoin=M=h;f(b.getContextStyle());v.stroke();O.inflate(c*2)}function C(b){h(b.getContextStyle());v.fill()}function ab(b,c,e,f,k,m,o,n,p,u,t,xa,w){if(w.image.width!=0){if(w.needsUpdate==!0||ta[w.id]==void 0){var x=w.wrapS==THREE.RepeatWrapping,S=w.wrapT==THREE.RepeatWrapping;ta[w.id]=v.createPattern(w.image,x&& +S?"repeat":x&&!S?"repeat-x":!x&&S?"repeat-y":"no-repeat");w.needsUpdate=!1}h(ta[w.id]);var x=w.offset.x/w.repeat.x,S=w.offset.y/w.repeat.y,z=(w.image.width-1)*w.repeat.x,w=(w.image.height-1)*w.repeat.y,o=(o+x)*z,n=(n+S)*w,p=(p+x)*z,u=(u+S)*w,t=(t+x)*z,xa=(xa+S)*w;e-=b;f-=c;k-=b;m-=c;p-=o;u-=n;t-=o;xa-=n;x=1/(p*xa-t*u);w=(xa*e-u*k)*x;u=(xa*f-u*m)*x;e=(p*k-t*e)*x;f=(p*m-t*f)*x;b=b-w*o-e*n;c=c-u*o-f*n;v.save();v.transform(w,u,e,f,b,c);v.fill();v.restore()}}function Ua(b,c,e,f,h,k,m,o,n,p,u,t,w){var xa, +x;xa=w.width-1;x=w.height-1;m*=xa;o*=x;n*=xa;p*=x;u*=xa;t*=x;e-=b;f-=c;h-=b;k-=c;n-=m;p-=o;u-=m;t-=o;x=1/(n*t-u*p);xa=(t*e-p*h)*x;p=(t*f-p*k)*x;e=(n*h-u*e)*x;f=(n*k-u*f)*x;b=b-xa*m-e*o;c=c-p*m-f*o;v.save();v.transform(xa,p,e,f,b,c);v.clip();v.drawImage(w,0,0);v.restore()}function Ya(b,c,e,f){var h=~~(b.r*255),k=~~(b.g*255),b=~~(b.b*255),m=~~(c.r*255),o=~~(c.g*255),c=~~(c.b*255),n=~~(e.r*255),p=~~(e.g*255),e=~~(e.b*255),u=~~(f.r*255),t=~~(f.g*255),f=~~(f.b*255);va[0]=h<0?0:h>255?255:h;va[1]=k<0?0: +k>255?255:k;va[2]=b<0?0:b>255?255:b;va[4]=m<0?0:m>255?255:m;va[5]=o<0?0:o>255?255:o;va[6]=c<0?0:c>255?255:c;va[8]=n<0?0:n>255?255:n;va[9]=p<0?0:p>255?255:p;va[10]=e<0?0:e>255?255:e;va[12]=u<0?0:u>255?255:u;va[13]=t<0?0:t>255?255:t;va[14]=f<0?0:f>255?255:f;Ia.putImageData(Ba,0,0);Ha.drawImage(Ea,0,0);return Ka}function Qa(b,c,e){b=(b-c)/(e-c);return b*b*(3-2*b)}function Va(b){b=(b+1)*0.5;return b<0?0:b>1?1:b}function Oa(b,c){var e=c.x-b.x,f=c.y-b.y,h=e*e+f*f;h!=0&&(h=1/Math.sqrt(h),e*=h,f*=h,c.x+= e,c.y+=f,b.x-=e,b.y-=f)}var Za,bb,wa,Ja,Pa,Wa,$a,Aa;this.autoClear?this.clear():v.setTransform(1,0,0,-1,u,x);k.info.render.vertices=0;k.info.render.faces=0;m=n.projectScene(b,p,this.sortElements);(da=b.lights.length>0)&&t(b);Za=0;for(bb=m.length;Za0&&(e.r+=h.color.r*m,e.g+=h.color.g*m,e.b+=h.color.b*m)):h instanceof THREE.PointLight&&(Y.sub(h.position,c.centroidWorld),Y.normalize(),m=c.normalWorld.dot(Y)*h.intensity,m>0&&(e.r+=h.color.r*m,e.g+=h.color.g*m,e.b+=h.color.b*m))}function c(c,e,m,n,u,t){k.info.render.vertices+=3;k.info.render.faces++;Q=f(Z++); +THREE.SVGRenderer=function(){function b(b,c,e){var f,h,k,m;f=0;for(h=b.lights.length;f0&&(e.r+=k.color.r*m,e.g+=k.color.g*m,e.b+=k.color.b*m)):k instanceof THREE.PointLight&&(Y.sub(k.position,c.centroidWorld),Y.normalize(),m=c.normalWorld.dot(Y)*k.intensity,m>0&&(e.r+=k.color.r*m,e.g+=k.color.g*m,e.b+=k.color.b*m))}function c(c,e,m,n,u,t){k.info.render.vertices+=3;k.info.render.faces++;Q=f(Z++); Q.setAttribute("d","M "+c.positionScreen.x+" "+c.positionScreen.y+" L "+e.positionScreen.x+" "+e.positionScreen.y+" L "+m.positionScreen.x+","+m.positionScreen.y+"z");u instanceof THREE.MeshBasicMaterial?G.copy(u.color):u instanceof THREE.MeshLambertMaterial?C?(J.r=M.r,J.g=M.g,J.b=M.b,b(t,n,J),G.r=Math.max(0,Math.min(u.color.r*J.r,1)),G.g=Math.max(0,Math.min(u.color.g*J.g,1)),G.b=Math.max(0,Math.min(u.color.b*J.b,1))):G.copy(u.color):u instanceof THREE.MeshDepthMaterial?(L=1-u.__2near/(u.__farPlusNear- n.z*u.__farMinusNear),G.setRGB(L,L,L)):u instanceof THREE.MeshNormalMaterial&&G.setRGB(h(n.normalWorld.x),h(n.normalWorld.y),h(n.normalWorld.z));u.wireframe?Q.setAttribute("style","fill: none; stroke: "+G.getContextStyle()+"; stroke-width: "+u.wireframeLinewidth+"; stroke-opacity: "+u.opacity+"; stroke-linecap: "+u.wireframeLinecap+"; stroke-linejoin: "+u.wireframeLinejoin):Q.setAttribute("style","fill: "+G.getContextStyle()+"; fill-opacity: "+u.opacity);p.appendChild(Q)}function e(c,e,m,n,u,t,v){k.info.render.vertices+= 4;k.info.render.faces++;Q=f(Z++);Q.setAttribute("d","M "+c.positionScreen.x+" "+c.positionScreen.y+" L "+e.positionScreen.x+" "+e.positionScreen.y+" L "+m.positionScreen.x+","+m.positionScreen.y+" L "+n.positionScreen.x+","+n.positionScreen.y+"z");t instanceof THREE.MeshBasicMaterial?G.copy(t.color):t instanceof THREE.MeshLambertMaterial?C?(J.r=M.r,J.g=M.g,J.b=M.b,b(v,u,J),G.r=Math.max(0,Math.min(t.color.r*J.r,1)),G.g=Math.max(0,Math.min(t.color.g*J.g,1)),G.b=Math.max(0,Math.min(t.color.b*J.b,1))): @@ -227,9 +227,9 @@ THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment,THREE.Shader THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {",THREE.ShaderChunk.color_vertex,"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n#ifdef USE_SIZEATTENUATION\ngl_PointSize = size * ( scale / length( mvPosition.xyz ) );\n#else\ngl_PointSize = size;\n#endif\ngl_Position = projectionMatrix * mvPosition;",THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 psColor;\nuniform float opacity;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_particle_pars_fragment, THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( psColor, opacity );",THREE.ShaderChunk.map_particle_fragment,THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},depthRGBA:{uniforms:{},vertexShader:[THREE.ShaderChunk.morphtarget_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.morphtarget_vertex, THREE.ShaderChunk.default_vertex,"}"].join("\n"),fragmentShader:"vec4 pack_depth( const in float depth ) {\nconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );\nconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );\nvec4 res = fract( depth * bit_shift );\nres -= res.xxyz * bit_mask;\nreturn res;\n}\nvoid main() {\ngl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );\n}"}}; -THREE.WebGLRenderer=function(b){function c(b,c,e){var f,k,h,m=b.vertices,n=m.length,u=b.colors,p=u.length,t=b.__vertexArray,v=b.__colorArray,w=b.__sortArray,x=b.__dirtyVertices,S=b.__dirtyColors,z=b.__webglCustomAttributes,y,A;if(z)for(y in z)z[y].offset=0;if(e.sortParticles){Ca.multiplySelf(e.matrixWorld);for(f=0;f0){this.vertices.push(new THREE.Vertex(new THREE.Vector3(0,-m,0)));for(n=0;nb&&(b+=Math.PI*2),anglec=(c+b)/2,new THREE.Vector2(-Math.cos(anglec),-Math.sin(anglec));return f.multiplyScalar(m).addSelf(n).subSelf(b).clone()}function h(b){for(H=b.length;--H>=0;){ka=H;na=H-1;na<0&&(na=b.length- -1);for(var c=0,e=v+w*2,c=0;cb&&(b+=Math.PI*2),anglec=(c+b)/2,new THREE.Vector2(-Math.cos(anglec),-Math.sin(anglec));return f.multiplyScalar(h).addSelf(n).subSelf(b).clone()}function h(b){for(H=b.length;--H>=0;){ka=H;na=H-1;na<0&&(na=b.length- +1);for(var c=0,e=v+w*2,c=0;c=0;Q--){Z=Q/w;$=p*(1-Z);Z=t*Math.sin(Z*Math.PI/2);H=0;for(T=F.length;H0;)this.smooth(b)}; THREE.SubdivisionModifier.prototype.smooth=function(b){function c(b,c,e,f,n,p){var t=new THREE.Face4(b,c,e,f,null,n.color,n.material);if(m.useOldVertexColors){t.vertexColors=[];for(var v,o,w,x=0;x<4;x++){w=p[x];v=new THREE.Color;v.setRGB(0,0,0);for(var y=0;y