|
@@ -5,7 +5,7 @@ self.clearTimeout&&(self.cancelAnimationFrame=function(a){self.clearTimeout(a)})
|
|
|
THREE.NormalBlending=1;THREE.AdditiveBlending=2;THREE.SubtractiveBlending=3;THREE.MultiplyBlending=4;THREE.CustomBlending=5;THREE.AddEquation=100;THREE.SubtractEquation=101;THREE.ReverseSubtractEquation=102;THREE.ZeroFactor=200;THREE.OneFactor=201;THREE.SrcColorFactor=202;THREE.OneMinusSrcColorFactor=203;THREE.SrcAlphaFactor=204;THREE.OneMinusSrcAlphaFactor=205;THREE.DstAlphaFactor=206;THREE.OneMinusDstAlphaFactor=207;THREE.DstColorFactor=208;THREE.OneMinusDstColorFactor=209;
|
|
|
THREE.SrcAlphaSaturateFactor=210;THREE.MultiplyOperation=0;THREE.MixOperation=1;THREE.AddOperation=2;THREE.UVMapping=function(){};THREE.CubeReflectionMapping=function(){};THREE.CubeRefractionMapping=function(){};THREE.SphericalReflectionMapping=function(){};THREE.SphericalRefractionMapping=function(){};THREE.RepeatWrapping=1E3;THREE.ClampToEdgeWrapping=1001;THREE.MirroredRepeatWrapping=1002;THREE.NearestFilter=1003;THREE.NearestMipMapNearestFilter=1004;THREE.NearestMipMapLinearFilter=1005;
|
|
|
THREE.LinearFilter=1006;THREE.LinearMipMapNearestFilter=1007;THREE.LinearMipMapLinearFilter=1008;THREE.UnsignedByteType=1009;THREE.ByteType=1010;THREE.ShortType=1011;THREE.UnsignedShortType=1012;THREE.IntType=1013;THREE.UnsignedIntType=1014;THREE.FloatType=1015;THREE.UnsignedShort4444Type=1016;THREE.UnsignedShort5551Type=1017;THREE.UnsignedShort565Type=1018;THREE.AlphaFormat=1019;THREE.RGBFormat=1020;THREE.RGBAFormat=1021;THREE.LuminanceFormat=1022;THREE.LuminanceAlphaFormat=1023;
|
|
|
-THREE.RGB_S3TC_DXT1_Format=2001;THREE.RGBA_S3TC_DXT1_Format=2002;THREE.RGBA_S3TC_DXT3_Format=2003;THREE.RGBA_S3TC_DXT5_Format=2004;THREE.Color=function(a){void 0!==a&&this.set(a);return this};
|
|
|
+THREE.RGB_S3TC_DXT1_Format=2001;THREE.RGBA_S3TC_DXT1_Format=2002;THREE.RGBA_S3TC_DXT3_Format=2003;THREE.RGBA_S3TC_DXT5_Format=2004;THREE.Color=function(a){return 3===arguments.length?this.setRGB(arguments[0],arguments[1],arguments[2]):this.set(a)};
|
|
|
THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,set:function(a){a instanceof THREE.Color?this.copy(a):"number"===typeof a?this.setHex(a):"string"===typeof a&&this.setStyle(a);return this},setHex:function(a){a=Math.floor(a);this.r=(a>>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSL:function(a,b,c){if(0===b)this.r=this.g=this.b=c;else{var d=function(a,b,c){0>c&&(c+=1);1<c&&(c-=1);return c<1/6?a+6*(b-a)*
|
|
|
c:0.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a},b=0.5>=c?c*(1+b):c+b-c*b,c=2*c-b;this.r=d(c,b,a+1/3);this.g=d(c,b,a);this.b=d(c,b,a-1/3)}return this},setStyle:function(a){if(/^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.test(a))return a=/^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.exec(a),this.r=Math.min(255,parseInt(a[1],10))/255,this.g=Math.min(255,parseInt(a[2],10))/255,this.b=Math.min(255,parseInt(a[3],10))/255,this;if(/^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.test(a))return a=/^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.exec(a),this.r=
|
|
|
Math.min(100,parseInt(a[1],10))/100,this.g=Math.min(100,parseInt(a[2],10))/100,this.b=Math.min(100,parseInt(a[3],10))/100,this;if(/^\#([0-9a-f]{6})$/i.test(a))return a=/^\#([0-9a-f]{6})$/i.exec(a),this.setHex(parseInt(a[1],16)),this;if(/^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test(a))return a=/^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(a),this.setHex(parseInt(a[1]+a[1]+a[2]+a[2]+a[3]+a[3],16)),this;if(/^(\w+)$/i.test(a))return this.setHex(THREE.ColorKeywords[a]),this},copy:function(a){this.r=a.r;this.g=
|
|
@@ -162,17 +162,17 @@ b){for(var c=0,d=this.children.length;c<d;c++){var e=this.children[c];if(e.name=
|
|
|
this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(a){!0===this.matrixAutoUpdate&&this.updateMatrix();if(!0===this.matrixWorldNeedsUpdate||!0===a)void 0===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,a=!0;for(var b=0,c=this.children.length;b<c;b++)this.children[b].updateMatrixWorld(a)},clone:function(a,b){void 0===a&&(a=new THREE.Object3D);void 0===b&&(b=!0);
|
|
|
a.name=this.name;a.up.copy(this.up);a.position.copy(this.position);a.quaternion.copy(this.quaternion);a.scale.copy(this.scale);a.renderDepth=this.renderDepth;a.rotationAutoUpdate=this.rotationAutoUpdate;a.matrix.copy(this.matrix);a.matrixWorld.copy(this.matrixWorld);a.matrixAutoUpdate=this.matrixAutoUpdate;a.matrixWorldNeedsUpdate=this.matrixWorldNeedsUpdate;a.visible=this.visible;a.castShadow=this.castShadow;a.receiveShadow=this.receiveShadow;a.frustumCulled=this.frustumCulled;a.userData=JSON.parse(JSON.stringify(this.userData));
|
|
|
if(!0===b)for(var c=0;c<this.children.length;c++)a.add(this.children[c].clone());return a}};THREE.EventDispatcher.prototype.apply(THREE.Object3D.prototype);THREE.Object3DIdCount=0;THREE.Projector=function(){function a(){if(i===m){var a=new THREE.RenderableVertex;k.push(a);m++;i++;return a}return k[i++]}function b(a,b){return a.z!==b.z?b.z-a.z:a.id!==b.id?a.id-b.id:0}function c(a,b){var c=0,d=1,e=a.z+a.w,f=b.z+b.w,h=-a.z+a.w,g=-b.z+b.w;if(0<=e&&0<=f&&0<=h&&0<=g)return!0;if(0>e&&0>f||0>h&&0>g)return!1;0>e?c=Math.max(c,e/(e-f)):0>f&&(d=Math.min(d,e/(e-f)));0>h?c=Math.max(c,h/(h-g)):0>g&&(d=Math.min(d,h/(h-g)));if(d<c)return!1;a.lerp(b,c);b.lerp(a,1-d);return!0}var d,e,f=[],h=
|
|
|
-0,g,i,k=[],m=0,l,p,s=[],t=0,n,q,u=[],r=0,v,y,D=[],L=0,B={objects:[],sprites:[],lights:[],elements:[]},I=new THREE.Vector3,w=new THREE.Vector3,G=new THREE.Vector3,N=new THREE.Vector3,x=new THREE.Vector4,E=new THREE.Box3(new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,1,1)),A=new THREE.Box3,z=Array(3),C=new THREE.Matrix4,M=new THREE.Matrix4,F,Z=new THREE.Matrix4,ea=new THREE.Matrix3,Ba=new THREE.Matrix3,H=new THREE.Vector3,V=new THREE.Frustum,da=new THREE.Vector4,ia=new THREE.Vector4;this.projectVector=
|
|
|
+0,g,i,k=[],m=0,l,p,s=[],t=0,n,q,u=[],r=0,v,y,D=[],L=0,B={objects:[],sprites:[],lights:[],elements:[]},I=new THREE.Vector3,w=new THREE.Vector3,G=new THREE.Vector3,N=new THREE.Vector3,x=new THREE.Vector4,E=new THREE.Box3(new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,1,1)),A=new THREE.Box3,z=Array(3),C=new THREE.Matrix4,M=new THREE.Matrix4,F,$=new THREE.Matrix4,ea=new THREE.Matrix3,Ba=new THREE.Matrix3,H=new THREE.Vector3,X=new THREE.Frustum,da=new THREE.Vector4,ia=new THREE.Vector4;this.projectVector=
|
|
|
function(a,b){b.matrixWorldInverse.getInverse(b.matrixWorld);M.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);return a.applyProjection(M)};var K=new THREE.Matrix4;this.unprojectVector=function(a,b){K.getInverse(b.projectionMatrix);M.multiplyMatrices(b.matrixWorld,K);return a.applyProjection(M)};this.pickingRay=function(a,b){a.z=-1;var c=new THREE.Vector3(a.x,a.y,1);this.unprojectVector(a,b);this.unprojectVector(c,b);c.sub(a).normalize();return new THREE.Raycaster(a,c)};var P=function(a){if(e===
|
|
|
h){var b=new THREE.RenderableObject;f.push(b);h++;e++;d=b}else d=f[e++];d.id=a.id;d.object=a;null!==a.renderDepth?d.z=a.renderDepth:(N.setFromMatrixPosition(a.matrixWorld),N.applyProjection(M),d.z=N.z);return d},ja=function(a){var b=a.positionWorld,c=a.positionScreen;b.copy(a.position).applyMatrix4(F);c.copy(b).applyMatrix4(M);b=1/c.w;c.x*=b;c.y*=b;c.z*=b;a.visible=-1<=c.x&&1>=c.x&&-1<=c.y&&1>=c.y&&-1<=c.z&&1>=c.z},Fa=function(a){if(!1!==a.visible){a instanceof THREE.Light?B.lights.push(a):a instanceof
|
|
|
-THREE.Mesh||a instanceof THREE.Line?(!1===a.frustumCulled||!0===V.intersectsObject(a))&&B.objects.push(P(a)):a instanceof THREE.Sprite&&B.sprites.push(P(a));for(var b=0,c=a.children.length;b<c;b++)Fa(a.children[b])}};this.projectScene=function(d,f,h,m){var K=!1,N,P,T,U,Ia,$,fa,ua,Ma;y=q=p=0;B.elements.length=0;!0===d.autoUpdate&&d.updateMatrixWorld();void 0===f.parent&&f.updateMatrixWorld();C.copy(f.matrixWorldInverse.getInverse(f.matrixWorld));M.multiplyMatrices(f.projectionMatrix,C);Ba.getNormalMatrix(C);
|
|
|
-V.setFromMatrix(M);e=0;B.objects.length=0;B.sprites.length=0;B.lights.length=0;Fa(d);!0===h&&B.objects.sort(b);for(var h=0,xa=B.objects.length;h<xa;h++)if(d=B.objects[h].object,F=d.matrixWorld,i=0,d instanceof THREE.Mesh){N=d.geometry;P=N.vertices;T=N.faces;Ia=N.faceVertexUvs;ea.getNormalMatrix(F);ua=d.material instanceof THREE.MeshFaceMaterial;Ma=!0===ua?d.material:null;for(var ma=0,ka=P.length;ma<ka;ma++)g=a(),g.position.copy(P[ma]),ja(g);ma=0;for(ka=T.length;ma<ka;ma++){P=T[ma];var Ja=!0===ua?
|
|
|
-Ma.materials[P.materialIndex]:d.material;if(void 0!==Ja){var Ga=Ja.side;U=k[P.a];$=k[P.b];fa=k[P.c];if(!0===Ja.morphTargets){var K=N.morphTargets,Aa=d.morphTargetInfluences,Na=U.position,Oa=$.position,Ka=fa.position;I.set(0,0,0);w.set(0,0,0);G.set(0,0,0);for(var Qa=0,La=K.length;Qa<La;Qa++){var S=Aa[Qa];if(0!==S){var oa=K[Qa].vertices;I.x+=(oa[P.a].x-Na.x)*S;I.y+=(oa[P.a].y-Na.y)*S;I.z+=(oa[P.a].z-Na.z)*S;w.x+=(oa[P.b].x-Oa.x)*S;w.y+=(oa[P.b].y-Oa.y)*S;w.z+=(oa[P.b].z-Oa.z)*S;G.x+=(oa[P.c].x-Ka.x)*
|
|
|
-S;G.y+=(oa[P.c].y-Ka.y)*S;G.z+=(oa[P.c].z-Ka.z)*S}}U.position.add(I);$.position.add(w);fa.position.add(G);ja(U);ja($);ja(fa)}z[0]=U.positionScreen;z[1]=$.positionScreen;z[2]=fa.positionScreen;if(!0===U.visible||!0===$.visible||!0===fa.visible||E.isIntersectionBox(A.setFromPoints(z)))if(K=0>(fa.positionScreen.x-U.positionScreen.x)*($.positionScreen.y-U.positionScreen.y)-(fa.positionScreen.y-U.positionScreen.y)*($.positionScreen.x-U.positionScreen.x),Ga===THREE.DoubleSide||K===(Ga===THREE.FrontSide)){p===
|
|
|
-t?(Aa=new THREE.RenderableFace3,s.push(Aa),t++,p++,l=Aa):l=s[p++];l.id=d.id;l.v1.copy(U);l.v2.copy($);l.v3.copy(fa);l.normalModel.copy(P.normal);!1===K&&(Ga===THREE.BackSide||Ga===THREE.DoubleSide)&&l.normalModel.negate();l.normalModel.applyMatrix3(ea).normalize();l.normalModelView.copy(l.normalModel).applyMatrix3(Ba);l.centroidModel.copy(P.centroid).applyMatrix4(F);U=P.vertexNormals;$=0;for(fa=Math.min(U.length,3);$<fa;$++)Aa=l.vertexNormalsModel[$],Aa.copy(U[$]),!1===K&&(Ga===THREE.BackSide||Ga===
|
|
|
-THREE.DoubleSide)&&Aa.negate(),Aa.applyMatrix3(ea).normalize(),l.vertexNormalsModelView[$].copy(Aa).applyMatrix3(Ba);l.vertexNormalsLength=U.length;$=0;for(Ga=Math.min(Ia.length,3);$<Ga;$++)if(U=Ia[$][ma],void 0!==U){fa=0;for(K=U.length;fa<K;fa++)l.uvs[$][fa]=U[fa]}l.color=P.color;l.material=Ja;H.copy(l.centroidModel).applyProjection(M);l.z=H.z;B.elements.push(l)}}}}else if(d instanceof THREE.Line){Z.multiplyMatrices(M,F);P=d.geometry.vertices;U=a();U.positionScreen.copy(P[0]).applyMatrix4(Z);N=d.type===
|
|
|
-THREE.LinePieces?2:1;ma=1;for(ka=P.length;ma<ka;ma++)U=a(),U.positionScreen.copy(P[ma]).applyMatrix4(Z),0<(ma+1)%N||($=k[i-2],da.copy(U.positionScreen),ia.copy($.positionScreen),!0===c(da,ia)&&(da.multiplyScalar(1/da.w),ia.multiplyScalar(1/ia.w),q===r?(T=new THREE.RenderableLine,u.push(T),r++,q++,n=T):n=u[q++],n.id=d.id,n.v1.positionScreen.copy(da),n.v2.positionScreen.copy(ia),n.z=Math.max(da.z,ia.z),n.material=d.material,d.material.vertexColors===THREE.VertexColors&&(n.vertexColors[0].copy(d.geometry.colors[ma]),
|
|
|
-n.vertexColors[1].copy(d.geometry.colors[ma-1])),B.elements.push(n)))}h=0;for(xa=B.sprites.length;h<xa;h++)d=B.sprites[h].object,F=d.matrixWorld,x.set(F.elements[12],F.elements[13],F.elements[14],1),x.applyMatrix4(M),N=1/x.w,x.z*=N,-1<=x.z&&1>=x.z&&(y===L?(T=new THREE.RenderableSprite,D.push(T),L++,y++,v=T):v=D[y++],v.id=d.id,v.x=x.x*N,v.y=x.y*N,v.z=x.z,v.object=d,v.rotation=d.rotation,v.scale.x=d.scale.x*Math.abs(v.x-(x.x+f.projectionMatrix.elements[0])/(x.w+f.projectionMatrix.elements[12])),v.scale.y=
|
|
|
+THREE.Mesh||a instanceof THREE.Line?(!1===a.frustumCulled||!0===X.intersectsObject(a))&&B.objects.push(P(a)):a instanceof THREE.Sprite&&B.sprites.push(P(a));for(var b=0,c=a.children.length;b<c;b++)Fa(a.children[b])}};this.projectScene=function(d,f,h,m){var K=!1,N,P,S,U,Ia,T,fa,Ja,Ma;y=q=p=0;B.elements.length=0;!0===d.autoUpdate&&d.updateMatrixWorld();void 0===f.parent&&f.updateMatrixWorld();C.copy(f.matrixWorldInverse.getInverse(f.matrixWorld));M.multiplyMatrices(f.projectionMatrix,C);Ba.getNormalMatrix(C);
|
|
|
+X.setFromMatrix(M);e=0;B.objects.length=0;B.sprites.length=0;B.lights.length=0;Fa(d);!0===h&&B.objects.sort(b);for(var h=0,xa=B.objects.length;h<xa;h++)if(d=B.objects[h].object,F=d.matrixWorld,i=0,d instanceof THREE.Mesh){N=d.geometry;P=N.vertices;S=N.faces;Ia=N.faceVertexUvs;ea.getNormalMatrix(F);Ja=d.material instanceof THREE.MeshFaceMaterial;Ma=!0===Ja?d.material:null;for(var ma=0,ka=P.length;ma<ka;ma++)g=a(),g.position.copy(P[ma]),ja(g);ma=0;for(ka=S.length;ma<ka;ma++){P=S[ma];var Ka=!0===Ja?
|
|
|
+Ma.materials[P.materialIndex]:d.material;if(void 0!==Ka){var Ga=Ka.side;U=k[P.a];T=k[P.b];fa=k[P.c];if(!0===Ka.morphTargets){var K=N.morphTargets,Aa=d.morphTargetInfluences,Na=U.position,Oa=T.position,La=fa.position;I.set(0,0,0);w.set(0,0,0);G.set(0,0,0);for(var Qa=0,sa=K.length;Qa<sa;Qa++){var V=Aa[Qa];if(0!==V){var oa=K[Qa].vertices;I.x+=(oa[P.a].x-Na.x)*V;I.y+=(oa[P.a].y-Na.y)*V;I.z+=(oa[P.a].z-Na.z)*V;w.x+=(oa[P.b].x-Oa.x)*V;w.y+=(oa[P.b].y-Oa.y)*V;w.z+=(oa[P.b].z-Oa.z)*V;G.x+=(oa[P.c].x-La.x)*
|
|
|
+V;G.y+=(oa[P.c].y-La.y)*V;G.z+=(oa[P.c].z-La.z)*V}}U.position.add(I);T.position.add(w);fa.position.add(G);ja(U);ja(T);ja(fa)}z[0]=U.positionScreen;z[1]=T.positionScreen;z[2]=fa.positionScreen;if(!0===U.visible||!0===T.visible||!0===fa.visible||E.isIntersectionBox(A.setFromPoints(z)))if(K=0>(fa.positionScreen.x-U.positionScreen.x)*(T.positionScreen.y-U.positionScreen.y)-(fa.positionScreen.y-U.positionScreen.y)*(T.positionScreen.x-U.positionScreen.x),Ga===THREE.DoubleSide||K===(Ga===THREE.FrontSide)){p===
|
|
|
+t?(Aa=new THREE.RenderableFace3,s.push(Aa),t++,p++,l=Aa):l=s[p++];l.id=d.id;l.v1.copy(U);l.v2.copy(T);l.v3.copy(fa);l.normalModel.copy(P.normal);!1===K&&(Ga===THREE.BackSide||Ga===THREE.DoubleSide)&&l.normalModel.negate();l.normalModel.applyMatrix3(ea).normalize();l.normalModelView.copy(l.normalModel).applyMatrix3(Ba);l.centroidModel.copy(P.centroid).applyMatrix4(F);U=P.vertexNormals;T=0;for(fa=Math.min(U.length,3);T<fa;T++)Aa=l.vertexNormalsModel[T],Aa.copy(U[T]),!1===K&&(Ga===THREE.BackSide||Ga===
|
|
|
+THREE.DoubleSide)&&Aa.negate(),Aa.applyMatrix3(ea).normalize(),l.vertexNormalsModelView[T].copy(Aa).applyMatrix3(Ba);l.vertexNormalsLength=U.length;T=0;for(Ga=Math.min(Ia.length,3);T<Ga;T++)if(U=Ia[T][ma],void 0!==U){fa=0;for(K=U.length;fa<K;fa++)l.uvs[T][fa]=U[fa]}l.color=P.color;l.material=Ka;H.copy(l.centroidModel).applyProjection(M);l.z=H.z;B.elements.push(l)}}}}else if(d instanceof THREE.Line){$.multiplyMatrices(M,F);P=d.geometry.vertices;U=a();U.positionScreen.copy(P[0]).applyMatrix4($);N=d.type===
|
|
|
+THREE.LinePieces?2:1;ma=1;for(ka=P.length;ma<ka;ma++)U=a(),U.positionScreen.copy(P[ma]).applyMatrix4($),0<(ma+1)%N||(T=k[i-2],da.copy(U.positionScreen),ia.copy(T.positionScreen),!0===c(da,ia)&&(da.multiplyScalar(1/da.w),ia.multiplyScalar(1/ia.w),q===r?(S=new THREE.RenderableLine,u.push(S),r++,q++,n=S):n=u[q++],n.id=d.id,n.v1.positionScreen.copy(da),n.v2.positionScreen.copy(ia),n.z=Math.max(da.z,ia.z),n.material=d.material,d.material.vertexColors===THREE.VertexColors&&(n.vertexColors[0].copy(d.geometry.colors[ma]),
|
|
|
+n.vertexColors[1].copy(d.geometry.colors[ma-1])),B.elements.push(n)))}h=0;for(xa=B.sprites.length;h<xa;h++)d=B.sprites[h].object,F=d.matrixWorld,x.set(F.elements[12],F.elements[13],F.elements[14],1),x.applyMatrix4(M),N=1/x.w,x.z*=N,-1<=x.z&&1>=x.z&&(y===L?(S=new THREE.RenderableSprite,D.push(S),L++,y++,v=S):v=D[y++],v.id=d.id,v.x=x.x*N,v.y=x.y*N,v.z=x.z,v.object=d,v.rotation=d.rotation,v.scale.x=d.scale.x*Math.abs(v.x-(x.x+f.projectionMatrix.elements[0])/(x.w+f.projectionMatrix.elements[12])),v.scale.y=
|
|
|
d.scale.y*Math.abs(v.y-(x.y+f.projectionMatrix.elements[5])/(x.w+f.projectionMatrix.elements[13])),v.material=d.material,B.elements.push(v));!0===m&&B.elements.sort(b);return B}};THREE.Face3=function(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.color=e instanceof THREE.Color?e:new THREE.Color;this.vertexColors=e instanceof Array?e:[];this.vertexTangents=[];this.materialIndex=void 0!==f?f:0;this.centroid=new THREE.Vector3};
|
|
|
THREE.Face3.prototype={constructor:THREE.Face3,clone:function(){var a=new THREE.Face3(this.a,this.b,this.c);a.normal.copy(this.normal);a.color.copy(this.color);a.centroid.copy(this.centroid);a.materialIndex=this.materialIndex;var b,c;b=0;for(c=this.vertexNormals.length;b<c;b++)a.vertexNormals[b]=this.vertexNormals[b].clone();b=0;for(c=this.vertexColors.length;b<c;b++)a.vertexColors[b]=this.vertexColors[b].clone();b=0;for(c=this.vertexTangents.length;b<c;b++)a.vertexTangents[b]=this.vertexTangents[b].clone();
|
|
|
return a}};THREE.Face4=function(a,b,c,d,e,f,h){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");return new THREE.Face3(a,b,c,e,f,h)};THREE.Geometry=function(){this.id=THREE.GeometryIdCount++;this.uuid=THREE.Math.generateUUID();this.name="";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphColors=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.hasTangents=!1;this.dynamic=!0;this.buffersNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.tangentsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=
|
|
@@ -195,9 +195,9 @@ new THREE.Box3,b=new THREE.Vector3;return function(){null===this.boundingSphere&
|
|
|
b,c,d;a=this.attributes.position.array.length;if(void 0===this.attributes.normal)this.attributes.normal={itemSize:3,array:new Float32Array(a)};else{a=0;for(b=this.attributes.normal.array.length;a<b;a++)this.attributes.normal.array[a]=0}var e=this.attributes.position.array,f=this.attributes.normal.array,h,g,i,k,m,l,p=new THREE.Vector3,s=new THREE.Vector3,t=new THREE.Vector3,n=new THREE.Vector3,q=new THREE.Vector3;if(this.attributes.index){var u=this.attributes.index.array,r=this.offsets;c=0;for(d=
|
|
|
r.length;c<d;++c){b=r[c].start;h=r[c].count;var v=r[c].index;a=b;for(b+=h;a<b;a+=3)h=v+u[a],g=v+u[a+1],i=v+u[a+2],k=e[3*h],m=e[3*h+1],l=e[3*h+2],p.set(k,m,l),k=e[3*g],m=e[3*g+1],l=e[3*g+2],s.set(k,m,l),k=e[3*i],m=e[3*i+1],l=e[3*i+2],t.set(k,m,l),n.subVectors(t,s),q.subVectors(p,s),n.cross(q),f[3*h]+=n.x,f[3*h+1]+=n.y,f[3*h+2]+=n.z,f[3*g]+=n.x,f[3*g+1]+=n.y,f[3*g+2]+=n.z,f[3*i]+=n.x,f[3*i+1]+=n.y,f[3*i+2]+=n.z}}else{a=0;for(b=e.length;a<b;a+=9)k=e[a],m=e[a+1],l=e[a+2],p.set(k,m,l),k=e[a+3],m=e[a+4],
|
|
|
l=e[a+5],s.set(k,m,l),k=e[a+6],m=e[a+7],l=e[a+8],t.set(k,m,l),n.subVectors(t,s),q.subVectors(p,s),n.cross(q),f[a]=n.x,f[a+1]=n.y,f[a+2]=n.z,f[a+3]=n.x,f[a+4]=n.y,f[a+5]=n.z,f[a+6]=n.x,f[a+7]=n.y,f[a+8]=n.z}this.normalizeNormals();this.normalsNeedUpdate=!0}},normalizeNormals:function(){for(var a=this.attributes.normal.array,b,c,d,e=0,f=a.length;e<f;e+=3)b=a[e],c=a[e+1],d=a[e+2],b=1/Math.sqrt(b*b+c*c+d*d),a[e]*=b,a[e+1]*=b,a[e+2]*=b},computeTangents:function(){function a(a){ea.x=d[3*a];ea.y=d[3*a+1];
|
|
|
-ea.z=d[3*a+2];Ba.copy(ea);V=g[a];F.copy(V);F.sub(ea.multiplyScalar(ea.dot(V))).normalize();Z.crossVectors(Ba,V);da=Z.dot(i[a]);H=0>da?-1:1;h[4*a]=F.x;h[4*a+1]=F.y;h[4*a+2]=F.z;h[4*a+3]=H}if(void 0===this.attributes.index||void 0===this.attributes.position||void 0===this.attributes.normal||void 0===this.attributes.uv)console.warn("Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");else{var b=this.attributes.index.array,c=this.attributes.position.array,
|
|
|
+ea.z=d[3*a+2];Ba.copy(ea);X=g[a];F.copy(X);F.sub(ea.multiplyScalar(ea.dot(X))).normalize();$.crossVectors(Ba,X);da=$.dot(i[a]);H=0>da?-1:1;h[4*a]=F.x;h[4*a+1]=F.y;h[4*a+2]=F.z;h[4*a+3]=H}if(void 0===this.attributes.index||void 0===this.attributes.position||void 0===this.attributes.normal||void 0===this.attributes.uv)console.warn("Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");else{var b=this.attributes.index.array,c=this.attributes.position.array,
|
|
|
d=this.attributes.normal.array,e=this.attributes.uv.array,f=c.length/3;void 0===this.attributes.tangent&&(this.attributes.tangent={itemSize:4,array:new Float32Array(4*f)});for(var h=this.attributes.tangent.array,g=[],i=[],k=0;k<f;k++)g[k]=new THREE.Vector3,i[k]=new THREE.Vector3;var m,l,p,s,t,n,q,u,r,v,y,D,L,B,I,f=new THREE.Vector3,k=new THREE.Vector3,w,G,N,x,E,A,z,C=this.offsets;N=0;for(x=C.length;N<x;++N){G=C[N].start;E=C[N].count;var M=C[N].index;w=G;for(G+=E;w<G;w+=3)E=M+b[w],A=M+b[w+1],z=M+b[w+
|
|
|
-2],m=c[3*E],l=c[3*E+1],p=c[3*E+2],s=c[3*A],t=c[3*A+1],n=c[3*A+2],q=c[3*z],u=c[3*z+1],r=c[3*z+2],v=e[2*E],y=e[2*E+1],D=e[2*A],L=e[2*A+1],B=e[2*z],I=e[2*z+1],s-=m,m=q-m,t-=l,l=u-l,n-=p,p=r-p,D-=v,v=B-v,L-=y,y=I-y,I=1/(D*y-v*L),f.set((y*s-L*m)*I,(y*t-L*l)*I,(y*n-L*p)*I),k.set((D*m-v*s)*I,(D*l-v*t)*I,(D*p-v*n)*I),g[E].add(f),g[A].add(f),g[z].add(f),i[E].add(k),i[A].add(k),i[z].add(k)}var F=new THREE.Vector3,Z=new THREE.Vector3,ea=new THREE.Vector3,Ba=new THREE.Vector3,H,V,da;N=0;for(x=C.length;N<x;++N){G=
|
|
|
+2],m=c[3*E],l=c[3*E+1],p=c[3*E+2],s=c[3*A],t=c[3*A+1],n=c[3*A+2],q=c[3*z],u=c[3*z+1],r=c[3*z+2],v=e[2*E],y=e[2*E+1],D=e[2*A],L=e[2*A+1],B=e[2*z],I=e[2*z+1],s-=m,m=q-m,t-=l,l=u-l,n-=p,p=r-p,D-=v,v=B-v,L-=y,y=I-y,I=1/(D*y-v*L),f.set((y*s-L*m)*I,(y*t-L*l)*I,(y*n-L*p)*I),k.set((D*m-v*s)*I,(D*l-v*t)*I,(D*p-v*n)*I),g[E].add(f),g[A].add(f),g[z].add(f),i[E].add(k),i[A].add(k),i[z].add(k)}var F=new THREE.Vector3,$=new THREE.Vector3,ea=new THREE.Vector3,Ba=new THREE.Vector3,H,X,da;N=0;for(x=C.length;N<x;++N){G=
|
|
|
C[N].start;E=C[N].count;M=C[N].index;w=G;for(G+=E;w<G;w+=3)E=M+b[w],A=M+b[w+1],z=M+b[w+2],a(E),a(A),a(z)}this.tangentsNeedUpdate=this.hasTangents=!0}},clone:function(){var a=new THREE.BufferGeometry,b=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],c;for(c in this.attributes){for(var d=this.attributes[c],e=d.array,f={itemSize:d.itemSize,numItems:d.numItems,array:null},d=0,h=b.length;d<h;d++){var g=b[d];if(e instanceof g){f.array=new g(e);
|
|
|
break}}a.attributes[c]=f}d=0;for(h=this.offsets.length;d<h;d++)b=this.offsets[d],a.offsets.push({start:b.start,index:b.index,count:b.count});return a},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.BufferGeometry.prototype);THREE.Camera=function(){THREE.Object3D.call(this);this.matrixWorldInverse=new THREE.Matrix4;this.projectionMatrix=new THREE.Matrix4};THREE.Camera.prototype=Object.create(THREE.Object3D.prototype);THREE.Camera.prototype.lookAt=function(){var a=new THREE.Matrix4;return function(b){a.lookAt(this.position,b,this.up);this.quaternion.setFromRotationMatrix(a)}}();
|
|
|
THREE.Camera.prototype.clone=function(a){void 0===a&&(a=new THREE.Camera);THREE.Object3D.prototype.clone.call(this,a);a.matrixWorldInverse.copy(this.matrixWorldInverse);a.projectionMatrix.copy(this.projectionMatrix);return a};THREE.OrthographicCamera=function(a,b,c,d,e,f){THREE.Camera.call(this);this.left=a;this.right=b;this.top=c;this.bottom=d;this.near=void 0!==e?e:0.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()};THREE.OrthographicCamera.prototype=Object.create(THREE.Camera.prototype);THREE.OrthographicCamera.prototype.updateProjectionMatrix=function(){this.projectionMatrix.makeOrthographic(this.left,this.right,this.top,this.bottom,this.near,this.far)};
|
|
@@ -299,30 +299,30 @@ THREE.LOD.prototype.update=function(){var a=new THREE.Vector3,b=new THREE.Vector
|
|
|
THREE.LOD.prototype.clone=function(a){void 0===a&&(a=new THREE.LOD);THREE.Object3D.prototype.clone.call(this,a);for(var b=0,c=this.objects.length;b<c;b++){var d=this.objects[b].object.clone();d.visible=0===b;a.addLevel(d,this.objects[b].distance)}return a};THREE.Sprite=function(a){THREE.Object3D.call(this);this.material=void 0!==a?a:new THREE.SpriteMaterial};THREE.Sprite.prototype=Object.create(THREE.Object3D.prototype);THREE.Sprite.prototype.updateMatrix=function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0};THREE.Sprite.prototype.clone=function(a){void 0===a&&(a=new THREE.Sprite(this.material));THREE.Object3D.prototype.clone.call(this,a);return a};THREE.Particle=THREE.Sprite;THREE.Scene=function(){THREE.Object3D.call(this);this.overrideMaterial=this.fog=null;this.autoUpdate=!0;this.matrixAutoUpdate=!1;this.__lights=[];this.__objectsAdded=[];this.__objectsRemoved=[]};THREE.Scene.prototype=Object.create(THREE.Object3D.prototype);
|
|
|
THREE.Scene.prototype.__addObject=function(a){if(a instanceof THREE.Light)-1===this.__lights.indexOf(a)&&this.__lights.push(a),a.target&&void 0===a.target.parent&&this.add(a.target);else if(!(a instanceof THREE.Camera||a instanceof THREE.Bone)){this.__objectsAdded.push(a);var b=this.__objectsRemoved.indexOf(a);-1!==b&&this.__objectsRemoved.splice(b,1)}this.dispatchEvent({type:"objectAdded",object:a});a.dispatchEvent({type:"addedToScene",scene:this});for(b=0;b<a.children.length;b++)this.__addObject(a.children[b])};
|
|
|
THREE.Scene.prototype.__removeObject=function(a){if(a instanceof THREE.Light){var b=this.__lights.indexOf(a);-1!==b&&this.__lights.splice(b,1);if(a.shadowCascadeArray)for(b=0;b<a.shadowCascadeArray.length;b++)this.__removeObject(a.shadowCascadeArray[b])}else a instanceof THREE.Camera||(this.__objectsRemoved.push(a),b=this.__objectsAdded.indexOf(a),-1!==b&&this.__objectsAdded.splice(b,1));this.dispatchEvent({type:"objectRemoved",object:a});a.dispatchEvent({type:"removedFromScene",scene:this});for(b=
|
|
|
-0;b<a.children.length;b++)this.__removeObject(a.children[b])};THREE.Scene.prototype.clone=function(a){void 0===a&&(a=new THREE.Scene);THREE.Object3D.prototype.clone.call(this,a);null!==this.fog&&(a.fog=this.fog.clone());null!==this.overrideMaterial&&(a.overrideMaterial=this.overrideMaterial.clone());a.autoUpdate=this.autoUpdate;a.matrixAutoUpdate=this.matrixAutoUpdate;return a};THREE.Fog=function(a,b,c){this.name="";this.color=new THREE.Color(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3};THREE.Fog.prototype.clone=function(){return new THREE.Fog(this.color.getHex(),this.near,this.far)};THREE.FogExp2=function(a,b){this.name="";this.color=new THREE.Color(a);this.density=void 0!==b?b:2.5E-4};THREE.FogExp2.prototype.clone=function(){return new THREE.FogExp2(this.color.getHex(),this.density)};THREE.CanvasRenderer=function(a){function b(a,b,c){for(var d=0,e=L.length;d<e;d++){var f=L[d];ua.copy(f.color);if(f instanceof THREE.DirectionalLight){var h=sa.setFromMatrixPosition(f.matrixWorld).normalize(),g=b.dot(h);0>=g||(g*=f.intensity,c.add(ua.multiplyScalar(g)))}else f instanceof THREE.PointLight&&(h=sa.setFromMatrixPosition(f.matrixWorld),g=b.dot(sa.subVectors(h,a).normalize()),0>=g||(g*=0==f.distance?1:1-Math.min(a.distanceTo(h)/f.distance,1),0!=g&&(g*=f.intensity,c.add(ua.multiplyScalar(g)))))}}
|
|
|
+0;b<a.children.length;b++)this.__removeObject(a.children[b])};THREE.Scene.prototype.clone=function(a){void 0===a&&(a=new THREE.Scene);THREE.Object3D.prototype.clone.call(this,a);null!==this.fog&&(a.fog=this.fog.clone());null!==this.overrideMaterial&&(a.overrideMaterial=this.overrideMaterial.clone());a.autoUpdate=this.autoUpdate;a.matrixAutoUpdate=this.matrixAutoUpdate;return a};THREE.Fog=function(a,b,c){this.name="";this.color=new THREE.Color(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3};THREE.Fog.prototype.clone=function(){return new THREE.Fog(this.color.getHex(),this.near,this.far)};THREE.FogExp2=function(a,b){this.name="";this.color=new THREE.Color(a);this.density=void 0!==b?b:2.5E-4};THREE.FogExp2.prototype.clone=function(){return new THREE.FogExp2(this.color.getHex(),this.density)};THREE.CanvasRenderer=function(a){function b(a,b,c){for(var d=0,e=L.length;d<e;d++){var f=L[d];Ja.copy(f.color);if(f instanceof THREE.DirectionalLight){var h=ta.setFromMatrixPosition(f.matrixWorld).normalize(),g=b.dot(h);0>=g||(g*=f.intensity,c.add(Ja.multiplyScalar(g)))}else f instanceof THREE.PointLight&&(h=ta.setFromMatrixPosition(f.matrixWorld),g=b.dot(ta.subVectors(h,a).normalize()),0>=g||(g*=0==f.distance?1:1-Math.min(a.distanceTo(h)/f.distance,1),0!=g&&(g*=f.intensity,c.add(Ja.multiplyScalar(g)))))}}
|
|
|
function c(a,b,c,d){p(b);s(c);t(d);n(a.getStyle());E.stroke();oa.expandByScalar(2*b)}function d(a){q(a.getStyle());E.fill()}function e(a){f(a.target)}function f(a){var b=a.wrapS===THREE.RepeatWrapping,c=a.wrapT===THREE.RepeatWrapping,d=a.image,e=document.createElement("canvas");e.width=d.width;e.height=d.height;var f=e.getContext("2d");f.setTransform(1,0,0,-1,0,d.height);f.drawImage(d,0,0);Ma[a.id]=E.createPattern(e,!0===b&&!0===c?"repeat":!0===b&&!1===c?"repeat-x":!1===b&&!0===c?"repeat-y":"no-repeat")}
|
|
|
function h(a,b,c,d,h,g,j,i,k,m,l,p,n){if(!(n instanceof THREE.DataTexture)){!1===n.hasEventListener("update",e)&&(void 0!==n.image&&0<n.image.width&&f(n),n.addEventListener("update",e));var r=Ma[n.id];if(void 0!==r){q(r);var r=n.offset.x/n.repeat.x,s=n.offset.y/n.repeat.y,t=n.image.width*n.repeat.x,n=n.image.height*n.repeat.y,j=(j+r)*t,i=(i+s)*n,c=c-a,d=d-b,h=h-a,g=g-b,k=(k+r)*t-j,m=(m+s)*n-i,l=(l+r)*t-j,p=(p+s)*n-i,n=k*p-l*m;0!==n&&(r=1/n,n=(p*c-m*h)*r,m=(p*d-m*g)*r,c=(k*h-l*c)*r,d=(k*g-l*d)*r,a=
|
|
|
a-n*j-c*i,b=b-m*j-d*i,E.save(),E.transform(n,m,c,d,a,b),E.fill(),E.restore())}else q("rgba(0,0,0,1)"),E.fill()}}function g(a,b,c,d,e,f,h,g,j,i,k,m,l){var n,p;n=l.width-1;p=l.height-1;h*=n;g*=p;c-=a;d-=b;e-=a;f-=b;j=j*n-h;i=i*p-g;k=k*n-h;m=m*p-g;p=1/(j*m-k*i);n=(m*c-i*e)*p;i=(m*d-i*f)*p;c=(j*e-k*c)*p;d=(j*f-k*d)*p;a=a-n*h-c*g;b=b-i*h-d*g;E.save();E.transform(n,i,c,d,a,b);E.clip();E.drawImage(l,0,0);E.restore()}function i(a,b,c,d){ba[0]=255*a.r|0;ba[1]=255*a.g|0;ba[2]=255*a.b|0;ba[4]=255*b.r|0;ba[5]=
|
|
|
-255*b.g|0;ba[6]=255*b.b|0;ba[8]=255*c.r|0;ba[9]=255*c.g|0;ba[10]=255*c.b|0;ba[12]=255*d.r|0;ba[13]=255*d.g|0;ba[14]=255*d.b|0;j.putImageData(cb,0,0);ta.drawImage(Ra,0,0);return va}function k(a,b,c){var d=b.x-a.x,e=b.y-a.y,f=d*d+e*e;0!==f&&(c/=Math.sqrt(f),d*=c,e*=c,b.x+=d,b.y+=e,a.x-=d,a.y-=e)}function m(a){C!==a&&(C=E.globalAlpha=a)}function l(a){M!==a&&(a===THREE.NormalBlending?E.globalCompositeOperation="source-over":a===THREE.AdditiveBlending?E.globalCompositeOperation="lighter":a===THREE.SubtractiveBlending&&
|
|
|
-(E.globalCompositeOperation="darker"),M=a)}function p(a){ea!==a&&(ea=E.lineWidth=a)}function s(a){Ba!==a&&(Ba=E.lineCap=a)}function t(a){H!==a&&(H=E.lineJoin=a)}function n(a){F!==a&&(F=E.strokeStyle=a)}function q(a){Z!==a&&(Z=E.fillStyle=a)}function u(a,b){if(V!==a||da!==b)E.setLineDash([a,b]),V=a,da=b}console.log("THREE.CanvasRenderer",THREE.REVISION);var r=THREE.Math.smoothstep,a=a||{},v=this,y,D,L,B=new THREE.Projector,I=void 0!==a.canvas?a.canvas:document.createElement("canvas"),w=I.width,G=I.height,
|
|
|
-N=Math.floor(w/2),x=Math.floor(G/2),E=I.getContext("2d"),A=new THREE.Color(0),z=0,C=1,M=0,F=null,Z=null,ea=null,Ba=null,H=null,V=null,da=0,ia,K,P,ja;new THREE.RenderableVertex;new THREE.RenderableVertex;var Fa,Pa,Ea,ya,Ha,Va,wa=new THREE.Color,za=new THREE.Color,T=new THREE.Color,U=new THREE.Color,Ia=new THREE.Color,$=new THREE.Color,fa=new THREE.Color,ua=new THREE.Color,Ma={},xa,ma,ka,Ja,Ga,Aa,Na,Oa,Ka,Qa,La=new THREE.Box2,S=new THREE.Box2,oa=new THREE.Box2,gb=new THREE.Color,ra=new THREE.Color,
|
|
|
-ga=new THREE.Color,sa=new THREE.Vector3,Ra,j,cb,ba,va,ta,Ya=16;Ra=document.createElement("canvas");Ra.width=Ra.height=2;j=Ra.getContext("2d");j.fillStyle="rgba(0,0,0,1)";j.fillRect(0,0,2,2);cb=j.getImageData(0,0,2,2);ba=cb.data;va=document.createElement("canvas");va.width=va.height=Ya;ta=va.getContext("2d");ta.translate(-Ya/2,-Ya/2);ta.scale(Ya,Ya);Ya--;void 0===E.setLineDash&&(E.setLineDash=void 0!==E.mozDash?function(a){E.mozDash=null!==a[0]?a:null}:function(){});this.domElement=I;this.devicePixelRatio=
|
|
|
-void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.sortElements=this.sortObjects=this.autoClear=!0;this.info={render:{vertices:0,faces:0}};this.supportsVertexTextures=function(){};this.setFaceCulling=function(){};this.setSize=function(a,b,c){w=a*this.devicePixelRatio;G=b*this.devicePixelRatio;N=Math.floor(w/2);x=Math.floor(G/2);I.width=w;I.height=G;1!==this.devicePixelRatio&&!1!==c&&(I.style.width=a+"px",I.style.height=b+"px");La.set(new THREE.Vector2(-N,
|
|
|
--x),new THREE.Vector2(N,x));S.set(new THREE.Vector2(-N,-x),new THREE.Vector2(N,x));C=1;M=0;H=Ba=ea=Z=F=null};this.setClearColor=function(a,b){A.set(a);z=void 0!==b?b:1;S.set(new THREE.Vector2(-N,-x),new THREE.Vector2(N,x))};this.setClearColorHex=function(a,b){console.warn("DEPRECATED: .setClearColorHex() is being removed. Use .setClearColor() instead.");this.setClearColor(a,b)};this.getMaxAnisotropy=function(){return 0};this.clear=function(){E.setTransform(1,0,0,-1,N,x);!1===S.empty()&&(S.intersect(La),
|
|
|
-S.expandByScalar(2),1>z&&E.clearRect(S.min.x|0,S.min.y|0,S.max.x-S.min.x|0,S.max.y-S.min.y|0),0<z&&(l(THREE.NormalBlending),m(1),q("rgba("+Math.floor(255*A.r)+","+Math.floor(255*A.g)+","+Math.floor(255*A.b)+","+z+")"),E.fillRect(S.min.x|0,S.min.y|0,S.max.x-S.min.x|0,S.max.y-S.min.y|0)),S.makeEmpty())};this.clearColor=function(){};this.clearDepth=function(){};this.clearStencil=function(){};this.render=function(a,j){if(!1===j instanceof THREE.Camera)console.error("THREE.CanvasRenderer.render: camera is not an instance of THREE.Camera.");
|
|
|
-else{!0===this.autoClear&&this.clear();E.setTransform(1,0,0,-1,N,x);v.info.render.vertices=0;v.info.render.faces=0;y=B.projectScene(a,j,this.sortObjects,this.sortElements);D=y.elements;L=y.lights;ia=j;gb.setRGB(0,0,0);ra.setRGB(0,0,0);ga.setRGB(0,0,0);for(var w=0,I=L.length;w<I;w++){var G=L[w],C=G.color;G instanceof THREE.AmbientLight?gb.add(C):G instanceof THREE.DirectionalLight?ra.add(C):G instanceof THREE.PointLight&&ga.add(C)}w=0;for(I=D.length;w<I;w++){var A=D[w],F=A.material;if(!(void 0===F||
|
|
|
-!1===F.visible)){oa.makeEmpty();if(A instanceof THREE.RenderableSprite){K=A;K.x*=N;K.y*=x;G=K;C=F;m(C.opacity);l(C.blending);var z=A.scale.x*N,A=A.scale.y*x,F=0.5*Math.sqrt(z*z+A*A);oa.min.set(G.x-F,G.y-F);oa.max.set(G.x+F,G.y+F);if(!1===La.isIntersectionBox(oa))oa.makeEmpty();else if(C instanceof THREE.SpriteMaterial||C instanceof THREE.ParticleSystemMaterial){var H=C.map;if(null!==H){!1===H.hasEventListener("update",e)&&(void 0!==H.image&&0<H.image.width&&f(H),H.addEventListener("update",e));F=
|
|
|
-Ma[H.id];void 0!==F?q(F):q("rgba( 0, 0, 0, 1 )");var M=H.image,F=M.width*H.offset.x,Z=M.height*H.offset.y,V=M.width*H.repeat.x,H=M.height*H.repeat.y,M=z/V,da=A/H;E.save();E.translate(G.x,G.y);0!==C.rotation&&E.rotate(C.rotation);E.translate(-z/2,-A/2);E.scale(M,da);E.translate(-F,-Z);E.fillRect(F,Z,V,H)}else q(C.color.getStyle()),E.save(),E.translate(G.x,G.y),0!==C.rotation&&E.rotate(C.rotation),E.scale(z,-A),E.fillRect(-0.5,-0.5,1,1);E.restore()}else C instanceof THREE.SpriteCanvasMaterial&&(n(C.color.getStyle()),
|
|
|
-q(C.color.getStyle()),E.save(),E.translate(G.x,G.y),0!==C.rotation&&E.rotate(C.rotation),E.scale(z,A),C.program(E),E.restore())}else if(A instanceof THREE.RenderableLine){if(K=A.v1,P=A.v2,K.positionScreen.x*=N,K.positionScreen.y*=x,P.positionScreen.x*=N,P.positionScreen.y*=x,oa.setFromPoints([K.positionScreen,P.positionScreen]),!0===La.isIntersectionBox(oa))if(G=K,C=P,z=A,A=F,m(A.opacity),l(A.blending),E.beginPath(),E.moveTo(G.positionScreen.x,G.positionScreen.y),E.lineTo(C.positionScreen.x,C.positionScreen.y),
|
|
|
-A instanceof THREE.LineBasicMaterial){p(A.linewidth);s(A.linecap);t(A.linejoin);if(A.vertexColors!==THREE.VertexColors)n(A.color.getStyle());else if(F=z.vertexColors[0].getStyle(),z=z.vertexColors[1].getStyle(),F===z)n(F);else{try{var ea=E.createLinearGradient(G.positionScreen.x,G.positionScreen.y,C.positionScreen.x,C.positionScreen.y);ea.addColorStop(0,F);ea.addColorStop(1,z)}catch(Ba){ea=F}n(ea)}E.stroke();oa.expandByScalar(2*A.linewidth)}else A instanceof THREE.LineDashedMaterial&&(p(A.linewidth),
|
|
|
-s(A.linecap),t(A.linejoin),n(A.color.getStyle()),u(A.dashSize,A.gapSize),E.stroke(),oa.expandByScalar(2*A.linewidth),u(null,null))}else if(A instanceof THREE.RenderableFace3){K=A.v1;P=A.v2;ja=A.v3;if(-1>K.positionScreen.z||1<K.positionScreen.z)continue;if(-1>P.positionScreen.z||1<P.positionScreen.z)continue;if(-1>ja.positionScreen.z||1<ja.positionScreen.z)continue;K.positionScreen.x*=N;K.positionScreen.y*=x;P.positionScreen.x*=N;P.positionScreen.y*=x;ja.positionScreen.x*=N;ja.positionScreen.y*=x;
|
|
|
-0<F.overdraw&&(k(K.positionScreen,P.positionScreen,F.overdraw),k(P.positionScreen,ja.positionScreen,F.overdraw),k(ja.positionScreen,K.positionScreen,F.overdraw));oa.setFromPoints([K.positionScreen,P.positionScreen,ja.positionScreen]);if(!0===La.isIntersectionBox(oa)){G=K;C=P;z=ja;v.info.render.vertices+=3;v.info.render.faces++;m(F.opacity);l(F.blending);Fa=G.positionScreen.x;Pa=G.positionScreen.y;Ea=C.positionScreen.x;ya=C.positionScreen.y;Ha=z.positionScreen.x;Va=z.positionScreen.y;var Z=Fa,V=Pa,
|
|
|
-H=Ea,M=ya,da=Ha,ba=Va;E.beginPath();E.moveTo(Z,V);E.lineTo(H,M);E.lineTo(da,ba);E.closePath();(F instanceof THREE.MeshLambertMaterial||F instanceof THREE.MeshPhongMaterial)&&null===F.map?($.copy(F.color),fa.copy(F.emissive),F.vertexColors===THREE.FaceColors&&$.multiply(A.color),!1===F.wireframe&&F.shading===THREE.SmoothShading&&3===A.vertexNormalsLength?(za.copy(gb),T.copy(gb),U.copy(gb),b(A.v1.positionWorld,A.vertexNormalsModel[0],za),b(A.v2.positionWorld,A.vertexNormalsModel[1],T),b(A.v3.positionWorld,
|
|
|
-A.vertexNormalsModel[2],U),za.multiply($).add(fa),T.multiply($).add(fa),U.multiply($).add(fa),Ia.addColors(T,U).multiplyScalar(0.5),ka=i(za,T,U,Ia),g(Fa,Pa,Ea,ya,Ha,Va,0,0,1,0,0,1,ka)):(wa.copy(gb),b(A.centroidModel,A.normalModel,wa),wa.multiply($).add(fa),!0===F.wireframe?c(wa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(wa))):F instanceof THREE.MeshBasicMaterial||F instanceof THREE.MeshLambertMaterial||F instanceof THREE.MeshPhongMaterial?null!==F.map?F.map.mapping instanceof THREE.UVMapping&&
|
|
|
-(Ja=A.uvs[0],h(Fa,Pa,Ea,ya,Ha,Va,Ja[0].x,Ja[0].y,Ja[1].x,Ja[1].y,Ja[2].x,Ja[2].y,F.map)):null!==F.envMap?F.envMap.mapping instanceof THREE.SphericalReflectionMapping&&(sa.copy(A.vertexNormalsModelView[0]),Ga=0.5*sa.x+0.5,Aa=0.5*sa.y+0.5,sa.copy(A.vertexNormalsModelView[1]),Na=0.5*sa.x+0.5,Oa=0.5*sa.y+0.5,sa.copy(A.vertexNormalsModelView[2]),Ka=0.5*sa.x+0.5,Qa=0.5*sa.y+0.5,h(Fa,Pa,Ea,ya,Ha,Va,Ga,Aa,Na,Oa,Ka,Qa,F.envMap)):(wa.copy(F.color),F.vertexColors===THREE.FaceColors&&wa.multiply(A.color),!0===
|
|
|
-F.wireframe?c(wa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(wa)):F instanceof THREE.MeshDepthMaterial?(xa=ia.near,ma=ia.far,za.r=za.g=za.b=1-r(G.positionScreen.z*G.positionScreen.w,xa,ma),T.r=T.g=T.b=1-r(C.positionScreen.z*C.positionScreen.w,xa,ma),U.r=U.g=U.b=1-r(z.positionScreen.z*z.positionScreen.w,xa,ma),Ia.addColors(T,U).multiplyScalar(0.5),ka=i(za,T,U,Ia),g(Fa,Pa,Ea,ya,Ha,Va,0,0,1,0,0,1,ka)):F instanceof THREE.MeshNormalMaterial&&(G=void 0,F.shading===THREE.FlatShading?(G=
|
|
|
-A.normalModelView,wa.setRGB(G.x,G.y,G.z).multiplyScalar(0.5).addScalar(0.5),!0===F.wireframe?c(wa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(wa)):F.shading===THREE.SmoothShading&&(G=A.vertexNormalsModelView[0],za.setRGB(G.x,G.y,G.z).multiplyScalar(0.5).addScalar(0.5),G=A.vertexNormalsModelView[1],T.setRGB(G.x,G.y,G.z).multiplyScalar(0.5).addScalar(0.5),G=A.vertexNormalsModelView[2],U.setRGB(G.x,G.y,G.z).multiplyScalar(0.5).addScalar(0.5),Ia.addColors(T,U).multiplyScalar(0.5),ka=
|
|
|
-i(za,T,U,Ia),g(Fa,Pa,Ea,ya,Ha,Va,0,0,1,0,0,1,ka)))}}S.union(oa)}}E.setTransform(1,0,0,1,0,0)}}};THREE.ShaderChunk={fog_pars_fragment:"#ifdef USE_FOG\nuniform vec3 fogColor;\n#ifdef FOG_EXP2\nuniform float fogDensity;\n#else\nuniform float fogNear;\nuniform float fogFar;\n#endif\n#endif",fog_fragment:"#ifdef USE_FOG\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n#ifdef FOG_EXP2\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n#else\nfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n#endif\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n#endif",
|
|
|
+255*b.g|0;ba[6]=255*b.b|0;ba[8]=255*c.r|0;ba[9]=255*c.g|0;ba[10]=255*c.b|0;ba[12]=255*d.r|0;ba[13]=255*d.g|0;ba[14]=255*d.b|0;j.putImageData(cb,0,0);ua.drawImage(Ra,0,0);return va}function k(a,b,c){var d=b.x-a.x,e=b.y-a.y,f=d*d+e*e;0!==f&&(c/=Math.sqrt(f),d*=c,e*=c,b.x+=d,b.y+=e,a.x-=d,a.y-=e)}function m(a){C!==a&&(C=E.globalAlpha=a)}function l(a){M!==a&&(a===THREE.NormalBlending?E.globalCompositeOperation="source-over":a===THREE.AdditiveBlending?E.globalCompositeOperation="lighter":a===THREE.SubtractiveBlending&&
|
|
|
+(E.globalCompositeOperation="darker"),M=a)}function p(a){ea!==a&&(ea=E.lineWidth=a)}function s(a){Ba!==a&&(Ba=E.lineCap=a)}function t(a){H!==a&&(H=E.lineJoin=a)}function n(a){F!==a&&(F=E.strokeStyle=a)}function q(a){$!==a&&($=E.fillStyle=a)}function u(a,b){if(X!==a||da!==b)E.setLineDash([a,b]),X=a,da=b}console.log("THREE.CanvasRenderer",THREE.REVISION);var r=THREE.Math.smoothstep,a=a||{},v=this,y,D,L,B=new THREE.Projector,I=void 0!==a.canvas?a.canvas:document.createElement("canvas"),w=I.width,G=I.height,
|
|
|
+N=Math.floor(w/2),x=Math.floor(G/2),E=I.getContext("2d"),A=new THREE.Color(0),z=0,C=1,M=0,F=null,$=null,ea=null,Ba=null,H=null,X=null,da=0,ia,K,P,ja;new THREE.RenderableVertex;new THREE.RenderableVertex;var Fa,Pa,Ea,ya,Ha,Va,wa=new THREE.Color,za=new THREE.Color,S=new THREE.Color,U=new THREE.Color,Ia=new THREE.Color,T=new THREE.Color,fa=new THREE.Color,Ja=new THREE.Color,Ma={},xa,ma,ka,Ka,Ga,Aa,Na,Oa,La,Qa,sa=new THREE.Box2,V=new THREE.Box2,oa=new THREE.Box2,gb=new THREE.Color,ra=new THREE.Color,
|
|
|
+ga=new THREE.Color,ta=new THREE.Vector3,Ra,j,cb,ba,va,ua,Ya=16;Ra=document.createElement("canvas");Ra.width=Ra.height=2;j=Ra.getContext("2d");j.fillStyle="rgba(0,0,0,1)";j.fillRect(0,0,2,2);cb=j.getImageData(0,0,2,2);ba=cb.data;va=document.createElement("canvas");va.width=va.height=Ya;ua=va.getContext("2d");ua.translate(-Ya/2,-Ya/2);ua.scale(Ya,Ya);Ya--;void 0===E.setLineDash&&(E.setLineDash=void 0!==E.mozDash?function(a){E.mozDash=null!==a[0]?a:null}:function(){});this.domElement=I;this.devicePixelRatio=
|
|
|
+void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.sortElements=this.sortObjects=this.autoClear=!0;this.info={render:{vertices:0,faces:0}};this.supportsVertexTextures=function(){};this.setFaceCulling=function(){};this.setSize=function(a,b,c){w=a*this.devicePixelRatio;G=b*this.devicePixelRatio;N=Math.floor(w/2);x=Math.floor(G/2);I.width=w;I.height=G;1!==this.devicePixelRatio&&!1!==c&&(I.style.width=a+"px",I.style.height=b+"px");sa.min.set(-N,
|
|
|
+-x);sa.max.set(N,x);V.min.set(-N,-x);V.max.set(N,x);C=1;M=0;H=Ba=ea=$=F=null};this.setClearColor=function(a,b){A.set(a);z=void 0!==b?b:1;V.min.set(-N,-x);V.max.set(N,x)};this.setClearColorHex=function(a,b){console.warn("DEPRECATED: .setClearColorHex() is being removed. Use .setClearColor() instead.");this.setClearColor(a,b)};this.getMaxAnisotropy=function(){return 0};this.clear=function(){E.setTransform(1,0,0,-1,N,x);!1===V.empty()&&(V.intersect(sa),V.expandByScalar(2),1>z&&E.clearRect(V.min.x|0,
|
|
|
+V.min.y|0,V.max.x-V.min.x|0,V.max.y-V.min.y|0),0<z&&(l(THREE.NormalBlending),m(1),q("rgba("+Math.floor(255*A.r)+","+Math.floor(255*A.g)+","+Math.floor(255*A.b)+","+z+")"),E.fillRect(V.min.x|0,V.min.y|0,V.max.x-V.min.x|0,V.max.y-V.min.y|0)),V.makeEmpty())};this.clearColor=function(){};this.clearDepth=function(){};this.clearStencil=function(){};this.render=function(a,j){if(!1===j instanceof THREE.Camera)console.error("THREE.CanvasRenderer.render: camera is not an instance of THREE.Camera.");else{!0===
|
|
|
+this.autoClear&&this.clear();E.setTransform(1,0,0,-1,N,x);v.info.render.vertices=0;v.info.render.faces=0;y=B.projectScene(a,j,this.sortObjects,this.sortElements);D=y.elements;L=y.lights;ia=j;gb.setRGB(0,0,0);ra.setRGB(0,0,0);ga.setRGB(0,0,0);for(var w=0,I=L.length;w<I;w++){var G=L[w],C=G.color;G instanceof THREE.AmbientLight?gb.add(C):G instanceof THREE.DirectionalLight?ra.add(C):G instanceof THREE.PointLight&&ga.add(C)}w=0;for(I=D.length;w<I;w++){var A=D[w],F=A.material;if(!(void 0===F||!1===F.visible)){oa.makeEmpty();
|
|
|
+if(A instanceof THREE.RenderableSprite){K=A;K.x*=N;K.y*=x;G=K;C=F;m(C.opacity);l(C.blending);var z=A.scale.x*N,A=A.scale.y*x,F=0.5*Math.sqrt(z*z+A*A);oa.min.set(G.x-F,G.y-F);oa.max.set(G.x+F,G.y+F);if(!1===sa.isIntersectionBox(oa))oa.makeEmpty();else if(C instanceof THREE.SpriteMaterial||C instanceof THREE.ParticleSystemMaterial){var H=C.map;if(null!==H){!1===H.hasEventListener("update",e)&&(void 0!==H.image&&0<H.image.width&&f(H),H.addEventListener("update",e));F=Ma[H.id];void 0!==F?q(F):q("rgba( 0, 0, 0, 1 )");
|
|
|
+var M=H.image,F=M.width*H.offset.x,$=M.height*H.offset.y,X=M.width*H.repeat.x,H=M.height*H.repeat.y,M=z/X,da=A/H;E.save();E.translate(G.x,G.y);0!==C.rotation&&E.rotate(C.rotation);E.translate(-z/2,-A/2);E.scale(M,da);E.translate(-F,-$);E.fillRect(F,$,X,H)}else q(C.color.getStyle()),E.save(),E.translate(G.x,G.y),0!==C.rotation&&E.rotate(C.rotation),E.scale(z,-A),E.fillRect(-0.5,-0.5,1,1);E.restore()}else C instanceof THREE.SpriteCanvasMaterial&&(n(C.color.getStyle()),q(C.color.getStyle()),E.save(),
|
|
|
+E.translate(G.x,G.y),0!==C.rotation&&E.rotate(C.rotation),E.scale(z,A),C.program(E),E.restore())}else if(A instanceof THREE.RenderableLine){if(K=A.v1,P=A.v2,K.positionScreen.x*=N,K.positionScreen.y*=x,P.positionScreen.x*=N,P.positionScreen.y*=x,oa.setFromPoints([K.positionScreen,P.positionScreen]),!0===sa.isIntersectionBox(oa))if(G=K,C=P,z=A,A=F,m(A.opacity),l(A.blending),E.beginPath(),E.moveTo(G.positionScreen.x,G.positionScreen.y),E.lineTo(C.positionScreen.x,C.positionScreen.y),A instanceof THREE.LineBasicMaterial){p(A.linewidth);
|
|
|
+s(A.linecap);t(A.linejoin);if(A.vertexColors!==THREE.VertexColors)n(A.color.getStyle());else if(F=z.vertexColors[0].getStyle(),z=z.vertexColors[1].getStyle(),F===z)n(F);else{try{var ea=E.createLinearGradient(G.positionScreen.x,G.positionScreen.y,C.positionScreen.x,C.positionScreen.y);ea.addColorStop(0,F);ea.addColorStop(1,z)}catch(Ba){ea=F}n(ea)}E.stroke();oa.expandByScalar(2*A.linewidth)}else A instanceof THREE.LineDashedMaterial&&(p(A.linewidth),s(A.linecap),t(A.linejoin),n(A.color.getStyle()),
|
|
|
+u(A.dashSize,A.gapSize),E.stroke(),oa.expandByScalar(2*A.linewidth),u(null,null))}else if(A instanceof THREE.RenderableFace3){K=A.v1;P=A.v2;ja=A.v3;if(-1>K.positionScreen.z||1<K.positionScreen.z)continue;if(-1>P.positionScreen.z||1<P.positionScreen.z)continue;if(-1>ja.positionScreen.z||1<ja.positionScreen.z)continue;K.positionScreen.x*=N;K.positionScreen.y*=x;P.positionScreen.x*=N;P.positionScreen.y*=x;ja.positionScreen.x*=N;ja.positionScreen.y*=x;0<F.overdraw&&(k(K.positionScreen,P.positionScreen,
|
|
|
+F.overdraw),k(P.positionScreen,ja.positionScreen,F.overdraw),k(ja.positionScreen,K.positionScreen,F.overdraw));oa.setFromPoints([K.positionScreen,P.positionScreen,ja.positionScreen]);if(!0===sa.isIntersectionBox(oa)){G=K;C=P;z=ja;v.info.render.vertices+=3;v.info.render.faces++;m(F.opacity);l(F.blending);Fa=G.positionScreen.x;Pa=G.positionScreen.y;Ea=C.positionScreen.x;ya=C.positionScreen.y;Ha=z.positionScreen.x;Va=z.positionScreen.y;var $=Fa,X=Pa,H=Ea,M=ya,da=Ha,ba=Va;E.beginPath();E.moveTo($,X);
|
|
|
+E.lineTo(H,M);E.lineTo(da,ba);E.closePath();(F instanceof THREE.MeshLambertMaterial||F instanceof THREE.MeshPhongMaterial)&&null===F.map?(T.copy(F.color),fa.copy(F.emissive),F.vertexColors===THREE.FaceColors&&T.multiply(A.color),!1===F.wireframe&&F.shading===THREE.SmoothShading&&3===A.vertexNormalsLength?(za.copy(gb),S.copy(gb),U.copy(gb),b(A.v1.positionWorld,A.vertexNormalsModel[0],za),b(A.v2.positionWorld,A.vertexNormalsModel[1],S),b(A.v3.positionWorld,A.vertexNormalsModel[2],U),za.multiply(T).add(fa),
|
|
|
+S.multiply(T).add(fa),U.multiply(T).add(fa),Ia.addColors(S,U).multiplyScalar(0.5),ka=i(za,S,U,Ia),g(Fa,Pa,Ea,ya,Ha,Va,0,0,1,0,0,1,ka)):(wa.copy(gb),b(A.centroidModel,A.normalModel,wa),wa.multiply(T).add(fa),!0===F.wireframe?c(wa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(wa))):F instanceof THREE.MeshBasicMaterial||F instanceof THREE.MeshLambertMaterial||F instanceof THREE.MeshPhongMaterial?null!==F.map?F.map.mapping instanceof THREE.UVMapping&&(Ka=A.uvs[0],h(Fa,Pa,Ea,ya,Ha,Va,
|
|
|
+Ka[0].x,Ka[0].y,Ka[1].x,Ka[1].y,Ka[2].x,Ka[2].y,F.map)):null!==F.envMap?F.envMap.mapping instanceof THREE.SphericalReflectionMapping&&(ta.copy(A.vertexNormalsModelView[0]),Ga=0.5*ta.x+0.5,Aa=0.5*ta.y+0.5,ta.copy(A.vertexNormalsModelView[1]),Na=0.5*ta.x+0.5,Oa=0.5*ta.y+0.5,ta.copy(A.vertexNormalsModelView[2]),La=0.5*ta.x+0.5,Qa=0.5*ta.y+0.5,h(Fa,Pa,Ea,ya,Ha,Va,Ga,Aa,Na,Oa,La,Qa,F.envMap)):(wa.copy(F.color),F.vertexColors===THREE.FaceColors&&wa.multiply(A.color),!0===F.wireframe?c(wa,F.wireframeLinewidth,
|
|
|
+F.wireframeLinecap,F.wireframeLinejoin):d(wa)):F instanceof THREE.MeshDepthMaterial?(xa=ia.near,ma=ia.far,za.r=za.g=za.b=1-r(G.positionScreen.z*G.positionScreen.w,xa,ma),S.r=S.g=S.b=1-r(C.positionScreen.z*C.positionScreen.w,xa,ma),U.r=U.g=U.b=1-r(z.positionScreen.z*z.positionScreen.w,xa,ma),Ia.addColors(S,U).multiplyScalar(0.5),ka=i(za,S,U,Ia),g(Fa,Pa,Ea,ya,Ha,Va,0,0,1,0,0,1,ka)):F instanceof THREE.MeshNormalMaterial&&(G=void 0,F.shading===THREE.FlatShading?(G=A.normalModelView,wa.setRGB(G.x,G.y,
|
|
|
+G.z).multiplyScalar(0.5).addScalar(0.5),!0===F.wireframe?c(wa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(wa)):F.shading===THREE.SmoothShading&&(G=A.vertexNormalsModelView[0],za.setRGB(G.x,G.y,G.z).multiplyScalar(0.5).addScalar(0.5),G=A.vertexNormalsModelView[1],S.setRGB(G.x,G.y,G.z).multiplyScalar(0.5).addScalar(0.5),G=A.vertexNormalsModelView[2],U.setRGB(G.x,G.y,G.z).multiplyScalar(0.5).addScalar(0.5),Ia.addColors(S,U).multiplyScalar(0.5),ka=i(za,S,U,Ia),g(Fa,Pa,Ea,ya,Ha,Va,0,
|
|
|
+0,1,0,0,1,ka)))}}V.union(oa)}}E.setTransform(1,0,0,1,0,0)}}};THREE.ShaderChunk={fog_pars_fragment:"#ifdef USE_FOG\nuniform vec3 fogColor;\n#ifdef FOG_EXP2\nuniform float fogDensity;\n#else\nuniform float fogNear;\nuniform float fogFar;\n#endif\n#endif",fog_fragment:"#ifdef USE_FOG\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n#ifdef FOG_EXP2\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n#else\nfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n#endif\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n#endif",
|
|
|
envmap_pars_fragment:"#ifdef USE_ENVMAP\nuniform float reflectivity;\nuniform samplerCube envMap;\nuniform float flipEnvMap;\nuniform int combine;\n#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\nuniform bool useRefract;\nuniform float refractionRatio;\n#else\nvarying vec3 vReflect;\n#endif\n#endif",envmap_fragment:"#ifdef USE_ENVMAP\nvec3 reflectVec;\n#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\nvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\nif ( useRefract ) {\nreflectVec = refract( cameraToVertex, normal, refractionRatio );\n} else { \nreflectVec = reflect( cameraToVertex, normal );\n}\n#else\nreflectVec = vReflect;\n#endif\n#ifdef DOUBLE_SIDED\nfloat flipNormal = ( -1.0 + 2.0 * float( gl_FrontFacing ) );\nvec4 cubeColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n#else\nvec4 cubeColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n#endif\n#ifdef GAMMA_INPUT\ncubeColor.xyz *= cubeColor.xyz;\n#endif\nif ( combine == 1 ) {\ngl_FragColor.xyz = mix( gl_FragColor.xyz, cubeColor.xyz, specularStrength * reflectivity );\n} else if ( combine == 2 ) {\ngl_FragColor.xyz += cubeColor.xyz * specularStrength * reflectivity;\n} else {\ngl_FragColor.xyz = mix( gl_FragColor.xyz, gl_FragColor.xyz * cubeColor.xyz, specularStrength * reflectivity );\n}\n#endif",
|
|
|
envmap_pars_vertex:"#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP )\nvarying vec3 vReflect;\nuniform float refractionRatio;\nuniform bool useRefract;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\n#ifdef USE_SKINNING\nvec4 worldPosition = modelMatrix * skinned;\n#endif\n#if defined( USE_MORPHTARGETS ) && ! defined( USE_SKINNING )\nvec4 worldPosition = modelMatrix * vec4( morphed, 1.0 );\n#endif\n#if ! defined( USE_MORPHTARGETS ) && ! defined( USE_SKINNING )\nvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n#endif\n#endif",
|
|
|
envmap_vertex:"#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP )\nvec3 worldNormal = mat3( modelMatrix[ 0 ].xyz, modelMatrix[ 1 ].xyz, modelMatrix[ 2 ].xyz ) * objectNormal;\nworldNormal = normalize( worldNormal );\nvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\nif ( useRefract ) {\nvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n} else {\nvReflect = reflect( cameraToVertex, worldNormal );\n}\n#endif",map_particle_pars_fragment:"#ifdef USE_MAP\nuniform sampler2D map;\n#endif",
|
|
@@ -374,8 +374,8 @@ function c(a,b){var c=b.geometry,h=a.faces3,g=3*h.length,i=1*h.length,k=3*h.leng
|
|
|
(a.__skinIndexArray=new Float32Array(4*g),a.__skinWeightArray=new Float32Array(4*g));a.__faceArray=new Uint16Array(3*i);a.__lineArray=new Uint16Array(2*k);if(a.numMorphTargets){a.__morphTargetsArrays=[];c=0;for(m=a.numMorphTargets;c<m;c++)a.__morphTargetsArrays.push(new Float32Array(3*g))}if(a.numMorphNormals){a.__morphNormalsArrays=[];c=0;for(m=a.numMorphNormals;c<m;c++)a.__morphNormalsArrays.push(new Float32Array(3*g))}a.__webglFaceCount=3*i;a.__webglLineCount=2*k;if(h.attributes){void 0===a.__webglCustomAttributesList&&
|
|
|
(a.__webglCustomAttributesList=[]);for(var p in h.attributes){var i=h.attributes[p],k={},q;for(q in i)k[q]=i[q];if(!k.__webglInitialized||k.createUniqueBuffers)k.__webglInitialized=!0,c=1,"v2"===k.type?c=2:"v3"===k.type?c=3:"v4"===k.type?c=4:"c"===k.type&&(c=3),k.size=c,k.array=new Float32Array(g*c),k.buffer=j.createBuffer(),k.buffer.belongsToAttribute=p,i.needsUpdate=!0,k.__original=i;a.__webglCustomAttributesList.push(k)}}a.__inittedArrays=!0}function d(a,b){return a.material instanceof THREE.MeshFaceMaterial?
|
|
|
a.material.materials[b.materialIndex]:a.material}function e(a){return a instanceof THREE.MeshBasicMaterial&&!a.envMap||a instanceof THREE.MeshDepthMaterial?!1:a&&void 0!==a.shading&&a.shading===THREE.SmoothShading?THREE.SmoothShading:THREE.FlatShading}function f(a){return a.map||a.lightMap||a.bumpMap||a.normalMap||a.specularMap||a instanceof THREE.ShaderMaterial?!0:!1}function h(a,b,c,d){var e,f,h,i;for(f in b)h=b[f],e=c[f],0<=h&&(e?(i=e.itemSize,j.bindBuffer(j.ARRAY_BUFFER,e.buffer),g(h),j.vertexAttribPointer(h,
|
|
|
-i,j.FLOAT,!1,0,4*d*i)):a.defaultAttributeValues&&(2===a.defaultAttributeValues[f].length?j.vertexAttrib2fv(h,a.defaultAttributeValues[f]):3===a.defaultAttributeValues[f].length&&j.vertexAttrib3fv(h,a.defaultAttributeValues[f])))}function g(a){La[a]||(j.enableVertexAttribArray(a),La[a]=!0)}function i(){for(var a in La)La[a]&&(j.disableVertexAttribArray(a),La[a]=!1)}function k(a,b){return a.z!==b.z?b.z-a.z:a.id-b.id}function m(a,b){return b[0]-a[0]}function l(a,b,c){if(a.length)for(var d=0,e=a.length;d<
|
|
|
-e;d++)Ha=Fa=null,Ea=ya=T=za=Ma=ua=U=-1,sa=!0,a[d].render(b,c,Ka,Qa),Ha=Fa=null,Ea=ya=T=za=Ma=ua=U=-1,sa=!0}function p(a,b,c,d,e,f,h,g){var j,i,k,m;b?(i=a.length-1,m=b=-1):(i=0,b=a.length,m=1);for(var l=i;l!==b;l+=m)if(j=a[l],j.render){i=j.object;k=j.buffer;if(g)j=g;else{j=j[c];if(!j)continue;h&&K.setBlending(j.blending,j.blendEquation,j.blendSrc,j.blendDst);K.setDepthTest(j.depthTest);K.setDepthWrite(j.depthWrite);G(j.polygonOffset,j.polygonOffsetFactor,j.polygonOffsetUnits)}K.setMaterialFaces(j);
|
|
|
+i,j.FLOAT,!1,0,4*d*i)):a.defaultAttributeValues&&(2===a.defaultAttributeValues[f].length?j.vertexAttrib2fv(h,a.defaultAttributeValues[f]):3===a.defaultAttributeValues[f].length&&j.vertexAttrib3fv(h,a.defaultAttributeValues[f])))}function g(a){sa[a]||(j.enableVertexAttribArray(a),sa[a]=!0)}function i(){for(var a in sa)sa[a]&&(j.disableVertexAttribArray(a),sa[a]=!1)}function k(a,b){return a.z!==b.z?b.z-a.z:a.id-b.id}function m(a,b){return b[0]-a[0]}function l(a,b,c){if(a.length)for(var d=0,e=a.length;d<
|
|
|
+e;d++)Ha=Fa=null,Ea=ya=S=za=Ma=Ja=U=-1,ta=!0,a[d].render(b,c,La,Qa),Ha=Fa=null,Ea=ya=S=za=Ma=Ja=U=-1,ta=!0}function p(a,b,c,d,e,f,h,g){var j,i,k,m;b?(i=a.length-1,m=b=-1):(i=0,b=a.length,m=1);for(var l=i;l!==b;l+=m)if(j=a[l],j.render){i=j.object;k=j.buffer;if(g)j=g;else{j=j[c];if(!j)continue;h&&K.setBlending(j.blending,j.blendEquation,j.blendSrc,j.blendDst);K.setDepthTest(j.depthTest);K.setDepthWrite(j.depthWrite);G(j.polygonOffset,j.polygonOffsetFactor,j.polygonOffsetUnits)}K.setMaterialFaces(j);
|
|
|
k instanceof THREE.BufferGeometry?K.renderBufferDirect(d,e,f,j,k,i):K.renderBuffer(d,e,f,j,k,i)}}function s(a,b,c,d,e,f,h){for(var g,j,i=0,k=a.length;i<k;i++)if(g=a[i],j=g.object,j.visible){if(h)g=h;else{g=g[b];if(!g)continue;f&&K.setBlending(g.blending,g.blendEquation,g.blendSrc,g.blendDst);K.setDepthTest(g.depthTest);K.setDepthWrite(g.depthWrite);G(g.polygonOffset,g.polygonOffsetFactor,g.polygonOffsetUnits)}K.renderImmediateObject(c,d,e,g,j)}}function t(a,d){var e,f,h,g;if(void 0===a.__webglInit&&
|
|
|
(a.__webglInit=!0,a._modelViewMatrix=new THREE.Matrix4,a._normalMatrix=new THREE.Matrix3,void 0!==a.geometry&&void 0===a.geometry.__webglInit&&(a.geometry.__webglInit=!0,a.geometry.addEventListener("dispose",Jb)),f=a.geometry,void 0!==f))if(f instanceof THREE.BufferGeometry){var i,k;for(i in f.attributes)k="index"===i?j.ELEMENT_ARRAY_BUFFER:j.ARRAY_BUFFER,g=f.attributes[i],void 0===g.numItems&&(g.numItems=g.array.length),g.buffer=j.createBuffer(),j.bindBuffer(k,g.buffer),j.bufferData(k,g.array,j.STATIC_DRAW)}else if(a instanceof
|
|
|
THREE.Mesh){h=a.material;if(void 0===f.geometryGroups){i=f;var m,l,p;k={};var q=i.morphTargets.length,r=i.morphNormals.length,s=h instanceof THREE.MeshFaceMaterial;i.geometryGroups={};h=0;for(m=i.faces.length;h<m;h++)l=i.faces[h],l=s?l.materialIndex:0,void 0===k[l]&&(k[l]={hash:l,counter:0}),p=k[l].hash+"_"+k[l].counter,void 0===i.geometryGroups[p]&&(i.geometryGroups[p]={faces3:[],materialIndex:l,vertices:0,numMorphTargets:q,numMorphNormals:r}),65535<i.geometryGroups[p].vertices+3&&(k[l].counter+=
|
|
@@ -387,18 +387,18 @@ i),g.__sortArray=[],g.__webglParticleCount=i,b(g,a),f.verticesNeedUpdate=!0,f.co
|
|
|
d.__webglObjectsImmediate.push({id:null,object:a,opaque:null,transparent:null,z:0}):a instanceof THREE.Sprite?d.__webglSprites.push(a):a instanceof THREE.LensFlare&&d.__webglFlares.push(a);a.__webglActive=!0}}function n(a,b,c){a.push({id:null,buffer:b,object:c,opaque:null,transparent:null,z:0})}function q(a){for(var b in a.attributes)if(a.attributes[b].needsUpdate)return!0;return!1}function u(a){for(var b in a.attributes)a.attributes[b].needsUpdate=!1}function r(a,b){a instanceof THREE.Mesh||a instanceof
|
|
|
THREE.ParticleSystem||a instanceof THREE.Line?v(b.__webglObjects,a):a instanceof THREE.Sprite?y(b.__webglSprites,a):a instanceof THREE.LensFlare?y(b.__webglFlares,a):(a instanceof THREE.ImmediateRenderObject||a.immediateRenderCallback)&&v(b.__webglObjectsImmediate,a);delete a.__webglActive}function v(a,b){for(var c=a.length-1;0<=c;c--)a[c].object===b&&a.splice(c,1)}function y(a,b){for(var c=a.length-1;0<=c;c--)a[c]===b&&a.splice(c,1)}function D(a,b,c,d,e){wa=0;d.needsUpdate&&(d.program&&Bb(d),K.initMaterial(d,
|
|
|
b,c,e),d.needsUpdate=!1);d.morphTargets&&!e.__webglMorphTargetInfluences&&(e.__webglMorphTargetInfluences=new Float32Array(K.maxMorphTargets));var f=!1,h=d.program,g=h.uniforms,i=d.uniforms;h!==Fa&&(j.useProgram(h),Fa=h,f=!0);d.id!==Ea&&(Ea=d.id,f=!0);if(f||a!==Ha)j.uniformMatrix4fv(g.projectionMatrix,!1,a.projectionMatrix.elements),a!==Ha&&(Ha=a);if(d.skinning)if(xb&&e.useVertexTexture){if(null!==g.boneTexture){var k=L();j.uniform1i(g.boneTexture,k);K.setTexture(e.boneTexture,k)}null!==g.boneTextureWidth&&
|
|
|
-j.uniform1i(g.boneTextureWidth,e.boneTextureWidth);null!==g.boneTextureHeight&&j.uniform1i(g.boneTextureHeight,e.boneTextureHeight)}else null!==g.boneGlobalMatrices&&j.uniformMatrix4fv(g.boneGlobalMatrices,!1,e.boneMatrices);if(f){c&&d.fog&&(i.fogColor.value=c.color,c instanceof THREE.Fog?(i.fogNear.value=c.near,i.fogFar.value=c.far):c instanceof THREE.FogExp2&&(i.fogDensity.value=c.density));if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d.lights){if(sa){for(var m,
|
|
|
-l=k=0,p=0,n,q,r,s=Ra,t=s.directional.colors,u=s.directional.positions,v=s.point.colors,w=s.point.positions,y=s.point.distances,A=s.spot.colors,G=s.spot.positions,x=s.spot.distances,F=s.spot.directions,D=s.spot.anglesCos,N=s.spot.exponents,z=s.hemi.skyColors,H=s.hemi.groundColors,P=s.hemi.positions,U=0,ja=0,Z=0,V=0,$=0,X=0,Y=0,W=0,S=m=0,c=r=S=0,f=b.length;c<f;c++)m=b[c],m.onlyShadow||(n=m.color,q=m.intensity,r=m.distance,m instanceof THREE.AmbientLight?m.visible&&(K.gammaInput?(k+=n.r*n.r,l+=n.g*n.g,
|
|
|
-p+=n.b*n.b):(k+=n.r,l+=n.g,p+=n.b)):m instanceof THREE.DirectionalLight?($+=1,m.visible&&(ga.setFromMatrixPosition(m.matrixWorld),ra.setFromMatrixPosition(m.target.matrixWorld),ga.sub(ra),ga.normalize(),0===ga.x&&0===ga.y&&0===ga.z||(m=3*U,u[m]=ga.x,u[m+1]=ga.y,u[m+2]=ga.z,K.gammaInput?B(t,m,n,q*q):I(t,m,n,q),U+=1))):m instanceof THREE.PointLight?(X+=1,m.visible&&(S=3*ja,K.gammaInput?B(v,S,n,q*q):I(v,S,n,q),ra.setFromMatrixPosition(m.matrixWorld),w[S]=ra.x,w[S+1]=ra.y,w[S+2]=ra.z,y[ja]=r,ja+=1)):
|
|
|
-m instanceof THREE.SpotLight?(Y+=1,m.visible&&(S=3*Z,K.gammaInput?B(A,S,n,q*q):I(A,S,n,q),ra.setFromMatrixPosition(m.matrixWorld),G[S]=ra.x,G[S+1]=ra.y,G[S+2]=ra.z,x[Z]=r,ga.copy(ra),ra.setFromMatrixPosition(m.target.matrixWorld),ga.sub(ra),ga.normalize(),F[S]=ga.x,F[S+1]=ga.y,F[S+2]=ga.z,D[Z]=Math.cos(m.angle),N[Z]=m.exponent,Z+=1)):m instanceof THREE.HemisphereLight&&(W+=1,m.visible&&(ga.setFromMatrixPosition(m.matrixWorld),ga.normalize(),0===ga.x&&0===ga.y&&0===ga.z||(r=3*V,P[r]=ga.x,P[r+1]=ga.y,
|
|
|
-P[r+2]=ga.z,n=m.color,m=m.groundColor,K.gammaInput?(q*=q,B(z,r,n,q),B(H,r,m,q)):(I(z,r,n,q),I(H,r,m,q)),V+=1))));c=3*U;for(f=Math.max(t.length,3*$);c<f;c++)t[c]=0;c=3*ja;for(f=Math.max(v.length,3*X);c<f;c++)v[c]=0;c=3*Z;for(f=Math.max(A.length,3*Y);c<f;c++)A[c]=0;c=3*V;for(f=Math.max(z.length,3*W);c<f;c++)z[c]=0;c=3*V;for(f=Math.max(H.length,3*W);c<f;c++)H[c]=0;s.directional.length=U;s.point.length=ja;s.spot.length=Z;s.hemi.length=V;s.ambient[0]=k;s.ambient[1]=l;s.ambient[2]=p;sa=!1}c=Ra;i.ambientLightColor.value=
|
|
|
+j.uniform1i(g.boneTextureWidth,e.boneTextureWidth);null!==g.boneTextureHeight&&j.uniform1i(g.boneTextureHeight,e.boneTextureHeight)}else null!==g.boneGlobalMatrices&&j.uniformMatrix4fv(g.boneGlobalMatrices,!1,e.boneMatrices);if(f){c&&d.fog&&(i.fogColor.value=c.color,c instanceof THREE.Fog?(i.fogNear.value=c.near,i.fogFar.value=c.far):c instanceof THREE.FogExp2&&(i.fogDensity.value=c.density));if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d.lights){if(ta){for(var m,
|
|
|
+l=k=0,p=0,n,q,r,s=Ra,t=s.directional.colors,u=s.directional.positions,v=s.point.colors,w=s.point.positions,y=s.point.distances,A=s.spot.colors,G=s.spot.positions,x=s.spot.distances,F=s.spot.directions,D=s.spot.anglesCos,N=s.spot.exponents,z=s.hemi.skyColors,H=s.hemi.groundColors,P=s.hemi.positions,U=0,ja=0,$=0,V=0,X=0,Y=0,Z=0,W=0,T=m=0,c=r=T=0,f=b.length;c<f;c++)m=b[c],m.onlyShadow||(n=m.color,q=m.intensity,r=m.distance,m instanceof THREE.AmbientLight?m.visible&&(K.gammaInput?(k+=n.r*n.r,l+=n.g*n.g,
|
|
|
+p+=n.b*n.b):(k+=n.r,l+=n.g,p+=n.b)):m instanceof THREE.DirectionalLight?(X+=1,m.visible&&(ga.setFromMatrixPosition(m.matrixWorld),ra.setFromMatrixPosition(m.target.matrixWorld),ga.sub(ra),ga.normalize(),0===ga.x&&0===ga.y&&0===ga.z||(m=3*U,u[m]=ga.x,u[m+1]=ga.y,u[m+2]=ga.z,K.gammaInput?B(t,m,n,q*q):I(t,m,n,q),U+=1))):m instanceof THREE.PointLight?(Y+=1,m.visible&&(T=3*ja,K.gammaInput?B(v,T,n,q*q):I(v,T,n,q),ra.setFromMatrixPosition(m.matrixWorld),w[T]=ra.x,w[T+1]=ra.y,w[T+2]=ra.z,y[ja]=r,ja+=1)):
|
|
|
+m instanceof THREE.SpotLight?(Z+=1,m.visible&&(T=3*$,K.gammaInput?B(A,T,n,q*q):I(A,T,n,q),ra.setFromMatrixPosition(m.matrixWorld),G[T]=ra.x,G[T+1]=ra.y,G[T+2]=ra.z,x[$]=r,ga.copy(ra),ra.setFromMatrixPosition(m.target.matrixWorld),ga.sub(ra),ga.normalize(),F[T]=ga.x,F[T+1]=ga.y,F[T+2]=ga.z,D[$]=Math.cos(m.angle),N[$]=m.exponent,$+=1)):m instanceof THREE.HemisphereLight&&(W+=1,m.visible&&(ga.setFromMatrixPosition(m.matrixWorld),ga.normalize(),0===ga.x&&0===ga.y&&0===ga.z||(r=3*V,P[r]=ga.x,P[r+1]=ga.y,
|
|
|
+P[r+2]=ga.z,n=m.color,m=m.groundColor,K.gammaInput?(q*=q,B(z,r,n,q),B(H,r,m,q)):(I(z,r,n,q),I(H,r,m,q)),V+=1))));c=3*U;for(f=Math.max(t.length,3*X);c<f;c++)t[c]=0;c=3*ja;for(f=Math.max(v.length,3*Y);c<f;c++)v[c]=0;c=3*$;for(f=Math.max(A.length,3*Z);c<f;c++)A[c]=0;c=3*V;for(f=Math.max(z.length,3*W);c<f;c++)z[c]=0;c=3*V;for(f=Math.max(H.length,3*W);c<f;c++)H[c]=0;s.directional.length=U;s.point.length=ja;s.spot.length=$;s.hemi.length=V;s.ambient[0]=k;s.ambient[1]=l;s.ambient[2]=p;ta=!1}c=Ra;i.ambientLightColor.value=
|
|
|
c.ambient;i.directionalLightColor.value=c.directional.colors;i.directionalLightDirection.value=c.directional.positions;i.pointLightColor.value=c.point.colors;i.pointLightPosition.value=c.point.positions;i.pointLightDistance.value=c.point.distances;i.spotLightColor.value=c.spot.colors;i.spotLightPosition.value=c.spot.positions;i.spotLightDistance.value=c.spot.distances;i.spotLightDirection.value=c.spot.directions;i.spotLightAngleCos.value=c.spot.anglesCos;i.spotLightExponent.value=c.spot.exponents;
|
|
|
i.hemisphereLightSkyColor.value=c.hemi.skyColors;i.hemisphereLightGroundColor.value=c.hemi.groundColors;i.hemisphereLightDirection.value=c.hemi.positions}if(d instanceof THREE.MeshBasicMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.MeshPhongMaterial){i.opacity.value=d.opacity;K.gammaInput?i.diffuse.value.copyGammaToLinear(d.color):i.diffuse.value=d.color;i.map.value=d.map;i.lightMap.value=d.lightMap;i.specularMap.value=d.specularMap;d.bumpMap&&(i.bumpMap.value=d.bumpMap,i.bumpScale.value=
|
|
|
-d.bumpScale);d.normalMap&&(i.normalMap.value=d.normalMap,i.normalScale.value.copy(d.normalScale));var T;d.map?T=d.map:d.specularMap?T=d.specularMap:d.normalMap?T=d.normalMap:d.bumpMap&&(T=d.bumpMap);void 0!==T&&(c=T.offset,T=T.repeat,i.offsetRepeat.value.set(c.x,c.y,T.x,T.y));i.envMap.value=d.envMap;i.flipEnvMap.value=d.envMap instanceof THREE.WebGLRenderTargetCube?1:-1;i.reflectivity.value=d.reflectivity;i.refractionRatio.value=d.refractionRatio;i.combine.value=d.combine;i.useRefract.value=d.envMap&&
|
|
|
+d.bumpScale);d.normalMap&&(i.normalMap.value=d.normalMap,i.normalScale.value.copy(d.normalScale));var S;d.map?S=d.map:d.specularMap?S=d.specularMap:d.normalMap?S=d.normalMap:d.bumpMap&&(S=d.bumpMap);void 0!==S&&(c=S.offset,S=S.repeat,i.offsetRepeat.value.set(c.x,c.y,S.x,S.y));i.envMap.value=d.envMap;i.flipEnvMap.value=d.envMap instanceof THREE.WebGLRenderTargetCube?1:-1;i.reflectivity.value=d.reflectivity;i.refractionRatio.value=d.refractionRatio;i.combine.value=d.combine;i.useRefract.value=d.envMap&&
|
|
|
d.envMap.mapping instanceof THREE.CubeRefractionMapping}d instanceof THREE.LineBasicMaterial?(i.diffuse.value=d.color,i.opacity.value=d.opacity):d instanceof THREE.LineDashedMaterial?(i.diffuse.value=d.color,i.opacity.value=d.opacity,i.dashSize.value=d.dashSize,i.totalSize.value=d.dashSize+d.gapSize,i.scale.value=d.scale):d instanceof THREE.ParticleSystemMaterial?(i.psColor.value=d.color,i.opacity.value=d.opacity,i.size.value=d.size,i.scale.value=M.height/2,i.map.value=d.map):d instanceof THREE.MeshPhongMaterial?
|
|
|
(i.shininess.value=d.shininess,K.gammaInput?(i.ambient.value.copyGammaToLinear(d.ambient),i.emissive.value.copyGammaToLinear(d.emissive),i.specular.value.copyGammaToLinear(d.specular)):(i.ambient.value=d.ambient,i.emissive.value=d.emissive,i.specular.value=d.specular),d.wrapAround&&i.wrapRGB.value.copy(d.wrapRGB)):d instanceof THREE.MeshLambertMaterial?(K.gammaInput?(i.ambient.value.copyGammaToLinear(d.ambient),i.emissive.value.copyGammaToLinear(d.emissive)):(i.ambient.value=d.ambient,i.emissive.value=
|
|
|
-d.emissive),d.wrapAround&&i.wrapRGB.value.copy(d.wrapRGB)):d instanceof THREE.MeshDepthMaterial?(i.mNear.value=a.near,i.mFar.value=a.far,i.opacity.value=d.opacity):d instanceof THREE.MeshNormalMaterial&&(i.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&i.shadowMatrix){c=T=0;for(f=b.length;c<f;c++)if(k=b[c],k.castShadow&&(k instanceof THREE.SpotLight||k instanceof THREE.DirectionalLight&&!k.shadowCascade))i.shadowMap.value[T]=k.shadowMap,i.shadowMapSize.value[T]=k.shadowMapSize,i.shadowMatrix.value[T]=
|
|
|
-k.shadowMatrix,i.shadowDarkness.value[T]=k.shadowDarkness,i.shadowBias.value[T]=k.shadowBias,T++}b=d.uniformsList;i=0;for(T=b.length;i<T;i++)if(f=h.uniforms[b[i][1]])if(c=b[i][0],l=c.type,k=c.value,"i"===l)j.uniform1i(f,k);else if("f"===l)j.uniform1f(f,k);else if("v2"===l)j.uniform2f(f,k.x,k.y);else if("v3"===l)j.uniform3f(f,k.x,k.y,k.z);else if("v4"===l)j.uniform4f(f,k.x,k.y,k.z,k.w);else if("c"===l)j.uniform3f(f,k.r,k.g,k.b);else if("iv1"===l)j.uniform1iv(f,k);else if("iv"===l)j.uniform3iv(f,k);
|
|
|
+d.emissive),d.wrapAround&&i.wrapRGB.value.copy(d.wrapRGB)):d instanceof THREE.MeshDepthMaterial?(i.mNear.value=a.near,i.mFar.value=a.far,i.opacity.value=d.opacity):d instanceof THREE.MeshNormalMaterial&&(i.opacity.value=d.opacity);if(e.receiveShadow&&!d._shadowPass&&i.shadowMatrix){c=S=0;for(f=b.length;c<f;c++)if(k=b[c],k.castShadow&&(k instanceof THREE.SpotLight||k instanceof THREE.DirectionalLight&&!k.shadowCascade))i.shadowMap.value[S]=k.shadowMap,i.shadowMapSize.value[S]=k.shadowMapSize,i.shadowMatrix.value[S]=
|
|
|
+k.shadowMatrix,i.shadowDarkness.value[S]=k.shadowDarkness,i.shadowBias.value[S]=k.shadowBias,S++}b=d.uniformsList;i=0;for(S=b.length;i<S;i++)if(f=h.uniforms[b[i][1]])if(c=b[i][0],l=c.type,k=c.value,"i"===l)j.uniform1i(f,k);else if("f"===l)j.uniform1f(f,k);else if("v2"===l)j.uniform2f(f,k.x,k.y);else if("v3"===l)j.uniform3f(f,k.x,k.y,k.z);else if("v4"===l)j.uniform4f(f,k.x,k.y,k.z,k.w);else if("c"===l)j.uniform3f(f,k.r,k.g,k.b);else if("iv1"===l)j.uniform1iv(f,k);else if("iv"===l)j.uniform3iv(f,k);
|
|
|
else if("fv1"===l)j.uniform1fv(f,k);else if("fv"===l)j.uniform3fv(f,k);else if("v2v"===l){void 0===c._array&&(c._array=new Float32Array(2*k.length));l=0;for(p=k.length;l<p;l++)s=2*l,c._array[s]=k[l].x,c._array[s+1]=k[l].y;j.uniform2fv(f,c._array)}else if("v3v"===l){void 0===c._array&&(c._array=new Float32Array(3*k.length));l=0;for(p=k.length;l<p;l++)s=3*l,c._array[s]=k[l].x,c._array[s+1]=k[l].y,c._array[s+2]=k[l].z;j.uniform3fv(f,c._array)}else if("v4v"===l){void 0===c._array&&(c._array=new Float32Array(4*
|
|
|
k.length));l=0;for(p=k.length;l<p;l++)s=4*l,c._array[s]=k[l].x,c._array[s+1]=k[l].y,c._array[s+2]=k[l].z,c._array[s+3]=k[l].w;j.uniform4fv(f,c._array)}else if("m4"===l)void 0===c._array&&(c._array=new Float32Array(16)),k.flattenToArray(c._array),j.uniformMatrix4fv(f,!1,c._array);else if("m4v"===l){void 0===c._array&&(c._array=new Float32Array(16*k.length));l=0;for(p=k.length;l<p;l++)k[l].flattenToArrayOffset(c._array,16*l);j.uniformMatrix4fv(f,!1,c._array)}else if("t"===l){if(s=k,k=L(),j.uniform1i(f,
|
|
|
k),s)if(s.image instanceof Array&&6===s.image.length){if(c=s,f=k,6===c.image.length)if(c.needsUpdate){c.image.__webglTextureCube||(c.addEventListener("dispose",sb),c.image.__webglTextureCube=j.createTexture(),K.info.memory.textures++);j.activeTexture(j.TEXTURE0+f);j.bindTexture(j.TEXTURE_CUBE_MAP,c.image.__webglTextureCube);j.pixelStorei(j.UNPACK_FLIP_Y_WEBGL,c.flipY);f=c instanceof THREE.CompressedTexture;k=[];for(l=0;6>l;l++)K.autoScaleCubemaps&&!f?(p=k,s=l,t=c.image[l],v=Yb,t.width<=v&&t.height<=
|
|
@@ -406,27 +406,27 @@ v||(w=Math.max(t.width,t.height),u=Math.floor(t.width*v/w),v=Math.floor(t.height
|
|
|
l,w,s,u.width,u.height,0,u.data):j.texImage2D(j.TEXTURE_CUBE_MAP_POSITIVE_X+l,w,s,u.width,u.height,0,s,t,u.data)}else j.texImage2D(j.TEXTURE_CUBE_MAP_POSITIVE_X+l,0,s,s,t,k[l]);c.generateMipmaps&&p&&j.generateMipmap(j.TEXTURE_CUBE_MAP);c.needsUpdate=!1;if(c.onUpdate)c.onUpdate()}else j.activeTexture(j.TEXTURE0+f),j.bindTexture(j.TEXTURE_CUBE_MAP,c.image.__webglTextureCube)}else s instanceof THREE.WebGLRenderTargetCube?(c=s,j.activeTexture(j.TEXTURE0+k),j.bindTexture(j.TEXTURE_CUBE_MAP,c.__webglTexture)):
|
|
|
K.setTexture(s,k)}else if("tv"===l){void 0===c._array&&(c._array=[]);l=0;for(p=c.value.length;l<p;l++)c._array[l]=L();j.uniform1iv(f,c._array);l=0;for(p=c.value.length;l<p;l++)s=c.value[l],k=c._array[l],s&&K.setTexture(s,k)}else console.warn("THREE.WebGLRenderer: Unknown uniform type: "+l);if((d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&null!==g.cameraPosition)ra.setFromMatrixPosition(a.matrixWorld),j.uniform3f(g.cameraPosition,ra.x,ra.y,ra.z);(d instanceof
|
|
|
THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&null!==g.viewMatrix&&j.uniformMatrix4fv(g.viewMatrix,!1,a.matrixWorldInverse.elements)}j.uniformMatrix4fv(g.modelViewMatrix,!1,e._modelViewMatrix.elements);g.normalMatrix&&j.uniformMatrix3fv(g.normalMatrix,!1,e._normalMatrix.elements);null!==g.modelMatrix&&j.uniformMatrix4fv(g.modelMatrix,!1,e.matrixWorld.elements);return h}function L(){var a=wa;a>=Hb&&console.warn("WebGLRenderer: trying to use "+
|
|
|
-a+" texture units while this GPU supports only "+Hb);wa+=1;return a}function B(a,b,c,d){a[b]=c.r*c.r*d;a[b+1]=c.g*c.g*d;a[b+2]=c.b*c.b*d}function I(a,b,c,d){a[b]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function w(a){a!==Ja&&(j.lineWidth(a),Ja=a)}function G(a,b,c){xa!==a&&(a?j.enable(j.POLYGON_OFFSET_FILL):j.disable(j.POLYGON_OFFSET_FILL),xa=a);if(a&&(ma!==b||ka!==c))j.polygonOffset(b,c),ma=b,ka=c}function N(a){for(var a=a.split("\n"),b=0,c=a.length;b<c;b++)a[b]=b+1+": "+a[b];return a.join("\n")}function x(a,
|
|
|
+a+" texture units while this GPU supports only "+Hb);wa+=1;return a}function B(a,b,c,d){a[b]=c.r*c.r*d;a[b+1]=c.g*c.g*d;a[b+2]=c.b*c.b*d}function I(a,b,c,d){a[b]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function w(a){a!==Ka&&(j.lineWidth(a),Ka=a)}function G(a,b,c){xa!==a&&(a?j.enable(j.POLYGON_OFFSET_FILL):j.disable(j.POLYGON_OFFSET_FILL),xa=a);if(a&&(ma!==b||ka!==c))j.polygonOffset(b,c),ma=b,ka=c}function N(a){for(var a=a.split("\n"),b=0,c=a.length;b<c;b++)a[b]=b+1+": "+a[b];return a.join("\n")}function x(a,
|
|
|
b){var c;"fragment"===a?c=j.createShader(j.FRAGMENT_SHADER):"vertex"===a&&(c=j.createShader(j.VERTEX_SHADER));j.shaderSource(c,b);j.compileShader(c);return!j.getShaderParameter(c,j.COMPILE_STATUS)?(console.error(j.getShaderInfoLog(c)),console.error(N(b)),null):c}function E(a,b,c){c?(j.texParameteri(a,j.TEXTURE_WRAP_S,C(b.wrapS)),j.texParameteri(a,j.TEXTURE_WRAP_T,C(b.wrapT)),j.texParameteri(a,j.TEXTURE_MAG_FILTER,C(b.magFilter)),j.texParameteri(a,j.TEXTURE_MIN_FILTER,C(b.minFilter))):(j.texParameteri(a,
|
|
|
j.TEXTURE_WRAP_S,j.CLAMP_TO_EDGE),j.texParameteri(a,j.TEXTURE_WRAP_T,j.CLAMP_TO_EDGE),j.texParameteri(a,j.TEXTURE_MAG_FILTER,z(b.magFilter)),j.texParameteri(a,j.TEXTURE_MIN_FILTER,z(b.minFilter)));if(va&&b.type!==THREE.FloatType&&(1<b.anisotropy||b.__oldAnisotropy))j.texParameterf(a,va.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,Ab)),b.__oldAnisotropy=b.anisotropy}function A(a,b){j.bindRenderbuffer(j.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(j.renderbufferStorage(j.RENDERBUFFER,j.DEPTH_COMPONENT16,
|
|
|
b.width,b.height),j.framebufferRenderbuffer(j.FRAMEBUFFER,j.DEPTH_ATTACHMENT,j.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(j.renderbufferStorage(j.RENDERBUFFER,j.DEPTH_STENCIL,b.width,b.height),j.framebufferRenderbuffer(j.FRAMEBUFFER,j.DEPTH_STENCIL_ATTACHMENT,j.RENDERBUFFER,a)):j.renderbufferStorage(j.RENDERBUFFER,j.RGBA4,b.width,b.height)}function z(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?j.NEAREST:j.LINEAR}function C(a){if(a===
|
|
|
THREE.RepeatWrapping)return j.REPEAT;if(a===THREE.ClampToEdgeWrapping)return j.CLAMP_TO_EDGE;if(a===THREE.MirroredRepeatWrapping)return j.MIRRORED_REPEAT;if(a===THREE.NearestFilter)return j.NEAREST;if(a===THREE.NearestMipMapNearestFilter)return j.NEAREST_MIPMAP_NEAREST;if(a===THREE.NearestMipMapLinearFilter)return j.NEAREST_MIPMAP_LINEAR;if(a===THREE.LinearFilter)return j.LINEAR;if(a===THREE.LinearMipMapNearestFilter)return j.LINEAR_MIPMAP_NEAREST;if(a===THREE.LinearMipMapLinearFilter)return j.LINEAR_MIPMAP_LINEAR;
|
|
|
if(a===THREE.UnsignedByteType)return j.UNSIGNED_BYTE;if(a===THREE.UnsignedShort4444Type)return j.UNSIGNED_SHORT_4_4_4_4;if(a===THREE.UnsignedShort5551Type)return j.UNSIGNED_SHORT_5_5_5_1;if(a===THREE.UnsignedShort565Type)return j.UNSIGNED_SHORT_5_6_5;if(a===THREE.ByteType)return j.BYTE;if(a===THREE.ShortType)return j.SHORT;if(a===THREE.UnsignedShortType)return j.UNSIGNED_SHORT;if(a===THREE.IntType)return j.INT;if(a===THREE.UnsignedIntType)return j.UNSIGNED_INT;if(a===THREE.FloatType)return j.FLOAT;
|
|
|
if(a===THREE.AlphaFormat)return j.ALPHA;if(a===THREE.RGBFormat)return j.RGB;if(a===THREE.RGBAFormat)return j.RGBA;if(a===THREE.LuminanceFormat)return j.LUMINANCE;if(a===THREE.LuminanceAlphaFormat)return j.LUMINANCE_ALPHA;if(a===THREE.AddEquation)return j.FUNC_ADD;if(a===THREE.SubtractEquation)return j.FUNC_SUBTRACT;if(a===THREE.ReverseSubtractEquation)return j.FUNC_REVERSE_SUBTRACT;if(a===THREE.ZeroFactor)return j.ZERO;if(a===THREE.OneFactor)return j.ONE;if(a===THREE.SrcColorFactor)return j.SRC_COLOR;
|
|
|
-if(a===THREE.OneMinusSrcColorFactor)return j.ONE_MINUS_SRC_COLOR;if(a===THREE.SrcAlphaFactor)return j.SRC_ALPHA;if(a===THREE.OneMinusSrcAlphaFactor)return j.ONE_MINUS_SRC_ALPHA;if(a===THREE.DstAlphaFactor)return j.DST_ALPHA;if(a===THREE.OneMinusDstAlphaFactor)return j.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return j.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return j.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return j.SRC_ALPHA_SATURATE;if(void 0!==ta){if(a===THREE.RGB_S3TC_DXT1_Format)return ta.COMPRESSED_RGB_S3TC_DXT1_EXT;
|
|
|
-if(a===THREE.RGBA_S3TC_DXT1_Format)return ta.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT3_Format)return ta.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return ta.COMPRESSED_RGBA_S3TC_DXT5_EXT}return 0}console.log("THREE.WebGLRenderer",THREE.REVISION);var a=a||{},M=void 0!==a.canvas?a.canvas:document.createElement("canvas"),F=void 0!==a.precision?a.precision:"highp",Z=void 0!==a.alpha?a.alpha:!1,ea=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,Ba=void 0!==a.antialias?
|
|
|
-a.antialias:!1,H=void 0!==a.stencil?a.stencil:!0,V=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,da=new THREE.Color(0),ia=0;this.domElement=M;this.context=null;this.devicePixelRatio=void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.autoUpdateObjects=this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.shadowMapEnabled=this.gammaOutput=this.gammaInput=!1;this.shadowMapAutoUpdate=
|
|
|
-!0;this.shadowMapType=THREE.PCFShadowMap;this.shadowMapCullFace=THREE.CullFaceFront;this.shadowMapCascade=this.shadowMapDebug=!1;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;this.renderPluginsPre=[];this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};var K=this,P=[],ja=0,Fa=null,Pa=null,Ea=-1,ya=null,Ha=null,Va=0,wa=0,za=-1,T=-1,U=-1,Ia=-1,$=-1,fa=-1,ua=-1,Ma=-1,xa=null,ma=null,ka=null,Ja=null,Ga=
|
|
|
-0,Aa=0,Na=M.width,Oa=M.height,Ka=0,Qa=0,La={},S=new THREE.Frustum,oa=new THREE.Matrix4,gb=new THREE.Matrix4,ra=new THREE.Vector3,ga=new THREE.Vector3,sa=!0,Ra={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],exponents:[]},hemi:{length:0,skyColors:[],groundColors:[],positions:[]}},j,cb,ba,va,ta;try{var Ya={alpha:Z,premultipliedAlpha:ea,antialias:Ba,stencil:H,
|
|
|
-preserveDrawingBuffer:V};j=M.getContext("webgl",Ya)||M.getContext("experimental-webgl",Ya);if(null===j)throw"Error creating WebGL context.";}catch(Wb){console.error(Wb)}cb=j.getExtension("OES_texture_float");j.getExtension("OES_texture_float_linear");ba=j.getExtension("OES_standard_derivatives");va=j.getExtension("EXT_texture_filter_anisotropic")||j.getExtension("MOZ_EXT_texture_filter_anisotropic")||j.getExtension("WEBKIT_EXT_texture_filter_anisotropic");ta=j.getExtension("WEBGL_compressed_texture_s3tc")||
|
|
|
-j.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||j.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");cb||console.log("THREE.WebGLRenderer: Float textures not supported.");ba||console.log("THREE.WebGLRenderer: Standard derivatives not supported.");va||console.log("THREE.WebGLRenderer: Anisotropic texture filtering not supported.");ta||console.log("THREE.WebGLRenderer: S3TC compressed textures not supported.");void 0===j.getShaderPrecisionFormat&&(j.getShaderPrecisionFormat=function(){return{rangeMin:1,
|
|
|
+if(a===THREE.OneMinusSrcColorFactor)return j.ONE_MINUS_SRC_COLOR;if(a===THREE.SrcAlphaFactor)return j.SRC_ALPHA;if(a===THREE.OneMinusSrcAlphaFactor)return j.ONE_MINUS_SRC_ALPHA;if(a===THREE.DstAlphaFactor)return j.DST_ALPHA;if(a===THREE.OneMinusDstAlphaFactor)return j.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return j.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return j.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return j.SRC_ALPHA_SATURATE;if(void 0!==ua){if(a===THREE.RGB_S3TC_DXT1_Format)return ua.COMPRESSED_RGB_S3TC_DXT1_EXT;
|
|
|
+if(a===THREE.RGBA_S3TC_DXT1_Format)return ua.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT3_Format)return ua.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return ua.COMPRESSED_RGBA_S3TC_DXT5_EXT}return 0}console.log("THREE.WebGLRenderer",THREE.REVISION);var a=a||{},M=void 0!==a.canvas?a.canvas:document.createElement("canvas"),F=void 0!==a.precision?a.precision:"highp",$=void 0!==a.alpha?a.alpha:!1,ea=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,Ba=void 0!==a.antialias?
|
|
|
+a.antialias:!1,H=void 0!==a.stencil?a.stencil:!0,X=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,da=new THREE.Color(0),ia=0;this.domElement=M;this.context=null;this.devicePixelRatio=void 0!==a.devicePixelRatio?a.devicePixelRatio:void 0!==self.devicePixelRatio?self.devicePixelRatio:1;this.autoUpdateObjects=this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.shadowMapEnabled=this.gammaOutput=this.gammaInput=!1;this.shadowMapAutoUpdate=
|
|
|
+!0;this.shadowMapType=THREE.PCFShadowMap;this.shadowMapCullFace=THREE.CullFaceFront;this.shadowMapCascade=this.shadowMapDebug=!1;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;this.renderPluginsPre=[];this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};var K=this,P=[],ja=0,Fa=null,Pa=null,Ea=-1,ya=null,Ha=null,Va=0,wa=0,za=-1,S=-1,U=-1,Ia=-1,T=-1,fa=-1,Ja=-1,Ma=-1,xa=null,ma=null,ka=null,Ka=null,Ga=
|
|
|
+0,Aa=0,Na=M.width,Oa=M.height,La=0,Qa=0,sa={},V=new THREE.Frustum,oa=new THREE.Matrix4,gb=new THREE.Matrix4,ra=new THREE.Vector3,ga=new THREE.Vector3,ta=!0,Ra={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],exponents:[]},hemi:{length:0,skyColors:[],groundColors:[],positions:[]}},j,cb,ba,va,ua;try{var Ya={alpha:$,premultipliedAlpha:ea,antialias:Ba,stencil:H,
|
|
|
+preserveDrawingBuffer:X};j=M.getContext("webgl",Ya)||M.getContext("experimental-webgl",Ya);if(null===j)throw"Error creating WebGL context.";}catch(Wb){console.error(Wb)}cb=j.getExtension("OES_texture_float");j.getExtension("OES_texture_float_linear");ba=j.getExtension("OES_standard_derivatives");va=j.getExtension("EXT_texture_filter_anisotropic")||j.getExtension("MOZ_EXT_texture_filter_anisotropic")||j.getExtension("WEBKIT_EXT_texture_filter_anisotropic");ua=j.getExtension("WEBGL_compressed_texture_s3tc")||
|
|
|
+j.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||j.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");cb||console.log("THREE.WebGLRenderer: Float textures not supported.");ba||console.log("THREE.WebGLRenderer: Standard derivatives not supported.");va||console.log("THREE.WebGLRenderer: Anisotropic texture filtering not supported.");ua||console.log("THREE.WebGLRenderer: S3TC compressed textures not supported.");void 0===j.getShaderPrecisionFormat&&(j.getShaderPrecisionFormat=function(){return{rangeMin:1,
|
|
|
rangeMax:1,precision:1}});j.clearColor(0,0,0,1);j.clearDepth(1);j.clearStencil(0);j.enable(j.DEPTH_TEST);j.depthFunc(j.LEQUAL);j.frontFace(j.CCW);j.cullFace(j.BACK);j.enable(j.CULL_FACE);j.enable(j.BLEND);j.blendEquation(j.FUNC_ADD);j.blendFunc(j.SRC_ALPHA,j.ONE_MINUS_SRC_ALPHA);j.viewport(Ga,Aa,Na,Oa);j.clearColor(da.r,da.g,da.b,ia);this.context=j;var Hb=j.getParameter(j.MAX_TEXTURE_IMAGE_UNITS),Xb=j.getParameter(j.MAX_VERTEX_TEXTURE_IMAGE_UNITS);j.getParameter(j.MAX_TEXTURE_SIZE);var Yb=j.getParameter(j.MAX_CUBE_MAP_TEXTURE_SIZE),
|
|
|
-Ab=va?j.getParameter(va.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,wb=0<Xb,xb=wb&&cb;ta&&j.getParameter(j.COMPRESSED_TEXTURE_FORMATS);var Zb=j.getShaderPrecisionFormat(j.VERTEX_SHADER,j.HIGH_FLOAT),$b=j.getShaderPrecisionFormat(j.VERTEX_SHADER,j.MEDIUM_FLOAT);j.getShaderPrecisionFormat(j.VERTEX_SHADER,j.LOW_FLOAT);var pc=j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.HIGH_FLOAT),qc=j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.MEDIUM_FLOAT);j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.LOW_FLOAT);j.getShaderPrecisionFormat(j.VERTEX_SHADER,
|
|
|
+Ab=va?j.getParameter(va.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,wb=0<Xb,xb=wb&&cb;ua&&j.getParameter(j.COMPRESSED_TEXTURE_FORMATS);var Zb=j.getShaderPrecisionFormat(j.VERTEX_SHADER,j.HIGH_FLOAT),$b=j.getShaderPrecisionFormat(j.VERTEX_SHADER,j.MEDIUM_FLOAT);j.getShaderPrecisionFormat(j.VERTEX_SHADER,j.LOW_FLOAT);var pc=j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.HIGH_FLOAT),qc=j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.MEDIUM_FLOAT);j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.LOW_FLOAT);j.getShaderPrecisionFormat(j.VERTEX_SHADER,
|
|
|
j.HIGH_INT);j.getShaderPrecisionFormat(j.VERTEX_SHADER,j.MEDIUM_INT);j.getShaderPrecisionFormat(j.VERTEX_SHADER,j.LOW_INT);j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.HIGH_INT);j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.MEDIUM_INT);j.getShaderPrecisionFormat(j.FRAGMENT_SHADER,j.LOW_INT);var rc=0<Zb.precision&&0<pc.precision,Ib=0<$b.precision&&0<qc.precision;"highp"===F&&!rc&&(Ib?(F="mediump",console.warn("WebGLRenderer: highp not supported, using mediump")):(F="lowp",console.warn("WebGLRenderer: highp and mediump not supported, using lowp")));
|
|
|
-"mediump"===F&&!Ib&&(F="lowp",console.warn("WebGLRenderer: mediump not supported, using lowp"));this.getContext=function(){return j};this.supportsVertexTextures=function(){return wb};this.supportsFloatTextures=function(){return cb};this.supportsStandardDerivatives=function(){return ba};this.supportsCompressedTextureS3TC=function(){return ta};this.getMaxAnisotropy=function(){return Ab};this.getPrecision=function(){return F};this.setSize=function(a,b,c){M.width=a*this.devicePixelRatio;M.height=b*this.devicePixelRatio;
|
|
|
+"mediump"===F&&!Ib&&(F="lowp",console.warn("WebGLRenderer: mediump not supported, using lowp"));this.getContext=function(){return j};this.supportsVertexTextures=function(){return wb};this.supportsFloatTextures=function(){return cb};this.supportsStandardDerivatives=function(){return ba};this.supportsCompressedTextureS3TC=function(){return ua};this.getMaxAnisotropy=function(){return Ab};this.getPrecision=function(){return F};this.setSize=function(a,b,c){M.width=a*this.devicePixelRatio;M.height=b*this.devicePixelRatio;
|
|
|
1!==this.devicePixelRatio&&!1!==c&&(M.style.width=a+"px",M.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){Ga=a*this.devicePixelRatio;Aa=b*this.devicePixelRatio;Na=c*this.devicePixelRatio;Oa=d*this.devicePixelRatio;j.viewport(Ga,Aa,Na,Oa)};this.setScissor=function(a,b,c,d){j.scissor(a*this.devicePixelRatio,b*this.devicePixelRatio,c*this.devicePixelRatio,d*this.devicePixelRatio)};this.enableScissorTest=function(a){a?j.enable(j.SCISSOR_TEST):j.disable(j.SCISSOR_TEST)};
|
|
|
this.setClearColor=function(a,b){da.set(a);ia=void 0!==b?b:1;j.clearColor(da.r,da.g,da.b,ia)};this.setClearColorHex=function(a,b){console.warn("DEPRECATED: .setClearColorHex() is being removed. Use .setClearColor() instead.");this.setClearColor(a,b)};this.getClearColor=function(){return da};this.getClearAlpha=function(){return ia};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=j.COLOR_BUFFER_BIT;if(void 0===b||b)d|=j.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=j.STENCIL_BUFFER_BIT;j.clear(d)};this.clearColor=
|
|
|
-function(){j.clear(j.COLOR_BUFFER_BIT)};this.clearDepth=function(){j.clear(j.DEPTH_BUFFER_BIT)};this.clearStencil=function(){j.clear(j.STENCIL_BUFFER_BIT)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.addPostPlugin=function(a){a.init(this);this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this);this.renderPluginsPre.push(a)};this.updateShadowMap=function(a,b){Fa=null;Ea=ya=Ma=ua=U=-1;sa=!0;T=za=-1;this.shadowMapPlugin.update(a,b)};var Jb=function(a){a=
|
|
|
+function(){j.clear(j.COLOR_BUFFER_BIT)};this.clearDepth=function(){j.clear(j.DEPTH_BUFFER_BIT)};this.clearStencil=function(){j.clear(j.STENCIL_BUFFER_BIT)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.addPostPlugin=function(a){a.init(this);this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this);this.renderPluginsPre.push(a)};this.updateShadowMap=function(a,b){Fa=null;Ea=ya=Ma=Ja=U=-1;ta=!0;S=za=-1;this.shadowMapPlugin.update(a,b)};var Jb=function(a){a=
|
|
|
a.target;a.removeEventListener("dispose",Jb);a.__webglInit=void 0;if(a instanceof THREE.BufferGeometry){var b=a.attributes,c;for(c in b)void 0!==b[c].buffer&&j.deleteBuffer(b[c].buffer);K.info.memory.geometries--}else if(void 0!==a.geometryGroups)for(b in a.geometryGroups){c=a.geometryGroups[b];if(void 0!==c.numMorphTargets)for(var d=0,e=c.numMorphTargets;d<e;d++)j.deleteBuffer(c.__webglMorphTargetsBuffers[d]);if(void 0!==c.numMorphNormals){d=0;for(e=c.numMorphNormals;d<e;d++)j.deleteBuffer(c.__webglMorphNormalsBuffers[d])}Cb(c)}else Cb(a)},
|
|
|
sb=function(a){a=a.target;a.removeEventListener("dispose",sb);a.image&&a.image.__webglTextureCube?j.deleteTexture(a.image.__webglTextureCube):a.__webglInit&&(a.__webglInit=!1,j.deleteTexture(a.__webglTexture));K.info.memory.textures--},Kb=function(a){a=a.target;a.removeEventListener("dispose",Kb);if(a&&a.__webglTexture)if(j.deleteTexture(a.__webglTexture),a instanceof THREE.WebGLRenderTargetCube)for(var b=0;6>b;b++)j.deleteFramebuffer(a.__webglFramebuffer[b]),j.deleteRenderbuffer(a.__webglRenderbuffer[b]);
|
|
|
else j.deleteFramebuffer(a.__webglFramebuffer),j.deleteRenderbuffer(a.__webglRenderbuffer);K.info.memory.textures--},Lb=function(a){a=a.target;a.removeEventListener("dispose",Lb);Bb(a)},Cb=function(a){void 0!==a.__webglVertexBuffer&&j.deleteBuffer(a.__webglVertexBuffer);void 0!==a.__webglNormalBuffer&&j.deleteBuffer(a.__webglNormalBuffer);void 0!==a.__webglTangentBuffer&&j.deleteBuffer(a.__webglTangentBuffer);void 0!==a.__webglColorBuffer&&j.deleteBuffer(a.__webglColorBuffer);void 0!==a.__webglUVBuffer&&
|
|
@@ -449,29 +449,29 @@ k;h++)c=e.__webglCustomAttributesList[h],0<=a[c.buffer.belongsToAttribute]&&(j.b
|
|
|
(j.bindBuffer(j.ARRAY_BUFFER,e.__webglUV2Buffer),g(a.uv2),j.vertexAttribPointer(a.uv2,2,j.FLOAT,!1,0,0)):d.defaultAttributeValues&&j.vertexAttrib2fv(a.uv2,d.defaultAttributeValues.uv2));d.skinning&&(0<=a.skinIndex&&0<=a.skinWeight)&&(j.bindBuffer(j.ARRAY_BUFFER,e.__webglSkinIndicesBuffer),g(a.skinIndex),j.vertexAttribPointer(a.skinIndex,4,j.FLOAT,!1,0,0),j.bindBuffer(j.ARRAY_BUFFER,e.__webglSkinWeightsBuffer),g(a.skinWeight),j.vertexAttribPointer(a.skinWeight,4,j.FLOAT,!1,0,0));0<=a.lineDistance&&
|
|
|
(j.bindBuffer(j.ARRAY_BUFFER,e.__webglLineDistanceBuffer),g(a.lineDistance),j.vertexAttribPointer(a.lineDistance,1,j.FLOAT,!1,0,0))}f instanceof THREE.Mesh?(d.wireframe?(w(d.wireframeLinewidth),b&&j.bindBuffer(j.ELEMENT_ARRAY_BUFFER,e.__webglLineBuffer),j.drawElements(j.LINES,e.__webglLineCount,j.UNSIGNED_SHORT,0)):(b&&j.bindBuffer(j.ELEMENT_ARRAY_BUFFER,e.__webglFaceBuffer),j.drawElements(j.TRIANGLES,e.__webglFaceCount,j.UNSIGNED_SHORT,0)),K.info.render.calls++,K.info.render.vertices+=e.__webglFaceCount,
|
|
|
K.info.render.faces+=e.__webglFaceCount/3):f instanceof THREE.Line?(f=f.type===THREE.LineStrip?j.LINE_STRIP:j.LINES,w(d.linewidth),j.drawArrays(f,0,e.__webglLineCount),K.info.render.calls++):f instanceof THREE.ParticleSystem&&(j.drawArrays(j.POINTS,0,e.__webglParticleCount),K.info.render.calls++,K.info.render.points+=e.__webglParticleCount)}};this.render=function(a,b,c,d){if(!1===b instanceof THREE.Camera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{var e,
|
|
|
-f,h,g,i=a.__lights,m=a.fog;Ea=-1;sa=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);oa.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);S.setFromMatrix(oa);this.autoUpdateObjects&&this.initWebGLObjects(a);l(this.renderPluginsPre,a,b);K.info.render.calls=0;K.info.render.vertices=0;K.info.render.faces=0;K.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,
|
|
|
-this.autoClearStencil);g=a.__webglObjects;d=0;for(e=g.length;d<e;d++)if(f=g[d],h=f.object,f.id=d,f.render=!1,h.visible&&(!(h instanceof THREE.Mesh||h instanceof THREE.ParticleSystem)||!h.frustumCulled||S.intersectsObject(h))){var n=h;n._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,n.matrixWorld);n._normalMatrix.getNormalMatrix(n._modelViewMatrix);var n=f,q=n.buffer,r=void 0,t=r=void 0,t=n.object.material;if(t instanceof THREE.MeshFaceMaterial)r=q.materialIndex,r=t.materials[r],r.transparent?
|
|
|
+f,h,g,i=a.__lights,m=a.fog;Ea=-1;ta=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);oa.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);V.setFromMatrix(oa);this.autoUpdateObjects&&this.initWebGLObjects(a);l(this.renderPluginsPre,a,b);K.info.render.calls=0;K.info.render.vertices=0;K.info.render.faces=0;K.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,
|
|
|
+this.autoClearStencil);g=a.__webglObjects;d=0;for(e=g.length;d<e;d++)if(f=g[d],h=f.object,f.id=d,f.render=!1,h.visible&&(!(h instanceof THREE.Mesh||h instanceof THREE.ParticleSystem)||!h.frustumCulled||V.intersectsObject(h))){var n=h;n._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,n.matrixWorld);n._normalMatrix.getNormalMatrix(n._modelViewMatrix);var n=f,q=n.buffer,r=void 0,t=r=void 0,t=n.object.material;if(t instanceof THREE.MeshFaceMaterial)r=q.materialIndex,r=t.materials[r],r.transparent?
|
|
|
(n.transparent=r,n.opaque=null):(n.opaque=r,n.transparent=null);else if(r=t)r.transparent?(n.transparent=r,n.opaque=null):(n.opaque=r,n.transparent=null);f.render=!0;!0===this.sortObjects&&(null!==h.renderDepth?f.z=h.renderDepth:(ra.setFromMatrixPosition(h.matrixWorld),ra.applyProjection(oa),f.z=ra.z))}this.sortObjects&&g.sort(k);g=a.__webglObjectsImmediate;d=0;for(e=g.length;d<e;d++)f=g[d],h=f.object,h.visible&&(h._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,h.matrixWorld),h._normalMatrix.getNormalMatrix(h._modelViewMatrix),
|
|
|
h=f.object.material,h.transparent?(f.transparent=h,f.opaque=null):(f.opaque=h,f.transparent=null));a.overrideMaterial?(d=a.overrideMaterial,this.setBlending(d.blending,d.blendEquation,d.blendSrc,d.blendDst),this.setDepthTest(d.depthTest),this.setDepthWrite(d.depthWrite),G(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits),p(a.__webglObjects,!1,"",b,i,m,!0,d),s(a.__webglObjectsImmediate,"",b,i,m,!1,d)):(d=null,this.setBlending(THREE.NoBlending),p(a.__webglObjects,!0,"opaque",b,i,m,!1,d),s(a.__webglObjectsImmediate,
|
|
|
"opaque",b,i,m,!1,d),p(a.__webglObjects,!1,"transparent",b,i,m,!0,d),s(a.__webglObjectsImmediate,"transparent",b,i,m,!0,d));l(this.renderPluginsPost,a,b);c&&(c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter)&&(c instanceof THREE.WebGLRenderTargetCube?(j.bindTexture(j.TEXTURE_CUBE_MAP,c.__webglTexture),j.generateMipmap(j.TEXTURE_CUBE_MAP),j.bindTexture(j.TEXTURE_CUBE_MAP,null)):(j.bindTexture(j.TEXTURE_2D,c.__webglTexture),j.generateMipmap(j.TEXTURE_2D),j.bindTexture(j.TEXTURE_2D,
|
|
|
-null)));this.setDepthTest(!0);this.setDepthWrite(!0)}};this.renderImmediateObject=function(a,b,c,d,e){var f=D(a,b,c,d,e);ya=-1;K.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,j,S):e.render(function(a){K.renderBufferImmediate(a,f,d)})};this.initWebGLObjects=function(a){a.__webglObjects||(a.__webglObjects=[],a.__webglObjectsImmediate=[],a.__webglSprites=[],a.__webglFlares=[]);for(;a.__objectsAdded.length;)t(a.__objectsAdded[0],a),a.__objectsAdded.splice(0,1);for(;a.__objectsRemoved.length;)r(a.__objectsRemoved[0],
|
|
|
+null)));this.setDepthTest(!0);this.setDepthWrite(!0)}};this.renderImmediateObject=function(a,b,c,d,e){var f=D(a,b,c,d,e);ya=-1;K.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,j,V):e.render(function(a){K.renderBufferImmediate(a,f,d)})};this.initWebGLObjects=function(a){a.__webglObjects||(a.__webglObjects=[],a.__webglObjectsImmediate=[],a.__webglSprites=[],a.__webglFlares=[]);for(;a.__objectsAdded.length;)t(a.__objectsAdded[0],a),a.__objectsAdded.splice(0,1);for(;a.__objectsRemoved.length;)r(a.__objectsRemoved[0],
|
|
|
a),a.__objectsRemoved.splice(0,1);for(var b=0,h=a.__webglObjects.length;b<h;b++){var g=a.__webglObjects[b].object;void 0===g.__webglInit&&(void 0!==g.__webglActive&&r(g,a),t(g,a));var i=g,k=i.geometry,l=void 0,n=void 0,p=void 0;if(k instanceof THREE.BufferGeometry){var s=j.DYNAMIC_DRAW,v=!k.dynamic,w=k.attributes,B=void 0,y=void 0;for(B in w)y=w[B],y.needsUpdate&&("index"===B?(j.bindBuffer(j.ELEMENT_ARRAY_BUFFER,y.buffer),j.bufferData(j.ELEMENT_ARRAY_BUFFER,y.array,s)):(j.bindBuffer(j.ARRAY_BUFFER,
|
|
|
y.buffer),j.bufferData(j.ARRAY_BUFFER,y.array,s)),y.needsUpdate=!1),v&&!y.dynamic&&(y.array=null)}else if(i instanceof THREE.Mesh){for(var A=0,G=k.geometryGroupsList.length;A<G;A++)if(l=k.geometryGroupsList[A],p=d(i,l),k.buffersNeedUpdate&&c(l,i),n=p.attributes&&q(p),k.verticesNeedUpdate||k.morphTargetsNeedUpdate||k.elementsNeedUpdate||k.uvsNeedUpdate||k.normalsNeedUpdate||k.colorsNeedUpdate||k.tangentsNeedUpdate||n){var x=l,F=i,I=j.DYNAMIC_DRAW,D=!k.dynamic,E=p;if(x.__inittedArrays){var C=e(E),N=
|
|
|
-E.vertexColors?E.vertexColors:!1,L=f(E),K=C===THREE.SmoothShading,z=void 0,H=void 0,P=void 0,M=void 0,U=void 0,T=void 0,S=void 0,Z=void 0,ja=void 0,V=void 0,Fa=void 0,X=void 0,Y=void 0,W=void 0,$=void 0,Ha=void 0,wa=void 0,da=void 0,fa=void 0,Pa=void 0,Ea=void 0,ya=void 0,ea=void 0,ga=void 0,Va=void 0,ia=void 0,ma=void 0,za=void 0,sa=void 0,ba=void 0,Ba=void 0,Aa=void 0,Ia=void 0,Ga=void 0,ka=void 0,Ja=void 0,ta=void 0,ua=void 0,La=void 0,Ma=void 0,va=0,xa=0,Na=0,Oa=0,Qa=0,hb=0,Xa=0,Ka=0,db=0,qa=
|
|
|
+E.vertexColors?E.vertexColors:!1,L=f(E),K=C===THREE.SmoothShading,z=void 0,H=void 0,P=void 0,M=void 0,U=void 0,T=void 0,S=void 0,$=void 0,ja=void 0,V=void 0,Fa=void 0,Y=void 0,Z=void 0,W=void 0,X=void 0,Ha=void 0,wa=void 0,da=void 0,fa=void 0,Pa=void 0,Ea=void 0,ya=void 0,ea=void 0,ga=void 0,Va=void 0,ia=void 0,ma=void 0,za=void 0,ta=void 0,ba=void 0,Ba=void 0,Aa=void 0,Ia=void 0,Ga=void 0,ka=void 0,Ka=void 0,sa=void 0,ua=void 0,Ja=void 0,Ma=void 0,va=0,xa=0,Na=0,Oa=0,Qa=0,hb=0,Xa=0,La=0,db=0,qa=
|
|
|
0,Ca=0,O=0,Wa=void 0,ib=x.__vertexArray,Ya=x.__uvArray,cb=x.__uv2Array,Ra=x.__normalArray,Za=x.__tangentArray,jb=x.__colorArray,$a=x.__skinIndexArray,ab=x.__skinWeightArray,wb=x.__morphTargetsArrays,xb=x.__morphNormalsArrays,sb=x.__webglCustomAttributesList,J=void 0,Mb=x.__faceArray,tb=x.__lineArray,Sa=F.geometry,Hb=Sa.elementsNeedUpdate,Ab=Sa.uvsNeedUpdate,Ib=Sa.normalsNeedUpdate,Jb=Sa.tangentsNeedUpdate,Kb=Sa.colorsNeedUpdate,Lb=Sa.morphTargetsNeedUpdate,ac=Sa.vertices,ca=x.faces3,kb=Sa.faces,Bb=
|
|
|
-Sa.faceVertexUvs[0],Cb=Sa.faceVertexUvs[1],bc=Sa.skinIndices,Nb=Sa.skinWeights,Ob=Sa.morphTargets,gc=Sa.morphNormals;if(Sa.verticesNeedUpdate){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],X=ac[M.a],Y=ac[M.b],W=ac[M.c],ib[xa]=X.x,ib[xa+1]=X.y,ib[xa+2]=X.z,ib[xa+3]=Y.x,ib[xa+4]=Y.y,ib[xa+5]=Y.z,ib[xa+6]=W.x,ib[xa+7]=W.y,ib[xa+8]=W.z,xa+=9;j.bindBuffer(j.ARRAY_BUFFER,x.__webglVertexBuffer);j.bufferData(j.ARRAY_BUFFER,ib,I)}if(Lb){ka=0;for(Ja=Ob.length;ka<Ja;ka++){z=Ca=0;for(H=ca.length;z<H;z++)La=ca[z],M=
|
|
|
-kb[La],X=Ob[ka].vertices[M.a],Y=Ob[ka].vertices[M.b],W=Ob[ka].vertices[M.c],ta=wb[ka],ta[Ca]=X.x,ta[Ca+1]=X.y,ta[Ca+2]=X.z,ta[Ca+3]=Y.x,ta[Ca+4]=Y.y,ta[Ca+5]=Y.z,ta[Ca+6]=W.x,ta[Ca+7]=W.y,ta[Ca+8]=W.z,E.morphNormals&&(K?(Ma=gc[ka].vertexNormals[La],da=Ma.a,fa=Ma.b,Pa=Ma.c):Pa=fa=da=gc[ka].faceNormals[La],ua=xb[ka],ua[Ca]=da.x,ua[Ca+1]=da.y,ua[Ca+2]=da.z,ua[Ca+3]=fa.x,ua[Ca+4]=fa.y,ua[Ca+5]=fa.z,ua[Ca+6]=Pa.x,ua[Ca+7]=Pa.y,ua[Ca+8]=Pa.z),Ca+=9;j.bindBuffer(j.ARRAY_BUFFER,x.__webglMorphTargetsBuffers[ka]);
|
|
|
-j.bufferData(j.ARRAY_BUFFER,wb[ka],I);E.morphNormals&&(j.bindBuffer(j.ARRAY_BUFFER,x.__webglMorphNormalsBuffers[ka]),j.bufferData(j.ARRAY_BUFFER,xb[ka],I))}}if(Nb.length){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],ga=Nb[M.a],Va=Nb[M.b],ia=Nb[M.c],ab[qa]=ga.x,ab[qa+1]=ga.y,ab[qa+2]=ga.z,ab[qa+3]=ga.w,ab[qa+4]=Va.x,ab[qa+5]=Va.y,ab[qa+6]=Va.z,ab[qa+7]=Va.w,ab[qa+8]=ia.x,ab[qa+9]=ia.y,ab[qa+10]=ia.z,ab[qa+11]=ia.w,ma=bc[M.a],za=bc[M.b],sa=bc[M.c],$a[qa]=ma.x,$a[qa+1]=ma.y,$a[qa+2]=ma.z,$a[qa+3]=ma.w,$a[qa+
|
|
|
-4]=za.x,$a[qa+5]=za.y,$a[qa+6]=za.z,$a[qa+7]=za.w,$a[qa+8]=sa.x,$a[qa+9]=sa.y,$a[qa+10]=sa.z,$a[qa+11]=sa.w,qa+=12;0<qa&&(j.bindBuffer(j.ARRAY_BUFFER,x.__webglSkinIndicesBuffer),j.bufferData(j.ARRAY_BUFFER,$a,I),j.bindBuffer(j.ARRAY_BUFFER,x.__webglSkinWeightsBuffer),j.bufferData(j.ARRAY_BUFFER,ab,I))}if(Kb&&N){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],S=M.vertexColors,Z=M.color,3===S.length&&N===THREE.VertexColors?(Ea=S[0],ya=S[1],ea=S[2]):ea=ya=Ea=Z,jb[db]=Ea.r,jb[db+1]=Ea.g,jb[db+2]=Ea.b,jb[db+3]=
|
|
|
-ya.r,jb[db+4]=ya.g,jb[db+5]=ya.b,jb[db+6]=ea.r,jb[db+7]=ea.g,jb[db+8]=ea.b,db+=9;0<db&&(j.bindBuffer(j.ARRAY_BUFFER,x.__webglColorBuffer),j.bufferData(j.ARRAY_BUFFER,jb,I))}if(Jb&&Sa.hasTangents){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],ja=M.vertexTangents,$=ja[0],Ha=ja[1],wa=ja[2],Za[Xa]=$.x,Za[Xa+1]=$.y,Za[Xa+2]=$.z,Za[Xa+3]=$.w,Za[Xa+4]=Ha.x,Za[Xa+5]=Ha.y,Za[Xa+6]=Ha.z,Za[Xa+7]=Ha.w,Za[Xa+8]=wa.x,Za[Xa+9]=wa.y,Za[Xa+10]=wa.z,Za[Xa+11]=wa.w,Xa+=12;j.bindBuffer(j.ARRAY_BUFFER,x.__webglTangentBuffer);
|
|
|
+Sa.faceVertexUvs[0],Cb=Sa.faceVertexUvs[1],bc=Sa.skinIndices,Nb=Sa.skinWeights,Ob=Sa.morphTargets,gc=Sa.morphNormals;if(Sa.verticesNeedUpdate){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],Y=ac[M.a],Z=ac[M.b],W=ac[M.c],ib[xa]=Y.x,ib[xa+1]=Y.y,ib[xa+2]=Y.z,ib[xa+3]=Z.x,ib[xa+4]=Z.y,ib[xa+5]=Z.z,ib[xa+6]=W.x,ib[xa+7]=W.y,ib[xa+8]=W.z,xa+=9;j.bindBuffer(j.ARRAY_BUFFER,x.__webglVertexBuffer);j.bufferData(j.ARRAY_BUFFER,ib,I)}if(Lb){ka=0;for(Ka=Ob.length;ka<Ka;ka++){z=Ca=0;for(H=ca.length;z<H;z++)Ja=ca[z],M=
|
|
|
+kb[Ja],Y=Ob[ka].vertices[M.a],Z=Ob[ka].vertices[M.b],W=Ob[ka].vertices[M.c],sa=wb[ka],sa[Ca]=Y.x,sa[Ca+1]=Y.y,sa[Ca+2]=Y.z,sa[Ca+3]=Z.x,sa[Ca+4]=Z.y,sa[Ca+5]=Z.z,sa[Ca+6]=W.x,sa[Ca+7]=W.y,sa[Ca+8]=W.z,E.morphNormals&&(K?(Ma=gc[ka].vertexNormals[Ja],da=Ma.a,fa=Ma.b,Pa=Ma.c):Pa=fa=da=gc[ka].faceNormals[Ja],ua=xb[ka],ua[Ca]=da.x,ua[Ca+1]=da.y,ua[Ca+2]=da.z,ua[Ca+3]=fa.x,ua[Ca+4]=fa.y,ua[Ca+5]=fa.z,ua[Ca+6]=Pa.x,ua[Ca+7]=Pa.y,ua[Ca+8]=Pa.z),Ca+=9;j.bindBuffer(j.ARRAY_BUFFER,x.__webglMorphTargetsBuffers[ka]);
|
|
|
+j.bufferData(j.ARRAY_BUFFER,wb[ka],I);E.morphNormals&&(j.bindBuffer(j.ARRAY_BUFFER,x.__webglMorphNormalsBuffers[ka]),j.bufferData(j.ARRAY_BUFFER,xb[ka],I))}}if(Nb.length){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],ga=Nb[M.a],Va=Nb[M.b],ia=Nb[M.c],ab[qa]=ga.x,ab[qa+1]=ga.y,ab[qa+2]=ga.z,ab[qa+3]=ga.w,ab[qa+4]=Va.x,ab[qa+5]=Va.y,ab[qa+6]=Va.z,ab[qa+7]=Va.w,ab[qa+8]=ia.x,ab[qa+9]=ia.y,ab[qa+10]=ia.z,ab[qa+11]=ia.w,ma=bc[M.a],za=bc[M.b],ta=bc[M.c],$a[qa]=ma.x,$a[qa+1]=ma.y,$a[qa+2]=ma.z,$a[qa+3]=ma.w,$a[qa+
|
|
|
+4]=za.x,$a[qa+5]=za.y,$a[qa+6]=za.z,$a[qa+7]=za.w,$a[qa+8]=ta.x,$a[qa+9]=ta.y,$a[qa+10]=ta.z,$a[qa+11]=ta.w,qa+=12;0<qa&&(j.bindBuffer(j.ARRAY_BUFFER,x.__webglSkinIndicesBuffer),j.bufferData(j.ARRAY_BUFFER,$a,I),j.bindBuffer(j.ARRAY_BUFFER,x.__webglSkinWeightsBuffer),j.bufferData(j.ARRAY_BUFFER,ab,I))}if(Kb&&N){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],S=M.vertexColors,$=M.color,3===S.length&&N===THREE.VertexColors?(Ea=S[0],ya=S[1],ea=S[2]):ea=ya=Ea=$,jb[db]=Ea.r,jb[db+1]=Ea.g,jb[db+2]=Ea.b,jb[db+3]=
|
|
|
+ya.r,jb[db+4]=ya.g,jb[db+5]=ya.b,jb[db+6]=ea.r,jb[db+7]=ea.g,jb[db+8]=ea.b,db+=9;0<db&&(j.bindBuffer(j.ARRAY_BUFFER,x.__webglColorBuffer),j.bufferData(j.ARRAY_BUFFER,jb,I))}if(Jb&&Sa.hasTangents){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],ja=M.vertexTangents,X=ja[0],Ha=ja[1],wa=ja[2],Za[Xa]=X.x,Za[Xa+1]=X.y,Za[Xa+2]=X.z,Za[Xa+3]=X.w,Za[Xa+4]=Ha.x,Za[Xa+5]=Ha.y,Za[Xa+6]=Ha.z,Za[Xa+7]=Ha.w,Za[Xa+8]=wa.x,Za[Xa+9]=wa.y,Za[Xa+10]=wa.z,Za[Xa+11]=wa.w,Xa+=12;j.bindBuffer(j.ARRAY_BUFFER,x.__webglTangentBuffer);
|
|
|
j.bufferData(j.ARRAY_BUFFER,Za,I)}if(Ib&&C){z=0;for(H=ca.length;z<H;z++)if(M=kb[ca[z]],U=M.vertexNormals,T=M.normal,3===U.length&&K)for(ba=0;3>ba;ba++)Aa=U[ba],Ra[hb]=Aa.x,Ra[hb+1]=Aa.y,Ra[hb+2]=Aa.z,hb+=3;else for(ba=0;3>ba;ba++)Ra[hb]=T.x,Ra[hb+1]=T.y,Ra[hb+2]=T.z,hb+=3;j.bindBuffer(j.ARRAY_BUFFER,x.__webglNormalBuffer);j.bufferData(j.ARRAY_BUFFER,Ra,I)}if(Ab&&Bb&&L){z=0;for(H=ca.length;z<H;z++)if(P=ca[z],V=Bb[P],void 0!==V)for(ba=0;3>ba;ba++)Ia=V[ba],Ya[Na]=Ia.x,Ya[Na+1]=Ia.y,Na+=2;0<Na&&(j.bindBuffer(j.ARRAY_BUFFER,
|
|
|
-x.__webglUVBuffer),j.bufferData(j.ARRAY_BUFFER,Ya,I))}if(Ab&&Cb&&L){z=0;for(H=ca.length;z<H;z++)if(P=ca[z],Fa=Cb[P],void 0!==Fa)for(ba=0;3>ba;ba++)Ga=Fa[ba],cb[Oa]=Ga.x,cb[Oa+1]=Ga.y,Oa+=2;0<Oa&&(j.bindBuffer(j.ARRAY_BUFFER,x.__webglUV2Buffer),j.bufferData(j.ARRAY_BUFFER,cb,I))}if(Hb){z=0;for(H=ca.length;z<H;z++)Mb[Qa]=va,Mb[Qa+1]=va+1,Mb[Qa+2]=va+2,Qa+=3,tb[Ka]=va,tb[Ka+1]=va+1,tb[Ka+2]=va,tb[Ka+3]=va+2,tb[Ka+4]=va+1,tb[Ka+5]=va+2,Ka+=6,va+=3;j.bindBuffer(j.ELEMENT_ARRAY_BUFFER,x.__webglFaceBuffer);
|
|
|
+x.__webglUVBuffer),j.bufferData(j.ARRAY_BUFFER,Ya,I))}if(Ab&&Cb&&L){z=0;for(H=ca.length;z<H;z++)if(P=ca[z],Fa=Cb[P],void 0!==Fa)for(ba=0;3>ba;ba++)Ga=Fa[ba],cb[Oa]=Ga.x,cb[Oa+1]=Ga.y,Oa+=2;0<Oa&&(j.bindBuffer(j.ARRAY_BUFFER,x.__webglUV2Buffer),j.bufferData(j.ARRAY_BUFFER,cb,I))}if(Hb){z=0;for(H=ca.length;z<H;z++)Mb[Qa]=va,Mb[Qa+1]=va+1,Mb[Qa+2]=va+2,Qa+=3,tb[La]=va,tb[La+1]=va+1,tb[La+2]=va,tb[La+3]=va+2,tb[La+4]=va+1,tb[La+5]=va+2,La+=6,va+=3;j.bindBuffer(j.ELEMENT_ARRAY_BUFFER,x.__webglFaceBuffer);
|
|
|
j.bufferData(j.ELEMENT_ARRAY_BUFFER,Mb,I);j.bindBuffer(j.ELEMENT_ARRAY_BUFFER,x.__webglLineBuffer);j.bufferData(j.ELEMENT_ARRAY_BUFFER,tb,I)}if(sb){ba=0;for(Ba=sb.length;ba<Ba;ba++)if(J=sb[ba],J.__original.needsUpdate){O=0;if(1===J.size)if(void 0===J.boundTo||"vertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],J.array[O]=J.value[M.a],J.array[O+1]=J.value[M.b],J.array[O+2]=J.value[M.c],O+=3}else{if("faces"===J.boundTo){z=0;for(H=ca.length;z<H;z++)Wa=J.value[ca[z]],J.array[O]=Wa,J.array[O+
|
|
|
-1]=Wa,J.array[O+2]=Wa,O+=3}}else if(2===J.size)if(void 0===J.boundTo||"vertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],X=J.value[M.a],Y=J.value[M.b],W=J.value[M.c],J.array[O]=X.x,J.array[O+1]=X.y,J.array[O+2]=Y.x,J.array[O+3]=Y.y,J.array[O+4]=W.x,J.array[O+5]=W.y,O+=6}else{if("faces"===J.boundTo){z=0;for(H=ca.length;z<H;z++)W=Y=X=Wa=J.value[ca[z]],J.array[O]=X.x,J.array[O+1]=X.y,J.array[O+2]=Y.x,J.array[O+3]=Y.y,J.array[O+4]=W.x,J.array[O+5]=W.y,O+=6}}else if(3===J.size){var pa;pa=
|
|
|
-"c"===J.type?["r","g","b"]:["x","y","z"];if(void 0===J.boundTo||"vertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],X=J.value[M.a],Y=J.value[M.b],W=J.value[M.c],J.array[O]=X[pa[0]],J.array[O+1]=X[pa[1]],J.array[O+2]=X[pa[2]],J.array[O+3]=Y[pa[0]],J.array[O+4]=Y[pa[1]],J.array[O+5]=Y[pa[2]],J.array[O+6]=W[pa[0]],J.array[O+7]=W[pa[1]],J.array[O+8]=W[pa[2]],O+=9}else if("faces"===J.boundTo){z=0;for(H=ca.length;z<H;z++)W=Y=X=Wa=J.value[ca[z]],J.array[O]=X[pa[0]],J.array[O+1]=X[pa[1]],J.array[O+
|
|
|
-2]=X[pa[2]],J.array[O+3]=Y[pa[0]],J.array[O+4]=Y[pa[1]],J.array[O+5]=Y[pa[2]],J.array[O+6]=W[pa[0]],J.array[O+7]=W[pa[1]],J.array[O+8]=W[pa[2]],O+=9}else if("faceVertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)Wa=J.value[ca[z]],X=Wa[0],Y=Wa[1],W=Wa[2],J.array[O]=X[pa[0]],J.array[O+1]=X[pa[1]],J.array[O+2]=X[pa[2]],J.array[O+3]=Y[pa[0]],J.array[O+4]=Y[pa[1]],J.array[O+5]=Y[pa[2]],J.array[O+6]=W[pa[0]],J.array[O+7]=W[pa[1]],J.array[O+8]=W[pa[2]],O+=9}}else if(4===J.size)if(void 0===J.boundTo||"vertices"===
|
|
|
-J.boundTo){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],X=J.value[M.a],Y=J.value[M.b],W=J.value[M.c],J.array[O]=X.x,J.array[O+1]=X.y,J.array[O+2]=X.z,J.array[O+3]=X.w,J.array[O+4]=Y.x,J.array[O+5]=Y.y,J.array[O+6]=Y.z,J.array[O+7]=Y.w,J.array[O+8]=W.x,J.array[O+9]=W.y,J.array[O+10]=W.z,J.array[O+11]=W.w,O+=12}else if("faces"===J.boundTo){z=0;for(H=ca.length;z<H;z++)W=Y=X=Wa=J.value[ca[z]],J.array[O]=X.x,J.array[O+1]=X.y,J.array[O+2]=X.z,J.array[O+3]=X.w,J.array[O+4]=Y.x,J.array[O+5]=Y.y,J.array[O+6]=Y.z,
|
|
|
-J.array[O+7]=Y.w,J.array[O+8]=W.x,J.array[O+9]=W.y,J.array[O+10]=W.z,J.array[O+11]=W.w,O+=12}else if("faceVertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)Wa=J.value[ca[z]],X=Wa[0],Y=Wa[1],W=Wa[2],J.array[O]=X.x,J.array[O+1]=X.y,J.array[O+2]=X.z,J.array[O+3]=X.w,J.array[O+4]=Y.x,J.array[O+5]=Y.y,J.array[O+6]=Y.z,J.array[O+7]=Y.w,J.array[O+8]=W.x,J.array[O+9]=W.y,J.array[O+10]=W.z,J.array[O+11]=W.w,O+=12}j.bindBuffer(j.ARRAY_BUFFER,J.buffer);j.bufferData(j.ARRAY_BUFFER,J.array,I)}}D&&(delete x.__inittedArrays,
|
|
|
+1]=Wa,J.array[O+2]=Wa,O+=3}}else if(2===J.size)if(void 0===J.boundTo||"vertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],Y=J.value[M.a],Z=J.value[M.b],W=J.value[M.c],J.array[O]=Y.x,J.array[O+1]=Y.y,J.array[O+2]=Z.x,J.array[O+3]=Z.y,J.array[O+4]=W.x,J.array[O+5]=W.y,O+=6}else{if("faces"===J.boundTo){z=0;for(H=ca.length;z<H;z++)W=Z=Y=Wa=J.value[ca[z]],J.array[O]=Y.x,J.array[O+1]=Y.y,J.array[O+2]=Z.x,J.array[O+3]=Z.y,J.array[O+4]=W.x,J.array[O+5]=W.y,O+=6}}else if(3===J.size){var pa;pa=
|
|
|
+"c"===J.type?["r","g","b"]:["x","y","z"];if(void 0===J.boundTo||"vertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],Y=J.value[M.a],Z=J.value[M.b],W=J.value[M.c],J.array[O]=Y[pa[0]],J.array[O+1]=Y[pa[1]],J.array[O+2]=Y[pa[2]],J.array[O+3]=Z[pa[0]],J.array[O+4]=Z[pa[1]],J.array[O+5]=Z[pa[2]],J.array[O+6]=W[pa[0]],J.array[O+7]=W[pa[1]],J.array[O+8]=W[pa[2]],O+=9}else if("faces"===J.boundTo){z=0;for(H=ca.length;z<H;z++)W=Z=Y=Wa=J.value[ca[z]],J.array[O]=Y[pa[0]],J.array[O+1]=Y[pa[1]],J.array[O+
|
|
|
+2]=Y[pa[2]],J.array[O+3]=Z[pa[0]],J.array[O+4]=Z[pa[1]],J.array[O+5]=Z[pa[2]],J.array[O+6]=W[pa[0]],J.array[O+7]=W[pa[1]],J.array[O+8]=W[pa[2]],O+=9}else if("faceVertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)Wa=J.value[ca[z]],Y=Wa[0],Z=Wa[1],W=Wa[2],J.array[O]=Y[pa[0]],J.array[O+1]=Y[pa[1]],J.array[O+2]=Y[pa[2]],J.array[O+3]=Z[pa[0]],J.array[O+4]=Z[pa[1]],J.array[O+5]=Z[pa[2]],J.array[O+6]=W[pa[0]],J.array[O+7]=W[pa[1]],J.array[O+8]=W[pa[2]],O+=9}}else if(4===J.size)if(void 0===J.boundTo||"vertices"===
|
|
|
+J.boundTo){z=0;for(H=ca.length;z<H;z++)M=kb[ca[z]],Y=J.value[M.a],Z=J.value[M.b],W=J.value[M.c],J.array[O]=Y.x,J.array[O+1]=Y.y,J.array[O+2]=Y.z,J.array[O+3]=Y.w,J.array[O+4]=Z.x,J.array[O+5]=Z.y,J.array[O+6]=Z.z,J.array[O+7]=Z.w,J.array[O+8]=W.x,J.array[O+9]=W.y,J.array[O+10]=W.z,J.array[O+11]=W.w,O+=12}else if("faces"===J.boundTo){z=0;for(H=ca.length;z<H;z++)W=Z=Y=Wa=J.value[ca[z]],J.array[O]=Y.x,J.array[O+1]=Y.y,J.array[O+2]=Y.z,J.array[O+3]=Y.w,J.array[O+4]=Z.x,J.array[O+5]=Z.y,J.array[O+6]=Z.z,
|
|
|
+J.array[O+7]=Z.w,J.array[O+8]=W.x,J.array[O+9]=W.y,J.array[O+10]=W.z,J.array[O+11]=W.w,O+=12}else if("faceVertices"===J.boundTo){z=0;for(H=ca.length;z<H;z++)Wa=J.value[ca[z]],Y=Wa[0],Z=Wa[1],W=Wa[2],J.array[O]=Y.x,J.array[O+1]=Y.y,J.array[O+2]=Y.z,J.array[O+3]=Y.w,J.array[O+4]=Z.x,J.array[O+5]=Z.y,J.array[O+6]=Z.z,J.array[O+7]=Z.w,J.array[O+8]=W.x,J.array[O+9]=W.y,J.array[O+10]=W.z,J.array[O+11]=W.w,O+=12}j.bindBuffer(j.ARRAY_BUFFER,J.buffer);j.bufferData(j.ARRAY_BUFFER,J.array,I)}}D&&(delete x.__inittedArrays,
|
|
|
delete x.__colorArray,delete x.__normalArray,delete x.__tangentArray,delete x.__uvArray,delete x.__uv2Array,delete x.__faceArray,delete x.__vertexArray,delete x.__lineArray,delete x.__skinIndexArray,delete x.__skinWeightArray)}}k.verticesNeedUpdate=!1;k.morphTargetsNeedUpdate=!1;k.elementsNeedUpdate=!1;k.uvsNeedUpdate=!1;k.normalsNeedUpdate=!1;k.colorsNeedUpdate=!1;k.tangentsNeedUpdate=!1;k.buffersNeedUpdate=!1;p.attributes&&u(p)}else if(i instanceof THREE.Line){p=d(i,k);n=p.attributes&&q(p);if(k.verticesNeedUpdate||
|
|
|
k.colorsNeedUpdate||k.lineDistancesNeedUpdate||n){var bb=k,Pb=j.DYNAMIC_DRAW,Db=void 0,Eb=void 0,Fb=void 0,Qb=void 0,na=void 0,Rb=void 0,hc=bb.vertices,ic=bb.colors,jc=bb.lineDistances,Wb=hc.length,Xb=ic.length,Yb=jc.length,Sb=bb.__vertexArray,Tb=bb.__colorArray,kc=bb.__lineDistanceArray,Zb=bb.colorsNeedUpdate,$b=bb.lineDistancesNeedUpdate,cc=bb.__webglCustomAttributesList,Ub=void 0,lc=void 0,Da=void 0,yb=void 0,Ta=void 0,la=void 0;if(bb.verticesNeedUpdate){for(Db=0;Db<Wb;Db++)Qb=hc[Db],na=3*Db,Sb[na]=
|
|
|
Qb.x,Sb[na+1]=Qb.y,Sb[na+2]=Qb.z;j.bindBuffer(j.ARRAY_BUFFER,bb.__webglVertexBuffer);j.bufferData(j.ARRAY_BUFFER,Sb,Pb)}if(Zb){for(Eb=0;Eb<Xb;Eb++)Rb=ic[Eb],na=3*Eb,Tb[na]=Rb.r,Tb[na+1]=Rb.g,Tb[na+2]=Rb.b;j.bindBuffer(j.ARRAY_BUFFER,bb.__webglColorBuffer);j.bufferData(j.ARRAY_BUFFER,Tb,Pb)}if($b){for(Fb=0;Fb<Yb;Fb++)kc[Fb]=jc[Fb];j.bindBuffer(j.ARRAY_BUFFER,bb.__webglLineDistanceBuffer);j.bufferData(j.ARRAY_BUFFER,kc,Pb)}if(cc){Ub=0;for(lc=cc.length;Ub<lc;Ub++)if(la=cc[Ub],la.needsUpdate&&(void 0===
|
|
@@ -496,15 +496,15 @@ c.fogExp?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.envMap?"#define USE_
|
|
|
"]"),console.error("Program Info Log: "+j.getProgramInfoLog(v)));j.deleteShader(t);j.deleteShader(u);v.uniforms={};v.attributes={};var w;t="viewMatrix modelViewMatrix projectionMatrix normalMatrix modelMatrix cameraPosition morphTargetInfluences".split(" ");c.useVertexTexture?(t.push("boneTexture"),t.push("boneTextureWidth"),t.push("boneTextureHeight")):t.push("boneGlobalMatrices");for(w in p)t.push(w);w=t;t=0;for(u=w.length;t<u;t++)p=w[t],v.uniforms[p]=j.getUniformLocation(v,p);t="position normal uv uv2 tangent color skinIndex skinWeight lineDistance".split(" ");
|
|
|
for(w=0;w<c.maxMorphTargets;w++)t.push("morphTarget"+w);for(w=0;w<c.maxMorphNormals;w++)t.push("morphNormal"+w);for(k in b)t.push(k);k=t;w=0;for(b=k.length;w<b;w++)t=k[w],v.attributes[t]=j.getAttribLocation(v,t);v.id=ja++;P.push({program:v,code:n,usedTimes:1});K.info.memory.programs=P.length;k=v}a.program=k;w=a.program.attributes;if(a.morphTargets){a.numSupportedMorphTargets=0;b="morphTarget";for(k=0;k<this.maxMorphTargets;k++)v=b+k,0<=w[v]&&a.numSupportedMorphTargets++}if(a.morphNormals){a.numSupportedMorphNormals=
|
|
|
0;b="morphNormal";for(k=0;k<this.maxMorphNormals;k++)v=b+k,0<=w[v]&&a.numSupportedMorphNormals++}a.uniformsList=[];for(i in a.uniforms)a.uniformsList.push([a.uniforms[i],i])};this.setFaceCulling=function(a,b){a===THREE.CullFaceNone?j.disable(j.CULL_FACE):(b===THREE.FrontFaceDirectionCW?j.frontFace(j.CW):j.frontFace(j.CCW),a===THREE.CullFaceBack?j.cullFace(j.BACK):a===THREE.CullFaceFront?j.cullFace(j.FRONT):j.cullFace(j.FRONT_AND_BACK),j.enable(j.CULL_FACE))};this.setMaterialFaces=function(a){var b=
|
|
|
-a.side===THREE.DoubleSide,a=a.side===THREE.BackSide;za!==b&&(b?j.disable(j.CULL_FACE):j.enable(j.CULL_FACE),za=b);T!==a&&(a?j.frontFace(j.CW):j.frontFace(j.CCW),T=a)};this.setDepthTest=function(a){ua!==a&&(a?j.enable(j.DEPTH_TEST):j.disable(j.DEPTH_TEST),ua=a)};this.setDepthWrite=function(a){Ma!==a&&(j.depthMask(a),Ma=a)};this.setBlending=function(a,b,c,d){a!==U&&(a===THREE.NoBlending?j.disable(j.BLEND):a===THREE.AdditiveBlending?(j.enable(j.BLEND),j.blendEquation(j.FUNC_ADD),j.blendFunc(j.SRC_ALPHA,
|
|
|
+a.side===THREE.DoubleSide,a=a.side===THREE.BackSide;za!==b&&(b?j.disable(j.CULL_FACE):j.enable(j.CULL_FACE),za=b);S!==a&&(a?j.frontFace(j.CW):j.frontFace(j.CCW),S=a)};this.setDepthTest=function(a){Ja!==a&&(a?j.enable(j.DEPTH_TEST):j.disable(j.DEPTH_TEST),Ja=a)};this.setDepthWrite=function(a){Ma!==a&&(j.depthMask(a),Ma=a)};this.setBlending=function(a,b,c,d){a!==U&&(a===THREE.NoBlending?j.disable(j.BLEND):a===THREE.AdditiveBlending?(j.enable(j.BLEND),j.blendEquation(j.FUNC_ADD),j.blendFunc(j.SRC_ALPHA,
|
|
|
j.ONE)):a===THREE.SubtractiveBlending?(j.enable(j.BLEND),j.blendEquation(j.FUNC_ADD),j.blendFunc(j.ZERO,j.ONE_MINUS_SRC_COLOR)):a===THREE.MultiplyBlending?(j.enable(j.BLEND),j.blendEquation(j.FUNC_ADD),j.blendFunc(j.ZERO,j.SRC_COLOR)):a===THREE.CustomBlending?j.enable(j.BLEND):(j.enable(j.BLEND),j.blendEquationSeparate(j.FUNC_ADD,j.FUNC_ADD),j.blendFuncSeparate(j.SRC_ALPHA,j.ONE_MINUS_SRC_ALPHA,j.ONE,j.ONE_MINUS_SRC_ALPHA)),U=a);if(a===THREE.CustomBlending){if(b!==Ia&&(j.blendEquation(C(b)),Ia=b),
|
|
|
-c!==$||d!==fa)j.blendFunc(C(c),C(d)),$=c,fa=d}else fa=$=Ia=null};this.setTexture=function(a,b){if(a.needsUpdate){a.__webglInit||(a.__webglInit=!0,a.addEventListener("dispose",sb),a.__webglTexture=j.createTexture(),K.info.memory.textures++);j.activeTexture(j.TEXTURE0+b);j.bindTexture(j.TEXTURE_2D,a.__webglTexture);j.pixelStorei(j.UNPACK_FLIP_Y_WEBGL,a.flipY);j.pixelStorei(j.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);j.pixelStorei(j.UNPACK_ALIGNMENT,a.unpackAlignment);var c=a.image,d=THREE.Math.isPowerOfTwo(c.width)&&
|
|
|
+c!==T||d!==fa)j.blendFunc(C(c),C(d)),T=c,fa=d}else fa=T=Ia=null};this.setTexture=function(a,b){if(a.needsUpdate){a.__webglInit||(a.__webglInit=!0,a.addEventListener("dispose",sb),a.__webglTexture=j.createTexture(),K.info.memory.textures++);j.activeTexture(j.TEXTURE0+b);j.bindTexture(j.TEXTURE_2D,a.__webglTexture);j.pixelStorei(j.UNPACK_FLIP_Y_WEBGL,a.flipY);j.pixelStorei(j.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);j.pixelStorei(j.UNPACK_ALIGNMENT,a.unpackAlignment);var c=a.image,d=THREE.Math.isPowerOfTwo(c.width)&&
|
|
|
THREE.Math.isPowerOfTwo(c.height),e=C(a.format),f=C(a.type);E(j.TEXTURE_2D,a,d);var h=a.mipmaps;if(a instanceof THREE.DataTexture)if(0<h.length&&d){for(var g=0,i=h.length;g<i;g++)c=h[g],j.texImage2D(j.TEXTURE_2D,g,e,c.width,c.height,0,e,f,c.data);a.generateMipmaps=!1}else j.texImage2D(j.TEXTURE_2D,0,e,c.width,c.height,0,e,f,c.data);else if(a instanceof THREE.CompressedTexture){g=0;for(i=h.length;g<i;g++)c=h[g],a.format!==THREE.RGBAFormat?j.compressedTexImage2D(j.TEXTURE_2D,g,e,c.width,c.height,0,
|
|
|
c.data):j.texImage2D(j.TEXTURE_2D,g,e,c.width,c.height,0,e,f,c.data)}else if(0<h.length&&d){g=0;for(i=h.length;g<i;g++)c=h[g],j.texImage2D(j.TEXTURE_2D,g,e,e,f,c);a.generateMipmaps=!1}else j.texImage2D(j.TEXTURE_2D,0,e,e,f,a.image);a.generateMipmaps&&d&&j.generateMipmap(j.TEXTURE_2D);a.needsUpdate=!1;if(a.onUpdate)a.onUpdate()}else j.activeTexture(j.TEXTURE0+b),j.bindTexture(j.TEXTURE_2D,a.__webglTexture)};this.setRenderTarget=function(a){var b=a instanceof THREE.WebGLRenderTargetCube;if(a&&!a.__webglFramebuffer){void 0===
|
|
|
a.depthBuffer&&(a.depthBuffer=!0);void 0===a.stencilBuffer&&(a.stencilBuffer=!0);a.addEventListener("dispose",Kb);a.__webglTexture=j.createTexture();K.info.memory.textures++;var c=THREE.Math.isPowerOfTwo(a.width)&&THREE.Math.isPowerOfTwo(a.height),d=C(a.format),e=C(a.type);if(b){a.__webglFramebuffer=[];a.__webglRenderbuffer=[];j.bindTexture(j.TEXTURE_CUBE_MAP,a.__webglTexture);E(j.TEXTURE_CUBE_MAP,a,c);for(var f=0;6>f;f++){a.__webglFramebuffer[f]=j.createFramebuffer();a.__webglRenderbuffer[f]=j.createRenderbuffer();
|
|
|
j.texImage2D(j.TEXTURE_CUBE_MAP_POSITIVE_X+f,0,d,a.width,a.height,0,d,e,null);var h=a,g=j.TEXTURE_CUBE_MAP_POSITIVE_X+f;j.bindFramebuffer(j.FRAMEBUFFER,a.__webglFramebuffer[f]);j.framebufferTexture2D(j.FRAMEBUFFER,j.COLOR_ATTACHMENT0,g,h.__webglTexture,0);A(a.__webglRenderbuffer[f],a)}c&&j.generateMipmap(j.TEXTURE_CUBE_MAP)}else a.__webglFramebuffer=j.createFramebuffer(),a.__webglRenderbuffer=a.shareDepthFrom?a.shareDepthFrom.__webglRenderbuffer:j.createRenderbuffer(),j.bindTexture(j.TEXTURE_2D,a.__webglTexture),
|
|
|
E(j.TEXTURE_2D,a,c),j.texImage2D(j.TEXTURE_2D,0,d,a.width,a.height,0,d,e,null),d=j.TEXTURE_2D,j.bindFramebuffer(j.FRAMEBUFFER,a.__webglFramebuffer),j.framebufferTexture2D(j.FRAMEBUFFER,j.COLOR_ATTACHMENT0,d,a.__webglTexture,0),a.shareDepthFrom?a.depthBuffer&&!a.stencilBuffer?j.framebufferRenderbuffer(j.FRAMEBUFFER,j.DEPTH_ATTACHMENT,j.RENDERBUFFER,a.__webglRenderbuffer):a.depthBuffer&&a.stencilBuffer&&j.framebufferRenderbuffer(j.FRAMEBUFFER,j.DEPTH_STENCIL_ATTACHMENT,j.RENDERBUFFER,a.__webglRenderbuffer):
|
|
|
-A(a.__webglRenderbuffer,a),c&&j.generateMipmap(j.TEXTURE_2D);b?j.bindTexture(j.TEXTURE_CUBE_MAP,null):j.bindTexture(j.TEXTURE_2D,null);j.bindRenderbuffer(j.RENDERBUFFER,null);j.bindFramebuffer(j.FRAMEBUFFER,null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=Na,a=Oa,d=Ga,e=Aa);b!==Pa&&(j.bindFramebuffer(j.FRAMEBUFFER,b),j.viewport(d,e,c,a),Pa=b);Ka=c;Qa=a};this.shadowMapPlugin=new THREE.ShadowMapPlugin;this.addPrePlugin(this.shadowMapPlugin);
|
|
|
+A(a.__webglRenderbuffer,a),c&&j.generateMipmap(j.TEXTURE_2D);b?j.bindTexture(j.TEXTURE_CUBE_MAP,null):j.bindTexture(j.TEXTURE_2D,null);j.bindRenderbuffer(j.RENDERBUFFER,null);j.bindFramebuffer(j.FRAMEBUFFER,null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=Na,a=Oa,d=Ga,e=Aa);b!==Pa&&(j.bindFramebuffer(j.FRAMEBUFFER,b),j.viewport(d,e,c,a),Pa=b);La=c;Qa=a};this.shadowMapPlugin=new THREE.ShadowMapPlugin;this.addPrePlugin(this.shadowMapPlugin);
|
|
|
this.addPostPlugin(new THREE.SpritePlugin);this.addPostPlugin(new THREE.LensFlarePlugin)};THREE.WebGLRenderTarget=function(a,b,c){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={constructor:THREE.WebGLRenderTarget,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;
|
|
@@ -608,12 +608,12 @@ t,q,[u,r,y]));this.faceVertexUvs[0].push([D,L,I]);this.faces.push(new THREE.Face
|
|
|
L,B])}if(!1===f&&0<b){this.vertices.push(new THREE.Vector3(0,-h,0));for(g=0;g<d;g++)s=k[i][g+1],t=k[i][g],n=this.vertices.length-1,u=new THREE.Vector3(0,-1,0),r=new THREE.Vector3(0,-1,0),v=new THREE.Vector3(0,-1,0),D=m[i][g+1].clone(),L=m[i][g].clone(),B=new THREE.Vector2(L.x,1),this.faces.push(new THREE.Face3(s,t,n,[u,r,v])),this.faceVertexUvs[0].push([D,L,B])}this.computeCentroids();this.computeFaceNormals()};THREE.CylinderGeometry.prototype=Object.create(THREE.Geometry.prototype);THREE.ExtrudeGeometry=function(a,b){"undefined"!==typeof a&&(THREE.Geometry.call(this),a=a instanceof Array?a:[a],this.shapebb=a[a.length-1].getBoundingBox(),this.addShapeList(a,b),this.computeCentroids(),this.computeFaceNormals())};THREE.ExtrudeGeometry.prototype=Object.create(THREE.Geometry.prototype);THREE.ExtrudeGeometry.prototype.addShapeList=function(a,b){for(var c=a.length,d=0;d<c;d++)this.addShape(a[d],b)};
|
|
|
THREE.ExtrudeGeometry.prototype.addShape=function(a,b){function c(a,b,c){b||console.log("die");return b.clone().multiplyScalar(c).add(a)}function d(a,b,c){var d=THREE.ExtrudeGeometry.__v1,e=THREE.ExtrudeGeometry.__v2,f=THREE.ExtrudeGeometry.__v3,g=THREE.ExtrudeGeometry.__v4,h=THREE.ExtrudeGeometry.__v5,i=THREE.ExtrudeGeometry.__v6;d.set(a.x-b.x,a.y-b.y);e.set(a.x-c.x,a.y-c.y);d=d.normalize();e=e.normalize();f.set(-d.y,d.x);g.set(e.y,-e.x);h.copy(a).add(f);i.copy(a).add(g);if(h.equals(i))return g.clone();
|
|
|
h.copy(b).add(f);i.copy(c).add(g);f=d.dot(g);g=i.sub(h).dot(g);0===f&&(console.log("Either infinite or no solutions!"),0===g?console.log("Its finite solutions."):console.log("Too bad, no solutions."));g/=f;return 0>g?(b=Math.atan2(b.y-a.y,b.x-a.x),a=Math.atan2(c.y-a.y,c.x-a.x),b>a&&(a+=2*Math.PI),c=(b+a)/2,a=-Math.cos(c),c=-Math.sin(c),new THREE.Vector2(a,c)):d.multiplyScalar(g).add(h).sub(a).clone()}function e(c,d){var e,f;for(H=c.length;0<=--H;){e=H;f=H-1;0>f&&(f=c.length-1);for(var g=0,h=s+2*m,
|
|
|
-g=0;g<h;g++){var i=Z*g,k=Z*(g+1),l=d+e+i,i=d+f+i,n=d+f+k,k=d+e+k,p=c,q=g,t=h,u=e,w=f,l=l+x,i=i+x,n=n+x,k=k+x;N.faces.push(new THREE.Face3(l,i,k,null,null,r));N.faces.push(new THREE.Face3(i,n,k,null,null,r));l=v.generateSideWallUV(N,a,p,b,l,i,n,k,q,t,u,w);N.faceVertexUvs[0].push([l[0],l[1],l[3]]);N.faceVertexUvs[0].push([l[1],l[2],l[3]])}}}function f(a,b,c){N.vertices.push(new THREE.Vector3(a,b,c))}function h(c,d,e,f){c+=x;d+=x;e+=x;N.faces.push(new THREE.Face3(c,d,e,null,null,u));c=f?v.generateBottomUV(N,
|
|
|
+g=0;g<h;g++){var i=$*g,k=$*(g+1),l=d+e+i,i=d+f+i,n=d+f+k,k=d+e+k,p=c,q=g,t=h,u=e,w=f,l=l+x,i=i+x,n=n+x,k=k+x;N.faces.push(new THREE.Face3(l,i,k,null,null,r));N.faces.push(new THREE.Face3(i,n,k,null,null,r));l=v.generateSideWallUV(N,a,p,b,l,i,n,k,q,t,u,w);N.faceVertexUvs[0].push([l[0],l[1],l[3]]);N.faceVertexUvs[0].push([l[1],l[2],l[3]])}}}function f(a,b,c){N.vertices.push(new THREE.Vector3(a,b,c))}function h(c,d,e,f){c+=x;d+=x;e+=x;N.faces.push(new THREE.Face3(c,d,e,null,null,u));c=f?v.generateBottomUV(N,
|
|
|
a,b,c,d,e):v.generateTopUV(N,a,b,c,d,e);N.faceVertexUvs[0].push(c)}var g=void 0!==b.amount?b.amount:100,i=void 0!==b.bevelThickness?b.bevelThickness:6,k=void 0!==b.bevelSize?b.bevelSize:i-2,m=void 0!==b.bevelSegments?b.bevelSegments:3,l=void 0!==b.bevelEnabled?b.bevelEnabled:!0,p=void 0!==b.curveSegments?b.curveSegments:12,s=void 0!==b.steps?b.steps:1,t=b.extrudePath,n,q=!1,u=b.material,r=b.extrudeMaterial,v=void 0!==b.UVGenerator?b.UVGenerator:THREE.ExtrudeGeometry.WorldUVGenerator,y,D,L,B;t&&(n=
|
|
|
t.getSpacedPoints(s),q=!0,l=!1,y=void 0!==b.frames?b.frames:new THREE.TubeGeometry.FrenetFrames(t,s,!1),D=new THREE.Vector3,L=new THREE.Vector3,B=new THREE.Vector3);l||(k=i=m=0);var I,w,G,N=this,x=this.vertices.length,p=a.extractPoints(p),E=p.shape,p=p.holes;if(t=!THREE.Shape.Utils.isClockWise(E)){E=E.reverse();w=0;for(G=p.length;w<G;w++)I=p[w],THREE.Shape.Utils.isClockWise(I)&&(p[w]=I.reverse());t=!1}var A=THREE.Shape.Utils.triangulateShape(E,p),t=E;w=0;for(G=p.length;w<G;w++)I=p[w],E=E.concat(I);
|
|
|
-var z,C,M,F,Z=E.length,ea=A.length,Ba=[],H=0,V=t.length;z=V-1;for(C=H+1;H<V;H++,z++,C++)z===V&&(z=0),C===V&&(C=0),Ba[H]=d(t[H],t[z],t[C]);var da=[],ia,K=Ba.concat();w=0;for(G=p.length;w<G;w++){I=p[w];ia=[];H=0;V=I.length;z=V-1;for(C=H+1;H<V;H++,z++,C++)z===V&&(z=0),C===V&&(C=0),ia[H]=d(I[H],I[z],I[C]);da.push(ia);K=K.concat(ia)}for(z=0;z<m;z++){I=z/m;M=i*(1-I);C=k*Math.sin(I*Math.PI/2);H=0;for(V=t.length;H<V;H++)F=c(t[H],Ba[H],C),f(F.x,F.y,-M);w=0;for(G=p.length;w<G;w++){I=p[w];ia=da[w];H=0;for(V=
|
|
|
-I.length;H<V;H++)F=c(I[H],ia[H],C),f(F.x,F.y,-M)}}C=k;for(H=0;H<Z;H++)F=l?c(E[H],K[H],C):E[H],q?(L.copy(y.normals[0]).multiplyScalar(F.x),D.copy(y.binormals[0]).multiplyScalar(F.y),B.copy(n[0]).add(L).add(D),f(B.x,B.y,B.z)):f(F.x,F.y,0);for(I=1;I<=s;I++)for(H=0;H<Z;H++)F=l?c(E[H],K[H],C):E[H],q?(L.copy(y.normals[I]).multiplyScalar(F.x),D.copy(y.binormals[I]).multiplyScalar(F.y),B.copy(n[I]).add(L).add(D),f(B.x,B.y,B.z)):f(F.x,F.y,g/s*I);for(z=m-1;0<=z;z--){I=z/m;M=i*(1-I);C=k*Math.sin(I*Math.PI/2);
|
|
|
-H=0;for(V=t.length;H<V;H++)F=c(t[H],Ba[H],C),f(F.x,F.y,g+M);w=0;for(G=p.length;w<G;w++){I=p[w];ia=da[w];H=0;for(V=I.length;H<V;H++)F=c(I[H],ia[H],C),q?f(F.x,F.y+n[s-1].y,n[s-1].x+M):f(F.x,F.y,g+M)}}if(l){i=0*Z;for(H=0;H<ea;H++)g=A[H],h(g[2]+i,g[1]+i,g[0]+i,!0);i=Z*(s+2*m);for(H=0;H<ea;H++)g=A[H],h(g[0]+i,g[1]+i,g[2]+i,!1)}else{for(H=0;H<ea;H++)g=A[H],h(g[2],g[1],g[0],!0);for(H=0;H<ea;H++)g=A[H],h(g[0]+Z*s,g[1]+Z*s,g[2]+Z*s,!1)}g=0;e(t,g);g+=t.length;w=0;for(G=p.length;w<G;w++)I=p[w],e(I,g),g+=I.length};
|
|
|
+var z,C,M,F,$=E.length,ea=A.length,Ba=[],H=0,X=t.length;z=X-1;for(C=H+1;H<X;H++,z++,C++)z===X&&(z=0),C===X&&(C=0),Ba[H]=d(t[H],t[z],t[C]);var da=[],ia,K=Ba.concat();w=0;for(G=p.length;w<G;w++){I=p[w];ia=[];H=0;X=I.length;z=X-1;for(C=H+1;H<X;H++,z++,C++)z===X&&(z=0),C===X&&(C=0),ia[H]=d(I[H],I[z],I[C]);da.push(ia);K=K.concat(ia)}for(z=0;z<m;z++){I=z/m;M=i*(1-I);C=k*Math.sin(I*Math.PI/2);H=0;for(X=t.length;H<X;H++)F=c(t[H],Ba[H],C),f(F.x,F.y,-M);w=0;for(G=p.length;w<G;w++){I=p[w];ia=da[w];H=0;for(X=
|
|
|
+I.length;H<X;H++)F=c(I[H],ia[H],C),f(F.x,F.y,-M)}}C=k;for(H=0;H<$;H++)F=l?c(E[H],K[H],C):E[H],q?(L.copy(y.normals[0]).multiplyScalar(F.x),D.copy(y.binormals[0]).multiplyScalar(F.y),B.copy(n[0]).add(L).add(D),f(B.x,B.y,B.z)):f(F.x,F.y,0);for(I=1;I<=s;I++)for(H=0;H<$;H++)F=l?c(E[H],K[H],C):E[H],q?(L.copy(y.normals[I]).multiplyScalar(F.x),D.copy(y.binormals[I]).multiplyScalar(F.y),B.copy(n[I]).add(L).add(D),f(B.x,B.y,B.z)):f(F.x,F.y,g/s*I);for(z=m-1;0<=z;z--){I=z/m;M=i*(1-I);C=k*Math.sin(I*Math.PI/2);
|
|
|
+H=0;for(X=t.length;H<X;H++)F=c(t[H],Ba[H],C),f(F.x,F.y,g+M);w=0;for(G=p.length;w<G;w++){I=p[w];ia=da[w];H=0;for(X=I.length;H<X;H++)F=c(I[H],ia[H],C),q?f(F.x,F.y+n[s-1].y,n[s-1].x+M):f(F.x,F.y,g+M)}}if(l){i=0*$;for(H=0;H<ea;H++)g=A[H],h(g[2]+i,g[1]+i,g[0]+i,!0);i=$*(s+2*m);for(H=0;H<ea;H++)g=A[H],h(g[0]+i,g[1]+i,g[2]+i,!1)}else{for(H=0;H<ea;H++)g=A[H],h(g[2],g[1],g[0],!0);for(H=0;H<ea;H++)g=A[H],h(g[0]+$*s,g[1]+$*s,g[2]+$*s,!1)}g=0;e(t,g);g+=t.length;w=0;for(G=p.length;w<G;w++)I=p[w],e(I,g),g+=I.length};
|
|
|
THREE.ExtrudeGeometry.WorldUVGenerator={generateTopUV:function(a,b,c,d,e,f){b=a.vertices[e].x;e=a.vertices[e].y;c=a.vertices[f].x;f=a.vertices[f].y;return[new THREE.Vector2(a.vertices[d].x,a.vertices[d].y),new THREE.Vector2(b,e),new THREE.Vector2(c,f)]},generateBottomUV:function(a,b,c,d,e,f){return this.generateTopUV(a,b,c,d,e,f)},generateSideWallUV:function(a,b,c,d,e,f,h,g){var b=a.vertices[e].x,c=a.vertices[e].y,e=a.vertices[e].z,d=a.vertices[f].x,i=a.vertices[f].y,f=a.vertices[f].z,k=a.vertices[h].x,
|
|
|
m=a.vertices[h].y,h=a.vertices[h].z,l=a.vertices[g].x,p=a.vertices[g].y,a=a.vertices[g].z;return 0.01>Math.abs(c-i)?[new THREE.Vector2(b,1-e),new THREE.Vector2(d,1-f),new THREE.Vector2(k,1-h),new THREE.Vector2(l,1-a)]:[new THREE.Vector2(c,1-e),new THREE.Vector2(i,1-f),new THREE.Vector2(m,1-h),new THREE.Vector2(p,1-a)]}};THREE.ExtrudeGeometry.__v1=new THREE.Vector2;THREE.ExtrudeGeometry.__v2=new THREE.Vector2;THREE.ExtrudeGeometry.__v3=new THREE.Vector2;THREE.ExtrudeGeometry.__v4=new THREE.Vector2;
|
|
|
THREE.ExtrudeGeometry.__v5=new THREE.Vector2;THREE.ExtrudeGeometry.__v6=new THREE.Vector2;THREE.ShapeGeometry=function(a,b){THREE.Geometry.call(this);!1===a instanceof Array&&(a=[a]);this.shapebb=a[a.length-1].getBoundingBox();this.addShapeList(a,b);this.computeCentroids();this.computeFaceNormals()};THREE.ShapeGeometry.prototype=Object.create(THREE.Geometry.prototype);THREE.ShapeGeometry.prototype.addShapeList=function(a,b){for(var c=0,d=a.length;c<d;c++)this.addShape(a[c],b);return this};
|
|
@@ -699,8 +699,8 @@ r.shaderSource(x,["precision "+v.getPrecision()+" float;","uniform vec3 color;\n
|
|
|
r.compileShader(N);r.compileShader(x);r.attachShader(u,N);r.attachShader(u,x);r.linkProgram(u);w=u;n=r.getAttribLocation(w,"position");q=r.getAttribLocation(w,"uv");a=r.getUniformLocation(w,"uvOffset");b=r.getUniformLocation(w,"uvScale");c=r.getUniformLocation(w,"rotation");d=r.getUniformLocation(w,"scale");e=r.getUniformLocation(w,"color");f=r.getUniformLocation(w,"map");h=r.getUniformLocation(w,"opacity");g=r.getUniformLocation(w,"modelViewMatrix");i=r.getUniformLocation(w,"projectionMatrix");k=
|
|
|
r.getUniformLocation(w,"fogType");m=r.getUniformLocation(w,"fogDensity");l=r.getUniformLocation(w,"fogNear");p=r.getUniformLocation(w,"fogFar");s=r.getUniformLocation(w,"fogColor");t=r.getUniformLocation(w,"alphaTest");u=document.createElement("canvas");u.width=8;u.height=8;N=u.getContext("2d");N.fillStyle="#ffffff";N.fillRect(0,0,u.width,u.height);y=new THREE.Texture(u);y.needsUpdate=!0};this.render=function(D,L){var x=D.__webglSprites,E=x.length;if(E){r.useProgram(w);r.enableVertexAttribArray(n);
|
|
|
r.enableVertexAttribArray(q);r.disable(r.CULL_FACE);r.enable(r.BLEND);r.bindBuffer(r.ARRAY_BUFFER,B);r.vertexAttribPointer(n,2,r.FLOAT,!1,16,0);r.vertexAttribPointer(q,2,r.FLOAT,!1,16,8);r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,I);r.uniformMatrix4fv(i,!1,L.projectionMatrix.elements);r.activeTexture(r.TEXTURE0);r.uniform1i(f,0);var A=0,z=0,C=D.fog;C?(r.uniform3f(s,C.color.r,C.color.g,C.color.b),C instanceof THREE.Fog?(r.uniform1f(l,C.near),r.uniform1f(p,C.far),r.uniform1i(k,1),z=A=1):C instanceof THREE.FogExp2&&
|
|
|
-(r.uniform1f(m,C.density),r.uniform1i(k,2),z=A=2)):(r.uniform1i(k,0),z=A=0);for(var M,F,Z=[],C=0;C<E;C++)M=x[C],!1!==M.visible&&(M._modelViewMatrix.multiplyMatrices(L.matrixWorldInverse,M.matrixWorld),M.z=-M._modelViewMatrix.elements[14]);x.sort(u);for(C=0;C<E;C++)M=x[C],!1!==M.visible&&(F=M.material,r.uniform1f(t,F.alphaTest),r.uniformMatrix4fv(g,!1,M._modelViewMatrix.elements),Z[0]=M.scale.x,Z[1]=M.scale.y,M=D.fog&&F.fog?z:0,A!==M&&(r.uniform1i(k,M),A=M),null!==F.map?(r.uniform2f(a,F.map.offset.x,
|
|
|
-F.map.offset.y),r.uniform2f(b,F.map.repeat.x,F.map.repeat.y)):(r.uniform2f(a,0,0),r.uniform2f(b,1,1)),r.uniform1f(h,F.opacity),r.uniform3f(e,F.color.r,F.color.g,F.color.b),r.uniform1f(c,F.rotation),r.uniform2fv(d,Z),v.setBlending(F.blending,F.blendEquation,F.blendSrc,F.blendDst),v.setDepthTest(F.depthTest),v.setDepthWrite(F.depthWrite),F.map&&F.map.image&&F.map.image.width?v.setTexture(F.map,0):v.setTexture(y,0),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0));r.enable(r.CULL_FACE)}}};THREE.DepthPassPlugin=function(){this.enabled=!1;this.renderTarget=null;var a,b,c,d,e,f,h=new THREE.Frustum,g=new THREE.Matrix4;this.init=function(g){a=g.context;b=g;var g=THREE.ShaderLib.depthRGBA,h=THREE.UniformsUtils.clone(g.uniforms);c=new THREE.ShaderMaterial({fragmentShader:g.fragmentShader,vertexShader:g.vertexShader,uniforms:h});d=new THREE.ShaderMaterial({fragmentShader:g.fragmentShader,vertexShader:g.vertexShader,uniforms:h,morphTargets:!0});e=new THREE.ShaderMaterial({fragmentShader:g.fragmentShader,
|
|
|
+(r.uniform1f(m,C.density),r.uniform1i(k,2),z=A=2)):(r.uniform1i(k,0),z=A=0);for(var M,F,$=[],C=0;C<E;C++)M=x[C],!1!==M.visible&&(M._modelViewMatrix.multiplyMatrices(L.matrixWorldInverse,M.matrixWorld),M.z=-M._modelViewMatrix.elements[14]);x.sort(u);for(C=0;C<E;C++)M=x[C],!1!==M.visible&&(F=M.material,r.uniform1f(t,F.alphaTest),r.uniformMatrix4fv(g,!1,M._modelViewMatrix.elements),$[0]=M.scale.x,$[1]=M.scale.y,M=D.fog&&F.fog?z:0,A!==M&&(r.uniform1i(k,M),A=M),null!==F.map?(r.uniform2f(a,F.map.offset.x,
|
|
|
+F.map.offset.y),r.uniform2f(b,F.map.repeat.x,F.map.repeat.y)):(r.uniform2f(a,0,0),r.uniform2f(b,1,1)),r.uniform1f(h,F.opacity),r.uniform3f(e,F.color.r,F.color.g,F.color.b),r.uniform1f(c,F.rotation),r.uniform2fv(d,$),v.setBlending(F.blending,F.blendEquation,F.blendSrc,F.blendDst),v.setDepthTest(F.depthTest),v.setDepthWrite(F.depthWrite),F.map&&F.map.image&&F.map.image.width?v.setTexture(F.map,0):v.setTexture(y,0),r.drawElements(r.TRIANGLES,6,r.UNSIGNED_SHORT,0));r.enable(r.CULL_FACE)}}};THREE.DepthPassPlugin=function(){this.enabled=!1;this.renderTarget=null;var a,b,c,d,e,f,h=new THREE.Frustum,g=new THREE.Matrix4;this.init=function(g){a=g.context;b=g;var g=THREE.ShaderLib.depthRGBA,h=THREE.UniformsUtils.clone(g.uniforms);c=new THREE.ShaderMaterial({fragmentShader:g.fragmentShader,vertexShader:g.vertexShader,uniforms:h});d=new THREE.ShaderMaterial({fragmentShader:g.fragmentShader,vertexShader:g.vertexShader,uniforms:h,morphTargets:!0});e=new THREE.ShaderMaterial({fragmentShader:g.fragmentShader,
|
|
|
vertexShader:g.vertexShader,uniforms:h,skinning:!0});f=new THREE.ShaderMaterial({fragmentShader:g.fragmentShader,vertexShader:g.vertexShader,uniforms:h,morphTargets:!0,skinning:!0});c._shadowPass=!0;d._shadowPass=!0;e._shadowPass=!0;f._shadowPass=!0};this.render=function(a,b){this.enabled&&this.update(a,b)};this.update=function(i,k){var m,l,p,s,t,n;a.clearColor(1,1,1,1);a.disable(a.BLEND);b.setDepthTest(!0);!0===i.autoUpdate&&i.updateMatrixWorld();k.matrixWorldInverse.getInverse(k.matrixWorld);g.multiplyMatrices(k.projectionMatrix,
|
|
|
k.matrixWorldInverse);h.setFromMatrix(g);b.setRenderTarget(this.renderTarget);b.clear();n=i.__webglObjects;m=0;for(l=n.length;m<l;m++)if(p=n[m],t=p.object,p.render=!1,t.visible&&(!(t instanceof THREE.Mesh||t instanceof THREE.ParticleSystem)||!t.frustumCulled||h.intersectsObject(t)))t._modelViewMatrix.multiplyMatrices(k.matrixWorldInverse,t.matrixWorld),p.render=!0;var q;m=0;for(l=n.length;m<l;m++)if(p=n[m],p.render&&(t=p.object,p=p.buffer,!(t instanceof THREE.ParticleSystem)||t.customDepthMaterial))(q=
|
|
|
t.material instanceof THREE.MeshFaceMaterial?t.material.materials[0]:t.material)&&b.setMaterialFaces(t.material),s=0<t.geometry.morphTargets.length&&q.morphTargets,q=t instanceof THREE.SkinnedMesh&&q.skinning,s=t.customDepthMaterial?t.customDepthMaterial:q?s?f:e:s?d:c,p instanceof THREE.BufferGeometry?b.renderBufferDirect(k,i.__lights,null,s,p,t):b.renderBuffer(k,i.__lights,null,s,p,t);n=i.__webglObjectsImmediate;m=0;for(l=n.length;m<l;m++)p=n[m],t=p.object,t.visible&&(t._modelViewMatrix.multiplyMatrices(k.matrixWorldInverse,
|