|
@@ -163,18 +163,18 @@ this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:fu
|
|
|
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(n===l){var a=new THREE.RenderableVertex;p.push(a);l++;n++;return a}return p[n++]}function b(){if(t===q){var a=new THREE.RenderableFace3;m.push(a);q++;t++;return a}return m[t++]}function c(){if(r===w){var a=new THREE.RenderableLine;v.push(a);w++;r++;return a}return v[r++]}function d(a,b){return a.z!==b.z?b.z-a.z:a.id!==b.id?a.id-b.id:0}function e(a,b){var c=0,d=1,e=a.z+a.w,f=b.z+b.w,g=-a.z+a.w,h=-b.z+b.w;if(0<=e&&0<=f&&0<=g&&0<=h)return!0;if(0>e&&0>f||0>g&&
|
|
|
0>h)return!1;0>e?c=Math.max(c,e/(e-f)):0>f&&(d=Math.min(d,e/(e-f)));0>g?c=Math.max(c,g/(g-h)):0>h&&(d=Math.min(d,g/(g-h)));if(d<c)return!1;a.lerp(b,c);b.lerp(a,1-d);return!0}var f,g,h=[],i=0,j,n,p=[],l=0,s,t,m=[],q=0,u,r,v=[],w=0,x,K,D=[],I=0,z={objects:[],sprites:[],lights:[],elements:[]},G=new THREE.Vector3,N=new THREE.Vector3,E=new THREE.Vector3,C=new THREE.Vector3,A=new THREE.Vector4,F=new THREE.Box3(new THREE.Vector3(-1,-1,-1),new THREE.Vector3(1,1,1)),y=new THREE.Box3,P=Array(3),B=new THREE.Matrix4,
|
|
|
-R=new THREE.Matrix4,aa,Aa=new THREE.Matrix4,H=new THREE.Matrix3,V=new THREE.Matrix3,ia=new THREE.Vector3,fa=new THREE.Frustum,U=new THREE.Vector4,L=new THREE.Vector4;this.projectVector=function(a,b){b.matrixWorldInverse.getInverse(b.matrixWorld);R.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);return a.applyProjection(R)};var O=new THREE.Matrix4;this.unprojectVector=function(a,b){O.getInverse(b.projectionMatrix);R.multiplyMatrices(b.matrixWorld,O);return a.applyProjection(R)};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 ga=function(a){if(g===i){var b=new THREE.RenderableObject;h.push(b);i++;g++;f=b}else f=h[g++];f.id=a.id;f.object=a;null!==a.renderDepth?f.z=a.renderDepth:(C.setFromMatrixPosition(a.matrixWorld),C.applyProjection(R),f.z=C.z);return f},Ga=function(a){if(!1!==a.visible){a instanceof THREE.Light?z.lights.push(a):a instanceof THREE.Mesh||
|
|
|
-a instanceof THREE.Line?(!1===a.frustumCulled||!0===fa.intersectsObject(a))&&z.objects.push(ga(a)):a instanceof THREE.Sprite&&z.sprites.push(ga(a));for(var b=0,c=a.children.length;b<c;b++)Ga(a.children[b])}},da=new function(){var d=null,e=function(a){var b=a.positionWorld,c=a.positionScreen;b.copy(a.position).applyMatrix4(aa);c.copy(b).applyMatrix4(R);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},f=function(a,b,c){P[0]=a.positionScreen;P[1]=b.positionScreen;
|
|
|
+R=new THREE.Matrix4,ba,Ca=new THREE.Matrix4,H=new THREE.Matrix3,S=new THREE.Matrix3,ia=new THREE.Vector3,ga=new THREE.Frustum,U=new THREE.Vector4,L=new THREE.Vector4;this.projectVector=function(a,b){b.matrixWorldInverse.getInverse(b.matrixWorld);R.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);return a.applyProjection(R)};var O=new THREE.Matrix4;this.unprojectVector=function(a,b){O.getInverse(b.projectionMatrix);R.multiplyMatrices(b.matrixWorld,O);return a.applyProjection(R)};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 ea=function(a){if(g===i){var b=new THREE.RenderableObject;h.push(b);i++;g++;f=b}else f=h[g++];f.id=a.id;f.object=a;null!==a.renderDepth?f.z=a.renderDepth:(C.setFromMatrixPosition(a.matrixWorld),C.applyProjection(R),f.z=C.z);return f},za=function(a){if(!1!==a.visible){a instanceof THREE.Light?z.lights.push(a):a instanceof THREE.Mesh||
|
|
|
+a instanceof THREE.Line?(!1===a.frustumCulled||!0===ga.intersectsObject(a))&&z.objects.push(ea(a)):a instanceof THREE.Sprite&&z.sprites.push(ea(a));for(var b=0,c=a.children.length;b<c;b++)za(a.children[b])}},da=new function(){var d=null,e=function(a){var b=a.positionWorld,c=a.positionScreen;b.copy(a.position).applyMatrix4(ba);c.copy(b).applyMatrix4(R);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},f=function(a,b,c){P[0]=a.positionScreen;P[1]=b.positionScreen;
|
|
|
P[2]=c.positionScreen;return!0===a.visible||!0===b.visible||!0===c.visible||F.isIntersectionBox(y.setFromPoints(P))?0>(c.positionScreen.x-a.positionScreen.x)*(b.positionScreen.y-a.positionScreen.y)-(c.positionScreen.y-a.positionScreen.y)*(b.positionScreen.x-a.positionScreen.x):!1};return{setObject:function(a){d=a},projectVertex:e,checkTriangleVisibility:f,handleVertex:function(b,c,d){j=a();j.position.set(b,c,d);e(j)},handleLine:function(a,b){u=c();u.id=d.id;u.v1.copy(p[a]);u.v2.copy(p[b]);u.material=
|
|
|
-d.material;z.elements.push(u)},handleTriangle:function(a,c,e){a=p[a];c=p[c];e=p[e];!0===f(a,c,e)&&(s=b(),s.id=d.id,s.v1.copy(a),s.v2.copy(c),s.v3.copy(e),s.material=d.material,z.elements.push(s))}}};this.projectScene=function(f,h,i,j){var m,l,q,v,w,C,y,P,F;K=r=t=0;z.elements.length=0;!0===f.autoUpdate&&f.updateMatrixWorld();void 0===h.parent&&h.updateMatrixWorld();B.copy(h.matrixWorldInverse.getInverse(h.matrixWorld));R.multiplyMatrices(h.projectionMatrix,B);V.getNormalMatrix(B);fa.setFromMatrix(R);
|
|
|
-g=0;z.objects.length=0;z.sprites.length=0;z.lights.length=0;Ga(f);!0===i&&z.objects.sort(d);f=0;for(i=z.objects.length;f<i;f++)if(m=z.objects[f].object,l=m.geometry,da.setObject(m),aa=m.matrixWorld,n=0,m instanceof THREE.Mesh)if(l instanceof THREE.BufferGeometry){if(v=l.attributes,void 0!==v.position){C=v.position.array;m=0;for(l=C.length;m<l;m+=3)da.handleVertex(C[m],C[m+1],C[m+2]);if(void 0!==v.index){v=v.index.array;m=0;for(l=v.length;m<l;m+=3)da.handleTriangle(v[m],v[m+1],v[m+2])}else{m=0;for(l=
|
|
|
-C.length/3;m<l;m+=3)da.handleTriangle(m,m+1,m+2)}}}else{if(l instanceof THREE.Geometry){q=l.vertices;v=l.faces;C=l.faceVertexUvs;H.getNormalMatrix(aa);P=m.material instanceof THREE.MeshFaceMaterial;F=!0===P?m.material:null;for(var O=0,ga=q.length;O<ga;O++){var sa=q[O];da.handleVertex(sa.x,sa.y,sa.z)}O=0;for(ga=v.length;O<ga;O++)if(q=v[O],sa=!0===P?F.materials[q.materialIndex]:m.material,void 0!==sa){y=sa.side;w=p[q.a];var ma=p[q.b],oa=p[q.c];if(!0===sa.morphTargets){var Ha=l.morphTargets,La=m.morphTargetInfluences,
|
|
|
-va=w.position,Ka=ma.position,ua=oa.position;G.set(0,0,0);N.set(0,0,0);E.set(0,0,0);for(var S=0,ta=Ha.length;S<ta;S++){var ya=La[S];if(0!==ya){var Pa=Ha[S].vertices;G.x+=(Pa[q.a].x-va.x)*ya;G.y+=(Pa[q.a].y-va.y)*ya;G.z+=(Pa[q.a].z-va.z)*ya;N.x+=(Pa[q.b].x-Ka.x)*ya;N.y+=(Pa[q.b].y-Ka.y)*ya;N.z+=(Pa[q.b].z-Ka.z)*ya;E.x+=(Pa[q.c].x-ua.x)*ya;E.y+=(Pa[q.c].y-ua.y)*ya;E.z+=(Pa[q.c].z-ua.z)*ya}}w.position.add(G);ma.position.add(N);oa.position.add(E);da.projectVertex(w);da.projectVertex(ma);da.projectVertex(oa)}Ha=
|
|
|
-da.checkTriangleVisibility(w,ma,oa);if(Ha!==(y===THREE.BackSide)){s=b();s.id=m.id;s.v1.copy(w);s.v2.copy(ma);s.v3.copy(oa);s.normalModel.copy(q.normal);!1===Ha&&(y===THREE.BackSide||y===THREE.DoubleSide)&&s.normalModel.negate();s.normalModel.applyMatrix3(H).normalize();s.normalModelView.copy(s.normalModel).applyMatrix3(V);s.centroidModel.copy(q.centroid).applyMatrix4(aa);w=q.vertexNormals;ma=0;for(oa=Math.min(w.length,3);ma<oa;ma++)La=s.vertexNormalsModel[ma],La.copy(w[ma]),!1===Ha&&(y===THREE.BackSide||
|
|
|
-y===THREE.DoubleSide)&&La.negate(),La.applyMatrix3(H).normalize(),s.vertexNormalsModelView[ma].copy(La).applyMatrix3(V);s.vertexNormalsLength=w.length;w=0;for(ma=Math.min(C.length,3);w<ma;w++)if(y=C[w][O],void 0!==y){oa=0;for(Ha=y.length;oa<Ha;oa++)s.uvs[w][oa]=y[oa]}s.color=q.color;s.material=sa;ia.copy(s.centroidModel).applyProjection(R);s.z=ia.z;z.elements.push(s)}}}}else if(m instanceof THREE.Line)if(l instanceof THREE.BufferGeometry){if(v=l.attributes,void 0!==v.position){C=v.position.array;
|
|
|
-m=0;for(l=C.length;m<l;m+=3)da.handleVertex(C[m],C[m+1],C[m+2]);if(void 0!==v.index){v=v.index.array;m=0;for(l=v.length;m<l;m+=2)da.handleLine(v[m],v[m+1])}else{m=0;for(l=C.length/3-1;m<l;m++)da.handleLine(m,m+1)}}}else if(l instanceof THREE.Geometry){Aa.multiplyMatrices(R,aa);q=m.geometry.vertices;w=a();w.positionScreen.copy(q[0]).applyMatrix4(Aa);l=m.type===THREE.LinePieces?2:1;O=1;for(ga=q.length;O<ga;O++)w=a(),w.positionScreen.copy(q[O]).applyMatrix4(Aa),0<(O+1)%l||(ma=p[n-2],U.copy(w.positionScreen),
|
|
|
-L.copy(ma.positionScreen),!0===e(U,L)&&(U.multiplyScalar(1/U.w),L.multiplyScalar(1/L.w),u=c(),u.id=m.id,u.v1.positionScreen.copy(U),u.v2.positionScreen.copy(L),u.z=Math.max(U.z,L.z),u.material=m.material,m.material.vertexColors===THREE.VertexColors&&(u.vertexColors[0].copy(m.geometry.colors[O]),u.vertexColors[1].copy(m.geometry.colors[O-1])),z.elements.push(u)))}f=0;for(i=z.sprites.length;f<i;f++)m=z.sprites[f].object,aa=m.matrixWorld,A.set(aa.elements[12],aa.elements[13],aa.elements[14],1),A.applyMatrix4(R),
|
|
|
+d.material;z.elements.push(u)},handleTriangle:function(a,c,e){a=p[a];c=p[c];e=p[e];!0===f(a,c,e)&&(s=b(),s.id=d.id,s.v1.copy(a),s.v2.copy(c),s.v3.copy(e),s.material=d.material,z.elements.push(s))}}};this.projectScene=function(f,h,i,j){var m,l,q,v,w,C,y,P,F;K=r=t=0;z.elements.length=0;!0===f.autoUpdate&&f.updateMatrixWorld();void 0===h.parent&&h.updateMatrixWorld();B.copy(h.matrixWorldInverse.getInverse(h.matrixWorld));R.multiplyMatrices(h.projectionMatrix,B);S.getNormalMatrix(B);ga.setFromMatrix(R);
|
|
|
+g=0;z.objects.length=0;z.sprites.length=0;z.lights.length=0;za(f);!0===i&&z.objects.sort(d);f=0;for(i=z.objects.length;f<i;f++)if(m=z.objects[f].object,l=m.geometry,da.setObject(m),ba=m.matrixWorld,n=0,m instanceof THREE.Mesh)if(l instanceof THREE.BufferGeometry){if(v=l.attributes,void 0!==v.position){C=v.position.array;m=0;for(l=C.length;m<l;m+=3)da.handleVertex(C[m],C[m+1],C[m+2]);if(void 0!==v.index){v=v.index.array;m=0;for(l=v.length;m<l;m+=3)da.handleTriangle(v[m],v[m+1],v[m+2])}else{m=0;for(l=
|
|
|
+C.length/3;m<l;m+=3)da.handleTriangle(m,m+1,m+2)}}}else{if(l instanceof THREE.Geometry){q=l.vertices;v=l.faces;C=l.faceVertexUvs;H.getNormalMatrix(ba);P=m.material instanceof THREE.MeshFaceMaterial;F=!0===P?m.material:null;for(var O=0,ea=q.length;O<ea;O++){var sa=q[O];da.handleVertex(sa.x,sa.y,sa.z)}O=0;for(ea=v.length;O<ea;O++)if(q=v[O],sa=!0===P?F.materials[q.materialIndex]:m.material,void 0!==sa){y=sa.side;w=p[q.a];var ma=p[q.b],oa=p[q.c];if(!0===sa.morphTargets){var Ha=l.morphTargets,La=m.morphTargetInfluences,
|
|
|
+wa=w.position,Ka=ma.position,va=oa.position;G.set(0,0,0);N.set(0,0,0);E.set(0,0,0);for(var $=0,ta=Ha.length;$<ta;$++){var Aa=La[$];if(0!==Aa){var Pa=Ha[$].vertices;G.x+=(Pa[q.a].x-wa.x)*Aa;G.y+=(Pa[q.a].y-wa.y)*Aa;G.z+=(Pa[q.a].z-wa.z)*Aa;N.x+=(Pa[q.b].x-Ka.x)*Aa;N.y+=(Pa[q.b].y-Ka.y)*Aa;N.z+=(Pa[q.b].z-Ka.z)*Aa;E.x+=(Pa[q.c].x-va.x)*Aa;E.y+=(Pa[q.c].y-va.y)*Aa;E.z+=(Pa[q.c].z-va.z)*Aa}}w.position.add(G);ma.position.add(N);oa.position.add(E);da.projectVertex(w);da.projectVertex(ma);da.projectVertex(oa)}Ha=
|
|
|
+da.checkTriangleVisibility(w,ma,oa);if(Ha!==(y===THREE.BackSide)){s=b();s.id=m.id;s.v1.copy(w);s.v2.copy(ma);s.v3.copy(oa);s.normalModel.copy(q.normal);!1===Ha&&(y===THREE.BackSide||y===THREE.DoubleSide)&&s.normalModel.negate();s.normalModel.applyMatrix3(H).normalize();s.normalModelView.copy(s.normalModel).applyMatrix3(S);s.centroidModel.copy(q.centroid).applyMatrix4(ba);w=q.vertexNormals;ma=0;for(oa=Math.min(w.length,3);ma<oa;ma++)La=s.vertexNormalsModel[ma],La.copy(w[ma]),!1===Ha&&(y===THREE.BackSide||
|
|
|
+y===THREE.DoubleSide)&&La.negate(),La.applyMatrix3(H).normalize(),s.vertexNormalsModelView[ma].copy(La).applyMatrix3(S);s.vertexNormalsLength=w.length;w=0;for(ma=Math.min(C.length,3);w<ma;w++)if(y=C[w][O],void 0!==y){oa=0;for(Ha=y.length;oa<Ha;oa++)s.uvs[w][oa]=y[oa]}s.color=q.color;s.material=sa;ia.copy(s.centroidModel).applyProjection(R);s.z=ia.z;z.elements.push(s)}}}}else if(m instanceof THREE.Line)if(l instanceof THREE.BufferGeometry){if(v=l.attributes,void 0!==v.position){C=v.position.array;
|
|
|
+m=0;for(l=C.length;m<l;m+=3)da.handleVertex(C[m],C[m+1],C[m+2]);if(void 0!==v.index){v=v.index.array;m=0;for(l=v.length;m<l;m+=2)da.handleLine(v[m],v[m+1])}else{m=0;for(l=C.length/3-1;m<l;m++)da.handleLine(m,m+1)}}}else if(l instanceof THREE.Geometry){Ca.multiplyMatrices(R,ba);q=m.geometry.vertices;w=a();w.positionScreen.copy(q[0]).applyMatrix4(Ca);l=m.type===THREE.LinePieces?2:1;O=1;for(ea=q.length;O<ea;O++)w=a(),w.positionScreen.copy(q[O]).applyMatrix4(Ca),0<(O+1)%l||(ma=p[n-2],U.copy(w.positionScreen),
|
|
|
+L.copy(ma.positionScreen),!0===e(U,L)&&(U.multiplyScalar(1/U.w),L.multiplyScalar(1/L.w),u=c(),u.id=m.id,u.v1.positionScreen.copy(U),u.v2.positionScreen.copy(L),u.z=Math.max(U.z,L.z),u.material=m.material,m.material.vertexColors===THREE.VertexColors&&(u.vertexColors[0].copy(m.geometry.colors[O]),u.vertexColors[1].copy(m.geometry.colors[O-1])),z.elements.push(u)))}f=0;for(i=z.sprites.length;f<i;f++)m=z.sprites[f].object,ba=m.matrixWorld,A.set(ba.elements[12],ba.elements[13],ba.elements[14],1),A.applyMatrix4(R),
|
|
|
l=1/A.w,A.z*=l,-1<=A.z&&1>=A.z&&(K===I?(v=new THREE.RenderableSprite,D.push(v),I++,K++,x=v):x=D[K++],x.id=m.id,x.x=A.x*l,x.y=A.y*l,x.z=A.z,x.object=m,x.rotation=m.rotation,x.scale.x=m.scale.x*Math.abs(x.x-(A.x+h.projectionMatrix.elements[0])/(A.w+h.projectionMatrix.elements[12])),x.scale.y=m.scale.y*Math.abs(x.y-(A.y+h.projectionMatrix.elements[5])/(A.w+h.projectionMatrix.elements[13])),x.material=m.material,z.elements.push(x));!0===j&&z.elements.sort(d);return z}};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,g){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");return new THREE.Face3(a,b,c,e,f,g)};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=
|
|
@@ -196,10 +196,10 @@ this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.attributes.positi
|
|
|
new THREE.Box3,b=new THREE.Vector3;return function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var c=this.attributes.position.array;if(c){a.makeEmpty();for(var d=this.boundingSphere.center,e=0,f=c.length;e<f;e+=3)b.set(c[e],c[e+1],c[e+2]),a.addPoint(b);a.center(d);for(var g=0,e=0,f=c.length;e<f;e+=3)b.set(c[e],c[e+1],c[e+2]),g=Math.max(g,d.distanceToSquared(b));this.boundingSphere.radius=Math.sqrt(g)}}}(),computeVertexNormals:function(){if(this.attributes.position){var a,
|
|
|
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,g,h,i,j,n,p,l=new THREE.Vector3,s=new THREE.Vector3,t=new THREE.Vector3,m=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;g=r[c].count;var v=r[c].index;a=b;for(b+=g;a<b;a+=3)g=v+u[a],h=v+u[a+1],i=v+u[a+2],j=e[3*g],n=e[3*g+1],p=e[3*g+2],l.set(j,n,p),j=e[3*h],n=e[3*h+1],p=e[3*h+2],s.set(j,n,p),j=e[3*i],n=e[3*i+1],p=e[3*i+2],t.set(j,n,p),m.subVectors(t,s),q.subVectors(l,s),m.cross(q),f[3*g]+=m.x,f[3*g+1]+=m.y,f[3*g+2]+=m.z,f[3*h]+=m.x,f[3*h+1]+=m.y,f[3*h+2]+=m.z,f[3*i]+=m.x,f[3*i+1]+=m.y,f[3*i+2]+=m.z}}else{a=0;for(b=e.length;a<b;a+=9)j=e[a],n=e[a+1],p=e[a+2],l.set(j,n,p),j=e[a+3],n=e[a+4],
|
|
|
-p=e[a+5],s.set(j,n,p),j=e[a+6],n=e[a+7],p=e[a+8],t.set(j,n,p),m.subVectors(t,s),q.subVectors(l,s),m.cross(q),f[a]=m.x,f[a+1]=m.y,f[a+2]=m.z,f[a+3]=m.x,f[a+4]=m.y,f[a+5]=m.z,f[a+6]=m.x,f[a+7]=m.y,f[a+8]=m.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){aa.x=d[3*a];aa.y=d[3*a+1];
|
|
|
-aa.z=d[3*a+2];Aa.copy(aa);V=h[a];B.copy(V);B.sub(aa.multiplyScalar(aa.dot(V))).normalize();R.crossVectors(Aa,V);ia=R.dot(i[a]);H=0>ia?-1:1;g[4*a]=B.x;g[4*a+1]=B.y;g[4*a+2]=B.z;g[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,
|
|
|
+p=e[a+5],s.set(j,n,p),j=e[a+6],n=e[a+7],p=e[a+8],t.set(j,n,p),m.subVectors(t,s),q.subVectors(l,s),m.cross(q),f[a]=m.x,f[a+1]=m.y,f[a+2]=m.z,f[a+3]=m.x,f[a+4]=m.y,f[a+5]=m.z,f[a+6]=m.x,f[a+7]=m.y,f[a+8]=m.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){ba.x=d[3*a];ba.y=d[3*a+1];
|
|
|
+ba.z=d[3*a+2];Ca.copy(ba);S=h[a];B.copy(S);B.sub(ba.multiplyScalar(ba.dot(S))).normalize();R.crossVectors(Ca,S);ia=R.dot(i[a]);H=0>ia?-1:1;g[4*a]=B.x;g[4*a+1]=B.y;g[4*a+2]=B.z;g[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 g=this.attributes.tangent.array,h=[],i=[],j=0;j<f;j++)h[j]=new THREE.Vector3,i[j]=new THREE.Vector3;var n,p,l,s,t,m,q,u,r,v,w,x,K,D,I,f=new THREE.Vector3,j=new THREE.Vector3,z,G,N,E,C,A,F,y=this.offsets;N=0;for(E=y.length;N<E;++N){G=y[N].start;C=y[N].count;var P=y[N].index;z=G;for(G+=C;z<G;z+=3)C=P+b[z],A=P+b[z+1],F=P+b[z+
|
|
|
-2],n=c[3*C],p=c[3*C+1],l=c[3*C+2],s=c[3*A],t=c[3*A+1],m=c[3*A+2],q=c[3*F],u=c[3*F+1],r=c[3*F+2],v=e[2*C],w=e[2*C+1],x=e[2*A],K=e[2*A+1],D=e[2*F],I=e[2*F+1],s-=n,n=q-n,t-=p,p=u-p,m-=l,l=r-l,x-=v,v=D-v,K-=w,w=I-w,I=1/(x*w-v*K),f.set((w*s-K*n)*I,(w*t-K*p)*I,(w*m-K*l)*I),j.set((x*n-v*s)*I,(x*p-v*t)*I,(x*l-v*m)*I),h[C].add(f),h[A].add(f),h[F].add(f),i[C].add(j),i[A].add(j),i[F].add(j)}var B=new THREE.Vector3,R=new THREE.Vector3,aa=new THREE.Vector3,Aa=new THREE.Vector3,H,V,ia;N=0;for(E=y.length;N<E;++N){G=
|
|
|
+2],n=c[3*C],p=c[3*C+1],l=c[3*C+2],s=c[3*A],t=c[3*A+1],m=c[3*A+2],q=c[3*F],u=c[3*F+1],r=c[3*F+2],v=e[2*C],w=e[2*C+1],x=e[2*A],K=e[2*A+1],D=e[2*F],I=e[2*F+1],s-=n,n=q-n,t-=p,p=u-p,m-=l,l=r-l,x-=v,v=D-v,K-=w,w=I-w,I=1/(x*w-v*K),f.set((w*s-K*n)*I,(w*t-K*p)*I,(w*m-K*l)*I),j.set((x*n-v*s)*I,(x*p-v*t)*I,(x*l-v*m)*I),h[C].add(f),h[A].add(f),h[F].add(f),i[C].add(j),i[A].add(j),i[F].add(j)}var B=new THREE.Vector3,R=new THREE.Vector3,ba=new THREE.Vector3,Ca=new THREE.Vector3,H,S,ia;N=0;for(E=y.length;N<E;++N){G=
|
|
|
y[N].start;C=y[N].count;P=y[N].index;z=G;for(G+=C;z<G;z+=3)C=P+b[z],A=P+b[z+1],F=P+b[z+2],a(C),a(A),a(F)}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,array:null},d=0,g=b.length;d<g;d++){var h=b[d];if(e instanceof h){f.array=new h(e);break}}a.attributes[c]=
|
|
|
f}d=0;for(g=this.offsets.length;d<g;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)};
|
|
@@ -301,29 +301,29 @@ 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=K.length;d<e;d++){var f=K[d];Ta.copy(f.color);if(f instanceof THREE.DirectionalLight){var g=Z.setFromMatrixPosition(f.matrixWorld).normalize(),h=b.dot(g);0>=h||(h*=f.intensity,c.add(Ta.multiplyScalar(h)))}else f instanceof THREE.PointLight&&(g=Z.setFromMatrixPosition(f.matrixWorld),h=b.dot(Z.subVectors(g,a).normalize()),0>=h||(h*=0==f.distance?1:1-Math.min(a.distanceTo(g)/f.distance,1),0!=h&&(h*=f.intensity,c.add(Ta.multiplyScalar(h)))))}}
|
|
|
+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=K.length;d<e;d++){var f=K[d];Ta.copy(f.color);if(f instanceof THREE.DirectionalLight){var g=Y.setFromMatrixPosition(f.matrixWorld).normalize(),h=b.dot(g);0>=h||(h*=f.intensity,c.add(Ta.multiplyScalar(h)))}else f instanceof THREE.PointLight&&(g=Y.setFromMatrixPosition(f.matrixWorld),h=b.dot(Y.subVectors(g,a).normalize()),0>=h||(h*=0==f.distance?1:1-Math.min(a.distanceTo(g)/f.distance,1),0!=h&&(h*=f.intensity,c.add(Ta.multiplyScalar(h)))))}}
|
|
|
function c(a,b,c,d){l(b);s(c);t(d);m(a.getStyle());C.stroke();ta.expandByScalar(2*b)}function d(a){q(a.getStyle());C.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);Ua[a.id]=C.createPattern(e,!0===b&&!0===c?"repeat":!0===b&&!1===c?"repeat-x":!1===b&&!0===c?"repeat-y":"no-repeat")}
|
|
|
function g(a,b,c,d,g,h,k,i,j,n,m,l,p){if(!(p instanceof THREE.DataTexture)){!1===p.hasEventListener("update",e)&&(void 0!==p.image&&0<p.image.width&&f(p),p.addEventListener("update",e));var s=Ua[p.id];if(void 0!==s){q(s);var s=p.offset.x/p.repeat.x,r=p.offset.y/p.repeat.y,t=p.image.width*p.repeat.x,p=p.image.height*p.repeat.y,k=(k+s)*t,i=(i+r)*p,c=c-a,d=d-b,g=g-a,h=h-b,j=(j+s)*t-k,n=(n+r)*p-i,m=(m+s)*t-k,l=(l+r)*p-i,p=j*l-m*n;0!==p&&(s=1/p,p=(l*c-n*g)*s,n=(l*d-n*h)*s,c=(j*g-m*c)*s,d=(j*h-m*d)*s,a=
|
|
|
a-p*k-c*i,b=b-n*k-d*i,C.save(),C.transform(p,n,c,d,a,b),C.fill(),C.restore())}else q("rgba(0,0,0,1)"),C.fill()}}function h(a,b,c,d,e,f,g,h,k,i,j,n,m){var l,p;l=m.width-1;p=m.height-1;g*=l;h*=p;c-=a;d-=b;e-=a;f-=b;k=k*l-g;i=i*p-h;j=j*l-g;n=n*p-h;p=1/(k*n-j*i);l=(n*c-i*e)*p;i=(n*d-i*f)*p;c=(k*e-j*c)*p;d=(k*f-j*d)*p;a=a-l*g-c*h;b=b-i*g-d*h;C.save();C.transform(l,i,c,d,a,b);C.clip();C.drawImage(m,0,0);C.restore()}function i(a,b,c,d){ja[0]=255*a.r|0;ja[1]=255*a.g|0;ja[2]=255*a.b|0;ja[4]=255*b.r|0;ja[5]=
|
|
|
-255*b.g|0;ja[6]=255*b.b|0;ja[8]=255*c.r|0;ja[9]=255*c.g|0;ja[10]=255*c.b|0;ja[12]=255*d.r|0;ja[13]=255*d.g|0;ja[14]=255*d.b|0;db.putImageData(k,0,0);wa.drawImage(Ma,0,0);return Za}function j(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 n(a){y!==a&&(y=C.globalAlpha=a)}function p(a){P!==a&&(a===THREE.NormalBlending?C.globalCompositeOperation="source-over":a===THREE.AdditiveBlending?C.globalCompositeOperation="lighter":a===THREE.SubtractiveBlending&&
|
|
|
-(C.globalCompositeOperation="darker"),P=a)}function l(a){aa!==a&&(aa=C.lineWidth=a)}function s(a){Aa!==a&&(Aa=C.lineCap=a)}function t(a){H!==a&&(H=C.lineJoin=a)}function m(a){B!==a&&(B=C.strokeStyle=a)}function q(a){R!==a&&(R=C.fillStyle=a)}function u(a,b){if(V!==a||ia!==b)C.setLineDash([a,b]),V=a,ia=b}console.log("THREE.CanvasRenderer",THREE.REVISION);var r=THREE.Math.smoothstep,a=a||{},v=this,w,x,K,D=new THREE.Projector,I=void 0!==a.canvas?a.canvas:document.createElement("canvas"),z=I.width,G=I.height,
|
|
|
-N=Math.floor(z/2),E=Math.floor(G/2),C=I.getContext("2d"),A=new THREE.Color(0),F=0,y=1,P=0,B=null,R=null,aa=null,Aa=null,H=null,V=null,ia=0,fa,U,L,O;new THREE.RenderableVertex;new THREE.RenderableVertex;var ga,Ga,da,Ea,ca,Ia,Fa=new THREE.Color,za=new THREE.Color,qa=new THREE.Color,ra=new THREE.Color,Na=new THREE.Color,Ba=new THREE.Color,Xa=new THREE.Color,Ta=new THREE.Color,Ua={},Oa,hb,Va,sa,ma,oa,Ha,La,va,Ka,ua=new THREE.Box2,S=new THREE.Box2,ta=new THREE.Box2,ya=new THREE.Color,Pa=new THREE.Color,
|
|
|
-pa=new THREE.Color,Z=new THREE.Vector3,Ma,db,k,ja,Za,wa,xa=16;Ma=document.createElement("canvas");Ma.width=Ma.height=2;db=Ma.getContext("2d");db.fillStyle="rgba(0,0,0,1)";db.fillRect(0,0,2,2);k=db.getImageData(0,0,2,2);ja=k.data;Za=document.createElement("canvas");Za.width=Za.height=xa;wa=Za.getContext("2d");wa.translate(-xa/2,-xa/2);wa.scale(xa,xa);xa--;void 0===C.setLineDash&&(C.setLineDash=void 0!==C.mozDash?function(a){C.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){z=a*this.devicePixelRatio;G=b*this.devicePixelRatio;N=Math.floor(z/2);E=Math.floor(G/2);I.width=z;I.height=G;1!==this.devicePixelRatio&&!1!==c&&(I.style.width=a+"px",I.style.height=b+"px");ua.min.set(-N,
|
|
|
--E);ua.max.set(N,E);S.min.set(-N,-E);S.max.set(N,E);y=1;P=0;H=Aa=aa=R=B=null};this.setClearColor=function(a,b){A.set(a);F=void 0!==b?b:1;S.min.set(-N,-E);S.max.set(N,E)};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(){C.setTransform(1,0,0,-1,N,E);!1===S.empty()&&(S.intersect(ua),S.expandByScalar(2),1>F&&C.clearRect(S.min.x|0,
|
|
|
-S.min.y|0,S.max.x-S.min.x|0,S.max.y-S.min.y|0),0<F&&(p(THREE.NormalBlending),n(1),q("rgba("+Math.floor(255*A.r)+","+Math.floor(255*A.g)+","+Math.floor(255*A.b)+","+F+")"),C.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,k){if(!1===k instanceof THREE.Camera)console.error("THREE.CanvasRenderer.render: camera is not an instance of THREE.Camera.");else{!0===
|
|
|
-this.autoClear&&this.clear();C.setTransform(1,0,0,-1,N,E);v.info.render.vertices=0;v.info.render.faces=0;w=D.projectScene(a,k,this.sortObjects,this.sortElements);x=w.elements;K=w.lights;fa=k;ya.setRGB(0,0,0);Pa.setRGB(0,0,0);pa.setRGB(0,0,0);for(var z=0,I=K.length;z<I;z++){var A=K[z],G=A.color;A instanceof THREE.AmbientLight?ya.add(G):A instanceof THREE.DirectionalLight?Pa.add(G):A instanceof THREE.PointLight&&pa.add(G)}z=0;for(I=x.length;z<I;z++){var y=x[z],F=y.material;if(!(void 0===F||!1===F.visible)){ta.makeEmpty();
|
|
|
-if(y instanceof THREE.RenderableSprite){U=y;U.x*=N;U.y*=E;A=U;G=F;n(G.opacity);p(G.blending);var B=y.scale.x*N,y=y.scale.y*E,F=0.5*Math.sqrt(B*B+y*y);ta.min.set(A.x-F,A.y-F);ta.max.set(A.x+F,A.y+F);if(!1===ua.isIntersectionBox(ta))ta.makeEmpty();else if(G instanceof THREE.SpriteMaterial||G instanceof THREE.ParticleSystemMaterial){var H=G.map;if(null!==H){!1===H.hasEventListener("update",e)&&(void 0!==H.image&&0<H.image.width&&f(H),H.addEventListener("update",e));F=Ua[H.id];void 0!==F?q(F):q("rgba( 0, 0, 0, 1 )");
|
|
|
-var P=H.image,F=P.width*H.offset.x,R=P.height*H.offset.y,V=P.width*H.repeat.x,H=P.height*H.repeat.y,P=B/V,aa=y/H;C.save();C.translate(A.x,A.y);0!==G.rotation&&C.rotate(G.rotation);C.translate(-B/2,-y/2);C.scale(P,aa);C.translate(-F,-R);C.fillRect(F,R,V,H)}else q(G.color.getStyle()),C.save(),C.translate(A.x,A.y),0!==G.rotation&&C.rotate(G.rotation),C.scale(B,-y),C.fillRect(-0.5,-0.5,1,1);C.restore()}else G instanceof THREE.SpriteCanvasMaterial&&(m(G.color.getStyle()),q(G.color.getStyle()),C.save(),
|
|
|
-C.translate(A.x,A.y),0!==G.rotation&&C.rotate(G.rotation),C.scale(B,y),G.program(C),C.restore())}else if(y instanceof THREE.RenderableLine){if(U=y.v1,L=y.v2,U.positionScreen.x*=N,U.positionScreen.y*=E,L.positionScreen.x*=N,L.positionScreen.y*=E,ta.setFromPoints([U.positionScreen,L.positionScreen]),!0===ua.isIntersectionBox(ta))if(A=U,G=L,B=y,y=F,n(y.opacity),p(y.blending),C.beginPath(),C.moveTo(A.positionScreen.x,A.positionScreen.y),C.lineTo(G.positionScreen.x,G.positionScreen.y),y instanceof THREE.LineBasicMaterial){l(y.linewidth);
|
|
|
-s(y.linecap);t(y.linejoin);if(y.vertexColors!==THREE.VertexColors)m(y.color.getStyle());else if(F=B.vertexColors[0].getStyle(),B=B.vertexColors[1].getStyle(),F===B)m(F);else{try{var ja=C.createLinearGradient(A.positionScreen.x,A.positionScreen.y,G.positionScreen.x,G.positionScreen.y);ja.addColorStop(0,F);ja.addColorStop(1,B)}catch(Aa){ja=F}m(ja)}C.stroke();ta.expandByScalar(2*y.linewidth)}else y instanceof THREE.LineDashedMaterial&&(l(y.linewidth),s(y.linecap),t(y.linejoin),m(y.color.getStyle()),
|
|
|
+255*b.g|0;ja[6]=255*b.b|0;ja[8]=255*c.r|0;ja[9]=255*c.g|0;ja[10]=255*c.b|0;ja[12]=255*d.r|0;ja[13]=255*d.g|0;ja[14]=255*d.b|0;db.putImageData(k,0,0);xa.drawImage(Ma,0,0);return Za}function j(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 n(a){y!==a&&(y=C.globalAlpha=a)}function p(a){P!==a&&(a===THREE.NormalBlending?C.globalCompositeOperation="source-over":a===THREE.AdditiveBlending?C.globalCompositeOperation="lighter":a===THREE.SubtractiveBlending&&
|
|
|
+(C.globalCompositeOperation="darker"),P=a)}function l(a){ba!==a&&(ba=C.lineWidth=a)}function s(a){Ca!==a&&(Ca=C.lineCap=a)}function t(a){H!==a&&(H=C.lineJoin=a)}function m(a){B!==a&&(B=C.strokeStyle=a)}function q(a){R!==a&&(R=C.fillStyle=a)}function u(a,b){if(S!==a||ia!==b)C.setLineDash([a,b]),S=a,ia=b}console.log("THREE.CanvasRenderer",THREE.REVISION);var r=THREE.Math.smoothstep,a=a||{},v=this,w,x,K,D=new THREE.Projector,I=void 0!==a.canvas?a.canvas:document.createElement("canvas"),z=I.width,G=I.height,
|
|
|
+N=Math.floor(z/2),E=Math.floor(G/2),C=I.getContext("2d"),A=new THREE.Color(0),F=0,y=1,P=0,B=null,R=null,ba=null,Ca=null,H=null,S=null,ia=0,ga,U,L,O;new THREE.RenderableVertex;new THREE.RenderableVertex;var ea,za,da,Ga,ua,Ia,aa=new THREE.Color,Ba=new THREE.Color,qa=new THREE.Color,ra=new THREE.Color,Na=new THREE.Color,Da=new THREE.Color,Xa=new THREE.Color,Ta=new THREE.Color,Ua={},Oa,hb,Va,sa,ma,oa,Ha,La,wa,Ka,va=new THREE.Box2,$=new THREE.Box2,ta=new THREE.Box2,Aa=new THREE.Color,Pa=new THREE.Color,
|
|
|
+pa=new THREE.Color,Y=new THREE.Vector3,Ma,db,k,ja,Za,xa,ya=16;Ma=document.createElement("canvas");Ma.width=Ma.height=2;db=Ma.getContext("2d");db.fillStyle="rgba(0,0,0,1)";db.fillRect(0,0,2,2);k=db.getImageData(0,0,2,2);ja=k.data;Za=document.createElement("canvas");Za.width=Za.height=ya;xa=Za.getContext("2d");xa.translate(-ya/2,-ya/2);xa.scale(ya,ya);ya--;void 0===C.setLineDash&&(C.setLineDash=void 0!==C.mozDash?function(a){C.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){z=a*this.devicePixelRatio;G=b*this.devicePixelRatio;N=Math.floor(z/2);E=Math.floor(G/2);I.width=z;I.height=G;1!==this.devicePixelRatio&&!1!==c&&(I.style.width=a+"px",I.style.height=b+"px");va.min.set(-N,
|
|
|
+-E);va.max.set(N,E);$.min.set(-N,-E);$.max.set(N,E);y=1;P=0;H=Ca=ba=R=B=null};this.setClearColor=function(a,b){A.set(a);F=void 0!==b?b:1;$.min.set(-N,-E);$.max.set(N,E)};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(){C.setTransform(1,0,0,-1,N,E);!1===$.empty()&&($.intersect(va),$.expandByScalar(2),1>F&&C.clearRect($.min.x|0,
|
|
|
+$.min.y|0,$.max.x-$.min.x|0,$.max.y-$.min.y|0),0<F&&(p(THREE.NormalBlending),n(1),q("rgba("+Math.floor(255*A.r)+","+Math.floor(255*A.g)+","+Math.floor(255*A.b)+","+F+")"),C.fillRect($.min.x|0,$.min.y|0,$.max.x-$.min.x|0,$.max.y-$.min.y|0)),$.makeEmpty())};this.clearColor=function(){};this.clearDepth=function(){};this.clearStencil=function(){};this.render=function(a,k){if(!1===k instanceof THREE.Camera)console.error("THREE.CanvasRenderer.render: camera is not an instance of THREE.Camera.");else{!0===
|
|
|
+this.autoClear&&this.clear();C.setTransform(1,0,0,-1,N,E);v.info.render.vertices=0;v.info.render.faces=0;w=D.projectScene(a,k,this.sortObjects,this.sortElements);x=w.elements;K=w.lights;ga=k;Aa.setRGB(0,0,0);Pa.setRGB(0,0,0);pa.setRGB(0,0,0);for(var z=0,I=K.length;z<I;z++){var A=K[z],G=A.color;A instanceof THREE.AmbientLight?Aa.add(G):A instanceof THREE.DirectionalLight?Pa.add(G):A instanceof THREE.PointLight&&pa.add(G)}z=0;for(I=x.length;z<I;z++){var y=x[z],F=y.material;if(!(void 0===F||!1===F.visible)){ta.makeEmpty();
|
|
|
+if(y instanceof THREE.RenderableSprite){U=y;U.x*=N;U.y*=E;A=U;G=F;n(G.opacity);p(G.blending);var B=y.scale.x*N,y=y.scale.y*E,F=0.5*Math.sqrt(B*B+y*y);ta.min.set(A.x-F,A.y-F);ta.max.set(A.x+F,A.y+F);if(!1===va.isIntersectionBox(ta))ta.makeEmpty();else if(G instanceof THREE.SpriteMaterial||G instanceof THREE.ParticleSystemMaterial){var H=G.map;if(null!==H){!1===H.hasEventListener("update",e)&&(void 0!==H.image&&0<H.image.width&&f(H),H.addEventListener("update",e));F=Ua[H.id];void 0!==F?q(F):q("rgba( 0, 0, 0, 1 )");
|
|
|
+var P=H.image,F=P.width*H.offset.x,R=P.height*H.offset.y,S=P.width*H.repeat.x,H=P.height*H.repeat.y,P=B/S,ba=y/H;C.save();C.translate(A.x,A.y);0!==G.rotation&&C.rotate(G.rotation);C.translate(-B/2,-y/2);C.scale(P,ba);C.translate(-F,-R);C.fillRect(F,R,S,H)}else q(G.color.getStyle()),C.save(),C.translate(A.x,A.y),0!==G.rotation&&C.rotate(G.rotation),C.scale(B,-y),C.fillRect(-0.5,-0.5,1,1);C.restore()}else G instanceof THREE.SpriteCanvasMaterial&&(m(G.color.getStyle()),q(G.color.getStyle()),C.save(),
|
|
|
+C.translate(A.x,A.y),0!==G.rotation&&C.rotate(G.rotation),C.scale(B,y),G.program(C),C.restore())}else if(y instanceof THREE.RenderableLine){if(U=y.v1,L=y.v2,U.positionScreen.x*=N,U.positionScreen.y*=E,L.positionScreen.x*=N,L.positionScreen.y*=E,ta.setFromPoints([U.positionScreen,L.positionScreen]),!0===va.isIntersectionBox(ta))if(A=U,G=L,B=y,y=F,n(y.opacity),p(y.blending),C.beginPath(),C.moveTo(A.positionScreen.x,A.positionScreen.y),C.lineTo(G.positionScreen.x,G.positionScreen.y),y instanceof THREE.LineBasicMaterial){l(y.linewidth);
|
|
|
+s(y.linecap);t(y.linejoin);if(y.vertexColors!==THREE.VertexColors)m(y.color.getStyle());else if(F=B.vertexColors[0].getStyle(),B=B.vertexColors[1].getStyle(),F===B)m(F);else{try{var ja=C.createLinearGradient(A.positionScreen.x,A.positionScreen.y,G.positionScreen.x,G.positionScreen.y);ja.addColorStop(0,F);ja.addColorStop(1,B)}catch(Ca){ja=F}m(ja)}C.stroke();ta.expandByScalar(2*y.linewidth)}else y instanceof THREE.LineDashedMaterial&&(l(y.linewidth),s(y.linecap),t(y.linejoin),m(y.color.getStyle()),
|
|
|
u(y.dashSize,y.gapSize),C.stroke(),ta.expandByScalar(2*y.linewidth),u(null,null))}else if(y instanceof THREE.RenderableFace3){U=y.v1;L=y.v2;O=y.v3;if(-1>U.positionScreen.z||1<U.positionScreen.z)continue;if(-1>L.positionScreen.z||1<L.positionScreen.z)continue;if(-1>O.positionScreen.z||1<O.positionScreen.z)continue;U.positionScreen.x*=N;U.positionScreen.y*=E;L.positionScreen.x*=N;L.positionScreen.y*=E;O.positionScreen.x*=N;O.positionScreen.y*=E;0<F.overdraw&&(j(U.positionScreen,L.positionScreen,F.overdraw),
|
|
|
-j(L.positionScreen,O.positionScreen,F.overdraw),j(O.positionScreen,U.positionScreen,F.overdraw));ta.setFromPoints([U.positionScreen,L.positionScreen,O.positionScreen]);if(!0===ua.isIntersectionBox(ta)){A=U;G=L;B=O;v.info.render.vertices+=3;v.info.render.faces++;n(F.opacity);p(F.blending);ga=A.positionScreen.x;Ga=A.positionScreen.y;da=G.positionScreen.x;Ea=G.positionScreen.y;ca=B.positionScreen.x;Ia=B.positionScreen.y;var R=ga,V=Ga,H=da,P=Ea,aa=ca,xa=Ia;C.beginPath();C.moveTo(R,V);C.lineTo(H,P);C.lineTo(aa,
|
|
|
-xa);C.closePath();(F instanceof THREE.MeshLambertMaterial||F instanceof THREE.MeshPhongMaterial)&&null===F.map?(Ba.copy(F.color),Xa.copy(F.emissive),F.vertexColors===THREE.FaceColors&&Ba.multiply(y.color),!1===F.wireframe&&F.shading===THREE.SmoothShading&&3===y.vertexNormalsLength?(za.copy(ya),qa.copy(ya),ra.copy(ya),b(y.v1.positionWorld,y.vertexNormalsModel[0],za),b(y.v2.positionWorld,y.vertexNormalsModel[1],qa),b(y.v3.positionWorld,y.vertexNormalsModel[2],ra),za.multiply(Ba).add(Xa),qa.multiply(Ba).add(Xa),
|
|
|
-ra.multiply(Ba).add(Xa),Na.addColors(qa,ra).multiplyScalar(0.5),Va=i(za,qa,ra,Na),h(ga,Ga,da,Ea,ca,Ia,0,0,1,0,0,1,Va)):(Fa.copy(ya),b(y.centroidModel,y.normalModel,Fa),Fa.multiply(Ba).add(Xa),!0===F.wireframe?c(Fa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(Fa))):F instanceof THREE.MeshBasicMaterial||F instanceof THREE.MeshLambertMaterial||F instanceof THREE.MeshPhongMaterial?null!==F.map?F.map.mapping instanceof THREE.UVMapping&&(sa=y.uvs[0],g(ga,Ga,da,Ea,ca,Ia,sa[0].x,sa[0].y,
|
|
|
-sa[1].x,sa[1].y,sa[2].x,sa[2].y,F.map)):null!==F.envMap?F.envMap.mapping instanceof THREE.SphericalReflectionMapping&&(Z.copy(y.vertexNormalsModelView[0]),ma=0.5*Z.x+0.5,oa=0.5*Z.y+0.5,Z.copy(y.vertexNormalsModelView[1]),Ha=0.5*Z.x+0.5,La=0.5*Z.y+0.5,Z.copy(y.vertexNormalsModelView[2]),va=0.5*Z.x+0.5,Ka=0.5*Z.y+0.5,g(ga,Ga,da,Ea,ca,Ia,ma,oa,Ha,La,va,Ka,F.envMap)):(Fa.copy(F.color),F.vertexColors===THREE.FaceColors&&Fa.multiply(y.color),!0===F.wireframe?c(Fa,F.wireframeLinewidth,F.wireframeLinecap,
|
|
|
-F.wireframeLinejoin):d(Fa)):F instanceof THREE.MeshDepthMaterial?(Oa=fa.near,hb=fa.far,za.r=za.g=za.b=1-r(A.positionScreen.z*A.positionScreen.w,Oa,hb),qa.r=qa.g=qa.b=1-r(G.positionScreen.z*G.positionScreen.w,Oa,hb),ra.r=ra.g=ra.b=1-r(B.positionScreen.z*B.positionScreen.w,Oa,hb),Na.addColors(qa,ra).multiplyScalar(0.5),Va=i(za,qa,ra,Na),h(ga,Ga,da,Ea,ca,Ia,0,0,1,0,0,1,Va)):F instanceof THREE.MeshNormalMaterial&&(A=void 0,F.shading===THREE.FlatShading?(A=y.normalModelView,Fa.setRGB(A.x,A.y,A.z).multiplyScalar(0.5).addScalar(0.5),
|
|
|
-!0===F.wireframe?c(Fa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(Fa)):F.shading===THREE.SmoothShading&&(A=y.vertexNormalsModelView[0],za.setRGB(A.x,A.y,A.z).multiplyScalar(0.5).addScalar(0.5),A=y.vertexNormalsModelView[1],qa.setRGB(A.x,A.y,A.z).multiplyScalar(0.5).addScalar(0.5),A=y.vertexNormalsModelView[2],ra.setRGB(A.x,A.y,A.z).multiplyScalar(0.5).addScalar(0.5),Na.addColors(qa,ra).multiplyScalar(0.5),Va=i(za,qa,ra,Na),h(ga,Ga,da,Ea,ca,Ia,0,0,1,0,0,1,Va)))}}S.union(ta)}}C.setTransform(1,
|
|
|
+j(L.positionScreen,O.positionScreen,F.overdraw),j(O.positionScreen,U.positionScreen,F.overdraw));ta.setFromPoints([U.positionScreen,L.positionScreen,O.positionScreen]);if(!0===va.isIntersectionBox(ta)){A=U;G=L;B=O;v.info.render.vertices+=3;v.info.render.faces++;n(F.opacity);p(F.blending);ea=A.positionScreen.x;za=A.positionScreen.y;da=G.positionScreen.x;Ga=G.positionScreen.y;ua=B.positionScreen.x;Ia=B.positionScreen.y;var R=ea,S=za,H=da,P=Ga,ba=ua,ya=Ia;C.beginPath();C.moveTo(R,S);C.lineTo(H,P);C.lineTo(ba,
|
|
|
+ya);C.closePath();(F instanceof THREE.MeshLambertMaterial||F instanceof THREE.MeshPhongMaterial)&&null===F.map?(Da.copy(F.color),Xa.copy(F.emissive),F.vertexColors===THREE.FaceColors&&Da.multiply(y.color),!1===F.wireframe&&F.shading===THREE.SmoothShading&&3===y.vertexNormalsLength?(Ba.copy(Aa),qa.copy(Aa),ra.copy(Aa),b(y.v1.positionWorld,y.vertexNormalsModel[0],Ba),b(y.v2.positionWorld,y.vertexNormalsModel[1],qa),b(y.v3.positionWorld,y.vertexNormalsModel[2],ra),Ba.multiply(Da).add(Xa),qa.multiply(Da).add(Xa),
|
|
|
+ra.multiply(Da).add(Xa),Na.addColors(qa,ra).multiplyScalar(0.5),Va=i(Ba,qa,ra,Na),h(ea,za,da,Ga,ua,Ia,0,0,1,0,0,1,Va)):(aa.copy(Aa),b(y.centroidModel,y.normalModel,aa),aa.multiply(Da).add(Xa),!0===F.wireframe?c(aa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(aa))):F instanceof THREE.MeshBasicMaterial||F instanceof THREE.MeshLambertMaterial||F instanceof THREE.MeshPhongMaterial?null!==F.map?F.map.mapping instanceof THREE.UVMapping&&(sa=y.uvs[0],g(ea,za,da,Ga,ua,Ia,sa[0].x,sa[0].y,
|
|
|
+sa[1].x,sa[1].y,sa[2].x,sa[2].y,F.map)):null!==F.envMap?F.envMap.mapping instanceof THREE.SphericalReflectionMapping&&(Y.copy(y.vertexNormalsModelView[0]),ma=0.5*Y.x+0.5,oa=0.5*Y.y+0.5,Y.copy(y.vertexNormalsModelView[1]),Ha=0.5*Y.x+0.5,La=0.5*Y.y+0.5,Y.copy(y.vertexNormalsModelView[2]),wa=0.5*Y.x+0.5,Ka=0.5*Y.y+0.5,g(ea,za,da,Ga,ua,Ia,ma,oa,Ha,La,wa,Ka,F.envMap)):(aa.copy(F.color),F.vertexColors===THREE.FaceColors&&aa.multiply(y.color),!0===F.wireframe?c(aa,F.wireframeLinewidth,F.wireframeLinecap,
|
|
|
+F.wireframeLinejoin):d(aa)):F instanceof THREE.MeshDepthMaterial?(Oa=ga.near,hb=ga.far,Ba.r=Ba.g=Ba.b=1-r(A.positionScreen.z*A.positionScreen.w,Oa,hb),qa.r=qa.g=qa.b=1-r(G.positionScreen.z*G.positionScreen.w,Oa,hb),ra.r=ra.g=ra.b=1-r(B.positionScreen.z*B.positionScreen.w,Oa,hb),Na.addColors(qa,ra).multiplyScalar(0.5),Va=i(Ba,qa,ra,Na),h(ea,za,da,Ga,ua,Ia,0,0,1,0,0,1,Va)):F instanceof THREE.MeshNormalMaterial&&(A=void 0,F.shading===THREE.FlatShading?(A=y.normalModelView,aa.setRGB(A.x,A.y,A.z).multiplyScalar(0.5).addScalar(0.5),
|
|
|
+!0===F.wireframe?c(aa,F.wireframeLinewidth,F.wireframeLinecap,F.wireframeLinejoin):d(aa)):F.shading===THREE.SmoothShading&&(A=y.vertexNormalsModelView[0],Ba.setRGB(A.x,A.y,A.z).multiplyScalar(0.5).addScalar(0.5),A=y.vertexNormalsModelView[1],qa.setRGB(A.x,A.y,A.z).multiplyScalar(0.5).addScalar(0.5),A=y.vertexNormalsModelView[2],ra.setRGB(A.x,A.y,A.z).multiplyScalar(0.5).addScalar(0.5),Na.addColors(qa,ra).multiplyScalar(0.5),Va=i(Ba,qa,ra,Na),h(ea,za,da,Ga,ua,Ia,0,0,1,0,0,1,Va)))}}$.union(ta)}}C.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",
|
|
@@ -374,59 +374,59 @@ function c(a,b){var c=b.geometry,g=a.faces3,h=3*g.length,i=1*g.length,j=3*g.leng
|
|
|
(a.__skinIndexArray=new Float32Array(4*h),a.__skinWeightArray=new Float32Array(4*h));a.__faceArray=new Uint16Array(3*i);a.__lineArray=new Uint16Array(2*j);if(a.numMorphTargets){a.__morphTargetsArrays=[];c=0;for(n=a.numMorphTargets;c<n;c++)a.__morphTargetsArrays.push(new Float32Array(3*h))}if(a.numMorphNormals){a.__morphNormalsArrays=[];c=0;for(n=a.numMorphNormals;c<n;c++)a.__morphNormalsArrays.push(new Float32Array(3*h))}a.__webglFaceCount=3*i;a.__webglLineCount=2*j;if(g.attributes){void 0===a.__webglCustomAttributesList&&
|
|
|
(a.__webglCustomAttributesList=[]);for(var p in g.attributes){var i=g.attributes[p],j={},q;for(q in i)j[q]=i[q];if(!j.__webglInitialized||j.createUniqueBuffers)j.__webglInitialized=!0,c=1,"v2"===j.type?c=2:"v3"===j.type?c=3:"v4"===j.type?c=4:"c"===j.type&&(c=3),j.size=c,j.array=new Float32Array(h*c),j.buffer=k.createBuffer(),j.buffer.belongsToAttribute=p,i.needsUpdate=!0,j.__original=i;a.__webglCustomAttributesList.push(j)}}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 g(a,b,c,d){var e,f,g,i;for(f in b)g=b[f],e=c[f],0<=g&&(e?(i=e.itemSize,k.bindBuffer(k.ARRAY_BUFFER,e.buffer),h(g),k.vertexAttribPointer(g,
|
|
|
-i,k.FLOAT,!1,0,4*d*i)):a.defaultAttributeValues&&(2===a.defaultAttributeValues[f].length?k.vertexAttrib2fv(g,a.defaultAttributeValues[f]):3===a.defaultAttributeValues[f].length&&k.vertexAttrib3fv(g,a.defaultAttributeValues[f])))}function h(a){S[a]||(k.enableVertexAttribArray(a),S[a]=!0)}function i(){for(var a in S)S[a]&&(k.disableVertexAttribArray(a),S[a]=!1)}function j(a,b){return a.z!==b.z?b.z-a.z:a.id-b.id}function n(a,b){return b[0]-a[0]}function p(a,b,c){if(a.length)for(var d=0,e=a.length;d<
|
|
|
-e;d++)Ia=Ga=null,Ea=ca=ra=qa=Oa=Ua=Na=-1,Ma=!0,a[d].render(b,c,Ka,ua),Ia=Ga=null,Ea=ca=ra=qa=Oa=Ua=Na=-1,Ma=!0}function l(a,b,c,d,e,f,g,h){var k,i,j,n;b?(i=a.length-1,n=b=-1):(i=0,b=a.length,n=1);for(var m=i;m!==b;m+=n)if(k=a[m],k.render){i=k.object;j=k.buffer;if(h)k=h;else{k=k[c];if(!k)continue;g&&L.setBlending(k.blending,k.blendEquation,k.blendSrc,k.blendDst);L.setDepthTest(k.depthTest);L.setDepthWrite(k.depthWrite);G(k.polygonOffset,k.polygonOffsetFactor,k.polygonOffsetUnits)}L.setMaterialFaces(k);
|
|
|
+i,k.FLOAT,!1,0,4*d*i)):a.defaultAttributeValues&&(2===a.defaultAttributeValues[f].length?k.vertexAttrib2fv(g,a.defaultAttributeValues[f]):3===a.defaultAttributeValues[f].length&&k.vertexAttrib3fv(g,a.defaultAttributeValues[f])))}function h(a){$[a]||(k.enableVertexAttribArray(a),$[a]=!0)}function i(){for(var a in $)$[a]&&(k.disableVertexAttribArray(a),$[a]=!1)}function j(a,b){return a.z!==b.z?b.z-a.z:a.id-b.id}function n(a,b){return b[0]-a[0]}function p(a,b,c){if(a.length)for(var d=0,e=a.length;d<
|
|
|
+e;d++)Ia=za=null,Ga=ua=ra=qa=Oa=Ua=Na=-1,Ma=!0,a[d].render(b,c,Ka,va),Ia=za=null,Ga=ua=ra=qa=Oa=Ua=Na=-1,Ma=!0}function l(a,b,c,d,e,f,g,h){var k,i,j,n;b?(i=a.length-1,n=b=-1):(i=0,b=a.length,n=1);for(var m=i;m!==b;m+=n)if(k=a[m],k.render){i=k.object;j=k.buffer;if(h)k=h;else{k=k[c];if(!k)continue;g&&L.setBlending(k.blending,k.blendEquation,k.blendSrc,k.blendDst);L.setDepthTest(k.depthTest);L.setDepthWrite(k.depthWrite);G(k.polygonOffset,k.polygonOffsetFactor,k.polygonOffsetUnits)}L.setMaterialFaces(k);
|
|
|
j instanceof THREE.BufferGeometry?L.renderBufferDirect(d,e,f,k,j,i):L.renderBuffer(d,e,f,k,j,i)}}function s(a,b,c,d,e,f,g){for(var h,k,i=0,j=a.length;i<j;i++)if(h=a[i],k=h.object,k.visible){if(g)h=g;else{h=h[b];if(!h)continue;f&&L.setBlending(h.blending,h.blendEquation,h.blendSrc,h.blendDst);L.setDepthTest(h.depthTest);L.setDepthWrite(h.depthWrite);G(h.polygonOffset,h.polygonOffsetFactor,h.polygonOffsetUnits)}L.renderImmediateObject(c,d,e,h,k)}}function t(a,d){var e,f,g,h;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",Nb)),f=a.geometry,void 0!==f))if(f instanceof THREE.BufferGeometry){var i,j;for(i in f.attributes)j="index"===i?k.ELEMENT_ARRAY_BUFFER:k.ARRAY_BUFFER,h=f.attributes[i],h.buffer=k.createBuffer(),k.bindBuffer(j,h.buffer),k.bufferData(j,h.array,k.STATIC_DRAW)}else if(a instanceof THREE.Mesh){g=a.material;
|
|
|
if(void 0===f.geometryGroups){i=f;var n,l,p;j={};var q=i.morphTargets.length,s=i.morphNormals.length,r=g instanceof THREE.MeshFaceMaterial;i.geometryGroups={};g=0;for(n=i.faces.length;g<n;g++)l=i.faces[g],l=r?l.materialIndex:0,void 0===j[l]&&(j[l]={hash:l,counter:0}),p=j[l].hash+"_"+j[l].counter,void 0===i.geometryGroups[p]&&(i.geometryGroups[p]={faces3:[],materialIndex:l,vertices:0,numMorphTargets:q,numMorphNormals:s}),65535<i.geometryGroups[p].vertices+3&&(j[l].counter+=1,p=j[l].hash+"_"+j[l].counter,
|
|
|
-void 0===i.geometryGroups[p]&&(i.geometryGroups[p]={faces3:[],materialIndex:l,vertices:0,numMorphTargets:q,numMorphNormals:s})),i.geometryGroups[p].faces3.push(g),i.geometryGroups[p].vertices+=3;i.geometryGroupsList=[];for(h in i.geometryGroups)i.geometryGroups[h].id=Fa++,i.geometryGroupsList.push(i.geometryGroups[h])}for(e in f.geometryGroups)if(h=f.geometryGroups[e],!h.__webglVertexBuffer){i=h;i.__webglVertexBuffer=k.createBuffer();i.__webglNormalBuffer=k.createBuffer();i.__webglTangentBuffer=k.createBuffer();
|
|
|
+void 0===i.geometryGroups[p]&&(i.geometryGroups[p]={faces3:[],materialIndex:l,vertices:0,numMorphTargets:q,numMorphNormals:s})),i.geometryGroups[p].faces3.push(g),i.geometryGroups[p].vertices+=3;i.geometryGroupsList=[];for(h in i.geometryGroups)i.geometryGroups[h].id=aa++,i.geometryGroupsList.push(i.geometryGroups[h])}for(e in f.geometryGroups)if(h=f.geometryGroups[e],!h.__webglVertexBuffer){i=h;i.__webglVertexBuffer=k.createBuffer();i.__webglNormalBuffer=k.createBuffer();i.__webglTangentBuffer=k.createBuffer();
|
|
|
i.__webglColorBuffer=k.createBuffer();i.__webglUVBuffer=k.createBuffer();i.__webglUV2Buffer=k.createBuffer();i.__webglSkinIndicesBuffer=k.createBuffer();i.__webglSkinWeightsBuffer=k.createBuffer();i.__webglFaceBuffer=k.createBuffer();i.__webglLineBuffer=k.createBuffer();q=j=void 0;if(i.numMorphTargets){i.__webglMorphTargetsBuffers=[];j=0;for(q=i.numMorphTargets;j<q;j++)i.__webglMorphTargetsBuffers.push(k.createBuffer())}if(i.numMorphNormals){i.__webglMorphNormalsBuffers=[];j=0;for(q=i.numMorphNormals;j<
|
|
|
q;j++)i.__webglMorphNormalsBuffers.push(k.createBuffer())}L.info.memory.geometries++;c(h,a);f.verticesNeedUpdate=!0;f.morphTargetsNeedUpdate=!0;f.elementsNeedUpdate=!0;f.uvsNeedUpdate=!0;f.normalsNeedUpdate=!0;f.tangentsNeedUpdate=!0;f.colorsNeedUpdate=!0}}else a instanceof THREE.Line?f.__webglVertexBuffer||(h=f,h.__webglVertexBuffer=k.createBuffer(),h.__webglColorBuffer=k.createBuffer(),h.__webglLineDistanceBuffer=k.createBuffer(),L.info.memory.geometries++,h=f,i=h.vertices.length,h.__vertexArray=
|
|
|
new Float32Array(3*i),h.__colorArray=new Float32Array(3*i),h.__lineDistanceArray=new Float32Array(1*i),h.__webglLineCount=i,b(h,a),f.verticesNeedUpdate=!0,f.colorsNeedUpdate=!0,f.lineDistancesNeedUpdate=!0):a instanceof THREE.ParticleSystem&&!f.__webglVertexBuffer&&(h=f,h.__webglVertexBuffer=k.createBuffer(),h.__webglColorBuffer=k.createBuffer(),L.info.memory.geometries++,h=f,i=h.vertices.length,h.__vertexArray=new Float32Array(3*i),h.__colorArray=new Float32Array(3*i),h.__sortArray=[],h.__webglParticleCount=
|
|
|
i,b(h,a),f.verticesNeedUpdate=!0,f.colorsNeedUpdate=!0);if(void 0===a.__webglActive){if(a instanceof THREE.Mesh)if(f=a.geometry,f instanceof THREE.BufferGeometry)m(d.__webglObjects,f,a);else{if(f instanceof THREE.Geometry)for(e in f.geometryGroups)h=f.geometryGroups[e],m(d.__webglObjects,h,a)}else a instanceof THREE.Line||a instanceof THREE.ParticleSystem?(f=a.geometry,m(d.__webglObjects,f,a)):a instanceof THREE.ImmediateRenderObject||a.immediateRenderCallback?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 m(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?w(b.__webglSprites,a):a instanceof THREE.LensFlare?w(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 w(a,b){for(var c=a.length-1;0<=c;c--)a[c]===b&&a.splice(c,1)}function x(a,b,c,d,e){za=0;d.needsUpdate&&(d.program&&Db(d),L.initMaterial(d,b,c,e),d.needsUpdate=
|
|
|
-!1);d.morphTargets&&!e.__webglMorphTargetInfluences&&(e.__webglMorphTargetInfluences=new Float32Array(L.maxMorphTargets));var f=!1,h=d.program,g=h.uniforms,i=d.uniforms;h!==Ga&&(k.useProgram(h),Ga=h,f=!0);d.id!==Ea&&(Ea=d.id,f=!0);if(f||a!==Ia)k.uniformMatrix4fv(g.projectionMatrix,!1,a.projectionMatrix.elements),a!==Ia&&(Ia=a);if(d.skinning)if(tb&&e.useVertexTexture){if(null!==g.boneTexture){var j=K();k.uniform1i(g.boneTexture,j);L.setTexture(e.boneTexture,j)}null!==g.boneTextureWidth&&k.uniform1i(g.boneTextureWidth,
|
|
|
+THREE.Line?v(b.__webglObjects,a):a instanceof THREE.Sprite?w(b.__webglSprites,a):a instanceof THREE.LensFlare?w(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 w(a,b){for(var c=a.length-1;0<=c;c--)a[c]===b&&a.splice(c,1)}function x(a,b,c,d,e){Ba=0;d.needsUpdate&&(d.program&&Db(d),L.initMaterial(d,b,c,e),d.needsUpdate=
|
|
|
+!1);d.morphTargets&&!e.__webglMorphTargetInfluences&&(e.__webglMorphTargetInfluences=new Float32Array(L.maxMorphTargets));var f=!1,h=d.program,g=h.uniforms,i=d.uniforms;h!==za&&(k.useProgram(h),za=h,f=!0);d.id!==Ga&&(Ga=d.id,f=!0);if(f||a!==Ia)k.uniformMatrix4fv(g.projectionMatrix,!1,a.projectionMatrix.elements),a!==Ia&&(Ia=a);if(d.skinning)if(tb&&e.useVertexTexture){if(null!==g.boneTexture){var j=K();k.uniform1i(g.boneTexture,j);L.setTexture(e.boneTexture,j)}null!==g.boneTextureWidth&&k.uniform1i(g.boneTextureWidth,
|
|
|
e.boneTextureWidth);null!==g.boneTextureHeight&&k.uniform1i(g.boneTextureHeight,e.boneTextureHeight)}else null!==g.boneGlobalMatrices&&k.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(Ma){for(var n,l=j=0,m=0,p,q,s,r=db,t=r.directional.colors,
|
|
|
-u=r.directional.positions,v=r.point.colors,w=r.point.positions,z=r.point.distances,A=r.spot.colors,x=r.spot.positions,G=r.spot.distances,E=r.spot.directions,F=r.spot.anglesCos,N=r.spot.exponents,B=r.hemi.skyColors,H=r.hemi.groundColors,O=r.hemi.positions,R=0,ga=0,U=0,da=0,V=0,X=0,Y=0,W=0,ca=n=0,c=s=ca=0,f=b.length;c<f;c++)n=b[c],n.onlyShadow||(p=n.color,q=n.intensity,s=n.distance,n instanceof THREE.AmbientLight?n.visible&&(L.gammaInput?(j+=p.r*p.r,l+=p.g*p.g,m+=p.b*p.b):(j+=p.r,l+=p.g,m+=p.b)):n instanceof
|
|
|
-THREE.DirectionalLight?(V+=1,n.visible&&(Z.setFromMatrixPosition(n.matrixWorld),pa.setFromMatrixPosition(n.target.matrixWorld),Z.sub(pa),Z.normalize(),0===Z.x&&0===Z.y&&0===Z.z||(n=3*R,u[n]=Z.x,u[n+1]=Z.y,u[n+2]=Z.z,L.gammaInput?D(t,n,p,q*q):I(t,n,p,q),R+=1))):n instanceof THREE.PointLight?(X+=1,n.visible&&(ca=3*ga,L.gammaInput?D(v,ca,p,q*q):I(v,ca,p,q),pa.setFromMatrixPosition(n.matrixWorld),w[ca]=pa.x,w[ca+1]=pa.y,w[ca+2]=pa.z,z[ga]=s,ga+=1)):n instanceof THREE.SpotLight?(Y+=1,n.visible&&(ca=3*
|
|
|
-U,L.gammaInput?D(A,ca,p,q*q):I(A,ca,p,q),pa.setFromMatrixPosition(n.matrixWorld),x[ca]=pa.x,x[ca+1]=pa.y,x[ca+2]=pa.z,G[U]=s,Z.copy(pa),pa.setFromMatrixPosition(n.target.matrixWorld),Z.sub(pa),Z.normalize(),E[ca]=Z.x,E[ca+1]=Z.y,E[ca+2]=Z.z,F[U]=Math.cos(n.angle),N[U]=n.exponent,U+=1)):n instanceof THREE.HemisphereLight&&(W+=1,n.visible&&(Z.setFromMatrixPosition(n.matrixWorld),Z.normalize(),0===Z.x&&0===Z.y&&0===Z.z||(s=3*da,O[s]=Z.x,O[s+1]=Z.y,O[s+2]=Z.z,p=n.color,n=n.groundColor,L.gammaInput?(q*=
|
|
|
-q,D(B,s,p,q),D(H,s,n,q)):(I(B,s,p,q),I(H,s,n,q)),da+=1))));c=3*R;for(f=Math.max(t.length,3*V);c<f;c++)t[c]=0;c=3*ga;for(f=Math.max(v.length,3*X);c<f;c++)v[c]=0;c=3*U;for(f=Math.max(A.length,3*Y);c<f;c++)A[c]=0;c=3*da;for(f=Math.max(B.length,3*W);c<f;c++)B[c]=0;c=3*da;for(f=Math.max(H.length,3*W);c<f;c++)H[c]=0;r.directional.length=R;r.point.length=ga;r.spot.length=U;r.hemi.length=da;r.ambient[0]=j;r.ambient[1]=l;r.ambient[2]=m;Ma=!1}c=db;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;L.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 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=P.height/2,i.map.value=d.map):d instanceof THREE.MeshPhongMaterial?(i.shininess.value=d.shininess,L.gammaInput?(i.ambient.value.copyGammaToLinear(d.ambient),
|
|
|
+u=r.directional.positions,v=r.point.colors,w=r.point.positions,z=r.point.distances,A=r.spot.colors,x=r.spot.positions,G=r.spot.distances,E=r.spot.directions,F=r.spot.anglesCos,N=r.spot.exponents,B=r.hemi.skyColors,H=r.hemi.groundColors,O=r.hemi.positions,R=0,da=0,ea=0,U=0,ua=0,W=0,X=0,V=0,S=n=0,c=s=S=0,f=b.length;c<f;c++)n=b[c],n.onlyShadow||(p=n.color,q=n.intensity,s=n.distance,n instanceof THREE.AmbientLight?n.visible&&(L.gammaInput?(j+=p.r*p.r,l+=p.g*p.g,m+=p.b*p.b):(j+=p.r,l+=p.g,m+=p.b)):n instanceof
|
|
|
+THREE.DirectionalLight?(ua+=1,n.visible&&(Y.setFromMatrixPosition(n.matrixWorld),pa.setFromMatrixPosition(n.target.matrixWorld),Y.sub(pa),Y.normalize(),0===Y.x&&0===Y.y&&0===Y.z||(n=3*R,u[n]=Y.x,u[n+1]=Y.y,u[n+2]=Y.z,L.gammaInput?D(t,n,p,q*q):I(t,n,p,q),R+=1))):n instanceof THREE.PointLight?(W+=1,n.visible&&(S=3*da,L.gammaInput?D(v,S,p,q*q):I(v,S,p,q),pa.setFromMatrixPosition(n.matrixWorld),w[S]=pa.x,w[S+1]=pa.y,w[S+2]=pa.z,z[da]=s,da+=1)):n instanceof THREE.SpotLight?(X+=1,n.visible&&(S=3*ea,L.gammaInput?
|
|
|
+D(A,S,p,q*q):I(A,S,p,q),pa.setFromMatrixPosition(n.matrixWorld),x[S]=pa.x,x[S+1]=pa.y,x[S+2]=pa.z,G[ea]=s,Y.copy(pa),pa.setFromMatrixPosition(n.target.matrixWorld),Y.sub(pa),Y.normalize(),E[S]=Y.x,E[S+1]=Y.y,E[S+2]=Y.z,F[ea]=Math.cos(n.angle),N[ea]=n.exponent,ea+=1)):n instanceof THREE.HemisphereLight&&(V+=1,n.visible&&(Y.setFromMatrixPosition(n.matrixWorld),Y.normalize(),0===Y.x&&0===Y.y&&0===Y.z||(s=3*U,O[s]=Y.x,O[s+1]=Y.y,O[s+2]=Y.z,p=n.color,n=n.groundColor,L.gammaInput?(q*=q,D(B,s,p,q),D(H,s,
|
|
|
+n,q)):(I(B,s,p,q),I(H,s,n,q)),U+=1))));c=3*R;for(f=Math.max(t.length,3*ua);c<f;c++)t[c]=0;c=3*da;for(f=Math.max(v.length,3*W);c<f;c++)v[c]=0;c=3*ea;for(f=Math.max(A.length,3*X);c<f;c++)A[c]=0;c=3*U;for(f=Math.max(B.length,3*V);c<f;c++)B[c]=0;c=3*U;for(f=Math.max(H.length,3*V);c<f;c++)H[c]=0;r.directional.length=R;r.point.length=da;r.spot.length=ea;r.hemi.length=U;r.ambient[0]=j;r.ambient[1]=l;r.ambient[2]=m;Ma=!1}c=db;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;L.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 aa;d.map?aa=d.map:d.specularMap?aa=d.specularMap:d.normalMap?aa=d.normalMap:d.bumpMap&&(aa=d.bumpMap);void 0!==aa&&(c=aa.offset,aa=aa.repeat,i.offsetRepeat.value.set(c.x,c.y,aa.x,aa.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=P.height/2,i.map.value=d.map):d instanceof THREE.MeshPhongMaterial?(i.shininess.value=d.shininess,L.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?(L.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=S=0;for(f=b.length;c<f;c++)if(j=b[c],j.castShadow&&(j instanceof THREE.SpotLight||j instanceof THREE.DirectionalLight&&!j.shadowCascade))i.shadowMap.value[S]=j.shadowMap,i.shadowMapSize.value[S]=j.shadowMapSize,i.shadowMatrix.value[S]=j.shadowMatrix,i.shadowDarkness.value[S]=j.shadowDarkness,i.shadowBias.value[S]=
|
|
|
-j.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,j=c.value,"i"===l)k.uniform1i(f,j);else if("f"===l)k.uniform1f(f,j);else if("v2"===l)k.uniform2f(f,j.x,j.y);else if("v3"===l)k.uniform3f(f,j.x,j.y,j.z);else if("v4"===l)k.uniform4f(f,j.x,j.y,j.z,j.w);else if("c"===l)k.uniform3f(f,j.r,j.g,j.b);else if("iv1"===l)k.uniform1iv(f,j);else if("iv"===l)k.uniform3iv(f,j);else if("fv1"===l)k.uniform1fv(f,j);else if("fv"===l)k.uniform3fv(f,j);else if("v2v"===
|
|
|
+(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=aa=0;for(f=b.length;c<f;c++)if(j=b[c],j.castShadow&&(j instanceof THREE.SpotLight||j instanceof THREE.DirectionalLight&&!j.shadowCascade))i.shadowMap.value[aa]=j.shadowMap,i.shadowMapSize.value[aa]=j.shadowMapSize,i.shadowMatrix.value[aa]=j.shadowMatrix,i.shadowDarkness.value[aa]=j.shadowDarkness,i.shadowBias.value[aa]=
|
|
|
+j.shadowBias,aa++}b=d.uniformsList;i=0;for(aa=b.length;i<aa;i++)if(f=h.uniforms[b[i][1]])if(c=b[i][0],l=c.type,j=c.value,"i"===l)k.uniform1i(f,j);else if("f"===l)k.uniform1f(f,j);else if("v2"===l)k.uniform2f(f,j.x,j.y);else if("v3"===l)k.uniform3f(f,j.x,j.y,j.z);else if("v4"===l)k.uniform4f(f,j.x,j.y,j.z,j.w);else if("c"===l)k.uniform3f(f,j.r,j.g,j.b);else if("iv1"===l)k.uniform1iv(f,j);else if("iv"===l)k.uniform3iv(f,j);else if("fv1"===l)k.uniform1fv(f,j);else if("fv"===l)k.uniform3fv(f,j);else if("v2v"===
|
|
|
l){void 0===c._array&&(c._array=new Float32Array(2*j.length));l=0;for(m=j.length;l<m;l++)r=2*l,c._array[r]=j[l].x,c._array[r+1]=j[l].y;k.uniform2fv(f,c._array)}else if("v3v"===l){void 0===c._array&&(c._array=new Float32Array(3*j.length));l=0;for(m=j.length;l<m;l++)r=3*l,c._array[r]=j[l].x,c._array[r+1]=j[l].y,c._array[r+2]=j[l].z;k.uniform3fv(f,c._array)}else if("v4v"===l){void 0===c._array&&(c._array=new Float32Array(4*j.length));l=0;for(m=j.length;l<m;l++)r=4*l,c._array[r]=j[l].x,c._array[r+1]=
|
|
|
j[l].y,c._array[r+2]=j[l].z,c._array[r+3]=j[l].w;k.uniform4fv(f,c._array)}else if("m4"===l)void 0===c._array&&(c._array=new Float32Array(16)),j.flattenToArray(c._array),k.uniformMatrix4fv(f,!1,c._array);else if("m4v"===l){void 0===c._array&&(c._array=new Float32Array(16*j.length));l=0;for(m=j.length;l<m;l++)j[l].flattenToArrayOffset(c._array,16*l);k.uniformMatrix4fv(f,!1,c._array)}else if("t"===l){if(r=j,j=K(),k.uniform1i(f,j),r)if(r.image instanceof Array&&6===r.image.length){if(c=r,f=j,6===c.image.length)if(c.needsUpdate){c.image.__webglTextureCube||
|
|
|
(c.addEventListener("dispose",Bb),c.image.__webglTextureCube=k.createTexture(),L.info.memory.textures++);k.activeTexture(k.TEXTURE0+f);k.bindTexture(k.TEXTURE_CUBE_MAP,c.image.__webglTextureCube);k.pixelStorei(k.UNPACK_FLIP_Y_WEBGL,c.flipY);f=c instanceof THREE.CompressedTexture;j=[];for(l=0;6>l;l++)L.autoScaleCubemaps&&!f?(m=j,r=l,t=c.image[l],v=$b,t.width<=v&&t.height<=v||(w=Math.max(t.width,t.height),u=Math.floor(t.width*v/w),v=Math.floor(t.height*v/w),w=document.createElement("canvas"),w.width=
|
|
|
u,w.height=v,w.getContext("2d").drawImage(t,0,0,t.width,t.height,0,0,u,v),t=w),m[r]=t):j[l]=c.image[l];l=j[0];m=THREE.Math.isPowerOfTwo(l.width)&&THREE.Math.isPowerOfTwo(l.height);r=y(c.format);t=y(c.type);C(k.TEXTURE_CUBE_MAP,c,m);for(l=0;6>l;l++)if(f){v=j[l].mipmaps;w=0;for(z=v.length;w<z;w++)u=v[w],c.format!==THREE.RGBAFormat?k.compressedTexImage2D(k.TEXTURE_CUBE_MAP_POSITIVE_X+l,w,r,u.width,u.height,0,u.data):k.texImage2D(k.TEXTURE_CUBE_MAP_POSITIVE_X+l,w,r,u.width,u.height,0,r,t,u.data)}else k.texImage2D(k.TEXTURE_CUBE_MAP_POSITIVE_X+
|
|
|
l,0,r,r,t,j[l]);c.generateMipmaps&&m&&k.generateMipmap(k.TEXTURE_CUBE_MAP);c.needsUpdate=!1;if(c.onUpdate)c.onUpdate()}else k.activeTexture(k.TEXTURE0+f),k.bindTexture(k.TEXTURE_CUBE_MAP,c.image.__webglTextureCube)}else r instanceof THREE.WebGLRenderTargetCube?(c=r,k.activeTexture(k.TEXTURE0+j),k.bindTexture(k.TEXTURE_CUBE_MAP,c.__webglTexture)):L.setTexture(r,j)}else if("tv"===l){void 0===c._array&&(c._array=[]);l=0;for(m=c.value.length;l<m;l++)c._array[l]=K();k.uniform1iv(f,c._array);l=0;for(m=
|
|
|
c.value.length;l<m;l++)r=c.value[l],j=c._array[l],r&&L.setTexture(r,j)}else console.warn("THREE.WebGLRenderer: Unknown uniform type: "+l);if((d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&null!==g.cameraPosition)pa.setFromMatrixPosition(a.matrixWorld),k.uniform3f(g.cameraPosition,pa.x,pa.y,pa.z);(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&null!==g.viewMatrix&&k.uniformMatrix4fv(g.viewMatrix,
|
|
|
-!1,a.matrixWorldInverse.elements)}k.uniformMatrix4fv(g.modelViewMatrix,!1,e._modelViewMatrix.elements);g.normalMatrix&&k.uniformMatrix3fv(g.normalMatrix,!1,e._normalMatrix.elements);null!==g.modelMatrix&&k.uniformMatrix4fv(g.modelMatrix,!1,e.matrixWorld.elements);return h}function K(){var a=za;a>=Kb&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+Kb);za+=1;return a}function D(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,
|
|
|
+!1,a.matrixWorldInverse.elements)}k.uniformMatrix4fv(g.modelViewMatrix,!1,e._modelViewMatrix.elements);g.normalMatrix&&k.uniformMatrix3fv(g.normalMatrix,!1,e._normalMatrix.elements);null!==g.modelMatrix&&k.uniformMatrix4fv(g.modelMatrix,!1,e.matrixWorld.elements);return h}function K(){var a=Ba;a>=Kb&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+Kb);Ba+=1;return a}function D(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 z(a){a!==ma&&(k.lineWidth(a),ma=a)}function G(a,b,c){hb!==a&&(a?k.enable(k.POLYGON_OFFSET_FILL):k.disable(k.POLYGON_OFFSET_FILL),hb=a);if(a&&(Va!==b||sa!==c))k.polygonOffset(b,c),Va=b,sa=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 E(a,b){var c;"fragment"===a?c=k.createShader(k.FRAGMENT_SHADER):"vertex"===a&&(c=k.createShader(k.VERTEX_SHADER));k.shaderSource(c,b);k.compileShader(c);return!k.getShaderParameter(c,
|
|
|
k.COMPILE_STATUS)?(console.error(k.getShaderInfoLog(c)),console.error(N(b)),null):c}function C(a,b,c){c?(k.texParameteri(a,k.TEXTURE_WRAP_S,y(b.wrapS)),k.texParameteri(a,k.TEXTURE_WRAP_T,y(b.wrapT)),k.texParameteri(a,k.TEXTURE_MAG_FILTER,y(b.magFilter)),k.texParameteri(a,k.TEXTURE_MIN_FILTER,y(b.minFilter))):(k.texParameteri(a,k.TEXTURE_WRAP_S,k.CLAMP_TO_EDGE),k.texParameteri(a,k.TEXTURE_WRAP_T,k.CLAMP_TO_EDGE),k.texParameteri(a,k.TEXTURE_MAG_FILTER,F(b.magFilter)),k.texParameteri(a,k.TEXTURE_MIN_FILTER,
|
|
|
-F(b.minFilter)));if(wa&&b.type!==THREE.FloatType&&(1<b.anisotropy||b.__oldAnisotropy))k.texParameterf(a,wa.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,Lb)),b.__oldAnisotropy=b.anisotropy}function A(a,b){k.bindRenderbuffer(k.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(k.renderbufferStorage(k.RENDERBUFFER,k.DEPTH_COMPONENT16,b.width,b.height),k.framebufferRenderbuffer(k.FRAMEBUFFER,k.DEPTH_ATTACHMENT,k.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(k.renderbufferStorage(k.RENDERBUFFER,k.DEPTH_STENCIL,
|
|
|
+F(b.minFilter)));if(xa&&b.type!==THREE.FloatType&&(1<b.anisotropy||b.__oldAnisotropy))k.texParameterf(a,xa.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,Lb)),b.__oldAnisotropy=b.anisotropy}function A(a,b){k.bindRenderbuffer(k.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(k.renderbufferStorage(k.RENDERBUFFER,k.DEPTH_COMPONENT16,b.width,b.height),k.framebufferRenderbuffer(k.FRAMEBUFFER,k.DEPTH_ATTACHMENT,k.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(k.renderbufferStorage(k.RENDERBUFFER,k.DEPTH_STENCIL,
|
|
|
b.width,b.height),k.framebufferRenderbuffer(k.FRAMEBUFFER,k.DEPTH_STENCIL_ATTACHMENT,k.RENDERBUFFER,a)):k.renderbufferStorage(k.RENDERBUFFER,k.RGBA4,b.width,b.height)}function F(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?k.NEAREST:k.LINEAR}function y(a){if(a===THREE.RepeatWrapping)return k.REPEAT;if(a===THREE.ClampToEdgeWrapping)return k.CLAMP_TO_EDGE;if(a===THREE.MirroredRepeatWrapping)return k.MIRRORED_REPEAT;if(a===THREE.NearestFilter)return k.NEAREST;
|
|
|
if(a===THREE.NearestMipMapNearestFilter)return k.NEAREST_MIPMAP_NEAREST;if(a===THREE.NearestMipMapLinearFilter)return k.NEAREST_MIPMAP_LINEAR;if(a===THREE.LinearFilter)return k.LINEAR;if(a===THREE.LinearMipMapNearestFilter)return k.LINEAR_MIPMAP_NEAREST;if(a===THREE.LinearMipMapLinearFilter)return k.LINEAR_MIPMAP_LINEAR;if(a===THREE.UnsignedByteType)return k.UNSIGNED_BYTE;if(a===THREE.UnsignedShort4444Type)return k.UNSIGNED_SHORT_4_4_4_4;if(a===THREE.UnsignedShort5551Type)return k.UNSIGNED_SHORT_5_5_5_1;
|
|
|
if(a===THREE.UnsignedShort565Type)return k.UNSIGNED_SHORT_5_6_5;if(a===THREE.ByteType)return k.BYTE;if(a===THREE.ShortType)return k.SHORT;if(a===THREE.UnsignedShortType)return k.UNSIGNED_SHORT;if(a===THREE.IntType)return k.INT;if(a===THREE.UnsignedIntType)return k.UNSIGNED_INT;if(a===THREE.FloatType)return k.FLOAT;if(a===THREE.AlphaFormat)return k.ALPHA;if(a===THREE.RGBFormat)return k.RGB;if(a===THREE.RGBAFormat)return k.RGBA;if(a===THREE.LuminanceFormat)return k.LUMINANCE;if(a===THREE.LuminanceAlphaFormat)return k.LUMINANCE_ALPHA;
|
|
|
if(a===THREE.AddEquation)return k.FUNC_ADD;if(a===THREE.SubtractEquation)return k.FUNC_SUBTRACT;if(a===THREE.ReverseSubtractEquation)return k.FUNC_REVERSE_SUBTRACT;if(a===THREE.ZeroFactor)return k.ZERO;if(a===THREE.OneFactor)return k.ONE;if(a===THREE.SrcColorFactor)return k.SRC_COLOR;if(a===THREE.OneMinusSrcColorFactor)return k.ONE_MINUS_SRC_COLOR;if(a===THREE.SrcAlphaFactor)return k.SRC_ALPHA;if(a===THREE.OneMinusSrcAlphaFactor)return k.ONE_MINUS_SRC_ALPHA;if(a===THREE.DstAlphaFactor)return k.DST_ALPHA;
|
|
|
-if(a===THREE.OneMinusDstAlphaFactor)return k.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return k.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return k.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return k.SRC_ALPHA_SATURATE;if(void 0!==xa){if(a===THREE.RGB_S3TC_DXT1_Format)return xa.COMPRESSED_RGB_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT1_Format)return xa.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT3_Format)return xa.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return xa.COMPRESSED_RGBA_S3TC_DXT5_EXT}return 0}
|
|
|
-console.log("THREE.WebGLRenderer",THREE.REVISION);var a=a||{},P=void 0!==a.canvas?a.canvas:document.createElement("canvas"),B=void 0!==a.context?a.context:null,R=void 0!==a.precision?a.precision:"highp",aa=void 0!==a.alpha?a.alpha:!1,Aa=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,H=void 0!==a.antialias?a.antialias:!1,V=void 0!==a.stencil?a.stencil:!0,ia=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,fa=new THREE.Color(0),U=0;this.domElement=P;this.context=null;this.devicePixelRatio=
|
|
|
+if(a===THREE.OneMinusDstAlphaFactor)return k.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return k.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return k.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return k.SRC_ALPHA_SATURATE;if(void 0!==ya){if(a===THREE.RGB_S3TC_DXT1_Format)return ya.COMPRESSED_RGB_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT1_Format)return ya.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT3_Format)return ya.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return ya.COMPRESSED_RGBA_S3TC_DXT5_EXT}return 0}
|
|
|
+console.log("THREE.WebGLRenderer",THREE.REVISION);var a=a||{},P=void 0!==a.canvas?a.canvas:document.createElement("canvas"),B=void 0!==a.context?a.context:null,R=void 0!==a.precision?a.precision:"highp",ba=void 0!==a.alpha?a.alpha:!1,Ca=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,H=void 0!==a.antialias?a.antialias:!1,S=void 0!==a.stencil?a.stencil:!0,ia=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,ga=new THREE.Color(0),U=0;this.domElement=P;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 L=this,O=[],ga=0,Ga=null,da=null,Ea=-1,ca=null,Ia=null,Fa=0,za=0,qa=-1,ra=-1,Na=-1,Ba=-1,Xa=-1,Ta=-1,Ua=-1,Oa=-1,hb=null,Va=null,sa=null,ma=null,oa=0,Ha=0,La=P.width,va=P.height,Ka=0,ua=0,S={},ta=new THREE.Frustum,ya=new THREE.Matrix4,Pa=new THREE.Matrix4,pa=new THREE.Vector3,Z=new THREE.Vector3,Ma=!0,db={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:[]}},k,ja,Za,wa,xa;try{var Ab={alpha:aa,premultipliedAlpha:Aa,antialias:H,stencil:V,preserveDrawingBuffer:ia};k=B||P.getContext("webgl",Ab)||P.getContext("experimental-webgl",Ab);if(null===k)throw"Error creating WebGL context.";}catch(Yb){console.error(Yb)}ja=k.getExtension("OES_texture_float");
|
|
|
-k.getExtension("OES_texture_float_linear");Za=k.getExtension("OES_standard_derivatives");wa=k.getExtension("EXT_texture_filter_anisotropic")||k.getExtension("MOZ_EXT_texture_filter_anisotropic")||k.getExtension("WEBKIT_EXT_texture_filter_anisotropic");xa=k.getExtension("WEBGL_compressed_texture_s3tc")||k.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||k.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");ja||console.log("THREE.WebGLRenderer: Float textures not supported.");Za||console.log("THREE.WebGLRenderer: Standard derivatives not supported.");
|
|
|
-wa||console.log("THREE.WebGLRenderer: Anisotropic texture filtering not supported.");xa||console.log("THREE.WebGLRenderer: S3TC compressed textures not supported.");void 0===k.getShaderPrecisionFormat&&(k.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}});k.clearColor(0,0,0,1);k.clearDepth(1);k.clearStencil(0);k.enable(k.DEPTH_TEST);k.depthFunc(k.LEQUAL);k.frontFace(k.CCW);k.cullFace(k.BACK);k.enable(k.CULL_FACE);k.enable(k.BLEND);k.blendEquation(k.FUNC_ADD);k.blendFunc(k.SRC_ALPHA,
|
|
|
-k.ONE_MINUS_SRC_ALPHA);k.viewport(oa,Ha,La,va);k.clearColor(fa.r,fa.g,fa.b,U);this.context=k;var Kb=k.getParameter(k.MAX_TEXTURE_IMAGE_UNITS),Zb=k.getParameter(k.MAX_VERTEX_TEXTURE_IMAGE_UNITS);k.getParameter(k.MAX_TEXTURE_SIZE);var $b=k.getParameter(k.MAX_CUBE_MAP_TEXTURE_SIZE),Lb=wa?k.getParameter(wa.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,xb=0<Zb,tb=xb&&ja;xa&&k.getParameter(k.COMPRESSED_TEXTURE_FORMATS);var ac=k.getShaderPrecisionFormat(k.VERTEX_SHADER,k.HIGH_FLOAT),bc=k.getShaderPrecisionFormat(k.VERTEX_SHADER,
|
|
|
+!0;this.renderPluginsPre=[];this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};var L=this,O=[],ea=0,za=null,da=null,Ga=-1,ua=null,Ia=null,aa=0,Ba=0,qa=-1,ra=-1,Na=-1,Da=-1,Xa=-1,Ta=-1,Ua=-1,Oa=-1,hb=null,Va=null,sa=null,ma=null,oa=0,Ha=0,La=P.width,wa=P.height,Ka=0,va=0,$={},ta=new THREE.Frustum,Aa=new THREE.Matrix4,Pa=new THREE.Matrix4,pa=new THREE.Vector3,Y=new THREE.Vector3,Ma=!0,db={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:[]}},k,ja,Za,xa,ya;try{var Ab={alpha:ba,premultipliedAlpha:Ca,antialias:H,stencil:S,preserveDrawingBuffer:ia};k=B||P.getContext("webgl",Ab)||P.getContext("experimental-webgl",Ab);if(null===k)throw"Error creating WebGL context.";}catch(Yb){console.error(Yb)}ja=k.getExtension("OES_texture_float");
|
|
|
+k.getExtension("OES_texture_float_linear");Za=k.getExtension("OES_standard_derivatives");xa=k.getExtension("EXT_texture_filter_anisotropic")||k.getExtension("MOZ_EXT_texture_filter_anisotropic")||k.getExtension("WEBKIT_EXT_texture_filter_anisotropic");ya=k.getExtension("WEBGL_compressed_texture_s3tc")||k.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||k.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");ja||console.log("THREE.WebGLRenderer: Float textures not supported.");Za||console.log("THREE.WebGLRenderer: Standard derivatives not supported.");
|
|
|
+xa||console.log("THREE.WebGLRenderer: Anisotropic texture filtering not supported.");ya||console.log("THREE.WebGLRenderer: S3TC compressed textures not supported.");void 0===k.getShaderPrecisionFormat&&(k.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}});k.clearColor(0,0,0,1);k.clearDepth(1);k.clearStencil(0);k.enable(k.DEPTH_TEST);k.depthFunc(k.LEQUAL);k.frontFace(k.CCW);k.cullFace(k.BACK);k.enable(k.CULL_FACE);k.enable(k.BLEND);k.blendEquation(k.FUNC_ADD);k.blendFunc(k.SRC_ALPHA,
|
|
|
+k.ONE_MINUS_SRC_ALPHA);k.viewport(oa,Ha,La,wa);k.clearColor(ga.r,ga.g,ga.b,U);this.context=k;var Kb=k.getParameter(k.MAX_TEXTURE_IMAGE_UNITS),Zb=k.getParameter(k.MAX_VERTEX_TEXTURE_IMAGE_UNITS);k.getParameter(k.MAX_TEXTURE_SIZE);var $b=k.getParameter(k.MAX_CUBE_MAP_TEXTURE_SIZE),Lb=xa?k.getParameter(xa.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,xb=0<Zb,tb=xb&&ja;ya&&k.getParameter(k.COMPRESSED_TEXTURE_FORMATS);var ac=k.getShaderPrecisionFormat(k.VERTEX_SHADER,k.HIGH_FLOAT),bc=k.getShaderPrecisionFormat(k.VERTEX_SHADER,
|
|
|
k.MEDIUM_FLOAT);k.getShaderPrecisionFormat(k.VERTEX_SHADER,k.LOW_FLOAT);var pc=k.getShaderPrecisionFormat(k.FRAGMENT_SHADER,k.HIGH_FLOAT),qc=k.getShaderPrecisionFormat(k.FRAGMENT_SHADER,k.MEDIUM_FLOAT);k.getShaderPrecisionFormat(k.FRAGMENT_SHADER,k.LOW_FLOAT);k.getShaderPrecisionFormat(k.VERTEX_SHADER,k.HIGH_INT);k.getShaderPrecisionFormat(k.VERTEX_SHADER,k.MEDIUM_INT);k.getShaderPrecisionFormat(k.VERTEX_SHADER,k.LOW_INT);k.getShaderPrecisionFormat(k.FRAGMENT_SHADER,k.HIGH_INT);k.getShaderPrecisionFormat(k.FRAGMENT_SHADER,
|
|
|
k.MEDIUM_INT);k.getShaderPrecisionFormat(k.FRAGMENT_SHADER,k.LOW_INT);var rc=0<ac.precision&&0<pc.precision,Mb=0<bc.precision&&0<qc.precision;"highp"===R&&!rc&&(Mb?(R="mediump",console.warn("WebGLRenderer: highp not supported, using mediump")):(R="lowp",console.warn("WebGLRenderer: highp and mediump not supported, using lowp")));"mediump"===R&&!Mb&&(R="lowp",console.warn("WebGLRenderer: mediump not supported, using lowp"));this.getContext=function(){return k};this.supportsVertexTextures=function(){return xb};
|
|
|
-this.supportsFloatTextures=function(){return ja};this.supportsStandardDerivatives=function(){return Za};this.supportsCompressedTextureS3TC=function(){return xa};this.getMaxAnisotropy=function(){return Lb};this.getPrecision=function(){return R};this.setSize=function(a,b,c){P.width=a*this.devicePixelRatio;P.height=b*this.devicePixelRatio;1!==this.devicePixelRatio&&!1!==c&&(P.style.width=a+"px",P.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){oa=a*this.devicePixelRatio;
|
|
|
-Ha=b*this.devicePixelRatio;La=c*this.devicePixelRatio;va=d*this.devicePixelRatio;k.viewport(oa,Ha,La,va)};this.setScissor=function(a,b,c,d){k.scissor(a*this.devicePixelRatio,b*this.devicePixelRatio,c*this.devicePixelRatio,d*this.devicePixelRatio)};this.enableScissorTest=function(a){a?k.enable(k.SCISSOR_TEST):k.disable(k.SCISSOR_TEST)};this.setClearColor=function(a,b){fa.set(a);U=void 0!==b?b:1;k.clearColor(fa.r,fa.g,fa.b,U)};this.setClearColorHex=function(a,b){console.warn("DEPRECATED: .setClearColorHex() is being removed. Use .setClearColor() instead.");
|
|
|
-this.setClearColor(a,b)};this.getClearColor=function(){return fa};this.getClearAlpha=function(){return U};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=k.COLOR_BUFFER_BIT;if(void 0===b||b)d|=k.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=k.STENCIL_BUFFER_BIT;k.clear(d)};this.clearColor=function(){k.clear(k.COLOR_BUFFER_BIT)};this.clearDepth=function(){k.clear(k.DEPTH_BUFFER_BIT)};this.clearStencil=function(){k.clear(k.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){Ga=null;Ea=ca=Oa=Ua=Na=-1;Ma=!0;ra=qa=-1;this.shadowMapPlugin.update(a,b)};var Nb=function(a){a=a.target;a.removeEventListener("dispose",Nb);a.__webglInit=void 0;if(a instanceof THREE.BufferGeometry){var b=a.attributes,c;for(c in b)void 0!==b[c].buffer&&k.deleteBuffer(b[c].buffer);L.info.memory.geometries--}else if(void 0!==
|
|
|
+this.supportsFloatTextures=function(){return ja};this.supportsStandardDerivatives=function(){return Za};this.supportsCompressedTextureS3TC=function(){return ya};this.getMaxAnisotropy=function(){return Lb};this.getPrecision=function(){return R};this.setSize=function(a,b,c){P.width=a*this.devicePixelRatio;P.height=b*this.devicePixelRatio;1!==this.devicePixelRatio&&!1!==c&&(P.style.width=a+"px",P.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){oa=a*this.devicePixelRatio;
|
|
|
+Ha=b*this.devicePixelRatio;La=c*this.devicePixelRatio;wa=d*this.devicePixelRatio;k.viewport(oa,Ha,La,wa)};this.setScissor=function(a,b,c,d){k.scissor(a*this.devicePixelRatio,b*this.devicePixelRatio,c*this.devicePixelRatio,d*this.devicePixelRatio)};this.enableScissorTest=function(a){a?k.enable(k.SCISSOR_TEST):k.disable(k.SCISSOR_TEST)};this.setClearColor=function(a,b){ga.set(a);U=void 0!==b?b:1;k.clearColor(ga.r,ga.g,ga.b,U)};this.setClearColorHex=function(a,b){console.warn("DEPRECATED: .setClearColorHex() is being removed. Use .setClearColor() instead.");
|
|
|
+this.setClearColor(a,b)};this.getClearColor=function(){return ga};this.getClearAlpha=function(){return U};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=k.COLOR_BUFFER_BIT;if(void 0===b||b)d|=k.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=k.STENCIL_BUFFER_BIT;k.clear(d)};this.clearColor=function(){k.clear(k.COLOR_BUFFER_BIT)};this.clearDepth=function(){k.clear(k.DEPTH_BUFFER_BIT)};this.clearStencil=function(){k.clear(k.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){za=null;Ga=ua=Oa=Ua=Na=-1;Ma=!0;ra=qa=-1;this.shadowMapPlugin.update(a,b)};var Nb=function(a){a=a.target;a.removeEventListener("dispose",Nb);a.__webglInit=void 0;if(a instanceof THREE.BufferGeometry){var b=a.attributes,c;for(c in b)void 0!==b[c].buffer&&k.deleteBuffer(b[c].buffer);L.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++)k.deleteBuffer(c.__webglMorphTargetsBuffers[d]);if(void 0!==c.numMorphNormals){d=0;for(e=c.numMorphNormals;d<e;d++)k.deleteBuffer(c.__webglMorphNormalsBuffers[d])}Eb(c)}else Eb(a)},Bb=function(a){a=a.target;a.removeEventListener("dispose",Bb);a.image&&a.image.__webglTextureCube?k.deleteTexture(a.image.__webglTextureCube):a.__webglInit&&(a.__webglInit=!1,k.deleteTexture(a.__webglTexture));
|
|
|
L.info.memory.textures--},Cb=function(a){a=a.target;a.removeEventListener("dispose",Cb);if(a&&a.__webglTexture)if(k.deleteTexture(a.__webglTexture),a instanceof THREE.WebGLRenderTargetCube)for(var b=0;6>b;b++)k.deleteFramebuffer(a.__webglFramebuffer[b]),k.deleteRenderbuffer(a.__webglRenderbuffer[b]);else k.deleteFramebuffer(a.__webglFramebuffer),k.deleteRenderbuffer(a.__webglRenderbuffer);L.info.memory.textures--},Fb=function(a){a=a.target;a.removeEventListener("dispose",Fb);Db(a)},Eb=function(a){void 0!==
|
|
|
a.__webglVertexBuffer&&k.deleteBuffer(a.__webglVertexBuffer);void 0!==a.__webglNormalBuffer&&k.deleteBuffer(a.__webglNormalBuffer);void 0!==a.__webglTangentBuffer&&k.deleteBuffer(a.__webglTangentBuffer);void 0!==a.__webglColorBuffer&&k.deleteBuffer(a.__webglColorBuffer);void 0!==a.__webglUVBuffer&&k.deleteBuffer(a.__webglUVBuffer);void 0!==a.__webglUV2Buffer&&k.deleteBuffer(a.__webglUV2Buffer);void 0!==a.__webglSkinIndicesBuffer&&k.deleteBuffer(a.__webglSkinIndicesBuffer);void 0!==a.__webglSkinWeightsBuffer&&
|
|
@@ -434,12 +434,12 @@ k.deleteBuffer(a.__webglSkinWeightsBuffer);void 0!==a.__webglFaceBuffer&&k.delet
|
|
|
a=0;for(c=O.length;a<c;a++)if(d=O[a],d.program===b){d.usedTimes--;0===d.usedTimes&&(e=!0);break}if(!0===e){e=[];a=0;for(c=O.length;a<c;a++)d=O[a],d.program!==b&&e.push(d);O=e;k.deleteProgram(b);L.info.memory.programs--}}};this.renderBufferImmediate=function(a,b,c){a.hasPositions&&!a.__webglVertexBuffer&&(a.__webglVertexBuffer=k.createBuffer());a.hasNormals&&!a.__webglNormalBuffer&&(a.__webglNormalBuffer=k.createBuffer());a.hasUvs&&!a.__webglUvBuffer&&(a.__webglUvBuffer=k.createBuffer());a.hasColors&&
|
|
|
!a.__webglColorBuffer&&(a.__webglColorBuffer=k.createBuffer());a.hasPositions&&(k.bindBuffer(k.ARRAY_BUFFER,a.__webglVertexBuffer),k.bufferData(k.ARRAY_BUFFER,a.positionArray,k.DYNAMIC_DRAW),k.enableVertexAttribArray(b.attributes.position),k.vertexAttribPointer(b.attributes.position,3,k.FLOAT,!1,0,0));if(a.hasNormals){k.bindBuffer(k.ARRAY_BUFFER,a.__webglNormalBuffer);if(c.shading===THREE.FlatShading){var d,e,f,g,h,i,j,l,n,m,p,q=3*a.count;for(p=0;p<q;p+=9)m=a.normalArray,d=m[p],e=m[p+1],f=m[p+2],
|
|
|
g=m[p+3],i=m[p+4],l=m[p+5],h=m[p+6],j=m[p+7],n=m[p+8],d=(d+g+h)/3,e=(e+i+j)/3,f=(f+l+n)/3,m[p]=d,m[p+1]=e,m[p+2]=f,m[p+3]=d,m[p+4]=e,m[p+5]=f,m[p+6]=d,m[p+7]=e,m[p+8]=f}k.bufferData(k.ARRAY_BUFFER,a.normalArray,k.DYNAMIC_DRAW);k.enableVertexAttribArray(b.attributes.normal);k.vertexAttribPointer(b.attributes.normal,3,k.FLOAT,!1,0,0)}a.hasUvs&&c.map&&(k.bindBuffer(k.ARRAY_BUFFER,a.__webglUvBuffer),k.bufferData(k.ARRAY_BUFFER,a.uvArray,k.DYNAMIC_DRAW),k.enableVertexAttribArray(b.attributes.uv),k.vertexAttribPointer(b.attributes.uv,
|
|
|
-2,k.FLOAT,!1,0,0));a.hasColors&&c.vertexColors!==THREE.NoColors&&(k.bindBuffer(k.ARRAY_BUFFER,a.__webglColorBuffer),k.bufferData(k.ARRAY_BUFFER,a.colorArray,k.DYNAMIC_DRAW),k.enableVertexAttribArray(b.attributes.color),k.vertexAttribPointer(b.attributes.color,3,k.FLOAT,!1,0,0));k.drawArrays(k.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,e,f){if(!1!==d.visible){var j,l,n,m;j=x(a,b,c,d,f);a=j.attributes;b=e.attributes;c=!1;j=16777215*e.id+2*j.id+(d.wireframe?1:0);j!==ca&&
|
|
|
-(ca=j,c=!0);c&&i();if(f instanceof THREE.Mesh)if(f=b.index){e=e.offsets;1<e.length&&(c=!0);for(var p=0,q=e.length;p<q;p++){var r=e[p].index;if(c){for(l in a)n=a[l],j=b[l],0<=n&&(j?(m=j.itemSize,k.bindBuffer(k.ARRAY_BUFFER,j.buffer),h(n),k.vertexAttribPointer(n,m,k.FLOAT,!1,0,4*r*m)):d.defaultAttributeValues&&(2===d.defaultAttributeValues[l].length?k.vertexAttrib2fv(n,d.defaultAttributeValues[l]):3===d.defaultAttributeValues[l].length&&k.vertexAttrib3fv(n,d.defaultAttributeValues[l])));k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,
|
|
|
+2,k.FLOAT,!1,0,0));a.hasColors&&c.vertexColors!==THREE.NoColors&&(k.bindBuffer(k.ARRAY_BUFFER,a.__webglColorBuffer),k.bufferData(k.ARRAY_BUFFER,a.colorArray,k.DYNAMIC_DRAW),k.enableVertexAttribArray(b.attributes.color),k.vertexAttribPointer(b.attributes.color,3,k.FLOAT,!1,0,0));k.drawArrays(k.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,e,f){if(!1!==d.visible){var j,l,n,m;j=x(a,b,c,d,f);a=j.attributes;b=e.attributes;c=!1;j=16777215*e.id+2*j.id+(d.wireframe?1:0);j!==ua&&
|
|
|
+(ua=j,c=!0);c&&i();if(f instanceof THREE.Mesh)if(f=b.index){e=e.offsets;1<e.length&&(c=!0);for(var p=0,q=e.length;p<q;p++){var r=e[p].index;if(c){for(l in a)n=a[l],j=b[l],0<=n&&(j?(m=j.itemSize,k.bindBuffer(k.ARRAY_BUFFER,j.buffer),h(n),k.vertexAttribPointer(n,m,k.FLOAT,!1,0,4*r*m)):d.defaultAttributeValues&&(2===d.defaultAttributeValues[l].length?k.vertexAttrib2fv(n,d.defaultAttributeValues[l]):3===d.defaultAttributeValues[l].length&&k.vertexAttrib3fv(n,d.defaultAttributeValues[l])));k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,
|
|
|
f.buffer)}k.drawElements(k.TRIANGLES,e[p].count,k.UNSIGNED_SHORT,2*e[p].start);L.info.render.calls++;L.info.render.vertices+=e[p].count;L.info.render.faces+=e[p].count/3}}else{if(c)for(l in a)"index"!==l&&(n=a[l],j=b[l],0<=n&&(j?(m=j.itemSize,k.bindBuffer(k.ARRAY_BUFFER,j.buffer),h(n),k.vertexAttribPointer(n,m,k.FLOAT,!1,0,0)):d.defaultAttributeValues&&d.defaultAttributeValues[l]&&(2===d.defaultAttributeValues[l].length?k.vertexAttrib2fv(n,d.defaultAttributeValues[l]):3===d.defaultAttributeValues[l].length&&
|
|
|
k.vertexAttrib3fv(n,d.defaultAttributeValues[l]))));d=e.attributes.position;k.drawArrays(k.TRIANGLES,0,d.array.length/3);L.info.render.calls++;L.info.render.vertices+=d.array.length/3;L.info.render.faces+=d.array.length/3/3}else if(f instanceof THREE.ParticleSystem){if(c)for(l in a)n=a[l],j=b[l],0<=n&&(j?(m=j.itemSize,k.bindBuffer(k.ARRAY_BUFFER,j.buffer),h(n),k.vertexAttribPointer(n,m,k.FLOAT,!1,0,0)):d.defaultAttributeValues&&d.defaultAttributeValues[l]&&(2===d.defaultAttributeValues[l].length?
|
|
|
k.vertexAttrib2fv(n,d.defaultAttributeValues[l]):3===d.defaultAttributeValues[l].length&&k.vertexAttrib3fv(n,d.defaultAttributeValues[l])));d=b.position;k.drawArrays(k.POINTS,0,d.array.length/3);L.info.render.calls++;L.info.render.points+=d.array.length/3}else if(f instanceof THREE.Line)if(l=f.type===THREE.LineStrip?k.LINE_STRIP:k.LINES,z(d.linewidth),f=b.index){e=e.offsets;1<e.length&&(c=!0);p=0;for(q=e.length;p<q;p++)r=e[p].index,c&&(g(d,a,b,r),k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,f.buffer)),k.drawElements(k.LINES,
|
|
|
-e[p].count,k.UNSIGNED_SHORT,2*e[p].start),L.info.render.calls++,L.info.render.vertices+=e[p].count}else c&&g(d,a,b,0),d=b.position,k.drawArrays(l,0,d.array.length/3),L.info.render.calls++,L.info.render.points+=d.array.length}};this.renderBuffer=function(a,b,c,d,e,f){if(!1!==d.visible){var g,j,c=x(a,b,c,d,f),a=c.attributes,b=!1,c=16777215*e.id+2*c.id+(d.wireframe?1:0);c!==ca&&(ca=c,b=!0);b&&i();if(!d.morphTargets&&0<=a.position)b&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglVertexBuffer),h(a.position),k.vertexAttribPointer(a.position,
|
|
|
+e[p].count,k.UNSIGNED_SHORT,2*e[p].start),L.info.render.calls++,L.info.render.vertices+=e[p].count}else c&&g(d,a,b,0),d=b.position,k.drawArrays(l,0,d.array.length/3),L.info.render.calls++,L.info.render.points+=d.array.length}};this.renderBuffer=function(a,b,c,d,e,f){if(!1!==d.visible){var g,j,c=x(a,b,c,d,f),a=c.attributes,b=!1,c=16777215*e.id+2*c.id+(d.wireframe?1:0);c!==ua&&(ua=c,b=!0);b&&i();if(!d.morphTargets&&0<=a.position)b&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglVertexBuffer),h(a.position),k.vertexAttribPointer(a.position,
|
|
|
3,k.FLOAT,!1,0,0));else if(f.morphTargetBase){c=d.program.attributes;-1!==f.morphTargetBase&&0<=c.position?(k.bindBuffer(k.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[f.morphTargetBase]),h(c.position),k.vertexAttribPointer(c.position,3,k.FLOAT,!1,0,0)):0<=c.position&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglVertexBuffer),h(c.position),k.vertexAttribPointer(c.position,3,k.FLOAT,!1,0,0));if(f.morphTargetForcedOrder.length){var l=0;j=f.morphTargetForcedOrder;for(g=f.morphTargetInfluences;l<d.numSupportedMorphTargets&&
|
|
|
l<j.length;)0<=c["morphTarget"+l]&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[j[l]]),h(c["morphTarget"+l]),k.vertexAttribPointer(c["morphTarget"+l],3,k.FLOAT,!1,0,0)),0<=c["morphNormal"+l]&&d.morphNormals&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[j[l]]),h(c["morphNormal"+l]),k.vertexAttribPointer(c["morphNormal"+l],3,k.FLOAT,!1,0,0)),f.__webglMorphTargetInfluences[l]=g[j[l]],l++}else{j=[];g=f.morphTargetInfluences;var p,m=g.length;for(p=0;p<m;p++)l=g[p],0<l&&j.push([l,
|
|
|
p]);j.length>d.numSupportedMorphTargets?(j.sort(n),j.length=d.numSupportedMorphTargets):j.length>d.numSupportedMorphNormals?j.sort(n):0===j.length&&j.push([0,0]);for(l=0;l<d.numSupportedMorphTargets;)j[l]?(p=j[l][1],0<=c["morphTarget"+l]&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[p]),h(c["morphTarget"+l]),k.vertexAttribPointer(c["morphTarget"+l],3,k.FLOAT,!1,0,0)),0<=c["morphNormal"+l]&&d.morphNormals&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[p]),h(c["morphNormal"+
|
|
@@ -448,39 +448,39 @@ k.vertexAttribPointer(a[c.buffer.belongsToAttribute],c.size,k.FLOAT,!1,0,0))}0<=
|
|
|
e.__webglTangentBuffer),h(a.tangent),k.vertexAttribPointer(a.tangent,4,k.FLOAT,!1,0,0));0<=a.uv&&(f.geometry.faceVertexUvs[0]?(k.bindBuffer(k.ARRAY_BUFFER,e.__webglUVBuffer),h(a.uv),k.vertexAttribPointer(a.uv,2,k.FLOAT,!1,0,0)):d.defaultAttributeValues&&k.vertexAttrib2fv(a.uv,d.defaultAttributeValues.uv));0<=a.uv2&&(f.geometry.faceVertexUvs[1]?(k.bindBuffer(k.ARRAY_BUFFER,e.__webglUV2Buffer),h(a.uv2),k.vertexAttribPointer(a.uv2,2,k.FLOAT,!1,0,0)):d.defaultAttributeValues&&k.vertexAttrib2fv(a.uv2,
|
|
|
d.defaultAttributeValues.uv2));d.skinning&&(0<=a.skinIndex&&0<=a.skinWeight)&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglSkinIndicesBuffer),h(a.skinIndex),k.vertexAttribPointer(a.skinIndex,4,k.FLOAT,!1,0,0),k.bindBuffer(k.ARRAY_BUFFER,e.__webglSkinWeightsBuffer),h(a.skinWeight),k.vertexAttribPointer(a.skinWeight,4,k.FLOAT,!1,0,0));0<=a.lineDistance&&(k.bindBuffer(k.ARRAY_BUFFER,e.__webglLineDistanceBuffer),h(a.lineDistance),k.vertexAttribPointer(a.lineDistance,1,k.FLOAT,!1,0,0))}f instanceof THREE.Mesh?
|
|
|
(d.wireframe?(z(d.wireframeLinewidth),b&&k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,e.__webglLineBuffer),k.drawElements(k.LINES,e.__webglLineCount,k.UNSIGNED_SHORT,0)):(b&&k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,e.__webglFaceBuffer),k.drawElements(k.TRIANGLES,e.__webglFaceCount,k.UNSIGNED_SHORT,0)),L.info.render.calls++,L.info.render.vertices+=e.__webglFaceCount,L.info.render.faces+=e.__webglFaceCount/3):f instanceof THREE.Line?(f=f.type===THREE.LineStrip?k.LINE_STRIP:k.LINES,z(d.linewidth),k.drawArrays(f,0,
|
|
|
-e.__webglLineCount),L.info.render.calls++):f instanceof THREE.ParticleSystem&&(k.drawArrays(k.POINTS,0,e.__webglParticleCount),L.info.render.calls++,L.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,g,h,i=a.__lights,n=a.fog;Ea=-1;Ma=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);
|
|
|
-ya.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);ta.setFromMatrix(ya);this.autoUpdateObjects&&this.initWebGLObjects(a);p(this.renderPluginsPre,a,b);L.info.render.calls=0;L.info.render.vertices=0;L.info.render.faces=0;L.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);h=a.__webglObjects;d=0;for(e=h.length;d<e;d++)if(f=h[d],g=f.object,f.id=d,f.render=!1,g.visible&&(!(g instanceof THREE.Mesh||g instanceof
|
|
|
+e.__webglLineCount),L.info.render.calls++):f instanceof THREE.ParticleSystem&&(k.drawArrays(k.POINTS,0,e.__webglParticleCount),L.info.render.calls++,L.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,g,h,i=a.__lights,n=a.fog;Ga=-1;Ma=!0;!0===a.autoUpdate&&a.updateMatrixWorld();void 0===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);
|
|
|
+Aa.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);ta.setFromMatrix(Aa);this.autoUpdateObjects&&this.initWebGLObjects(a);p(this.renderPluginsPre,a,b);L.info.render.calls=0;L.info.render.vertices=0;L.info.render.faces=0;L.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);h=a.__webglObjects;d=0;for(e=h.length;d<e;d++)if(f=h[d],g=f.object,f.id=d,f.render=!1,g.visible&&(!(g instanceof THREE.Mesh||g instanceof
|
|
|
THREE.ParticleSystem)||!g.frustumCulled||ta.intersectsObject(g))){var m=g;m._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,m.matrixWorld);m._normalMatrix.getNormalMatrix(m._modelViewMatrix);var m=f,q=m.buffer,r=void 0,t=r=void 0,t=m.object.material;if(t instanceof THREE.MeshFaceMaterial)r=q.materialIndex,r=t.materials[r],r.transparent?(m.transparent=r,m.opaque=null):(m.opaque=r,m.transparent=null);else if(r=t)r.transparent?(m.transparent=r,m.opaque=null):(m.opaque=r,m.transparent=null);f.render=
|
|
|
-!0;!0===this.sortObjects&&(null!==g.renderDepth?f.z=g.renderDepth:(pa.setFromMatrixPosition(g.matrixWorld),pa.applyProjection(ya),f.z=pa.z))}this.sortObjects&&h.sort(j);h=a.__webglObjectsImmediate;d=0;for(e=h.length;d<e;d++)f=h[d],g=f.object,g.visible&&(g._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,g.matrixWorld),g._normalMatrix.getNormalMatrix(g._modelViewMatrix),g=f.object.material,g.transparent?(f.transparent=g,f.opaque=null):(f.opaque=g,f.transparent=null));a.overrideMaterial?(d=a.overrideMaterial,
|
|
|
+!0;!0===this.sortObjects&&(null!==g.renderDepth?f.z=g.renderDepth:(pa.setFromMatrixPosition(g.matrixWorld),pa.applyProjection(Aa),f.z=pa.z))}this.sortObjects&&h.sort(j);h=a.__webglObjectsImmediate;d=0;for(e=h.length;d<e;d++)f=h[d],g=f.object,g.visible&&(g._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,g.matrixWorld),g._normalMatrix.getNormalMatrix(g._modelViewMatrix),g=f.object.material,g.transparent?(f.transparent=g,f.opaque=null):(f.opaque=g,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),l(a.__webglObjects,!1,"",b,i,n,!0,d),s(a.__webglObjectsImmediate,"",b,i,n,!1,d)):(d=null,this.setBlending(THREE.NoBlending),l(a.__webglObjects,!0,"opaque",b,i,n,!1,d),s(a.__webglObjectsImmediate,"opaque",b,i,n,!1,d),l(a.__webglObjects,!1,"transparent",b,i,n,!0,d),s(a.__webglObjectsImmediate,"transparent",b,
|
|
|
i,n,!0,d));p(this.renderPluginsPost,a,b);c&&(c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter)&&(c instanceof THREE.WebGLRenderTargetCube?(k.bindTexture(k.TEXTURE_CUBE_MAP,c.__webglTexture),k.generateMipmap(k.TEXTURE_CUBE_MAP),k.bindTexture(k.TEXTURE_CUBE_MAP,null)):(k.bindTexture(k.TEXTURE_2D,c.__webglTexture),k.generateMipmap(k.TEXTURE_2D),k.bindTexture(k.TEXTURE_2D,null)));this.setDepthTest(!0);this.setDepthWrite(!0)}};this.renderImmediateObject=function(a,
|
|
|
-b,c,d,e){var f=x(a,b,c,d,e);ca=-1;L.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,k,ta):e.render(function(a){L.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,g=
|
|
|
+b,c,d,e){var f=x(a,b,c,d,e);ua=-1;L.setMaterialFaces(d);e.immediateRenderCallback?e.immediateRenderCallback(f,k,ta):e.render(function(a){L.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,g=
|
|
|
a.__webglObjects.length;b<g;b++){var h=a.__webglObjects[b].object;void 0===h.__webglInit&&(void 0!==h.__webglActive&&r(h,a),t(h,a));var i=h,j=i.geometry,l=void 0,m=void 0,p=void 0;if(j instanceof THREE.BufferGeometry){var s=k.DYNAMIC_DRAW,v=!j.dynamic,w=j.attributes,z=void 0,D=void 0;for(z in w)D=w[z],D.needsUpdate&&("index"===z?(k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,D.buffer),k.bufferData(k.ELEMENT_ARRAY_BUFFER,D.array,s)):(k.bindBuffer(k.ARRAY_BUFFER,D.buffer),k.bufferData(k.ARRAY_BUFFER,D.array,
|
|
|
s)),D.needsUpdate=!1),v&&!D.dynamic&&(D.array=null)}else if(i instanceof THREE.Mesh){for(var A=0,y=j.geometryGroupsList.length;A<y;A++)if(l=j.geometryGroupsList[A],p=d(i,l),j.buffersNeedUpdate&&c(l,i),m=p.attributes&&q(p),j.verticesNeedUpdate||j.morphTargetsNeedUpdate||j.elementsNeedUpdate||j.uvsNeedUpdate||j.normalsNeedUpdate||j.colorsNeedUpdate||j.tangentsNeedUpdate||m){var x=l,C=i,G=k.DYNAMIC_DRAW,E=!j.dynamic,I=p;if(x.__inittedArrays){var F=e(I),L=I.vertexColors?I.vertexColors:!1,K=f(I),N=F===
|
|
|
-THREE.SmoothShading,B=void 0,H=void 0,P=void 0,O=void 0,R=void 0,ga=void 0,S=void 0,ca=void 0,U=void 0,da=void 0,Ga=void 0,X=void 0,Y=void 0,W=void 0,V=void 0,Z=void 0,aa=void 0,Ia=void 0,Fa=void 0,Ea=void 0,fa=void 0,za=void 0,ja=void 0,qa=void 0,ra=void 0,ma=void 0,oa=void 0,sa=void 0,ta=void 0,Ja=void 0,Aa=void 0,xa=void 0,Ha=void 0,Na=void 0,ia=void 0,La=void 0,ua=void 0,Ba=void 0,Ma=void 0,Xa=void 0,va=0,wa=0,Oa=0,Ua=0,Va=0,ib=0,Ya=0,Ka=0,eb=0,na=0,Ca=0,M=0,Wa=void 0,jb=x.__vertexArray,Za=x.__uvArray,
|
|
|
-db=x.__uv2Array,Ta=x.__normalArray,$a=x.__tangentArray,kb=x.__colorArray,ab=x.__skinIndexArray,bb=x.__skinWeightArray,hb=x.__morphTargetsArrays,xb=x.__morphNormalsArrays,tb=x.__webglCustomAttributesList,J=void 0,Ob=x.__faceArray,ub=x.__lineArray,Qa=C.geometry,Bb=Qa.elementsNeedUpdate,Ab=Qa.uvsNeedUpdate,Kb=Qa.normalsNeedUpdate,Lb=Qa.tangentsNeedUpdate,Mb=Qa.colorsNeedUpdate,Nb=Qa.morphTargetsNeedUpdate,cc=Qa.vertices,ba=x.faces3,lb=Qa.faces,Cb=Qa.faceVertexUvs[0],Db=Qa.faceVertexUvs[1],dc=Qa.skinIndices,
|
|
|
-Pb=Qa.skinWeights,Qb=Qa.morphTargets,Eb=Qa.morphNormals;if(Qa.verticesNeedUpdate){B=0;for(H=ba.length;B<H;B++)O=lb[ba[B]],X=cc[O.a],Y=cc[O.b],W=cc[O.c],jb[wa]=X.x,jb[wa+1]=X.y,jb[wa+2]=X.z,jb[wa+3]=Y.x,jb[wa+4]=Y.y,jb[wa+5]=Y.z,jb[wa+6]=W.x,jb[wa+7]=W.y,jb[wa+8]=W.z,wa+=9;k.bindBuffer(k.ARRAY_BUFFER,x.__webglVertexBuffer);k.bufferData(k.ARRAY_BUFFER,jb,G)}if(Nb){ia=0;for(La=Qb.length;ia<La;ia++){B=Ca=0;for(H=ba.length;B<H;B++)Ma=ba[B],O=lb[Ma],X=Qb[ia].vertices[O.a],Y=Qb[ia].vertices[O.b],W=Qb[ia].vertices[O.c],
|
|
|
-ua=hb[ia],ua[Ca]=X.x,ua[Ca+1]=X.y,ua[Ca+2]=X.z,ua[Ca+3]=Y.x,ua[Ca+4]=Y.y,ua[Ca+5]=Y.z,ua[Ca+6]=W.x,ua[Ca+7]=W.y,ua[Ca+8]=W.z,I.morphNormals&&(N?(Xa=Eb[ia].vertexNormals[Ma],Ia=Xa.a,Fa=Xa.b,Ea=Xa.c):Ea=Fa=Ia=Eb[ia].faceNormals[Ma],Ba=xb[ia],Ba[Ca]=Ia.x,Ba[Ca+1]=Ia.y,Ba[Ca+2]=Ia.z,Ba[Ca+3]=Fa.x,Ba[Ca+4]=Fa.y,Ba[Ca+5]=Fa.z,Ba[Ca+6]=Ea.x,Ba[Ca+7]=Ea.y,Ba[Ca+8]=Ea.z),Ca+=9;k.bindBuffer(k.ARRAY_BUFFER,x.__webglMorphTargetsBuffers[ia]);k.bufferData(k.ARRAY_BUFFER,hb[ia],G);I.morphNormals&&(k.bindBuffer(k.ARRAY_BUFFER,
|
|
|
-x.__webglMorphNormalsBuffers[ia]),k.bufferData(k.ARRAY_BUFFER,xb[ia],G))}}if(Pb.length){B=0;for(H=ba.length;B<H;B++)O=lb[ba[B]],qa=Pb[O.a],ra=Pb[O.b],ma=Pb[O.c],bb[na]=qa.x,bb[na+1]=qa.y,bb[na+2]=qa.z,bb[na+3]=qa.w,bb[na+4]=ra.x,bb[na+5]=ra.y,bb[na+6]=ra.z,bb[na+7]=ra.w,bb[na+8]=ma.x,bb[na+9]=ma.y,bb[na+10]=ma.z,bb[na+11]=ma.w,oa=dc[O.a],sa=dc[O.b],ta=dc[O.c],ab[na]=oa.x,ab[na+1]=oa.y,ab[na+2]=oa.z,ab[na+3]=oa.w,ab[na+4]=sa.x,ab[na+5]=sa.y,ab[na+6]=sa.z,ab[na+7]=sa.w,ab[na+8]=ta.x,ab[na+9]=ta.y,ab[na+
|
|
|
-10]=ta.z,ab[na+11]=ta.w,na+=12;0<na&&(k.bindBuffer(k.ARRAY_BUFFER,x.__webglSkinIndicesBuffer),k.bufferData(k.ARRAY_BUFFER,ab,G),k.bindBuffer(k.ARRAY_BUFFER,x.__webglSkinWeightsBuffer),k.bufferData(k.ARRAY_BUFFER,bb,G))}if(Mb&&L){B=0;for(H=ba.length;B<H;B++)O=lb[ba[B]],S=O.vertexColors,ca=O.color,3===S.length&&L===THREE.VertexColors?(fa=S[0],za=S[1],ja=S[2]):ja=za=fa=ca,kb[eb]=fa.r,kb[eb+1]=fa.g,kb[eb+2]=fa.b,kb[eb+3]=za.r,kb[eb+4]=za.g,kb[eb+5]=za.b,kb[eb+6]=ja.r,kb[eb+7]=ja.g,kb[eb+8]=ja.b,eb+=9;
|
|
|
-0<eb&&(k.bindBuffer(k.ARRAY_BUFFER,x.__webglColorBuffer),k.bufferData(k.ARRAY_BUFFER,kb,G))}if(Lb&&Qa.hasTangents){B=0;for(H=ba.length;B<H;B++)O=lb[ba[B]],U=O.vertexTangents,V=U[0],Z=U[1],aa=U[2],$a[Ya]=V.x,$a[Ya+1]=V.y,$a[Ya+2]=V.z,$a[Ya+3]=V.w,$a[Ya+4]=Z.x,$a[Ya+5]=Z.y,$a[Ya+6]=Z.z,$a[Ya+7]=Z.w,$a[Ya+8]=aa.x,$a[Ya+9]=aa.y,$a[Ya+10]=aa.z,$a[Ya+11]=aa.w,Ya+=12;k.bindBuffer(k.ARRAY_BUFFER,x.__webglTangentBuffer);k.bufferData(k.ARRAY_BUFFER,$a,G)}if(Kb&&F){B=0;for(H=ba.length;B<H;B++)if(O=lb[ba[B]],
|
|
|
-R=O.vertexNormals,ga=O.normal,3===R.length&&N)for(Ja=0;3>Ja;Ja++)xa=R[Ja],Ta[ib]=xa.x,Ta[ib+1]=xa.y,Ta[ib+2]=xa.z,ib+=3;else for(Ja=0;3>Ja;Ja++)Ta[ib]=ga.x,Ta[ib+1]=ga.y,Ta[ib+2]=ga.z,ib+=3;k.bindBuffer(k.ARRAY_BUFFER,x.__webglNormalBuffer);k.bufferData(k.ARRAY_BUFFER,Ta,G)}if(Ab&&Cb&&K){B=0;for(H=ba.length;B<H;B++)if(P=ba[B],da=Cb[P],void 0!==da)for(Ja=0;3>Ja;Ja++)Ha=da[Ja],Za[Oa]=Ha.x,Za[Oa+1]=Ha.y,Oa+=2;0<Oa&&(k.bindBuffer(k.ARRAY_BUFFER,x.__webglUVBuffer),k.bufferData(k.ARRAY_BUFFER,Za,G))}if(Ab&&
|
|
|
-Db&&K){B=0;for(H=ba.length;B<H;B++)if(P=ba[B],Ga=Db[P],void 0!==Ga)for(Ja=0;3>Ja;Ja++)Na=Ga[Ja],db[Ua]=Na.x,db[Ua+1]=Na.y,Ua+=2;0<Ua&&(k.bindBuffer(k.ARRAY_BUFFER,x.__webglUV2Buffer),k.bufferData(k.ARRAY_BUFFER,db,G))}if(Bb){B=0;for(H=ba.length;B<H;B++)Ob[Va]=va,Ob[Va+1]=va+1,Ob[Va+2]=va+2,Va+=3,ub[Ka]=va,ub[Ka+1]=va+1,ub[Ka+2]=va,ub[Ka+3]=va+2,ub[Ka+4]=va+1,ub[Ka+5]=va+2,Ka+=6,va+=3;k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,x.__webglFaceBuffer);k.bufferData(k.ELEMENT_ARRAY_BUFFER,Ob,G);k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,
|
|
|
-x.__webglLineBuffer);k.bufferData(k.ELEMENT_ARRAY_BUFFER,ub,G)}if(tb){Ja=0;for(Aa=tb.length;Ja<Aa;Ja++)if(J=tb[Ja],J.__original.needsUpdate){M=0;if(1===J.size)if(void 0===J.boundTo||"vertices"===J.boundTo){B=0;for(H=ba.length;B<H;B++)O=lb[ba[B]],J.array[M]=J.value[O.a],J.array[M+1]=J.value[O.b],J.array[M+2]=J.value[O.c],M+=3}else{if("faces"===J.boundTo){B=0;for(H=ba.length;B<H;B++)Wa=J.value[ba[B]],J.array[M]=Wa,J.array[M+1]=Wa,J.array[M+2]=Wa,M+=3}}else if(2===J.size)if(void 0===J.boundTo||"vertices"===
|
|
|
-J.boundTo){B=0;for(H=ba.length;B<H;B++)O=lb[ba[B]],X=J.value[O.a],Y=J.value[O.b],W=J.value[O.c],J.array[M]=X.x,J.array[M+1]=X.y,J.array[M+2]=Y.x,J.array[M+3]=Y.y,J.array[M+4]=W.x,J.array[M+5]=W.y,M+=6}else{if("faces"===J.boundTo){B=0;for(H=ba.length;B<H;B++)W=Y=X=Wa=J.value[ba[B]],J.array[M]=X.x,J.array[M+1]=X.y,J.array[M+2]=Y.x,J.array[M+3]=Y.y,J.array[M+4]=W.x,J.array[M+5]=W.y,M+=6}}else if(3===J.size){var la;la="c"===J.type?["r","g","b"]:["x","y","z"];if(void 0===J.boundTo||"vertices"===J.boundTo){B=
|
|
|
-0;for(H=ba.length;B<H;B++)O=lb[ba[B]],X=J.value[O.a],Y=J.value[O.b],W=J.value[O.c],J.array[M]=X[la[0]],J.array[M+1]=X[la[1]],J.array[M+2]=X[la[2]],J.array[M+3]=Y[la[0]],J.array[M+4]=Y[la[1]],J.array[M+5]=Y[la[2]],J.array[M+6]=W[la[0]],J.array[M+7]=W[la[1]],J.array[M+8]=W[la[2]],M+=9}else if("faces"===J.boundTo){B=0;for(H=ba.length;B<H;B++)W=Y=X=Wa=J.value[ba[B]],J.array[M]=X[la[0]],J.array[M+1]=X[la[1]],J.array[M+2]=X[la[2]],J.array[M+3]=Y[la[0]],J.array[M+4]=Y[la[1]],J.array[M+5]=Y[la[2]],J.array[M+
|
|
|
-6]=W[la[0]],J.array[M+7]=W[la[1]],J.array[M+8]=W[la[2]],M+=9}else if("faceVertices"===J.boundTo){B=0;for(H=ba.length;B<H;B++)Wa=J.value[ba[B]],X=Wa[0],Y=Wa[1],W=Wa[2],J.array[M]=X[la[0]],J.array[M+1]=X[la[1]],J.array[M+2]=X[la[2]],J.array[M+3]=Y[la[0]],J.array[M+4]=Y[la[1]],J.array[M+5]=Y[la[2]],J.array[M+6]=W[la[0]],J.array[M+7]=W[la[1]],J.array[M+8]=W[la[2]],M+=9}}else if(4===J.size)if(void 0===J.boundTo||"vertices"===J.boundTo){B=0;for(H=ba.length;B<H;B++)O=lb[ba[B]],X=J.value[O.a],Y=J.value[O.b],
|
|
|
-W=J.value[O.c],J.array[M]=X.x,J.array[M+1]=X.y,J.array[M+2]=X.z,J.array[M+3]=X.w,J.array[M+4]=Y.x,J.array[M+5]=Y.y,J.array[M+6]=Y.z,J.array[M+7]=Y.w,J.array[M+8]=W.x,J.array[M+9]=W.y,J.array[M+10]=W.z,J.array[M+11]=W.w,M+=12}else if("faces"===J.boundTo){B=0;for(H=ba.length;B<H;B++)W=Y=X=Wa=J.value[ba[B]],J.array[M]=X.x,J.array[M+1]=X.y,J.array[M+2]=X.z,J.array[M+3]=X.w,J.array[M+4]=Y.x,J.array[M+5]=Y.y,J.array[M+6]=Y.z,J.array[M+7]=Y.w,J.array[M+8]=W.x,J.array[M+9]=W.y,J.array[M+10]=W.z,J.array[M+
|
|
|
-11]=W.w,M+=12}else if("faceVertices"===J.boundTo){B=0;for(H=ba.length;B<H;B++)Wa=J.value[ba[B]],X=Wa[0],Y=Wa[1],W=Wa[2],J.array[M]=X.x,J.array[M+1]=X.y,J.array[M+2]=X.z,J.array[M+3]=X.w,J.array[M+4]=Y.x,J.array[M+5]=Y.y,J.array[M+6]=Y.z,J.array[M+7]=Y.w,J.array[M+8]=W.x,J.array[M+9]=W.y,J.array[M+10]=W.z,J.array[M+11]=W.w,M+=12}k.bindBuffer(k.ARRAY_BUFFER,J.buffer);k.bufferData(k.ARRAY_BUFFER,J.array,G)}}E&&(delete x.__inittedArrays,delete x.__colorArray,delete x.__normalArray,delete x.__tangentArray,
|
|
|
+THREE.SmoothShading,B=void 0,H=void 0,P=void 0,O=void 0,R=void 0,da=void 0,ea=void 0,aa=void 0,S=void 0,U=void 0,ua=void 0,W=void 0,X=void 0,V=void 0,Y=void 0,za=void 0,$=void 0,ba=void 0,Ia=void 0,Ga=void 0,ga=void 0,Ba=void 0,ja=void 0,qa=void 0,ra=void 0,ma=void 0,oa=void 0,sa=void 0,ta=void 0,Ja=void 0,Ca=void 0,ya=void 0,Ha=void 0,Na=void 0,ia=void 0,La=void 0,va=void 0,Da=void 0,Ma=void 0,Xa=void 0,wa=0,xa=0,Oa=0,Ua=0,Va=0,ib=0,Ya=0,Ka=0,eb=0,na=0,Ea=0,M=0,Wa=void 0,jb=x.__vertexArray,Za=x.__uvArray,
|
|
|
+db=x.__uv2Array,Ta=x.__normalArray,$a=x.__tangentArray,kb=x.__colorArray,ab=x.__skinIndexArray,bb=x.__skinWeightArray,hb=x.__morphTargetsArrays,xb=x.__morphNormalsArrays,tb=x.__webglCustomAttributesList,J=void 0,Ob=x.__faceArray,ub=x.__lineArray,Qa=C.geometry,Bb=Qa.elementsNeedUpdate,Ab=Qa.uvsNeedUpdate,Kb=Qa.normalsNeedUpdate,Lb=Qa.tangentsNeedUpdate,Mb=Qa.colorsNeedUpdate,Nb=Qa.morphTargetsNeedUpdate,cc=Qa.vertices,ca=x.faces3,lb=Qa.faces,Cb=Qa.faceVertexUvs[0],Db=Qa.faceVertexUvs[1],dc=Qa.skinIndices,
|
|
|
+Pb=Qa.skinWeights,Qb=Qa.morphTargets,Eb=Qa.morphNormals;if(Qa.verticesNeedUpdate){B=0;for(H=ca.length;B<H;B++)O=lb[ca[B]],W=cc[O.a],X=cc[O.b],V=cc[O.c],jb[xa]=W.x,jb[xa+1]=W.y,jb[xa+2]=W.z,jb[xa+3]=X.x,jb[xa+4]=X.y,jb[xa+5]=X.z,jb[xa+6]=V.x,jb[xa+7]=V.y,jb[xa+8]=V.z,xa+=9;k.bindBuffer(k.ARRAY_BUFFER,x.__webglVertexBuffer);k.bufferData(k.ARRAY_BUFFER,jb,G)}if(Nb){ia=0;for(La=Qb.length;ia<La;ia++){B=Ea=0;for(H=ca.length;B<H;B++)Ma=ca[B],O=lb[Ma],W=Qb[ia].vertices[O.a],X=Qb[ia].vertices[O.b],V=Qb[ia].vertices[O.c],
|
|
|
+va=hb[ia],va[Ea]=W.x,va[Ea+1]=W.y,va[Ea+2]=W.z,va[Ea+3]=X.x,va[Ea+4]=X.y,va[Ea+5]=X.z,va[Ea+6]=V.x,va[Ea+7]=V.y,va[Ea+8]=V.z,I.morphNormals&&(N?(Xa=Eb[ia].vertexNormals[Ma],ba=Xa.a,Ia=Xa.b,Ga=Xa.c):Ga=Ia=ba=Eb[ia].faceNormals[Ma],Da=xb[ia],Da[Ea]=ba.x,Da[Ea+1]=ba.y,Da[Ea+2]=ba.z,Da[Ea+3]=Ia.x,Da[Ea+4]=Ia.y,Da[Ea+5]=Ia.z,Da[Ea+6]=Ga.x,Da[Ea+7]=Ga.y,Da[Ea+8]=Ga.z),Ea+=9;k.bindBuffer(k.ARRAY_BUFFER,x.__webglMorphTargetsBuffers[ia]);k.bufferData(k.ARRAY_BUFFER,hb[ia],G);I.morphNormals&&(k.bindBuffer(k.ARRAY_BUFFER,
|
|
|
+x.__webglMorphNormalsBuffers[ia]),k.bufferData(k.ARRAY_BUFFER,xb[ia],G))}}if(Pb.length){B=0;for(H=ca.length;B<H;B++)O=lb[ca[B]],qa=Pb[O.a],ra=Pb[O.b],ma=Pb[O.c],bb[na]=qa.x,bb[na+1]=qa.y,bb[na+2]=qa.z,bb[na+3]=qa.w,bb[na+4]=ra.x,bb[na+5]=ra.y,bb[na+6]=ra.z,bb[na+7]=ra.w,bb[na+8]=ma.x,bb[na+9]=ma.y,bb[na+10]=ma.z,bb[na+11]=ma.w,oa=dc[O.a],sa=dc[O.b],ta=dc[O.c],ab[na]=oa.x,ab[na+1]=oa.y,ab[na+2]=oa.z,ab[na+3]=oa.w,ab[na+4]=sa.x,ab[na+5]=sa.y,ab[na+6]=sa.z,ab[na+7]=sa.w,ab[na+8]=ta.x,ab[na+9]=ta.y,ab[na+
|
|
|
+10]=ta.z,ab[na+11]=ta.w,na+=12;0<na&&(k.bindBuffer(k.ARRAY_BUFFER,x.__webglSkinIndicesBuffer),k.bufferData(k.ARRAY_BUFFER,ab,G),k.bindBuffer(k.ARRAY_BUFFER,x.__webglSkinWeightsBuffer),k.bufferData(k.ARRAY_BUFFER,bb,G))}if(Mb&&L){B=0;for(H=ca.length;B<H;B++)O=lb[ca[B]],ea=O.vertexColors,aa=O.color,3===ea.length&&L===THREE.VertexColors?(ga=ea[0],Ba=ea[1],ja=ea[2]):ja=Ba=ga=aa,kb[eb]=ga.r,kb[eb+1]=ga.g,kb[eb+2]=ga.b,kb[eb+3]=Ba.r,kb[eb+4]=Ba.g,kb[eb+5]=Ba.b,kb[eb+6]=ja.r,kb[eb+7]=ja.g,kb[eb+8]=ja.b,
|
|
|
+eb+=9;0<eb&&(k.bindBuffer(k.ARRAY_BUFFER,x.__webglColorBuffer),k.bufferData(k.ARRAY_BUFFER,kb,G))}if(Lb&&Qa.hasTangents){B=0;for(H=ca.length;B<H;B++)O=lb[ca[B]],S=O.vertexTangents,Y=S[0],za=S[1],$=S[2],$a[Ya]=Y.x,$a[Ya+1]=Y.y,$a[Ya+2]=Y.z,$a[Ya+3]=Y.w,$a[Ya+4]=za.x,$a[Ya+5]=za.y,$a[Ya+6]=za.z,$a[Ya+7]=za.w,$a[Ya+8]=$.x,$a[Ya+9]=$.y,$a[Ya+10]=$.z,$a[Ya+11]=$.w,Ya+=12;k.bindBuffer(k.ARRAY_BUFFER,x.__webglTangentBuffer);k.bufferData(k.ARRAY_BUFFER,$a,G)}if(Kb&&F){B=0;for(H=ca.length;B<H;B++)if(O=lb[ca[B]],
|
|
|
+R=O.vertexNormals,da=O.normal,3===R.length&&N)for(Ja=0;3>Ja;Ja++)ya=R[Ja],Ta[ib]=ya.x,Ta[ib+1]=ya.y,Ta[ib+2]=ya.z,ib+=3;else for(Ja=0;3>Ja;Ja++)Ta[ib]=da.x,Ta[ib+1]=da.y,Ta[ib+2]=da.z,ib+=3;k.bindBuffer(k.ARRAY_BUFFER,x.__webglNormalBuffer);k.bufferData(k.ARRAY_BUFFER,Ta,G)}if(Ab&&Cb&&K){B=0;for(H=ca.length;B<H;B++)if(P=ca[B],U=Cb[P],void 0!==U)for(Ja=0;3>Ja;Ja++)Ha=U[Ja],Za[Oa]=Ha.x,Za[Oa+1]=Ha.y,Oa+=2;0<Oa&&(k.bindBuffer(k.ARRAY_BUFFER,x.__webglUVBuffer),k.bufferData(k.ARRAY_BUFFER,Za,G))}if(Ab&&
|
|
|
+Db&&K){B=0;for(H=ca.length;B<H;B++)if(P=ca[B],ua=Db[P],void 0!==ua)for(Ja=0;3>Ja;Ja++)Na=ua[Ja],db[Ua]=Na.x,db[Ua+1]=Na.y,Ua+=2;0<Ua&&(k.bindBuffer(k.ARRAY_BUFFER,x.__webglUV2Buffer),k.bufferData(k.ARRAY_BUFFER,db,G))}if(Bb){B=0;for(H=ca.length;B<H;B++)Ob[Va]=wa,Ob[Va+1]=wa+1,Ob[Va+2]=wa+2,Va+=3,ub[Ka]=wa,ub[Ka+1]=wa+1,ub[Ka+2]=wa,ub[Ka+3]=wa+2,ub[Ka+4]=wa+1,ub[Ka+5]=wa+2,Ka+=6,wa+=3;k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,x.__webglFaceBuffer);k.bufferData(k.ELEMENT_ARRAY_BUFFER,Ob,G);k.bindBuffer(k.ELEMENT_ARRAY_BUFFER,
|
|
|
+x.__webglLineBuffer);k.bufferData(k.ELEMENT_ARRAY_BUFFER,ub,G)}if(tb){Ja=0;for(Ca=tb.length;Ja<Ca;Ja++)if(J=tb[Ja],J.__original.needsUpdate){M=0;if(1===J.size)if(void 0===J.boundTo||"vertices"===J.boundTo){B=0;for(H=ca.length;B<H;B++)O=lb[ca[B]],J.array[M]=J.value[O.a],J.array[M+1]=J.value[O.b],J.array[M+2]=J.value[O.c],M+=3}else{if("faces"===J.boundTo){B=0;for(H=ca.length;B<H;B++)Wa=J.value[ca[B]],J.array[M]=Wa,J.array[M+1]=Wa,J.array[M+2]=Wa,M+=3}}else if(2===J.size)if(void 0===J.boundTo||"vertices"===
|
|
|
+J.boundTo){B=0;for(H=ca.length;B<H;B++)O=lb[ca[B]],W=J.value[O.a],X=J.value[O.b],V=J.value[O.c],J.array[M]=W.x,J.array[M+1]=W.y,J.array[M+2]=X.x,J.array[M+3]=X.y,J.array[M+4]=V.x,J.array[M+5]=V.y,M+=6}else{if("faces"===J.boundTo){B=0;for(H=ca.length;B<H;B++)V=X=W=Wa=J.value[ca[B]],J.array[M]=W.x,J.array[M+1]=W.y,J.array[M+2]=X.x,J.array[M+3]=X.y,J.array[M+4]=V.x,J.array[M+5]=V.y,M+=6}}else if(3===J.size){var la;la="c"===J.type?["r","g","b"]:["x","y","z"];if(void 0===J.boundTo||"vertices"===J.boundTo){B=
|
|
|
+0;for(H=ca.length;B<H;B++)O=lb[ca[B]],W=J.value[O.a],X=J.value[O.b],V=J.value[O.c],J.array[M]=W[la[0]],J.array[M+1]=W[la[1]],J.array[M+2]=W[la[2]],J.array[M+3]=X[la[0]],J.array[M+4]=X[la[1]],J.array[M+5]=X[la[2]],J.array[M+6]=V[la[0]],J.array[M+7]=V[la[1]],J.array[M+8]=V[la[2]],M+=9}else if("faces"===J.boundTo){B=0;for(H=ca.length;B<H;B++)V=X=W=Wa=J.value[ca[B]],J.array[M]=W[la[0]],J.array[M+1]=W[la[1]],J.array[M+2]=W[la[2]],J.array[M+3]=X[la[0]],J.array[M+4]=X[la[1]],J.array[M+5]=X[la[2]],J.array[M+
|
|
|
+6]=V[la[0]],J.array[M+7]=V[la[1]],J.array[M+8]=V[la[2]],M+=9}else if("faceVertices"===J.boundTo){B=0;for(H=ca.length;B<H;B++)Wa=J.value[ca[B]],W=Wa[0],X=Wa[1],V=Wa[2],J.array[M]=W[la[0]],J.array[M+1]=W[la[1]],J.array[M+2]=W[la[2]],J.array[M+3]=X[la[0]],J.array[M+4]=X[la[1]],J.array[M+5]=X[la[2]],J.array[M+6]=V[la[0]],J.array[M+7]=V[la[1]],J.array[M+8]=V[la[2]],M+=9}}else if(4===J.size)if(void 0===J.boundTo||"vertices"===J.boundTo){B=0;for(H=ca.length;B<H;B++)O=lb[ca[B]],W=J.value[O.a],X=J.value[O.b],
|
|
|
+V=J.value[O.c],J.array[M]=W.x,J.array[M+1]=W.y,J.array[M+2]=W.z,J.array[M+3]=W.w,J.array[M+4]=X.x,J.array[M+5]=X.y,J.array[M+6]=X.z,J.array[M+7]=X.w,J.array[M+8]=V.x,J.array[M+9]=V.y,J.array[M+10]=V.z,J.array[M+11]=V.w,M+=12}else if("faces"===J.boundTo){B=0;for(H=ca.length;B<H;B++)V=X=W=Wa=J.value[ca[B]],J.array[M]=W.x,J.array[M+1]=W.y,J.array[M+2]=W.z,J.array[M+3]=W.w,J.array[M+4]=X.x,J.array[M+5]=X.y,J.array[M+6]=X.z,J.array[M+7]=X.w,J.array[M+8]=V.x,J.array[M+9]=V.y,J.array[M+10]=V.z,J.array[M+
|
|
|
+11]=V.w,M+=12}else if("faceVertices"===J.boundTo){B=0;for(H=ca.length;B<H;B++)Wa=J.value[ca[B]],W=Wa[0],X=Wa[1],V=Wa[2],J.array[M]=W.x,J.array[M+1]=W.y,J.array[M+2]=W.z,J.array[M+3]=W.w,J.array[M+4]=X.x,J.array[M+5]=X.y,J.array[M+6]=X.z,J.array[M+7]=X.w,J.array[M+8]=V.x,J.array[M+9]=V.y,J.array[M+10]=V.z,J.array[M+11]=V.w,M+=12}k.bindBuffer(k.ARRAY_BUFFER,J.buffer);k.bufferData(k.ARRAY_BUFFER,J.array,G)}}E&&(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)}}j.verticesNeedUpdate=!1;j.morphTargetsNeedUpdate=!1;j.elementsNeedUpdate=!1;j.uvsNeedUpdate=!1;j.normalsNeedUpdate=!1;j.colorsNeedUpdate=!1;j.tangentsNeedUpdate=!1;j.buffersNeedUpdate=!1;p.attributes&&u(p)}else if(i instanceof THREE.Line){p=d(i,j);m=p.attributes&&q(p);if(j.verticesNeedUpdate||j.colorsNeedUpdate||j.lineDistancesNeedUpdate||m){var cb=
|
|
|
-j,Rb=k.DYNAMIC_DRAW,Gb=void 0,Hb=void 0,Ib=void 0,Sb=void 0,ka=void 0,Tb=void 0,Fb=cb.vertices,ic=cb.colors,jc=cb.lineDistances,Yb=Fb.length,Zb=ic.length,$b=jc.length,Ub=cb.__vertexArray,Vb=cb.__colorArray,kc=cb.__lineDistanceArray,ac=cb.colorsNeedUpdate,bc=cb.lineDistancesNeedUpdate,ec=cb.__webglCustomAttributesList,Wb=void 0,lc=void 0,Da=void 0,yb=void 0,Ra=void 0,ha=void 0;if(cb.verticesNeedUpdate){for(Gb=0;Gb<Yb;Gb++)Sb=Fb[Gb],ka=3*Gb,Ub[ka]=Sb.x,Ub[ka+1]=Sb.y,Ub[ka+2]=Sb.z;k.bindBuffer(k.ARRAY_BUFFER,
|
|
|
+j,Rb=k.DYNAMIC_DRAW,Gb=void 0,Hb=void 0,Ib=void 0,Sb=void 0,ka=void 0,Tb=void 0,Fb=cb.vertices,ic=cb.colors,jc=cb.lineDistances,Yb=Fb.length,Zb=ic.length,$b=jc.length,Ub=cb.__vertexArray,Vb=cb.__colorArray,kc=cb.__lineDistanceArray,ac=cb.colorsNeedUpdate,bc=cb.lineDistancesNeedUpdate,ec=cb.__webglCustomAttributesList,Wb=void 0,lc=void 0,Fa=void 0,yb=void 0,Ra=void 0,ha=void 0;if(cb.verticesNeedUpdate){for(Gb=0;Gb<Yb;Gb++)Sb=Fb[Gb],ka=3*Gb,Ub[ka]=Sb.x,Ub[ka+1]=Sb.y,Ub[ka+2]=Sb.z;k.bindBuffer(k.ARRAY_BUFFER,
|
|
|
cb.__webglVertexBuffer);k.bufferData(k.ARRAY_BUFFER,Ub,Rb)}if(ac){for(Hb=0;Hb<Zb;Hb++)Tb=ic[Hb],ka=3*Hb,Vb[ka]=Tb.r,Vb[ka+1]=Tb.g,Vb[ka+2]=Tb.b;k.bindBuffer(k.ARRAY_BUFFER,cb.__webglColorBuffer);k.bufferData(k.ARRAY_BUFFER,Vb,Rb)}if(bc){for(Ib=0;Ib<$b;Ib++)kc[Ib]=jc[Ib];k.bindBuffer(k.ARRAY_BUFFER,cb.__webglLineDistanceBuffer);k.bufferData(k.ARRAY_BUFFER,kc,Rb)}if(ec){Wb=0;for(lc=ec.length;Wb<lc;Wb++)if(ha=ec[Wb],ha.needsUpdate&&(void 0===ha.boundTo||"vertices"===ha.boundTo)){ka=0;yb=ha.value.length;
|
|
|
-if(1===ha.size)for(Da=0;Da<yb;Da++)ha.array[Da]=ha.value[Da];else if(2===ha.size)for(Da=0;Da<yb;Da++)Ra=ha.value[Da],ha.array[ka]=Ra.x,ha.array[ka+1]=Ra.y,ka+=2;else if(3===ha.size)if("c"===ha.type)for(Da=0;Da<yb;Da++)Ra=ha.value[Da],ha.array[ka]=Ra.r,ha.array[ka+1]=Ra.g,ha.array[ka+2]=Ra.b,ka+=3;else for(Da=0;Da<yb;Da++)Ra=ha.value[Da],ha.array[ka]=Ra.x,ha.array[ka+1]=Ra.y,ha.array[ka+2]=Ra.z,ka+=3;else if(4===ha.size)for(Da=0;Da<yb;Da++)Ra=ha.value[Da],ha.array[ka]=Ra.x,ha.array[ka+1]=Ra.y,ha.array[ka+
|
|
|
+if(1===ha.size)for(Fa=0;Fa<yb;Fa++)ha.array[Fa]=ha.value[Fa];else if(2===ha.size)for(Fa=0;Fa<yb;Fa++)Ra=ha.value[Fa],ha.array[ka]=Ra.x,ha.array[ka+1]=Ra.y,ka+=2;else if(3===ha.size)if("c"===ha.type)for(Fa=0;Fa<yb;Fa++)Ra=ha.value[Fa],ha.array[ka]=Ra.r,ha.array[ka+1]=Ra.g,ha.array[ka+2]=Ra.b,ka+=3;else for(Fa=0;Fa<yb;Fa++)Ra=ha.value[Fa],ha.array[ka]=Ra.x,ha.array[ka+1]=Ra.y,ha.array[ka+2]=Ra.z,ka+=3;else if(4===ha.size)for(Fa=0;Fa<yb;Fa++)Ra=ha.value[Fa],ha.array[ka]=Ra.x,ha.array[ka+1]=Ra.y,ha.array[ka+
|
|
|
2]=Ra.z,ha.array[ka+3]=Ra.w,ka+=4;k.bindBuffer(k.ARRAY_BUFFER,ha.buffer);k.bufferData(k.ARRAY_BUFFER,ha.array,Rb)}}}j.verticesNeedUpdate=!1;j.colorsNeedUpdate=!1;j.lineDistancesNeedUpdate=!1;p.attributes&&u(p)}else if(i instanceof THREE.ParticleSystem){p=d(i,j);m=p.attributes&&q(p);if(j.verticesNeedUpdate||j.colorsNeedUpdate||i.sortParticles||m){var mb=j,fc=k.DYNAMIC_DRAW,Jb=i,Sa=void 0,nb=void 0,ob=void 0,T=void 0,pb=void 0,sb=void 0,Xb=mb.vertices,gc=Xb.length,hc=mb.colors,mc=hc.length,vb=mb.__vertexArray,
|
|
|
-wb=mb.__colorArray,qb=mb.__sortArray,nc=mb.verticesNeedUpdate,oc=mb.colorsNeedUpdate,rb=mb.__webglCustomAttributesList,fb=void 0,zb=void 0,$=void 0,gb=void 0,ea=void 0,Q=void 0;if(Jb.sortParticles){Pa.copy(ya);Pa.multiply(Jb.matrixWorld);for(Sa=0;Sa<gc;Sa++)ob=Xb[Sa],pa.copy(ob),pa.applyProjection(Pa),qb[Sa]=[pa.z,Sa];qb.sort(n);for(Sa=0;Sa<gc;Sa++)ob=Xb[qb[Sa][1]],T=3*Sa,vb[T]=ob.x,vb[T+1]=ob.y,vb[T+2]=ob.z;for(nb=0;nb<mc;nb++)T=3*nb,sb=hc[qb[nb][1]],wb[T]=sb.r,wb[T+1]=sb.g,wb[T+2]=sb.b;if(rb){fb=
|
|
|
-0;for(zb=rb.length;fb<zb;fb++)if(Q=rb[fb],void 0===Q.boundTo||"vertices"===Q.boundTo)if(T=0,gb=Q.value.length,1===Q.size)for($=0;$<gb;$++)pb=qb[$][1],Q.array[$]=Q.value[pb];else if(2===Q.size)for($=0;$<gb;$++)pb=qb[$][1],ea=Q.value[pb],Q.array[T]=ea.x,Q.array[T+1]=ea.y,T+=2;else if(3===Q.size)if("c"===Q.type)for($=0;$<gb;$++)pb=qb[$][1],ea=Q.value[pb],Q.array[T]=ea.r,Q.array[T+1]=ea.g,Q.array[T+2]=ea.b,T+=3;else for($=0;$<gb;$++)pb=qb[$][1],ea=Q.value[pb],Q.array[T]=ea.x,Q.array[T+1]=ea.y,Q.array[T+
|
|
|
-2]=ea.z,T+=3;else if(4===Q.size)for($=0;$<gb;$++)pb=qb[$][1],ea=Q.value[pb],Q.array[T]=ea.x,Q.array[T+1]=ea.y,Q.array[T+2]=ea.z,Q.array[T+3]=ea.w,T+=4}}else{if(nc)for(Sa=0;Sa<gc;Sa++)ob=Xb[Sa],T=3*Sa,vb[T]=ob.x,vb[T+1]=ob.y,vb[T+2]=ob.z;if(oc)for(nb=0;nb<mc;nb++)sb=hc[nb],T=3*nb,wb[T]=sb.r,wb[T+1]=sb.g,wb[T+2]=sb.b;if(rb){fb=0;for(zb=rb.length;fb<zb;fb++)if(Q=rb[fb],Q.needsUpdate&&(void 0===Q.boundTo||"vertices"===Q.boundTo))if(gb=Q.value.length,T=0,1===Q.size)for($=0;$<gb;$++)Q.array[$]=Q.value[$];
|
|
|
-else if(2===Q.size)for($=0;$<gb;$++)ea=Q.value[$],Q.array[T]=ea.x,Q.array[T+1]=ea.y,T+=2;else if(3===Q.size)if("c"===Q.type)for($=0;$<gb;$++)ea=Q.value[$],Q.array[T]=ea.r,Q.array[T+1]=ea.g,Q.array[T+2]=ea.b,T+=3;else for($=0;$<gb;$++)ea=Q.value[$],Q.array[T]=ea.x,Q.array[T+1]=ea.y,Q.array[T+2]=ea.z,T+=3;else if(4===Q.size)for($=0;$<gb;$++)ea=Q.value[$],Q.array[T]=ea.x,Q.array[T+1]=ea.y,Q.array[T+2]=ea.z,Q.array[T+3]=ea.w,T+=4}}if(nc||Jb.sortParticles)k.bindBuffer(k.ARRAY_BUFFER,mb.__webglVertexBuffer),
|
|
|
+wb=mb.__colorArray,qb=mb.__sortArray,nc=mb.verticesNeedUpdate,oc=mb.colorsNeedUpdate,rb=mb.__webglCustomAttributesList,fb=void 0,zb=void 0,Z=void 0,gb=void 0,fa=void 0,Q=void 0;if(Jb.sortParticles){Pa.copy(Aa);Pa.multiply(Jb.matrixWorld);for(Sa=0;Sa<gc;Sa++)ob=Xb[Sa],pa.copy(ob),pa.applyProjection(Pa),qb[Sa]=[pa.z,Sa];qb.sort(n);for(Sa=0;Sa<gc;Sa++)ob=Xb[qb[Sa][1]],T=3*Sa,vb[T]=ob.x,vb[T+1]=ob.y,vb[T+2]=ob.z;for(nb=0;nb<mc;nb++)T=3*nb,sb=hc[qb[nb][1]],wb[T]=sb.r,wb[T+1]=sb.g,wb[T+2]=sb.b;if(rb){fb=
|
|
|
+0;for(zb=rb.length;fb<zb;fb++)if(Q=rb[fb],void 0===Q.boundTo||"vertices"===Q.boundTo)if(T=0,gb=Q.value.length,1===Q.size)for(Z=0;Z<gb;Z++)pb=qb[Z][1],Q.array[Z]=Q.value[pb];else if(2===Q.size)for(Z=0;Z<gb;Z++)pb=qb[Z][1],fa=Q.value[pb],Q.array[T]=fa.x,Q.array[T+1]=fa.y,T+=2;else if(3===Q.size)if("c"===Q.type)for(Z=0;Z<gb;Z++)pb=qb[Z][1],fa=Q.value[pb],Q.array[T]=fa.r,Q.array[T+1]=fa.g,Q.array[T+2]=fa.b,T+=3;else for(Z=0;Z<gb;Z++)pb=qb[Z][1],fa=Q.value[pb],Q.array[T]=fa.x,Q.array[T+1]=fa.y,Q.array[T+
|
|
|
+2]=fa.z,T+=3;else if(4===Q.size)for(Z=0;Z<gb;Z++)pb=qb[Z][1],fa=Q.value[pb],Q.array[T]=fa.x,Q.array[T+1]=fa.y,Q.array[T+2]=fa.z,Q.array[T+3]=fa.w,T+=4}}else{if(nc)for(Sa=0;Sa<gc;Sa++)ob=Xb[Sa],T=3*Sa,vb[T]=ob.x,vb[T+1]=ob.y,vb[T+2]=ob.z;if(oc)for(nb=0;nb<mc;nb++)sb=hc[nb],T=3*nb,wb[T]=sb.r,wb[T+1]=sb.g,wb[T+2]=sb.b;if(rb){fb=0;for(zb=rb.length;fb<zb;fb++)if(Q=rb[fb],Q.needsUpdate&&(void 0===Q.boundTo||"vertices"===Q.boundTo))if(gb=Q.value.length,T=0,1===Q.size)for(Z=0;Z<gb;Z++)Q.array[Z]=Q.value[Z];
|
|
|
+else if(2===Q.size)for(Z=0;Z<gb;Z++)fa=Q.value[Z],Q.array[T]=fa.x,Q.array[T+1]=fa.y,T+=2;else if(3===Q.size)if("c"===Q.type)for(Z=0;Z<gb;Z++)fa=Q.value[Z],Q.array[T]=fa.r,Q.array[T+1]=fa.g,Q.array[T+2]=fa.b,T+=3;else for(Z=0;Z<gb;Z++)fa=Q.value[Z],Q.array[T]=fa.x,Q.array[T+1]=fa.y,Q.array[T+2]=fa.z,T+=3;else if(4===Q.size)for(Z=0;Z<gb;Z++)fa=Q.value[Z],Q.array[T]=fa.x,Q.array[T+1]=fa.y,Q.array[T+2]=fa.z,Q.array[T+3]=fa.w,T+=4}}if(nc||Jb.sortParticles)k.bindBuffer(k.ARRAY_BUFFER,mb.__webglVertexBuffer),
|
|
|
k.bufferData(k.ARRAY_BUFFER,vb,fc);if(oc||Jb.sortParticles)k.bindBuffer(k.ARRAY_BUFFER,mb.__webglColorBuffer),k.bufferData(k.ARRAY_BUFFER,wb,fc);if(rb){fb=0;for(zb=rb.length;fb<zb;fb++)if(Q=rb[fb],Q.needsUpdate||Jb.sortParticles)k.bindBuffer(k.ARRAY_BUFFER,Q.buffer),k.bufferData(k.ARRAY_BUFFER,Q.array,fc)}}j.verticesNeedUpdate=!1;j.colorsNeedUpdate=!1;p.attributes&&u(p)}}};this.initMaterial=function(a,b,c,d){var e,f,g,h;a.addEventListener("dispose",Fb);var i,j,l,n,p;a instanceof THREE.MeshDepthMaterial?
|
|
|
p="depth":a instanceof THREE.MeshNormalMaterial?p="normal":a instanceof THREE.MeshBasicMaterial?p="basic":a instanceof THREE.MeshLambertMaterial?p="lambert":a instanceof THREE.MeshPhongMaterial?p="phong":a instanceof THREE.LineBasicMaterial?p="basic":a instanceof THREE.LineDashedMaterial?p="dashed":a instanceof THREE.ParticleSystemMaterial&&(p="particle_basic");if(p){var m=THREE.ShaderLib[p];a.uniforms=THREE.UniformsUtils.clone(m.uniforms);a.vertexShader=m.vertexShader;a.fragmentShader=m.fragmentShader}var q=
|
|
|
e=0,r=0,s=m=0;for(f=b.length;s<f;s++)g=b[s],g.onlyShadow||(g instanceof THREE.DirectionalLight&&e++,g instanceof THREE.PointLight&&q++,g instanceof THREE.SpotLight&&r++,g instanceof THREE.HemisphereLight&&m++);f=q;g=r;h=m;r=m=0;for(q=b.length;r<q;r++)s=b[r],s.castShadow&&(s instanceof THREE.SpotLight&&m++,s instanceof THREE.DirectionalLight&&!s.shadowCascade&&m++);n=m;tb&&d&&d.useVertexTexture?l=1024:(b=k.getParameter(k.MAX_VERTEX_UNIFORM_VECTORS),b=Math.floor((b-20)/4),void 0!==d&&d instanceof THREE.SkinnedMesh&&
|
|
@@ -494,17 +494,17 @@ t=["precision "+R+" float;","precision "+R+" int;",c.bumpMap||c.normalMap?"#exte
|
|
|
c.fogExp?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.envMap?"#define USE_ENVMAP":"",c.lightMap?"#define USE_LIGHTMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.vertexColors?"#define USE_COLOR":"",c.metal?"#define METAL":"",c.wrapAround?"#define WRAP_AROUND":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+t:
|
|
|
"",c.shadowMapDebug?"#define SHADOWMAP_DEBUG":"",c.shadowMapCascade?"#define SHADOWMAP_CASCADE":"","uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\n"].join("\n");u=E("vertex",u+q);t=E("fragment",t+r);k.attachShader(v,u);k.attachShader(v,t);void 0!==d?k.bindAttribLocation(v,0,d):k.bindAttribLocation(v,0,"position");k.linkProgram(v);k.getProgramParameter(v,k.LINK_STATUS)||(console.error("Could not initialise shader\nVALIDATE_STATUS: "+k.getProgramParameter(v,k.VALIDATE_STATUS)+", gl error ["+
|
|
|
k.getError()+"]"),console.error("Program Info Log: "+k.getProgramInfoLog(v)));k.deleteShader(t);k.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 m)t.push(w);w=t;t=0;for(u=w.length;t<u;t++)m=w[t],v.uniforms[m]=k.getUniformLocation(v,m);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(j in b)t.push(j);j=t;w=0;for(b=j.length;w<b;w++)t=j[w],v.attributes[t]=k.getAttribLocation(v,t);v.id=ga++;O.push({program:v,code:p,usedTimes:1});L.info.memory.programs=O.length;j=v}a.program=j;w=a.program.attributes;if(a.morphTargets){a.numSupportedMorphTargets=0;b="morphTarget";for(j=0;j<this.maxMorphTargets;j++)v=b+j,0<=w[v]&&a.numSupportedMorphTargets++}if(a.morphNormals){a.numSupportedMorphNormals=
|
|
|
+for(w=0;w<c.maxMorphTargets;w++)t.push("morphTarget"+w);for(w=0;w<c.maxMorphNormals;w++)t.push("morphNormal"+w);for(j in b)t.push(j);j=t;w=0;for(b=j.length;w<b;w++)t=j[w],v.attributes[t]=k.getAttribLocation(v,t);v.id=ea++;O.push({program:v,code:p,usedTimes:1});L.info.memory.programs=O.length;j=v}a.program=j;w=a.program.attributes;if(a.morphTargets){a.numSupportedMorphTargets=0;b="morphTarget";for(j=0;j<this.maxMorphTargets;j++)v=b+j,0<=w[v]&&a.numSupportedMorphTargets++}if(a.morphNormals){a.numSupportedMorphNormals=
|
|
|
0;b="morphNormal";for(j=0;j<this.maxMorphNormals;j++)v=b+j,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?k.disable(k.CULL_FACE):(b===THREE.FrontFaceDirectionCW?k.frontFace(k.CW):k.frontFace(k.CCW),a===THREE.CullFaceBack?k.cullFace(k.BACK):a===THREE.CullFaceFront?k.cullFace(k.FRONT):k.cullFace(k.FRONT_AND_BACK),k.enable(k.CULL_FACE))};this.setMaterialFaces=function(a){var b=
|
|
|
a.side===THREE.DoubleSide,a=a.side===THREE.BackSide;qa!==b&&(b?k.disable(k.CULL_FACE):k.enable(k.CULL_FACE),qa=b);ra!==a&&(a?k.frontFace(k.CW):k.frontFace(k.CCW),ra=a)};this.setDepthTest=function(a){Ua!==a&&(a?k.enable(k.DEPTH_TEST):k.disable(k.DEPTH_TEST),Ua=a)};this.setDepthWrite=function(a){Oa!==a&&(k.depthMask(a),Oa=a)};this.setBlending=function(a,b,c,d){a!==Na&&(a===THREE.NoBlending?k.disable(k.BLEND):a===THREE.AdditiveBlending?(k.enable(k.BLEND),k.blendEquation(k.FUNC_ADD),k.blendFunc(k.SRC_ALPHA,
|
|
|
-k.ONE)):a===THREE.SubtractiveBlending?(k.enable(k.BLEND),k.blendEquation(k.FUNC_ADD),k.blendFunc(k.ZERO,k.ONE_MINUS_SRC_COLOR)):a===THREE.MultiplyBlending?(k.enable(k.BLEND),k.blendEquation(k.FUNC_ADD),k.blendFunc(k.ZERO,k.SRC_COLOR)):a===THREE.CustomBlending?k.enable(k.BLEND):(k.enable(k.BLEND),k.blendEquationSeparate(k.FUNC_ADD,k.FUNC_ADD),k.blendFuncSeparate(k.SRC_ALPHA,k.ONE_MINUS_SRC_ALPHA,k.ONE,k.ONE_MINUS_SRC_ALPHA)),Na=a);if(a===THREE.CustomBlending){if(b!==Ba&&(k.blendEquation(y(b)),Ba=b),
|
|
|
-c!==Xa||d!==Ta)k.blendFunc(y(c),y(d)),Xa=c,Ta=d}else Ta=Xa=Ba=null};this.setTexture=function(a,b){if(a.needsUpdate){a.__webglInit||(a.__webglInit=!0,a.addEventListener("dispose",Bb),a.__webglTexture=k.createTexture(),L.info.memory.textures++);k.activeTexture(k.TEXTURE0+b);k.bindTexture(k.TEXTURE_2D,a.__webglTexture);k.pixelStorei(k.UNPACK_FLIP_Y_WEBGL,a.flipY);k.pixelStorei(k.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);k.pixelStorei(k.UNPACK_ALIGNMENT,a.unpackAlignment);var c=a.image,d=THREE.Math.isPowerOfTwo(c.width)&&
|
|
|
+k.ONE)):a===THREE.SubtractiveBlending?(k.enable(k.BLEND),k.blendEquation(k.FUNC_ADD),k.blendFunc(k.ZERO,k.ONE_MINUS_SRC_COLOR)):a===THREE.MultiplyBlending?(k.enable(k.BLEND),k.blendEquation(k.FUNC_ADD),k.blendFunc(k.ZERO,k.SRC_COLOR)):a===THREE.CustomBlending?k.enable(k.BLEND):(k.enable(k.BLEND),k.blendEquationSeparate(k.FUNC_ADD,k.FUNC_ADD),k.blendFuncSeparate(k.SRC_ALPHA,k.ONE_MINUS_SRC_ALPHA,k.ONE,k.ONE_MINUS_SRC_ALPHA)),Na=a);if(a===THREE.CustomBlending){if(b!==Da&&(k.blendEquation(y(b)),Da=b),
|
|
|
+c!==Xa||d!==Ta)k.blendFunc(y(c),y(d)),Xa=c,Ta=d}else Ta=Xa=Da=null};this.setTexture=function(a,b){if(a.needsUpdate){a.__webglInit||(a.__webglInit=!0,a.addEventListener("dispose",Bb),a.__webglTexture=k.createTexture(),L.info.memory.textures++);k.activeTexture(k.TEXTURE0+b);k.bindTexture(k.TEXTURE_2D,a.__webglTexture);k.pixelStorei(k.UNPACK_FLIP_Y_WEBGL,a.flipY);k.pixelStorei(k.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);k.pixelStorei(k.UNPACK_ALIGNMENT,a.unpackAlignment);var c=a.image,d=THREE.Math.isPowerOfTwo(c.width)&&
|
|
|
THREE.Math.isPowerOfTwo(c.height),e=y(a.format),f=y(a.type);C(k.TEXTURE_2D,a,d);var g=a.mipmaps;if(a instanceof THREE.DataTexture)if(0<g.length&&d){for(var h=0,i=g.length;h<i;h++)c=g[h],k.texImage2D(k.TEXTURE_2D,h,e,c.width,c.height,0,e,f,c.data);a.generateMipmaps=!1}else k.texImage2D(k.TEXTURE_2D,0,e,c.width,c.height,0,e,f,c.data);else if(a instanceof THREE.CompressedTexture){h=0;for(i=g.length;h<i;h++)c=g[h],a.format!==THREE.RGBAFormat?k.compressedTexImage2D(k.TEXTURE_2D,h,e,c.width,c.height,0,
|
|
|
c.data):k.texImage2D(k.TEXTURE_2D,h,e,c.width,c.height,0,e,f,c.data)}else if(0<g.length&&d){h=0;for(i=g.length;h<i;h++)c=g[h],k.texImage2D(k.TEXTURE_2D,h,e,e,f,c);a.generateMipmaps=!1}else k.texImage2D(k.TEXTURE_2D,0,e,e,f,a.image);a.generateMipmaps&&d&&k.generateMipmap(k.TEXTURE_2D);a.needsUpdate=!1;if(a.onUpdate)a.onUpdate()}else k.activeTexture(k.TEXTURE0+b),k.bindTexture(k.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",Cb);a.__webglTexture=k.createTexture();L.info.memory.textures++;var c=THREE.Math.isPowerOfTwo(a.width)&&THREE.Math.isPowerOfTwo(a.height),d=y(a.format),e=y(a.type);if(b){a.__webglFramebuffer=[];a.__webglRenderbuffer=[];k.bindTexture(k.TEXTURE_CUBE_MAP,a.__webglTexture);C(k.TEXTURE_CUBE_MAP,a,c);for(var f=0;6>f;f++){a.__webglFramebuffer[f]=k.createFramebuffer();a.__webglRenderbuffer[f]=k.createRenderbuffer();
|
|
|
k.texImage2D(k.TEXTURE_CUBE_MAP_POSITIVE_X+f,0,d,a.width,a.height,0,d,e,null);var g=a,h=k.TEXTURE_CUBE_MAP_POSITIVE_X+f;k.bindFramebuffer(k.FRAMEBUFFER,a.__webglFramebuffer[f]);k.framebufferTexture2D(k.FRAMEBUFFER,k.COLOR_ATTACHMENT0,h,g.__webglTexture,0);A(a.__webglRenderbuffer[f],a)}c&&k.generateMipmap(k.TEXTURE_CUBE_MAP)}else a.__webglFramebuffer=k.createFramebuffer(),a.__webglRenderbuffer=a.shareDepthFrom?a.shareDepthFrom.__webglRenderbuffer:k.createRenderbuffer(),k.bindTexture(k.TEXTURE_2D,a.__webglTexture),
|
|
|
C(k.TEXTURE_2D,a,c),k.texImage2D(k.TEXTURE_2D,0,d,a.width,a.height,0,d,e,null),d=k.TEXTURE_2D,k.bindFramebuffer(k.FRAMEBUFFER,a.__webglFramebuffer),k.framebufferTexture2D(k.FRAMEBUFFER,k.COLOR_ATTACHMENT0,d,a.__webglTexture,0),a.shareDepthFrom?a.depthBuffer&&!a.stencilBuffer?k.framebufferRenderbuffer(k.FRAMEBUFFER,k.DEPTH_ATTACHMENT,k.RENDERBUFFER,a.__webglRenderbuffer):a.depthBuffer&&a.stencilBuffer&&k.framebufferRenderbuffer(k.FRAMEBUFFER,k.DEPTH_STENCIL_ATTACHMENT,k.RENDERBUFFER,a.__webglRenderbuffer):
|
|
|
-A(a.__webglRenderbuffer,a),c&&k.generateMipmap(k.TEXTURE_2D);b?k.bindTexture(k.TEXTURE_CUBE_MAP,null):k.bindTexture(k.TEXTURE_2D,null);k.bindRenderbuffer(k.RENDERBUFFER,null);k.bindFramebuffer(k.FRAMEBUFFER,null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=La,a=va,d=oa,e=Ha);b!==da&&(k.bindFramebuffer(k.FRAMEBUFFER,b),k.viewport(d,e,c,a),da=b);Ka=c;ua=a};this.shadowMapPlugin=new THREE.ShadowMapPlugin;this.addPrePlugin(this.shadowMapPlugin);
|
|
|
+A(a.__webglRenderbuffer,a),c&&k.generateMipmap(k.TEXTURE_2D);b?k.bindTexture(k.TEXTURE_CUBE_MAP,null):k.bindTexture(k.TEXTURE_2D,null);k.bindRenderbuffer(k.RENDERBUFFER,null);k.bindFramebuffer(k.FRAMEBUFFER,null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=La,a=wa,d=oa,e=Ha);b!==da&&(k.bindFramebuffer(k.FRAMEBUFFER,b),k.viewport(d,e,c,a),da=b);Ka=c;va=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;
|
|
@@ -607,14 +607,14 @@ e+1,0,[c.clone(),c.clone(),c.clone()])),this.faceVertexUvs[0].push([f[e].clone()
|
|
|
1-s))}j.push(p);n.push(l)}c=(b-a)/c;for(h=0;h<d;h++){0!==a?(p=this.vertices[j[0][h]].clone(),l=this.vertices[j[0][h+1]].clone()):(p=this.vertices[j[1][h]].clone(),l=this.vertices[j[1][h+1]].clone());p.setY(Math.sqrt(p.x*p.x+p.z*p.z)*c).normalize();l.setY(Math.sqrt(l.x*l.x+l.z*l.z)*c).normalize();for(i=0;i<e;i++){var s=j[i][h],t=j[i+1][h],m=j[i+1][h+1],q=j[i][h+1],u=p.clone(),r=p.clone(),v=l.clone(),w=l.clone(),x=n[i][h].clone(),K=n[i+1][h].clone(),D=n[i+1][h+1].clone(),I=n[i][h+1].clone();this.faces.push(new THREE.Face3(s,
|
|
|
t,q,[u,r,w]));this.faceVertexUvs[0].push([x,K,I]);this.faces.push(new THREE.Face3(t,m,q,[r.clone(),v,w.clone()]));this.faceVertexUvs[0].push([K.clone(),D,I.clone()])}}if(!1===f&&0<a){this.vertices.push(new THREE.Vector3(0,g,0));for(h=0;h<d;h++)s=j[0][h],t=j[0][h+1],m=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),x=n[0][h].clone(),K=n[0][h+1].clone(),D=new THREE.Vector2(K.x,0),this.faces.push(new THREE.Face3(s,t,m,[u,r,v])),this.faceVertexUvs[0].push([x,
|
|
|
K,D])}if(!1===f&&0<b){this.vertices.push(new THREE.Vector3(0,-g,0));for(h=0;h<d;h++)s=j[i][h+1],t=j[i][h],m=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),x=n[i][h+1].clone(),K=n[i][h].clone(),D=new THREE.Vector2(K.x,1),this.faces.push(new THREE.Face3(s,t,m,[u,r,v])),this.faceVertexUvs[0].push([x,K,D])}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=1,d=a.x-b.x,e=a.y-b.y,f=c.x-a.x,g=c.y-a.y,h=d*d+e*e;if(1E-10<Math.abs(d*g-e*f)){var i=Math.sqrt(h),j=Math.sqrt(f*f+g*g),h=b.x-e/i,b=b.y+d/i,f=((c.x-g/j-h)*g-(c.y+f/j-b)*f)/(d*g-e*f),c=h+d*f-a.x,a=b+e*f-a.y,d=c*c+a*a;if(2>=d)return new THREE.Vector2(c,a);d=Math.sqrt(d/2)}else 0!=d&&Math.sign(d)!=Math.sign(f)||0==d&&Math.sign(e)!=Math.sign(g)?
|
|
|
-(c=d,a=e,d=Math.sqrt(h/2)):(c=-e,a=d,d=Math.sqrt(h));return new THREE.Vector2(c/d,a/d)}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*n,g=0;g<h;g++){var i=R*g,j=R*(g+1),l=d+e+i,i=d+f+i,m=d+f+j,j=d+e+j,p=c,q=g,t=h,u=e,w=f,l=l+E,i=i+E,m=m+E,j=j+E;N.faces.push(new THREE.Face3(l,i,j,null,null,r));N.faces.push(new THREE.Face3(i,m,j,null,null,r));l=v.generateSideWallUV(N,a,p,b,l,i,m,j,q,t,u,w);N.faceVertexUvs[0].push([l[0],l[1],l[3]]);N.faceVertexUvs[0].push([l[1],
|
|
|
+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.Math.sign,e=1,e=a.x-b.x,f=a.y-b.y,g=c.x-a.x,h=c.y-a.y,i=e*e+f*f;if(1E-10<Math.abs(e*h-f*g)){var j=Math.sqrt(i),d=Math.sqrt(g*g+h*h),i=b.x-f/j,b=b.y+e/j,g=((c.x-h/d-i)*h-(c.y+g/d-b)*g)/(e*h-f*g),c=i+e*g-a.x,a=b+f*g-a.y,e=c*c+a*a;if(2>=e)return new THREE.Vector2(c,a);e=Math.sqrt(e/2)}else 0!=e&&d(e)!=d(g)||0==e&&d(f)!=d(h)?(c=e,a=f,e=
|
|
|
+Math.sqrt(i/2)):(c=-f,a=e,e=Math.sqrt(i));return new THREE.Vector2(c/e,a/e)}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*n,g=0;g<h;g++){var i=R*g,j=R*(g+1),l=d+e+i,i=d+f+i,m=d+f+j,j=d+e+j,p=c,q=g,t=h,u=e,w=f,l=l+E,i=i+E,m=m+E,j=j+E;N.faces.push(new THREE.Face3(l,i,j,null,null,r));N.faces.push(new THREE.Face3(i,m,j,null,null,r));l=v.generateSideWallUV(N,a,p,b,l,i,m,j,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 g(c,d,e,f){c+=E;d+=E;e+=E;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 h=void 0!==b.amount?b.amount:100,i=void 0!==b.bevelThickness?b.bevelThickness:6,j=void 0!==b.bevelSize?b.bevelSize:i-2,n=void 0!==b.bevelSegments?b.bevelSegments:3,p=void 0!==b.bevelEnabled?b.bevelEnabled:!0,l=void 0!==b.curveSegments?b.curveSegments:
|
|
|
12,s=void 0!==b.steps?b.steps:1,t=b.extrudePath,m,q=!1,u=b.material,r=b.extrudeMaterial,v=void 0!==b.UVGenerator?b.UVGenerator:THREE.ExtrudeGeometry.WorldUVGenerator,w,x,K,D;t&&(m=t.getSpacedPoints(s),q=!0,p=!1,w=void 0!==b.frames?b.frames:new THREE.TubeGeometry.FrenetFrames(t,s,!1),x=new THREE.Vector3,K=new THREE.Vector3,D=new THREE.Vector3);p||(j=i=n=0);var I,z,G,N=this,E=this.vertices.length,l=a.extractPoints(l),C=l.shape,l=l.holes;if(t=!THREE.Shape.Utils.isClockWise(C)){C=C.reverse();z=0;for(G=
|
|
|
-l.length;z<G;z++)I=l[z],THREE.Shape.Utils.isClockWise(I)&&(l[z]=I.reverse());t=!1}var A=THREE.Shape.Utils.triangulateShape(C,l),t=C;z=0;for(G=l.length;z<G;z++)I=l[z],C=C.concat(I);var F,y,P,B,R=C.length,aa=A.length,Aa=[],H=0,V=t.length;F=V-1;for(y=H+1;H<V;H++,F++,y++)F===V&&(F=0),y===V&&(y=0),Aa[H]=d(t[H],t[F],t[y]);var ia=[],fa,U=Aa.concat();z=0;for(G=l.length;z<G;z++){I=l[z];fa=[];H=0;V=I.length;F=V-1;for(y=H+1;H<V;H++,F++,y++)F===V&&(F=0),y===V&&(y=0),fa[H]=d(I[H],I[F],I[y]);ia.push(fa);U=U.concat(fa)}for(F=
|
|
|
-0;F<n;F++){I=F/n;P=i*(1-I);y=j*Math.sin(I*Math.PI/2);H=0;for(V=t.length;H<V;H++)B=c(t[H],Aa[H],y),f(B.x,B.y,-P);z=0;for(G=l.length;z<G;z++){I=l[z];fa=ia[z];H=0;for(V=I.length;H<V;H++)B=c(I[H],fa[H],y),f(B.x,B.y,-P)}}y=j;for(H=0;H<R;H++)B=p?c(C[H],U[H],y):C[H],q?(K.copy(w.normals[0]).multiplyScalar(B.x),x.copy(w.binormals[0]).multiplyScalar(B.y),D.copy(m[0]).add(K).add(x),f(D.x,D.y,D.z)):f(B.x,B.y,0);for(I=1;I<=s;I++)for(H=0;H<R;H++)B=p?c(C[H],U[H],y):C[H],q?(K.copy(w.normals[I]).multiplyScalar(B.x),
|
|
|
-x.copy(w.binormals[I]).multiplyScalar(B.y),D.copy(m[I]).add(K).add(x),f(D.x,D.y,D.z)):f(B.x,B.y,h/s*I);for(F=n-1;0<=F;F--){I=F/n;P=i*(1-I);y=j*Math.sin(I*Math.PI/2);H=0;for(V=t.length;H<V;H++)B=c(t[H],Aa[H],y),f(B.x,B.y,h+P);z=0;for(G=l.length;z<G;z++){I=l[z];fa=ia[z];H=0;for(V=I.length;H<V;H++)B=c(I[H],fa[H],y),q?f(B.x,B.y+m[s-1].y,m[s-1].x+P):f(B.x,B.y,h+P)}}if(p){i=0*R;for(H=0;H<aa;H++)h=A[H],g(h[2]+i,h[1]+i,h[0]+i,!0);i=R*(s+2*n);for(H=0;H<aa;H++)h=A[H],g(h[0]+i,h[1]+i,h[2]+i,!1)}else{for(H=0;H<
|
|
|
-aa;H++)h=A[H],g(h[2],h[1],h[0],!0);for(H=0;H<aa;H++)h=A[H],g(h[0]+R*s,h[1]+R*s,h[2]+R*s,!1)}h=0;e(t,h);h+=t.length;z=0;for(G=l.length;z<G;z++)I=l[z],e(I,h),h+=I.length};
|
|
|
+l.length;z<G;z++)I=l[z],THREE.Shape.Utils.isClockWise(I)&&(l[z]=I.reverse());t=!1}var A=THREE.Shape.Utils.triangulateShape(C,l),t=C;z=0;for(G=l.length;z<G;z++)I=l[z],C=C.concat(I);var F,y,P,B,R=C.length,ba=A.length,Ca=[],H=0,S=t.length;F=S-1;for(y=H+1;H<S;H++,F++,y++)F===S&&(F=0),y===S&&(y=0),Ca[H]=d(t[H],t[F],t[y]);var ia=[],ga,U=Ca.concat();z=0;for(G=l.length;z<G;z++){I=l[z];ga=[];H=0;S=I.length;F=S-1;for(y=H+1;H<S;H++,F++,y++)F===S&&(F=0),y===S&&(y=0),ga[H]=d(I[H],I[F],I[y]);ia.push(ga);U=U.concat(ga)}for(F=
|
|
|
+0;F<n;F++){I=F/n;P=i*(1-I);y=j*Math.sin(I*Math.PI/2);H=0;for(S=t.length;H<S;H++)B=c(t[H],Ca[H],y),f(B.x,B.y,-P);z=0;for(G=l.length;z<G;z++){I=l[z];ga=ia[z];H=0;for(S=I.length;H<S;H++)B=c(I[H],ga[H],y),f(B.x,B.y,-P)}}y=j;for(H=0;H<R;H++)B=p?c(C[H],U[H],y):C[H],q?(K.copy(w.normals[0]).multiplyScalar(B.x),x.copy(w.binormals[0]).multiplyScalar(B.y),D.copy(m[0]).add(K).add(x),f(D.x,D.y,D.z)):f(B.x,B.y,0);for(I=1;I<=s;I++)for(H=0;H<R;H++)B=p?c(C[H],U[H],y):C[H],q?(K.copy(w.normals[I]).multiplyScalar(B.x),
|
|
|
+x.copy(w.binormals[I]).multiplyScalar(B.y),D.copy(m[I]).add(K).add(x),f(D.x,D.y,D.z)):f(B.x,B.y,h/s*I);for(F=n-1;0<=F;F--){I=F/n;P=i*(1-I);y=j*Math.sin(I*Math.PI/2);H=0;for(S=t.length;H<S;H++)B=c(t[H],Ca[H],y),f(B.x,B.y,h+P);z=0;for(G=l.length;z<G;z++){I=l[z];ga=ia[z];H=0;for(S=I.length;H<S;H++)B=c(I[H],ga[H],y),q?f(B.x,B.y+m[s-1].y,m[s-1].x+P):f(B.x,B.y,h+P)}}if(p){i=0*R;for(H=0;H<ba;H++)h=A[H],g(h[2]+i,h[1]+i,h[0]+i,!0);i=R*(s+2*n);for(H=0;H<ba;H++)h=A[H],g(h[0]+i,h[1]+i,h[2]+i,!1)}else{for(H=0;H<
|
|
|
+ba;H++)h=A[H],g(h[2],h[1],h[0],!0);for(H=0;H<ba;H++)h=A[H],g(h[0]+R*s,h[1]+R*s,h[2]+R*s,!1)}h=0;e(t,h);h+=t.length;z=0;for(G=l.length;z<G;z++)I=l[z],e(I,h),h+=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,g,h){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,j=a.vertices[g].x,
|
|
|
n=a.vertices[g].y,g=a.vertices[g].z,p=a.vertices[h].x,l=a.vertices[h].y,a=a.vertices[h].z;return 0.01>Math.abs(c-i)?[new THREE.Vector2(b,1-e),new THREE.Vector2(d,1-f),new THREE.Vector2(j,1-g),new THREE.Vector2(p,1-a)]:[new THREE.Vector2(c,1-e),new THREE.Vector2(i,1-f),new THREE.Vector2(n,1-g),new THREE.Vector2(l,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};
|