diff --git a/build/Three.js b/build/Three.js index 2652dfd638188b2baaca0e5e79d65b945b0a4905..18da184392f81862bf0500ed7a69abd369d08f07 100644 --- a/build/Three.js +++ b/build/Three.js @@ -248,27 +248,27 @@ Fa.g+e.g;Fa.b=Fa.b+e.b}else if(d instanceof THREE.PointLight){Ra.r=Ra.r+e.r;Ra.g g.distance,1));if(i!=0){i=i*g.intensity;d.r=d.r+h.r*i;d.g=d.g+h.g*i;d.b=d.b+h.b*i}}}}}function q(a,f,g){b(g.opacity);c(g.blending);var h,k,i,j,l,m;if(g instanceof THREE.ParticleBasicMaterial){if(g.map!==null){j=g.map.image;l=j.width>>1;m=j.height>>1;g=f.scale.x*p;i=f.scale.y*r;h=g*l;k=i*m;Aa.set(a.x-h,a.y-k,a.x+h,a.y+k);if(Ua.intersects(Aa)!==false){o.save();o.translate(a.x,a.y);o.rotate(-f.rotation);o.scale(g,-i);o.translate(-l,-m);o.drawImage(j,0,0);o.restore()}}}else if(g instanceof THREE.ParticleCanvasMaterial){h= f.scale.x*p;k=f.scale.y*r;Aa.set(a.x-h,a.y-k,a.x+h,a.y+k);if(Ua.intersects(Aa)!==false){d(g.color.getContextStyle());e(g.color.getContextStyle());o.save();o.translate(a.x,a.y);o.rotate(-f.rotation);o.scale(h,k);g.program(o);o.restore()}}}function s(a,e,f,g){b(g.opacity);c(g.blending);o.beginPath();o.moveTo(a.positionScreen.x,a.positionScreen.y);o.lineTo(e.positionScreen.x,e.positionScreen.y);o.closePath();if(g instanceof THREE.LineBasicMaterial){a=g.linewidth;if(C!==a)C=o.lineWidth=a;a=g.linecap; if(D!==a)D=o.lineCap=a;a=g.linejoin;if(z!==a)z=o.lineJoin=a;d(g.color.getContextStyle());o.stroke();Aa.inflate(g.linewidth*2)}}function t(a,d,e,g,h,k,j,m){f.info.render.vertices=f.info.render.vertices+3;f.info.render.faces++;b(m.opacity);c(m.blending);B=a.positionScreen.x;F=a.positionScreen.y;Q=d.positionScreen.x;E=d.positionScreen.y;aa=e.positionScreen.x;T=e.positionScreen.y;w(B,F,Q,E,aa,T);if(m instanceof THREE.MeshBasicMaterial)if(m.map!==null){if(m.map.mapping instanceof THREE.UVMapping){bb=j.uvs[0]; -kd(B,F,Q,E,aa,T,bb[g].u,bb[g].v,bb[h].u,bb[h].v,bb[k].u,bb[k].v,m.map)}}else if(m.envMap!==null){if(m.envMap.mapping instanceof THREE.SphericalReflectionMapping){a=l.matrixWorldInverse;sa.copy(j.vertexNormalsWorld[g]);nb=(sa.x*a.elements[0]+sa.y*a.elements[4]+sa.z*a.elements[8])*0.5+0.5;gb=-(sa.x*a.elements[1]+sa.y*a.elements[5]+sa.z*a.elements[9])*0.5+0.5;sa.copy(j.vertexNormalsWorld[h]);Ob=(sa.x*a.elements[0]+sa.y*a.elements[4]+sa.z*a.elements[8])*0.5+0.5;ob=-(sa.x*a.elements[1]+sa.y*a.elements[5]+ -sa.z*a.elements[9])*0.5+0.5;sa.copy(j.vertexNormalsWorld[k]);kb=(sa.x*a.elements[0]+sa.y*a.elements[4]+sa.z*a.elements[8])*0.5+0.5;ec=-(sa.x*a.elements[1]+sa.y*a.elements[5]+sa.z*a.elements[9])*0.5+0.5;kd(B,F,Q,E,aa,T,nb,gb,Ob,ob,kb,ec,m.envMap)}}else m.wireframe===true?Pb(m.color,m.wireframeLinewidth,m.wireframeLinecap,m.wireframeLinejoin):Hb(m.color);else if(m instanceof THREE.MeshLambertMaterial)if(hb===true)if(m.wireframe===false&&m.shading==THREE.SmoothShading&&j.vertexNormalsWorld.length==3){R.r= +kd(B,F,Q,E,aa,T,bb[g].u,bb[g].v,bb[h].u,bb[h].v,bb[k].u,bb[k].v,m.map)}}else if(m.envMap!==null){if(m.envMap.mapping instanceof THREE.SphericalReflectionMapping){a=l.matrixWorldInverse;sa.copy(j.vertexNormalsWorld[g]);nb=(sa.x*a.elements[0]+sa.y*a.elements[4]+sa.z*a.elements[8])*0.5+0.5;gb=(sa.x*a.elements[1]+sa.y*a.elements[5]+sa.z*a.elements[9])*0.5+0.5;sa.copy(j.vertexNormalsWorld[h]);Ob=(sa.x*a.elements[0]+sa.y*a.elements[4]+sa.z*a.elements[8])*0.5+0.5;ob=(sa.x*a.elements[1]+sa.y*a.elements[5]+ +sa.z*a.elements[9])*0.5+0.5;sa.copy(j.vertexNormalsWorld[k]);kb=(sa.x*a.elements[0]+sa.y*a.elements[4]+sa.z*a.elements[8])*0.5+0.5;ec=(sa.x*a.elements[1]+sa.y*a.elements[5]+sa.z*a.elements[9])*0.5+0.5;kd(B,F,Q,E,aa,T,nb,gb,Ob,ob,kb,ec,m.envMap)}}else m.wireframe===true?Pb(m.color,m.wireframeLinewidth,m.wireframeLinecap,m.wireframeLinejoin):Hb(m.color);else if(m instanceof THREE.MeshLambertMaterial)if(hb===true)if(m.wireframe===false&&m.shading==THREE.SmoothShading&&j.vertexNormalsWorld.length==3){R.r= P.r=U.r=qa.r;R.g=P.g=U.g=qa.g;R.b=P.b=U.b=qa.b;n(i,j.v1.positionWorld,j.vertexNormalsWorld[0],R);n(i,j.v2.positionWorld,j.vertexNormalsWorld[1],P);n(i,j.v3.positionWorld,j.vertexNormalsWorld[2],U);R.r=Math.max(0,Math.min(m.color.r*R.r,1));R.g=Math.max(0,Math.min(m.color.g*R.g,1));R.b=Math.max(0,Math.min(m.color.b*R.b,1));P.r=Math.max(0,Math.min(m.color.r*P.r,1));P.g=Math.max(0,Math.min(m.color.g*P.g,1));P.b=Math.max(0,Math.min(m.color.b*P.b,1));U.r=Math.max(0,Math.min(m.color.r*U.r,1));U.g=Math.max(0, Math.min(m.color.g*U.g,1));U.b=Math.max(0,Math.min(m.color.b*U.b,1));fa.r=(P.r+U.r)*0.5;fa.g=(P.g+U.g)*0.5;fa.b=(P.b+U.b)*0.5;Pa=Ic(R,P,U,fa);mc(B,F,Q,E,aa,T,0,0,1,0,0,1,Pa)}else{S.r=qa.r;S.g=qa.g;S.b=qa.b;n(i,j.centroidWorld,j.normalWorld,S);S.r=Math.max(0,Math.min(m.color.r*S.r,1));S.g=Math.max(0,Math.min(m.color.g*S.g,1));S.b=Math.max(0,Math.min(m.color.b*S.b,1));m.wireframe===true?Pb(S,m.wireframeLinewidth,m.wireframeLinecap,m.wireframeLinejoin):Hb(S)}else m.wireframe===true?Pb(m.color,m.wireframeLinewidth, m.wireframeLinecap,m.wireframeLinejoin):Hb(m.color);else if(m instanceof THREE.MeshDepthMaterial){na=l.near;Oa=l.far;R.r=R.g=R.b=1-gc(a.positionScreen.z,na,Oa);P.r=P.g=P.b=1-gc(d.positionScreen.z,na,Oa);U.r=U.g=U.b=1-gc(e.positionScreen.z,na,Oa);fa.r=(P.r+U.r)*0.5;fa.g=(P.g+U.g)*0.5;fa.b=(P.b+U.b)*0.5;Pa=Ic(R,P,U,fa);mc(B,F,Q,E,aa,T,0,0,1,0,0,1,Pa)}else if(m instanceof THREE.MeshNormalMaterial){S.r=nc(j.normalWorld.x);S.g=nc(j.normalWorld.y);S.b=nc(j.normalWorld.z);m.wireframe===true?Pb(S,m.wireframeLinewidth, -m.wireframeLinecap,m.wireframeLinejoin):Hb(S)}}function v(a,d,e,g,h,k,j,m,o){f.info.render.vertices=f.info.render.vertices+4;f.info.render.faces++;b(m.opacity);c(m.blending);if(m.map!==null||m.envMap!==null){t(a,d,g,0,1,3,j,m,o);t(h,e,k,1,2,3,j,m,o)}else{B=a.positionScreen.x;F=a.positionScreen.y;Q=d.positionScreen.x;E=d.positionScreen.y;aa=e.positionScreen.x;T=e.positionScreen.y;N=g.positionScreen.x;W=g.positionScreen.y;ba=h.positionScreen.x;H=h.positionScreen.y;ca=k.positionScreen.x;ia=k.positionScreen.y; -if(m instanceof THREE.MeshBasicMaterial){x(B,F,Q,E,aa,T,N,W);m.wireframe===true?Pb(m.color,m.wireframeLinewidth,m.wireframeLinecap,m.wireframeLinejoin):Hb(m.color)}else if(m instanceof THREE.MeshLambertMaterial)if(hb===true)if(!m.wireframe&&m.shading==THREE.SmoothShading&&j.vertexNormalsWorld.length==4){R.r=P.r=U.r=fa.r=qa.r;R.g=P.g=U.g=fa.g=qa.g;R.b=P.b=U.b=fa.b=qa.b;n(i,j.v1.positionWorld,j.vertexNormalsWorld[0],R);n(i,j.v2.positionWorld,j.vertexNormalsWorld[1],P);n(i,j.v4.positionWorld,j.vertexNormalsWorld[3], -U);n(i,j.v3.positionWorld,j.vertexNormalsWorld[2],fa);R.r=Math.max(0,Math.min(m.color.r*R.r,1));R.g=Math.max(0,Math.min(m.color.g*R.g,1));R.b=Math.max(0,Math.min(m.color.b*R.b,1));P.r=Math.max(0,Math.min(m.color.r*P.r,1));P.g=Math.max(0,Math.min(m.color.g*P.g,1));P.b=Math.max(0,Math.min(m.color.b*P.b,1));U.r=Math.max(0,Math.min(m.color.r*U.r,1));U.g=Math.max(0,Math.min(m.color.g*U.g,1));U.b=Math.max(0,Math.min(m.color.b*U.b,1));fa.r=Math.max(0,Math.min(m.color.r*fa.r,1));fa.g=Math.max(0,Math.min(m.color.g* -fa.g,1));fa.b=Math.max(0,Math.min(m.color.b*fa.b,1));Pa=Ic(R,P,U,fa);w(B,F,Q,E,N,W);mc(B,F,Q,E,N,W,0,0,1,0,0,1,Pa);w(ba,H,aa,T,ca,ia);mc(ba,H,aa,T,ca,ia,1,0,1,1,0,1,Pa)}else{S.r=qa.r;S.g=qa.g;S.b=qa.b;n(i,j.centroidWorld,j.normalWorld,S);S.r=Math.max(0,Math.min(m.color.r*S.r,1));S.g=Math.max(0,Math.min(m.color.g*S.g,1));S.b=Math.max(0,Math.min(m.color.b*S.b,1));x(B,F,Q,E,aa,T,N,W);m.wireframe===true?Pb(S,m.wireframeLinewidth,m.wireframeLinecap,m.wireframeLinejoin):Hb(S)}else{x(B,F,Q,E,aa,T,N,W);m.wireframe=== -true?Pb(m.color,m.wireframeLinewidth,m.wireframeLinecap,m.wireframeLinejoin):Hb(m.color)}else if(m instanceof THREE.MeshNormalMaterial){S.r=nc(j.normalWorld.x);S.g=nc(j.normalWorld.y);S.b=nc(j.normalWorld.z);x(B,F,Q,E,aa,T,N,W);m.wireframe===true?Pb(S,m.wireframeLinewidth,m.wireframeLinecap,m.wireframeLinejoin):Hb(S)}else if(m instanceof THREE.MeshDepthMaterial){na=l.near;Oa=l.far;R.r=R.g=R.b=1-gc(a.positionScreen.z,na,Oa);P.r=P.g=P.b=1-gc(d.positionScreen.z,na,Oa);U.r=U.g=U.b=1-gc(g.positionScreen.z, -na,Oa);fa.r=fa.g=fa.b=1-gc(e.positionScreen.z,na,Oa);Pa=Ic(R,P,U,fa);w(B,F,Q,E,N,W);mc(B,F,Q,E,N,W,0,0,1,0,0,1,Pa);w(ba,H,aa,T,ca,ia);mc(ba,H,aa,T,ca,ia,1,0,1,1,0,1,Pa)}}}function w(a,b,c,d,e,f){o.beginPath();o.moveTo(a,b);o.lineTo(c,d);o.lineTo(e,f);o.lineTo(a,b)}function x(a,b,c,d,e,f,g,h){o.beginPath();o.moveTo(a,b);o.lineTo(c,d);o.lineTo(e,f);o.lineTo(g,h);o.lineTo(a,b)}function Pb(a,b,c,e){if(C!==b)C=o.lineWidth=b;if(D!==c)D=o.lineCap=c;if(z!==e)z=o.lineJoin=e;d(a.getContextStyle());o.stroke(); -Aa.inflate(b*2)}function Hb(a){e(a.getContextStyle());o.fill()}function kd(a,b,c,d,f,g,h,k,i,j,m,l,n){if(!(n.image===void 0||n.image.width===0)){if(n.needsUpdate===true||ma[n.id]===void 0){var p=n.wrapS==THREE.RepeatWrapping,fc=n.wrapT==THREE.RepeatWrapping;ma[n.id]=o.createPattern(n.image,p===true&&fc===true?"repeat":p===true&&fc===false?"repeat-x":p===false&&fc===true?"repeat-y":"no-repeat");n.needsUpdate=false}e(ma[n.id]);var p=n.offset.x/n.repeat.x,fc=n.offset.y/n.repeat.y,r=n.image.width*n.repeat.x, -q=n.image.height*n.repeat.y,h=(h+p)*r,k=(k+fc)*q,c=c-a,d=d-b,f=f-a,g=g-b,i=(i+p)*r-h,j=(j+fc)*q-k,m=(m+p)*r-h,l=(l+fc)*q-k,p=i*l-m*j;if(p===0){if(Ga[n.id]===void 0){b=document.createElement("canvas");b.width=n.image.width;b.height=n.image.height;b=b.getContext("2d");b.drawImage(n.image,0,0);Ga[n.id]=b.getImageData(0,0,n.image.width,n.image.height).data}b=Ga[n.id];h=(Math.floor(h)+Math.floor(k)*n.image.width)*4;S.setRGB(b[h]/255,b[h+1]/255,b[h+2]/255);Hb(S)}else{p=1/p;n=(l*c-j*f)*p;j=(l*d-j*g)*p;c= -(i*f-m*c)*p;d=(i*g-m*d)*p;a=a-n*h-c*k;h=b-j*h-d*k;o.save();o.transform(n,j,c,d,a,h);o.fill();o.restore()}}}function mc(a,b,c,d,e,f,g,h,k,i,j,m,l){var n,p;n=l.width-1;p=l.height-1;g=g*n;h=h*p;c=c-a;d=d-b;e=e-a;f=f-b;k=k*n-g;i=i*p-h;j=j*n-g;m=m*p-h;p=1/(k*m-j*i);n=(m*c-i*e)*p;i=(m*d-i*f)*p;c=(k*e-j*c)*p;d=(k*f-j*d)*p;a=a-n*g-c*h;b=b-i*g-d*h;o.save();o.transform(n,i,c,d,a,b);o.clip();o.drawImage(l,0,0);o.restore()}function Ic(a,b,c,d){var e=~~(a.r*255),f=~~(a.g*255),a=~~(a.b*255),g=~~(b.r*255),h=~~(b.g* -255),b=~~(b.b*255),i=~~(c.r*255),j=~~(c.g*255),c=~~(c.b*255),m=~~(d.r*255),l=~~(d.g*255),d=~~(d.b*255);Va[0]=e<0?0:e>255?255:e;Va[1]=f<0?0:f>255?255:f;Va[2]=a<0?0:a>255?255:a;Va[4]=g<0?0:g>255?255:g;Va[5]=h<0?0:h>255?255:h;Va[6]=b<0?0:b>255?255:b;Va[8]=i<0?0:i>255?255:i;Va[9]=j<0?0:j>255?255:j;Va[10]=c<0?0:c>255?255:c;Va[12]=m<0?0:m>255?255:m;Va[13]=l<0?0:l>255?255:l;Va[14]=d<0?0:d>255?255:d;Ya.putImageData(Gb,0,0);pb.drawImage(k,0,0);return cb}function gc(a,b,c){a=(a-b)/(c-b);return a*a*(3-2*a)} -function nc(a){a=(a+1)*0.5;return a<0?0:a>1?1:a}function Qb(a,b){var c=b.x-a.x,d=b.y-a.y,e=c*c+d*d;if(e!==0){e=1/Math.sqrt(e);c=c*e;d=d*e;b.x=b.x+c;b.y=b.y+d;a.x=a.x-c;a.y=a.y-d}}var Jc,ld,Ma,ib;this.autoClear===true?this.clear():o.setTransform(1,0,0,-1,p,r);f.info.render.vertices=0;f.info.render.faces=0;g=j.projectScene(a,l,this.sortElements);h=g.elements;i=g.lights;hb=i.length>0;hb===true&&m(i);Jc=0;for(ld=h.length;Jc255?255:e;Va[1]=f<0?0:f>255?255:f;Va[2]=a<0?0:a>255?255:a;Va[4]=g<0?0:g>255?255:g;Va[5]=h<0?0:h>255?255:h;Va[6]=b<0?0:b>255?255:b;Va[8]=i<0?0:i>255?255:i;Va[9]=j<0?0:j>255?255:j;Va[10]=c<0?0:c>255?255:c;Va[12]=m<0?0:m>255?255:m;Va[13]=l<0?0:l>255?255:l;Va[14]=d<0?0:d>255?255:d;Ya.putImageData(Gb,0,0);pb.drawImage(k,0,0);return cb}function gc(a,b, +c){a=(a-b)/(c-b);return a*a*(3-2*a)}function nc(a){a=(a+1)*0.5;return a<0?0:a>1?1:a}function Qb(a,b){var c=b.x-a.x,d=b.y-a.y,e=c*c+d*d;if(e!==0){e=1/Math.sqrt(e);c=c*e;d=d*e;b.x=b.x+c;b.y=b.y+d;a.x=a.x-c;a.y=a.y-d}}var Jc,ld,Ma,ib;this.autoClear===true?this.clear():o.setTransform(1,0,0,-1,p,r);f.info.render.vertices=0;f.info.render.faces=0;g=j.projectScene(a,l,this.sortElements);h=g.elements;i=g.lights;hb=i.length>0;hb===true&&m(i);Jc=0;for(ld=h.length;Jc>1;k=m.height>>1;g=e.scale.x*o;l=e.scale.y*q;h=g*n;j=l*k;$.set(a.x-h,a.y-j,a.x+h,a.y+j);if(la.intersects($)!==false){i.save();i.translate(a.x,a.y);i.rotate(-e.rotation);i.scale(g,-l);i.translate(-n,-k);i.drawImage(m,0,0);i.restore()}}}else if(g instanceof THREE.ParticleCanvasMaterial){h= e.scale.x*o;j=e.scale.y*q;$.set(a.x-h,a.y-j,a.x+h,a.y+j);if(la.intersects($)!==false){d(g.color.getContextStyle());f(g.color.getContextStyle());i.save();i.translate(a.x,a.y);i.rotate(-e.rotation);i.scale(h,j);g.program(i);i.restore()}}}function r(a,e,f,g){b(g.opacity);c(g.blending);i.beginPath();i.moveTo(a.positionScreen.x,a.positionScreen.y);i.lineTo(e.positionScreen.x,e.positionScreen.y);i.closePath();if(g instanceof THREE.LineBasicMaterial){a=g.linewidth;if(A!==a)A=i.lineWidth=a;a=g.linecap;if(y!== a)y=i.lineCap=a;a=g.linejoin;if(F!==a)F=i.lineJoin=a;d(g.color.getContextStyle());i.stroke();$.inflate(g.linewidth*2)}}function u(a,d,f,g,j,l,i,k){e.info.render.vertices=e.info.render.vertices+3;e.info.render.faces++;b(k.opacity);c(k.blending);t=a.positionScreen.x;G=a.positionScreen.y;I=d.positionScreen.x;N=d.positionScreen.y;Q=f.positionScreen.x;S=f.positionScreen.y;x(t,G,I,N,Q,S);if(k instanceof THREE.MeshBasicMaterial)if(k.map!==null){if(k.map.mapping instanceof THREE.UVMapping){ka=i.uvs[0];Fa(t, -G,I,N,Q,S,ka[g].u,ka[g].v,ka[j].u,ka[j].v,ka[l].u,ka[l].v,k.map)}}else if(k.envMap!==null){if(k.envMap.mapping instanceof THREE.SphericalReflectionMapping){a=h.matrixWorldInverse;V.copy(i.vertexNormalsWorld[g]);za=(V.x*a.elements[0]+V.y*a.elements[4]+V.z*a.elements[8])*0.5+0.5;Aa=-(V.x*a.elements[1]+V.y*a.elements[5]+V.z*a.elements[9])*0.5+0.5;V.copy(i.vertexNormalsWorld[j]);Ba=(V.x*a.elements[0]+V.y*a.elements[4]+V.z*a.elements[8])*0.5+0.5;Ca=-(V.x*a.elements[1]+V.y*a.elements[5]+V.z*a.elements[9])* -0.5+0.5;V.copy(i.vertexNormalsWorld[l]);Da=(V.x*a.elements[0]+V.y*a.elements[4]+V.z*a.elements[8])*0.5+0.5;Ea=-(V.x*a.elements[1]+V.y*a.elements[5]+V.z*a.elements[9])*0.5+0.5;Fa(t,G,I,N,Q,S,za,Aa,Ba,Ca,Da,Ea,k.envMap)}}else k.wireframe===true?ga(k.color,k.wireframeLinewidth,k.wireframeLinecap,k.wireframeLinejoin):fa(k.color);else if(k instanceof THREE.MeshLambertMaterial)if(ua===true)if(k.wireframe===false&&k.shading==THREE.SmoothShading&&i.vertexNormalsWorld.length==3){C.r=H.r=K.r=Y.r;C.g=H.g=K.g= +G,I,N,Q,S,ka[g].u,ka[g].v,ka[j].u,ka[j].v,ka[l].u,ka[l].v,k.map)}}else if(k.envMap!==null){if(k.envMap.mapping instanceof THREE.SphericalReflectionMapping){a=h.matrixWorldInverse;V.copy(i.vertexNormalsWorld[g]);za=(V.x*a.elements[0]+V.y*a.elements[4]+V.z*a.elements[8])*0.5+0.5;Aa=(V.x*a.elements[1]+V.y*a.elements[5]+V.z*a.elements[9])*0.5+0.5;V.copy(i.vertexNormalsWorld[j]);Ba=(V.x*a.elements[0]+V.y*a.elements[4]+V.z*a.elements[8])*0.5+0.5;Ca=(V.x*a.elements[1]+V.y*a.elements[5]+V.z*a.elements[9])* +0.5+0.5;V.copy(i.vertexNormalsWorld[l]);Da=(V.x*a.elements[0]+V.y*a.elements[4]+V.z*a.elements[8])*0.5+0.5;Ea=(V.x*a.elements[1]+V.y*a.elements[5]+V.z*a.elements[9])*0.5+0.5;Fa(t,G,I,N,Q,S,za,Aa,Ba,Ca,Da,Ea,k.envMap)}}else k.wireframe===true?ga(k.color,k.wireframeLinewidth,k.wireframeLinecap,k.wireframeLinejoin):fa(k.color);else if(k instanceof THREE.MeshLambertMaterial)if(ua===true)if(k.wireframe===false&&k.shading==THREE.SmoothShading&&i.vertexNormalsWorld.length==3){C.r=H.r=K.r=Y.r;C.g=H.g=K.g= Y.g;C.b=H.b=K.b=Y.b;n(m,i.v1.positionWorld,i.vertexNormalsWorld[0],C);n(m,i.v2.positionWorld,i.vertexNormalsWorld[1],H);n(m,i.v3.positionWorld,i.vertexNormalsWorld[2],K);C.r=Math.max(0,Math.min(k.color.r*C.r,1));C.g=Math.max(0,Math.min(k.color.g*C.g,1));C.b=Math.max(0,Math.min(k.color.b*C.b,1));H.r=Math.max(0,Math.min(k.color.r*H.r,1));H.g=Math.max(0,Math.min(k.color.g*H.g,1));H.b=Math.max(0,Math.min(k.color.b*H.b,1));K.r=Math.max(0,Math.min(k.color.r*K.r,1));K.g=Math.max(0,Math.min(k.color.g*K.g, 1));K.b=Math.max(0,Math.min(k.color.b*K.b,1));R.r=(H.r+K.r)*0.5;R.g=(H.g+K.g)*0.5;R.b=(H.b+K.b)*0.5;da=wa(C,H,K,R);pa(t,G,I,N,Q,S,0,0,1,0,0,1,da)}else{E.r=Y.r;E.g=Y.g;E.b=Y.b;n(m,i.centroidWorld,i.normalWorld,E);E.r=Math.max(0,Math.min(k.color.r*E.r,1));E.g=Math.max(0,Math.min(k.color.g*E.g,1));E.b=Math.max(0,Math.min(k.color.b*E.b,1));k.wireframe===true?ga(E,k.wireframeLinewidth,k.wireframeLinecap,k.wireframeLinejoin):fa(E)}else k.wireframe===true?ga(k.color,k.wireframeLinewidth,k.wireframeLinecap, k.wireframeLinejoin):fa(k.color);else if(k instanceof THREE.MeshDepthMaterial){X=h.near;ea=h.far;C.r=C.g=C.b=1-oa(a.positionScreen.z,X,ea);H.r=H.g=H.b=1-oa(d.positionScreen.z,X,ea);K.r=K.g=K.b=1-oa(f.positionScreen.z,X,ea);R.r=(H.r+K.r)*0.5;R.g=(H.g+K.g)*0.5;R.b=(H.b+K.b)*0.5;da=wa(C,H,K,R);pa(t,G,I,N,Q,S,0,0,1,0,0,1,da)}else if(k instanceof THREE.MeshNormalMaterial){E.r=qa(i.normalWorld.x);E.g=qa(i.normalWorld.y);E.b=qa(i.normalWorld.z);k.wireframe===true?ga(E,k.wireframeLinewidth,k.wireframeLinecap, -k.wireframeLinejoin):fa(E)}}function v(a,d,f,g,j,l,k,i,o){e.info.render.vertices=e.info.render.vertices+4;e.info.render.faces++;b(i.opacity);c(i.blending);if(i.map!==null||i.envMap!==null){u(a,d,g,0,1,3,k,i,o);u(j,f,l,1,2,3,k,i,o)}else{t=a.positionScreen.x;G=a.positionScreen.y;I=d.positionScreen.x;N=d.positionScreen.y;Q=f.positionScreen.x;S=f.positionScreen.y;z=g.positionScreen.x;P=g.positionScreen.y;Z=j.positionScreen.x;O=j.positionScreen.y;U=l.positionScreen.x;T=l.positionScreen.y;if(i instanceof -THREE.MeshBasicMaterial){B(t,G,I,N,Q,S,z,P);i.wireframe===true?ga(i.color,i.wireframeLinewidth,i.wireframeLinecap,i.wireframeLinejoin):fa(i.color)}else if(i instanceof THREE.MeshLambertMaterial)if(ua===true)if(!i.wireframe&&i.shading==THREE.SmoothShading&&k.vertexNormalsWorld.length==4){C.r=H.r=K.r=R.r=Y.r;C.g=H.g=K.g=R.g=Y.g;C.b=H.b=K.b=R.b=Y.b;n(m,k.v1.positionWorld,k.vertexNormalsWorld[0],C);n(m,k.v2.positionWorld,k.vertexNormalsWorld[1],H);n(m,k.v4.positionWorld,k.vertexNormalsWorld[3],K);n(m, -k.v3.positionWorld,k.vertexNormalsWorld[2],R);C.r=Math.max(0,Math.min(i.color.r*C.r,1));C.g=Math.max(0,Math.min(i.color.g*C.g,1));C.b=Math.max(0,Math.min(i.color.b*C.b,1));H.r=Math.max(0,Math.min(i.color.r*H.r,1));H.g=Math.max(0,Math.min(i.color.g*H.g,1));H.b=Math.max(0,Math.min(i.color.b*H.b,1));K.r=Math.max(0,Math.min(i.color.r*K.r,1));K.g=Math.max(0,Math.min(i.color.g*K.g,1));K.b=Math.max(0,Math.min(i.color.b*K.b,1));R.r=Math.max(0,Math.min(i.color.r*R.r,1));R.g=Math.max(0,Math.min(i.color.g*R.g, -1));R.b=Math.max(0,Math.min(i.color.b*R.b,1));da=wa(C,H,K,R);x(t,G,I,N,z,P);pa(t,G,I,N,z,P,0,0,1,0,0,1,da);x(Z,O,Q,S,U,T);pa(Z,O,Q,S,U,T,1,0,1,1,0,1,da)}else{E.r=Y.r;E.g=Y.g;E.b=Y.b;n(m,k.centroidWorld,k.normalWorld,E);E.r=Math.max(0,Math.min(i.color.r*E.r,1));E.g=Math.max(0,Math.min(i.color.g*E.g,1));E.b=Math.max(0,Math.min(i.color.b*E.b,1));B(t,G,I,N,Q,S,z,P);i.wireframe===true?ga(E,i.wireframeLinewidth,i.wireframeLinecap,i.wireframeLinejoin):fa(E)}else{B(t,G,I,N,Q,S,z,P);i.wireframe===true?ga(i.color, -i.wireframeLinewidth,i.wireframeLinecap,i.wireframeLinejoin):fa(i.color)}else if(i instanceof THREE.MeshNormalMaterial){E.r=qa(k.normalWorld.x);E.g=qa(k.normalWorld.y);E.b=qa(k.normalWorld.z);B(t,G,I,N,Q,S,z,P);i.wireframe===true?ga(E,i.wireframeLinewidth,i.wireframeLinecap,i.wireframeLinejoin):fa(E)}else if(i instanceof THREE.MeshDepthMaterial){X=h.near;ea=h.far;C.r=C.g=C.b=1-oa(a.positionScreen.z,X,ea);H.r=H.g=H.b=1-oa(d.positionScreen.z,X,ea);K.r=K.g=K.b=1-oa(g.positionScreen.z,X,ea);R.r=R.g=R.b= -1-oa(f.positionScreen.z,X,ea);da=wa(C,H,K,R);x(t,G,I,N,z,P);pa(t,G,I,N,z,P,0,0,1,0,0,1,da);x(Z,O,Q,S,U,T);pa(Z,O,Q,S,U,T,1,0,1,1,0,1,da)}}}function x(a,b,c,d,e,f){i.beginPath();i.moveTo(a,b);i.lineTo(c,d);i.lineTo(e,f);i.lineTo(a,b)}function B(a,b,c,d,e,f,g,h){i.beginPath();i.moveTo(a,b);i.lineTo(c,d);i.lineTo(e,f);i.lineTo(g,h);i.lineTo(a,b)}function ga(a,b,c,e){if(A!==b)A=i.lineWidth=b;if(y!==c)y=i.lineCap=c;if(F!==e)F=i.lineJoin=e;d(a.getContextStyle());i.stroke();$.inflate(b*2)}function fa(a){f(a.getContextStyle()); -i.fill()}function Fa(a,b,c,d,e,g,h,j,k,l,m,n,o){if(!(o.image===void 0||o.image.width===0)){if(o.needsUpdate===true||ia[o.id]===void 0){var p=o.wrapS==THREE.RepeatWrapping,q=o.wrapT==THREE.RepeatWrapping;ia[o.id]=i.createPattern(o.image,p===true&&q===true?"repeat":p===true&&q===false?"repeat-x":p===false&&q===true?"repeat-y":"no-repeat");o.needsUpdate=false}f(ia[o.id]);var p=o.offset.x/o.repeat.x,q=o.offset.y/o.repeat.y,r=o.image.width*o.repeat.x,s=o.image.height*o.repeat.y,h=(h+p)*r,j=(j+q)*s,c=c- -a,d=d-b,e=e-a,g=g-b,k=(k+p)*r-h,l=(l+q)*s-j,m=(m+p)*r-h,n=(n+q)*s-j,p=k*n-m*l;if(p===0){if(ja[o.id]===void 0){b=document.createElement("canvas");b.width=o.image.width;b.height=o.image.height;b=b.getContext("2d");b.drawImage(o.image,0,0);ja[o.id]=b.getImageData(0,0,o.image.width,o.image.height).data}b=ja[o.id];h=(Math.floor(h)+Math.floor(j)*o.image.width)*4;E.setRGB(b[h]/255,b[h+1]/255,b[h+2]/255);fa(E)}else{p=1/p;o=(n*c-l*e)*p;l=(n*d-l*g)*p;c=(k*e-m*c)*p;d=(k*g-m*d)*p;a=a-o*h-c*j;h=b-l*h-d*j;i.save(); -i.transform(o,l,c,d,a,h);i.fill();i.restore()}}}function pa(a,b,c,d,e,f,g,h,j,k,l,m,n){var o,p;o=n.width-1;p=n.height-1;g=g*o;h=h*p;c=c-a;d=d-b;e=e-a;f=f-b;j=j*o-g;k=k*p-h;l=l*o-g;m=m*p-h;p=1/(j*m-l*k);o=(m*c-k*e)*p;k=(m*d-k*f)*p;c=(j*e-l*c)*p;d=(j*f-l*d)*p;a=a-o*g-c*h;b=b-k*g-d*h;i.save();i.transform(o,k,c,d,a,b);i.clip();i.drawImage(n,0,0);i.restore()}function wa(a,b,c,d){var e=~~(a.r*255),f=~~(a.g*255),a=~~(a.b*255),g=~~(b.r*255),h=~~(b.g*255),b=~~(b.b*255),i=~~(c.r*255),j=~~(c.g*255),c=~~(c.b* -255),k=~~(d.r*255),l=~~(d.g*255),d=~~(d.b*255);ba[0]=e<0?0:e>255?255:e;ba[1]=f<0?0:f>255?255:f;ba[2]=a<0?0:a>255?255:a;ba[4]=g<0?0:g>255?255:g;ba[5]=h<0?0:h>255?255:h;ba[6]=b<0?0:b>255?255:b;ba[8]=i<0?0:i>255?255:i;ba[9]=j<0?0:j>255?255:j;ba[10]=c<0?0:c>255?255:c;ba[12]=k<0?0:k>255?255:k;ba[13]=l<0?0:l>255?255:l;ba[14]=d<0?0:d>255?255:d;sa.putImageData(ya,0,0);va.drawImage(ra,0,0);return ta}function oa(a,b,c){a=(a-b)/(c-b);return a*a*(3-2*a)}function qa(a){a=(a+1)*0.5;return a<0?0:a>1?1:a}function ha(a, -b){var c=b.x-a.x,d=b.y-a.y,e=c*c+d*d;if(e!==0){e=1/Math.sqrt(e);c=c*e;d=d*e;b.x=b.x+c;b.y=b.y+d;a.x=a.x-c;a.y=a.y-d}}var xa,Ga,W,ca;this.autoClear===true?this.clear():i.setTransform(1,0,0,-1,o,q);e.info.render.vertices=0;e.info.render.faces=0;g=l.projectScene(a,h,this.sortElements);j=g.elements;m=g.lights;ua=m.length>0;ua===true&&k(m);xa=0;for(Ga=j.length;xa255?255:e;ba[1]=f<0?0:f>255?255:f;ba[2]=a<0?0:a>255?255:a;ba[4]=g<0?0:g>255?255:g;ba[5]=h<0?0:h>255?255:h;ba[6]=b<0?0:b>255?255:b;ba[8]=i<0?0:i>255?255:i;ba[9]=j<0?0:j>255?255:j;ba[10]=c<0?0:c>255?255:c;ba[12]=k<0?0:k>255?255:k;ba[13]=l<0?0:l>255?255:l;ba[14]=d<0?0:d>255?255:d;sa.putImageData(ya,0,0);va.drawImage(ra,0,0);return ta}function oa(a,b,c){a=(a-b)/(c-b);return a* +a*(3-2*a)}function qa(a){a=(a+1)*0.5;return a<0?0:a>1?1:a}function ha(a,b){var c=b.x-a.x,d=b.y-a.y,e=c*c+d*d;if(e!==0){e=1/Math.sqrt(e);c=c*e;d=d*e;b.x=b.x+c;b.y=b.y+d;a.x=a.x-c;a.y=a.y-d}}var xa,Ga,W,ca;this.autoClear===true?this.clear():i.setTransform(1,0,0,-1,o,q);e.info.render.vertices=0;e.info.render.faces=0;g=l.projectScene(a,h,this.sortElements);j=g.elements;m=g.lights;ua=m.length>0;ua===true&&k(m);xa=0;for(Ga=j.length;xa