c.y;g[2]=a.z;g[6]=b.z;g[10]=c.z;returnthis}}(),multiply:function(a,b){returnvoid0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},multiplyMatrices:function(a,b){varc=a.elements,d=b.elements,e=this.elements,f=c[0],g=c[4],h=c[8],l=c[12],k=c[1],m=c[5],p=c[9],n=c[13],q=c[2],r=c[6],u=c[10],w=c[14],t=c[3],v=c[7],F=c[11],c=c[15],x=d[0],A=d[4],z=d[8],B=d[12],y=d[1],H=d[5],D=
c.y;g[2]=a.z;g[6]=b.z;g[10]=c.z;returnthis}}(),multiply:function(a,b){returnvoid0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},multiplyMatrices:function(a,b){varc=a.elements,d=b.elements,e=this.elements,f=c[0],g=c[4],h=c[8],l=c[12],k=c[1],m=c[5],p=c[9],n=c[13],q=c[2],r=c[6],u=c[10],w=c[14],t=c[3],v=c[7],F=c[11],c=c[15],x=d[0],A=d[4],z=d[8],B=d[12],y=d[1],H=d[5],C=
THREE.Mesh.prototype.getMorphTargetIndexByName=function(a){if(void0!==this.morphTargetDictionary[a])returnthis.morphTargetDictionary[a];console.warn("THREE.Mesh.getMorphTargetIndexByName: morph target "+a+" does not exist. Returning 0.");return0};
this.boneMatrices=newFloat32Array(16*this.bones.length);if(void0===b)this.calculateInverses();elseif(this.bones.length===b.length)this.boneInverses=b.slice(0);elsefor(console.warn("THREE.Skeleton bonInverses is the wrong length."),this.boneInverses=[],b=0,a=this.bones.length;b<a;b++)this.boneInverses.push(newTHREE.Matrix4)};
console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+ba.maxTextures);ra+=1;returna}functionv(a,b,c){c?(s.texParameteri(a,s.TEXTURE_WRAP_S,D(b.wrapS)),s.texParameteri(a,s.TEXTURE_WRAP_T,D(b.wrapT)),s.texParameteri(a,s.TEXTURE_MAG_FILTER,D(b.magFilter)),s.texParameteri(a,s.TEXTURE_MIN_FILTER,D(b.minFilter))):(s.texParameteri(a,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(a,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),b.wrapS===THREE.ClampToEdgeWrapping&&b.wrapT===
console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+ba.maxTextures);ra+=1;returna}functionv(a,b,c){c?(s.texParameteri(a,s.TEXTURE_WRAP_S,C(b.wrapS)),s.texParameteri(a,s.TEXTURE_WRAP_T,C(b.wrapT)),s.texParameteri(a,s.TEXTURE_MAG_FILTER,C(b.magFilter)),s.texParameteri(a,s.TEXTURE_MIN_FILTER,C(b.minFilter))):(s.texParameteri(a,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(a,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),b.wrapS===THREE.ClampToEdgeWrapping&&b.wrapT===
THREE.ClampToEdgeWrapping||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.",b),s.texParameteri(a,s.TEXTURE_MAG_FILTER,H(b.magFilter)),s.texParameteri(a,s.TEXTURE_MIN_FILTER,H(b.minFilter)),b.minFilter!==THREE.NearestFilter&&b.minFilter!==THREE.LinearFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.",b));!(c=
c);d.height=Math.floor(a.height*c);d.getContext("2d").drawImage(a,0,0,a.width,a.height,0,0,d.width,d.height);console.warn("THREE.WebGLRenderer: image is too big ("+a.width+"x"+a.height+"). Resized to "+d.width+"x"+d.height,a);returnd}returna}functionx(a){returnTHREE.Math.isPowerOfTwo(a.width)&&THREE.Math.isPowerOfTwo(a.height)}functionA(a,b){varc=S.get(a);if(6===a.image.length)if(0<a.version&&c.__version!==a.version){c.__image__webglTextureCube||(a.addEventListener("dispose",f),c.__image__webglTextureCube=
q[p],a.format!==THREE.RGBAFormat&&a.format!==THREE.RGBFormat?-1<I.getCompressedTextureFormats().indexOf(l)?I.compressedTexImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+h,p,l,m.width,m.height,0,m.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setCubeTexture()"):I.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+h,p,l,m.width,m.height,0,l,n,m.data);elsee?I.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+h,0,l,g[h].width,g[h].height,0,l,n,g[h].data):I.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+
s.uniform1fv(a.morphTargetInfluences,oa);l=!0}b=d.index;c=d.attributes.position;!0===e.wireframe&&(b=na.getWireframeAttribute(d));null!==b?(a=Ba,a.setIndex(b)):a=Aa;if(l){a:{varl=void0,q;if(dinstanceofTHREE.InstancedBufferGeometry&&(q=U.get("ANGLE_instanced_arrays"),null===q)){console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");breaka}void0===l&&(l=0);I.initAttributes();varm=d.attributes,
q[p],a.format!==THREE.RGBAFormat&&a.format!==THREE.RGBFormat?-1<J.getCompressedTextureFormats().indexOf(l)?J.compressedTexImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+h,p,l,m.width,m.height,0,m.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setCubeTexture()"):J.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+h,p,l,m.width,m.height,0,l,n,m.data);elsee?J.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+h,0,l,g[h].width,g[h].height,0,l,n,g[h].data):J.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+
n.normal[b])):(!0===e.morphTargets&&d.removeAttribute("morphTarget"+c),!0===e.morphNormals&&d.removeAttribute("morphNormal"+c));a=h.getUniforms();null!==a.morphTargetInfluences&&s.uniform1fv(a.morphTargetInfluences,oa);l=!0}b=d.index;c=d.attributes.position;!0===e.wireframe&&(b=na.getWireframeAttribute(d));null!==b?(a=Ba,a.setIndex(b)):a=Aa;if(l){a:{varl=void0,q;if(dinstanceofTHREE.InstancedBufferGeometry&&(q=U.get("ANGLE_instanced_arrays"),null===q)){console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");
binstanceofTHREE.Camera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{vare=a.fog;ka="";pa=-1;ja=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);qa.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);ua.setFromMatrix(qa);V.length=0;ma=ea=-1;$.length=0;va.length=0;q(a,b);Y.length=ea+1;aa.length=ma+1;!0===Z.sortObjects&&(Y.sort(m),aa.sort(p));varf=V,g,h,k,l=0,n=
s.cullFace(s.FRONT):s.cullFace(s.FRONT_AND_BACK),I.enable(s.CULL_FACE))};this.setTexture=function(a,b){varc=S.get(a);if(0<a.version&&c.__version!==a.version){vard=a.image;if(void0===d)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined",a);elseif(!1===d.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete",a);else{void0===c.__webglInit&&(c.__webglInit=!0,a.addEventListener("dispose",f),c.__webglTexture=s.createTexture(),
HTMLCanvasElement){vare=document.createElement("canvas");e.width=THREE.Math.nearestPowerOfTwo(d.width);e.height=THREE.Math.nearestPowerOfTwo(d.height);e.getContext("2d").drawImage(d,0,0,e.width,e.height);console.warn("THREE.WebGLRenderer: image is not power of two ("+d.width+"x"+d.height+"). Resized to "+e.width+"x"+e.height,d);d=e}a.image=d}varg=a.image,d=x(g),e=D(a.format),h=D(a.type);v(s.TEXTURE_2D,a,d);vark=a.mipmaps;if(ainstanceofTHREE.DataTexture)if(0<k.length&&d){for(varl=0,n=k.length;l<
n;l++)g=k[l],I.texImage2D(s.TEXTURE_2D,l,e,g.width,g.height,0,e,h,g.data);a.generateMipmaps=!1}elseI.texImage2D(s.TEXTURE_2D,0,e,g.width,g.height,0,e,h,g.data);elseif(ainstanceofTHREE.CompressedTexture)for(l=0,n=k.length;l<n;l++)g=k[l],a.format!==THREE.RGBAFormat&&a.format!==THREE.RGBFormat?-1<I.getCompressedTextureFormats().indexOf(e)?I.compressedTexImage2D(s.TEXTURE_2D,l,e,g.width,g.height,0,g.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):
ainstanceofTHREE.WebGLRenderTarget)console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");else{varg=S.get(a).__webglFramebuffer;if(g){varh=!1;g!==sa&&(s.bindFramebuffer(s.FRAMEBUFFER,g),h=!0);try{vark=a.texture;k.format!==THREE.RGBAFormat&&D(k.format)!==s.getParameter(s.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):k.type===THREE.UnsignedByteType||
D(k.type)===s.getParameter(s.IMPLEMENTATION_COLOR_READ_TYPE)||k.type===THREE.FloatType&&U.get("WEBGL_color_buffer_float")||k.type===THREE.HalfFloatType&&U.get("EXT_color_buffer_half_float")?s.checkFramebufferStatus(s.FRAMEBUFFER)===s.FRAMEBUFFER_COMPLETE?s.readPixels(b,c,d,e,D(k.format),D(k.type),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{h&&
s.cullFace(s.FRONT):s.cullFace(s.FRONT_AND_BACK),J.enable(s.CULL_FACE))};this.setTexture=function(a,b){varc=S.get(a);if(0<a.version&&c.__version!==a.version){vard=a.image;if(void0===d)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined",a);elseif(!1===d.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete",a);else{void0===c.__webglInit&&(c.__webglInit=!0,a.addEventListener("dispose",f),c.__webglTexture=s.createTexture(),
HTMLCanvasElement){vare=document.createElement("canvas");e.width=THREE.Math.nearestPowerOfTwo(d.width);e.height=THREE.Math.nearestPowerOfTwo(d.height);e.getContext("2d").drawImage(d,0,0,e.width,e.height);console.warn("THREE.WebGLRenderer: image is not power of two ("+d.width+"x"+d.height+"). Resized to "+e.width+"x"+e.height,d);d=e}a.image=d}varg=a.image,d=x(g),e=C(a.format),h=C(a.type);v(s.TEXTURE_2D,a,d);vark=a.mipmaps;if(ainstanceofTHREE.DataTexture)if(0<k.length&&d){for(varl=0,n=k.length;l<
n;l++)g=k[l],J.texImage2D(s.TEXTURE_2D,l,e,g.width,g.height,0,e,h,g.data);a.generateMipmaps=!1}elseJ.texImage2D(s.TEXTURE_2D,0,e,g.width,g.height,0,e,h,g.data);elseif(ainstanceofTHREE.CompressedTexture)for(l=0,n=k.length;l<n;l++)g=k[l],a.format!==THREE.RGBAFormat&&a.format!==THREE.RGBFormat?-1<J.getCompressedTextureFormats().indexOf(e)?J.compressedTexImage2D(s.TEXTURE_2D,l,e,g.width,g.height,0,g.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):
h,c,d),sa=e);b&&(b=S.get(a.texture),s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,b.__webglTexture,0));xa=c;ya=d};this.readRenderTargetPixels=function(a,b,c,d,e,f){if(!1===ainstanceofTHREE.WebGLRenderTarget)console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");else{varg=S.get(a).__webglFramebuffer;if(g){varh=!1;g!==sa&&(s.bindFramebuffer(s.FRAMEBUFFER,g),h=!0);try{vark=a.texture;k.format!==
THREE.RGBAFormat&&C(k.format)!==s.getParameter(s.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):k.type===THREE.UnsignedByteType||C(k.type)===s.getParameter(s.IMPLEMENTATION_COLOR_READ_TYPE)||k.type===THREE.FloatType&&U.get("WEBGL_color_buffer_float")||k.type===THREE.HalfFloatType&&U.get("EXT_color_buffer_half_float")?s.checkFramebufferStatus(s.FRAMEBUFFER)===s.FRAMEBUFFER_COMPLETE?s.readPixels(b,
c,d,e,C(k.format),C(k.type),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{h&&s.bindFramebuffer(s.FRAMEBUFFER,sa)}}}}};
THREE.WebGLBufferRenderer=function(a,b,c){vard;this.setMode=function(a){d=a};this.render=function(b,f){a.drawArrays(d,b,f);c.calls++;c.vertices+=f;d===a.TRIANGLES&&(c.faces+=f/3)};this.renderInstances=function(a){varc=b.get("ANGLE_instanced_arrays");if(null===c)console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{varg=a.attributes.position;ginstanceofTHREE.InterleavedBufferAttribute?c.drawArraysInstancedANGLE(d,
Object.defineProperties(THREE.Box2.prototype,{isIntersectionBox:{value:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");returnthis.intersectsBox(a)}}});
Object.defineProperties(THREE.Box3.prototype,{isIntersectionBox:{value:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");returnthis.intersectsBox(a)}},isIntersectionSphere:{value:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");returnthis.intersectsSphere(a)}}});
...
...
@@ -779,13 +778,13 @@ THREE.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been mov
THREE.ShapeUtils={area:function(a){for(varb=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*c},triangulate:function(){returnfunction(a,b){varc=a.length;if(3>c)returnnull;vard=[],e=[],f=[],g,h,l;if(0<THREE.ShapeUtils.area(a))for(h=0;h<c;h++)e[h]=h;elsefor(h=0;h<c;h++)e[h]=c-1-h;vark=2*c;for(h=c-1;2<c;){if(0>=k--){console.warn("THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()");break}g=h;c<=g&&(g=0);h=g+1;c<=h&&(h=0);l=h+1;c<=l&&(l=0);varm;a:{varp=
THREE.Curve.prototype={constructor:THREE.Curve,getPoint:function(a){console.warn("THREE.Curve: Warning, getPoint() not implemented!");returnnull},getPointAt:function(a){a=this.getUtoTmapping(a);returnthis.getPoint(a)},getPoints:function(a){a||(a=5);varb,c=[];for(b=0;b<=a;b++)c.push(this.getPoint(b/a));returnc},getSpacedPoints:function(a){a||(a=5);varb,c=[];for(b=0;b<=a;b++)c.push(this.getPointAt(b/a));returnc},getLength:function(){vara=this.getLengths();returna[a.length-1]},getLengths:function(a){a||
@@ -824,8 +823,8 @@ THREE.CatmullRomCurve3=function(){function a(){}var b=new THREE.Vector3,c=new a,
b*a};returnTHREE.Curve.create(function(a){this.points=a||[]},function(a){varg=this.points,h,l;l=g.length;2>l&&console.log("duh, you need at least 2 points");a*=l-1;h=Math.floor(a);a-=h;0===a&&h===l-1&&(h=l-2,a=1);vark,m,p;0===h?(b.subVectors(g[0],g[1]).add(g[0]),k=b):k=g[h-1];m=g[h];p=g[h+1];h+2<l?g=g[h+2]:(b.subVectors(g[l-1],g[l-2]).add(g[l-2]),g=b);if(void0===this.type||"centripetal"===this.type||"chordal"===this.type){varn="chordal"===this.type?.5:.25;l=Math.pow(k.distanceToSquared(m),n);
THREE.ExtrudeGeometry.prototype.addShape=function(a,b){functionc(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");returnb.clone().multiplyScalar(c).add(a)}functiond(a,b,c){vard=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(Math.abs(d*g-e*f)>Number.EPSILON){vark=Math.sqrt(h),l=Math.sqrt(f*f+g*g),h=b.x-e/k;b=b.y+d/k;f=((c.x-g/l-h)*g-(c.y+f/l-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)returnnewTHREE.Vector2(c,a);d=Math.sqrt(d/2)}elsea=!1,d>Number.EPSILON?