|
@@ -291,82 +291,82 @@ d.opacity;if(f.receiveShadow&&!d._shadowPass&&j.shadowMatrix){e=c=0;for(k=b.leng
|
|
|
if(l==="i")g.uniform1i(m,k);else if(l==="f")g.uniform1f(m,k);else if(l==="v2")g.uniform2f(m,k.x,k.y);else if(l==="v3")g.uniform3f(m,k.x,k.y,k.z);else if(l==="v4")g.uniform4f(m,k.x,k.y,k.z,k.w);else if(l==="c")g.uniform3f(m,k.r,k.g,k.b);else if(l==="iv1")g.uniform1iv(m,k);else if(l==="iv")g.uniform3iv(m,k);else if(l==="fv1")g.uniform1fv(m,k);else if(l==="fv")g.uniform3fv(m,k);else if(l==="v2v"){if(e._array===void 0)e._array=new Float32Array(2*k.length);l=0;for(n=k.length;l<n;l++){p=l*2;e._array[p]=
|
|
|
k[l].x;e._array[p+1]=k[l].y}g.uniform2fv(m,e._array)}else if(l==="v3v"){if(e._array===void 0)e._array=new Float32Array(3*k.length);l=0;for(n=k.length;l<n;l++){p=l*3;e._array[p]=k[l].x;e._array[p+1]=k[l].y;e._array[p+2]=k[l].z}g.uniform3fv(m,e._array)}else if(l==="v4v"){if(e._array===void 0)e._array=new Float32Array(4*k.length);l=0;for(n=k.length;l<n;l++){p=l*4;e._array[p]=k[l].x;e._array[p+1]=k[l].y;e._array[p+2]=k[l].z;e._array[p+3]=k[l].w}g.uniform4fv(m,e._array)}else if(l==="m4"){if(e._array===
|
|
|
void 0)e._array=new Float32Array(16);k.flattenToArray(e._array);g.uniformMatrix4fv(m,false,e._array)}else if(l==="m4v"){if(e._array===void 0)e._array=new Float32Array(16*k.length);l=0;for(n=k.length;l<n;l++)k[l].flattenToArrayOffset(e._array,l*16);g.uniformMatrix4fv(m,false,e._array)}else if(l==="t"){g.uniform1i(m,k);if(m=e.texture)if(m.image instanceof Array&&m.image.length===6){e=m;if(e.image.length===6)if(e.needsUpdate){if(!e.image.__webglTextureCube)e.image.__webglTextureCube=g.createTexture();
|
|
|
-g.activeTexture(g.TEXTURE0+k);g.bindTexture(g.TEXTURE_CUBE_MAP,e.image.__webglTextureCube);g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,e.flipY);k=[];for(m=0;m<6;m++){l=k;n=m;if(F.autoScaleCubemaps){p=e.image[m];w=Oc;if(!(p.width<=w&&p.height<=w)){u=Math.max(p.width,p.height);s=Math.floor(p.width*w/u);w=Math.floor(p.height*w/u);u=document.createElement("canvas");u.width=s;u.height=w;u.getContext("2d").drawImage(p,0,0,p.width,p.height,0,0,s,w);p=u}}else p=e.image[m];l[n]=p}m=k[0];l=(m.width&m.width-1)===0&&
|
|
|
+g.activeTexture(g.TEXTURE0+k);g.bindTexture(g.TEXTURE_CUBE_MAP,e.image.__webglTextureCube);g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,e.flipY);k=[];for(m=0;m<6;m++){l=k;n=m;if(F.autoScaleCubemaps){p=e.image[m];w=Pc;if(!(p.width<=w&&p.height<=w)){u=Math.max(p.width,p.height);s=Math.floor(p.width*w/u);w=Math.floor(p.height*w/u);u=document.createElement("canvas");u.width=s;u.height=w;u.getContext("2d").drawImage(p,0,0,p.width,p.height,0,0,s,w);p=u}}else p=e.image[m];l[n]=p}m=k[0];l=(m.width&m.width-1)===0&&
|
|
|
(m.height&m.height-1)===0;n=A(e.format);p=A(e.type);H(g.TEXTURE_CUBE_MAP,e,l);for(m=0;m<6;m++)g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X+m,0,n,n,p,k[m]);e.generateMipmaps&&l&&g.generateMipmap(g.TEXTURE_CUBE_MAP);e.needsUpdate=false;if(e.onUpdate)e.onUpdate()}else{g.activeTexture(g.TEXTURE0+k);g.bindTexture(g.TEXTURE_CUBE_MAP,e.image.__webglTextureCube)}}else if(m instanceof THREE.WebGLRenderTargetCube){e=m;g.activeTexture(g.TEXTURE0+k);g.bindTexture(g.TEXTURE_CUBE_MAP,e.__webglTexture)}else F.setTexture(m,
|
|
|
k)}else if(l==="tv"){if(e._array===void 0){e._array=[];l=0;for(n=e.texture.length;l<n;l++)e._array[l]=k+l}g.uniform1iv(m,e._array);l=0;for(n=e.texture.length;l<n;l++)(m=e.texture[l])&&F.setTexture(m,e._array[l])}}if((d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&i.cameraPosition!==null){b=a.matrixWorld.getPosition();g.uniform3f(i.cameraPosition,b.x,b.y,b.z)}(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.ShaderMaterial||
|
|
|
d.skinning)&&i.viewMatrix!==null&&g.uniformMatrix4fv(i.viewMatrix,false,a._viewMatrixArray)}if(d.skinning)if(hc&&f.useVertexTexture){if(i.boneTexture!==null){g.uniform1i(i.boneTexture,12);F.setTexture(f.boneTexture,12)}}else i.boneGlobalMatrices!==null&&g.uniformMatrix4fv(i.boneGlobalMatrices,false,f.boneMatrices);g.uniformMatrix4fv(i.modelViewMatrix,false,f._modelViewMatrix.elements);i.normalMatrix&&g.uniformMatrix3fv(i.normalMatrix,false,f._normalMatrix.elements);i.objectMatrix!==null&&g.uniformMatrix4fv(i.objectMatrix,
|
|
|
false,f.matrixWorld.elements);return h}function p(a,b){a._modelViewMatrix.multiply(b.matrixWorldInverse,a.matrixWorld);a._normalMatrix.getInverse(a._modelViewMatrix);a._normalMatrix.transpose()}function x(a,b,c){if(Va!==a){a?g.enable(g.POLYGON_OFFSET_FILL):g.disable(g.POLYGON_OFFSET_FILL);Va=a}if(a&&(wb!==b||Lb!==c)){g.polygonOffset(b,c);wb=b;Lb=c}}function u(a,b){var c;a==="fragment"?c=g.createShader(g.FRAGMENT_SHADER):a==="vertex"&&(c=g.createShader(g.VERTEX_SHADER));g.shaderSource(c,b);g.compileShader(c);
|
|
|
if(!g.getShaderParameter(c,g.COMPILE_STATUS)){console.error(g.getShaderInfoLog(c));console.error(b);return null}return c}function H(a,b,c){if(c){g.texParameteri(a,g.TEXTURE_WRAP_S,A(b.wrapS));g.texParameteri(a,g.TEXTURE_WRAP_T,A(b.wrapT));g.texParameteri(a,g.TEXTURE_MAG_FILTER,A(b.magFilter));g.texParameteri(a,g.TEXTURE_MIN_FILTER,A(b.minFilter))}else{g.texParameteri(a,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE);g.texParameteri(a,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE);g.texParameteri(a,g.TEXTURE_MAG_FILTER,E(b.magFilter));
|
|
|
-g.texParameteri(a,g.TEXTURE_MIN_FILTER,E(b.minFilter))}Za&&g.texParameterf(a,Za.TEXTURE_MAX_ANISOTROPY_EXT,b.anisotropy)}function w(a,b){g.bindRenderbuffer(g.RENDERBUFFER,a);if(b.depthBuffer&&!b.stencilBuffer){g.renderbufferStorage(g.RENDERBUFFER,g.DEPTH_COMPONENT16,b.width,b.height);g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_ATTACHMENT,g.RENDERBUFFER,a)}else if(b.depthBuffer&&b.stencilBuffer){g.renderbufferStorage(g.RENDERBUFFER,g.DEPTH_STENCIL,b.width,b.height);g.framebufferRenderbuffer(g.FRAMEBUFFER,
|
|
|
-g.DEPTH_STENCIL_ATTACHMENT,g.RENDERBUFFER,a)}else g.renderbufferStorage(g.RENDERBUFFER,g.RGBA4,b.width,b.height)}function E(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?g.NEAREST:g.LINEAR}function A(a){return a===THREE.RepeatWrapping?g.REPEAT:a===THREE.ClampToEdgeWrapping?g.CLAMP_TO_EDGE:a===THREE.MirroredRepeatWrapping?g.MIRRORED_REPEAT:a===THREE.NearestFilter?g.NEAREST:a===THREE.NearestMipMapNearestFilter?g.NEAREST_MIPMAP_NEAREST:a===
|
|
|
-THREE.NearestMipMapLinearFilter?g.NEAREST_MIPMAP_LINEAR:a===THREE.LinearFilter?g.LINEAR:a===THREE.LinearMipMapNearestFilter?g.LINEAR_MIPMAP_NEAREST:a===THREE.LinearMipMapLinearFilter?g.LINEAR_MIPMAP_LINEAR:a===THREE.UnsignedByteType?g.UNSIGNED_BYTE:a===THREE.UnsignedShort4444Type?g.UNSIGNED_SHORT_4_4_4_4:a===THREE.UnsignedShort5551Type?g.UNSIGNED_SHORT_5_5_5_1:a===THREE.UnsignedShort565Type?g.UNSIGNED_SHORT_5_6_5:a===THREE.ByteType?g.BYTE:a===THREE.ShortType?g.SHORT:a===THREE.UnsignedShortType?g.UNSIGNED_SHORT:
|
|
|
-a===THREE.IntType?g.INT:a===THREE.UnsignedIntType?g.UNSIGNED_INT:a===THREE.FloatType?g.FLOAT:a===THREE.AlphaFormat?g.ALPHA:a===THREE.RGBFormat?g.RGB:a===THREE.RGBAFormat?g.RGBA:a===THREE.LuminanceFormat?g.LUMINANCE:a===THREE.LuminanceAlphaFormat?g.LUMINANCE_ALPHA:a===THREE.AddEquation?g.FUNC_ADD:a===THREE.SubtractEquation?g.FUNC_SUBTRACT:a===THREE.ReverseSubtractEquation?g.FUNC_REVERSE_SUBTRACT:a===THREE.ZeroFactor?g.ZERO:a===THREE.OneFactor?g.ONE:a===THREE.SrcColorFactor?g.SRC_COLOR:a===THREE.OneMinusSrcColorFactor?
|
|
|
-g.ONE_MINUS_SRC_COLOR:a===THREE.SrcAlphaFactor?g.SRC_ALPHA:a===THREE.OneMinusSrcAlphaFactor?g.ONE_MINUS_SRC_ALPHA:a===THREE.DstAlphaFactor?g.DST_ALPHA:a===THREE.OneMinusDstAlphaFactor?g.ONE_MINUS_DST_ALPHA:a===THREE.DstColorFactor?g.DST_COLOR:a===THREE.OneMinusDstColorFactor?g.ONE_MINUS_DST_COLOR:a===THREE.SrcAlphaSaturateFactor?g.SRC_ALPHA_SATURATE:0}console.log("THREE.WebGLRenderer",THREE.REVISION);var a=a||{},G=a.canvas!==void 0?a.canvas:document.createElement("canvas"),C=a.precision!==void 0?
|
|
|
-a.precision:"highp",L=a.alpha!==void 0?a.alpha:true,I=a.premultipliedAlpha!==void 0?a.premultipliedAlpha:true,T=a.antialias!==void 0?a.antialias:false,V=a.stencil!==void 0?a.stencil:true,R=a.preserveDrawingBuffer!==void 0?a.preserveDrawingBuffer:false,z=a.clearColor!==void 0?new THREE.Color(a.clearColor):new THREE.Color(0),K=a.clearAlpha!==void 0?a.clearAlpha:0,U=a.maxLights!==void 0?a.maxLights:4;this.domElement=G;this.context=null;this.autoUpdateScene=this.autoUpdateObjects=this.sortObjects=this.autoClearStencil=
|
|
|
-this.autoClearDepth=this.autoClearColor=this.autoClear=true;this.shadowMapEnabled=this.physicallyBasedShading=this.gammaOutput=this.gammaInput=false;this.shadowMapCullFrontFaces=this.shadowMapSoft=this.shadowMapAutoUpdate=true;this.shadowMapCascade=this.shadowMapDebug=false;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=true;this.renderPluginsPre=[];this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};
|
|
|
-var F=this,ba=[],ia=0,J=null,ka=null,$=-1,S=null,aa=null,sa=0,ha=-1,M=-1,ta=-1,Aa=-1,la=-1,Ia=-1,Ha=-1,Ba=-1,Va=null,wb=null,Lb=null,Mb=null,xb=0,Nb=0,Ob=0,Pb=0,gc=0,xc=0,ic=new THREE.Frustum,Wb=new THREE.Matrix4,Vb=new THREE.Matrix4,pb=new THREE.Vector4,La=new THREE.Vector3,Wa=true,yc={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],angles:[],exponents:[]}},g,Za;try{if(!(g=
|
|
|
-G.getContext("experimental-webgl",{alpha:L,premultipliedAlpha:I,antialias:T,stencil:V,preserveDrawingBuffer:R})))throw"Error creating WebGL context.";}catch(Pc){console.error(Pc)}a=g.getExtension("OES_texture_float");L=g.getExtension("OES_standard_derivatives");Za=g.getExtension("EXT_texture_filter_anisotropic")||g.getExtension("MOZ_EXT_texture_filter_anisotropic")||g.getExtension("WEBKIT_EXT_texture_filter_anisotropic");a||console.log("THREE.WebGLRenderer: Float textures not supported.");L||console.log("THREE.WebGLRenderer: Standard derivatives not supported.");
|
|
|
-Za||console.log("THREE.WebGLRenderer: Anisotropic texture filtering not supported.");g.clearColor(0,0,0,1);g.clearDepth(1);g.clearStencil(0);g.enable(g.DEPTH_TEST);g.depthFunc(g.LEQUAL);g.frontFace(g.CCW);g.cullFace(g.BACK);g.enable(g.CULL_FACE);g.enable(g.BLEND);g.blendEquation(g.FUNC_ADD);g.blendFunc(g.SRC_ALPHA,g.ONE_MINUS_SRC_ALPHA);g.clearColor(z.r,z.g,z.b,K);this.context=g;L=g.getParameter(g.MAX_VERTEX_TEXTURE_IMAGE_UNITS);g.getParameter(g.MAX_TEXTURE_SIZE);var Oc=g.getParameter(g.MAX_CUBE_MAP_TEXTURE_SIZE),
|
|
|
-Qc=Za?g.getParameter(Za.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,jc=L>0,hc=jc&&a;this.getContext=function(){return g};this.supportsVertexTextures=function(){return jc};this.getMaxAnisotropy=function(){return Qc};this.setSize=function(a,b){G.width=a;G.height=b;this.setViewport(0,0,G.width,G.height)};this.setViewport=function(a,b,c,d){xb=a!==void 0?a:0;Nb=b!==void 0?b:0;Ob=c!==void 0?c:G.width;Pb=d!==void 0?d:G.height;g.viewport(xb,Nb,Ob,Pb)};this.setScissor=function(a,b,c,d){g.scissor(a,b,c,d)};this.enableScissorTest=
|
|
|
-function(a){a?g.enable(g.SCISSOR_TEST):g.disable(g.SCISSOR_TEST)};this.setClearColorHex=function(a,b){z.setHex(a);K=b;g.clearColor(z.r,z.g,z.b,K)};this.setClearColor=function(a,b){z.copy(a);K=b;g.clearColor(z.r,z.g,z.b,K)};this.getClearColor=function(){return z};this.getClearAlpha=function(){return K};this.clear=function(a,b,c){var d=0;if(a===void 0||a)d=d|g.COLOR_BUFFER_BIT;if(b===void 0||b)d=d|g.DEPTH_BUFFER_BIT;if(c===void 0||c)d=d|g.STENCIL_BUFFER_BIT;g.clear(d)};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.deallocateObject=function(a){if(a.__webglInit){a.__webglInit=false;delete a._modelViewMatrix;delete a._normalMatrix;delete a._normalMatrixArray;delete a._modelViewMatrixArray;delete a._objectMatrixArray;if(a instanceof THREE.Mesh)for(var b in a.geometry.geometryGroups){var c=a.geometry.geometryGroups[b];
|
|
|
-g.deleteBuffer(c.__webglVertexBuffer);g.deleteBuffer(c.__webglNormalBuffer);g.deleteBuffer(c.__webglTangentBuffer);g.deleteBuffer(c.__webglColorBuffer);g.deleteBuffer(c.__webglUVBuffer);g.deleteBuffer(c.__webglUV2Buffer);g.deleteBuffer(c.__webglSkinVertexABuffer);g.deleteBuffer(c.__webglSkinVertexBBuffer);g.deleteBuffer(c.__webglSkinIndicesBuffer);g.deleteBuffer(c.__webglSkinWeightsBuffer);g.deleteBuffer(c.__webglFaceBuffer);g.deleteBuffer(c.__webglLineBuffer);var d=void 0,e=void 0;if(c.numMorphTargets){d=
|
|
|
-0;for(e=c.numMorphTargets;d<e;d++)g.deleteBuffer(c.__webglMorphTargetsBuffers[d])}if(c.numMorphNormals){d=0;for(e=c.numMorphNormals;d<e;d++)g.deleteBuffer(c.__webglMorphNormalsBuffers[d])}if(c.__webglCustomAttributesList){d=void 0;for(d in c.__webglCustomAttributesList)g.deleteBuffer(c.__webglCustomAttributesList[d].buffer)}F.info.memory.geometries--}else if(a instanceof THREE.Ribbon){a=a.geometry;g.deleteBuffer(a.__webglVertexBuffer);g.deleteBuffer(a.__webglColorBuffer);F.info.memory.geometries--}else if(a instanceof
|
|
|
-THREE.Line){a=a.geometry;g.deleteBuffer(a.__webglVertexBuffer);g.deleteBuffer(a.__webglColorBuffer);F.info.memory.geometries--}else if(a instanceof THREE.ParticleSystem){a=a.geometry;g.deleteBuffer(a.__webglVertexBuffer);g.deleteBuffer(a.__webglColorBuffer);F.info.memory.geometries--}}};this.deallocateTexture=function(a){if(a.__webglInit){a.__webglInit=false;g.deleteTexture(a.__webglTexture);F.info.memory.textures--}};this.deallocateRenderTarget=function(a){if(a&&a.__webglTexture){g.deleteTexture(a.__webglTexture);
|
|
|
-if(a instanceof THREE.WebGLRenderTargetCube)for(var b=0;b<6;b++){g.deleteFramebuffer(a.__webglFramebuffer[b]);g.deleteRenderbuffer(a.__webglRenderbuffer[b])}else{g.deleteFramebuffer(a.__webglFramebuffer);g.deleteRenderbuffer(a.__webglRenderbuffer)}}};this.deallocateMaterial=function(a){var b=a.program;if(b){a.program=void 0;var c,d,e=false,a=0;for(c=ba.length;a<c;a++){d=ba[a];if(d.program===b){d.usedTimes--;d.usedTimes===0&&(e=true);break}}if(e){e=[];a=0;for(c=ba.length;a<c;a++){d=ba[a];d.program!==
|
|
|
-b&&e.push(d)}ba=e;g.deleteProgram(b);F.info.memory.programs--}}};this.updateShadowMap=function(a,b){J=null;$=S=Ba=Ha=ta=-1;Wa=true;M=ha=-1;this.shadowMapPlugin.update(a,b)};this.renderBufferImmediate=function(a,b,c){if(a.hasPositions&&!a.__webglVertexBuffer)a.__webglVertexBuffer=g.createBuffer();if(a.hasNormals&&!a.__webglNormalBuffer)a.__webglNormalBuffer=g.createBuffer();if(a.hasUvs&&!a.__webglUvBuffer)a.__webglUvBuffer=g.createBuffer();if(a.hasColors&&!a.__webglColorBuffer)a.__webglColorBuffer=
|
|
|
-g.createBuffer();if(a.hasPositions){g.bindBuffer(g.ARRAY_BUFFER,a.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,a.positionArray,g.DYNAMIC_DRAW);g.enableVertexAttribArray(b.attributes.position);g.vertexAttribPointer(b.attributes.position,3,g.FLOAT,false,0,0)}if(a.hasNormals){g.bindBuffer(g.ARRAY_BUFFER,a.__webglNormalBuffer);if(c.shading===THREE.FlatShading){var d,e,f,h,i,j,k,l,m,n,o,q=a.count*3;for(o=0;o<q;o=o+9){n=a.normalArray;d=n[o];e=n[o+1];f=n[o+2];h=n[o+3];j=n[o+4];l=n[o+5];i=n[o+6];k=n[o+
|
|
|
-7];m=n[o+8];d=(d+h+i)/3;e=(e+j+k)/3;f=(f+l+m)/3;n[o]=d;n[o+1]=e;n[o+2]=f;n[o+3]=d;n[o+4]=e;n[o+5]=f;n[o+6]=d;n[o+7]=e;n[o+8]=f}}g.bufferData(g.ARRAY_BUFFER,a.normalArray,g.DYNAMIC_DRAW);g.enableVertexAttribArray(b.attributes.normal);g.vertexAttribPointer(b.attributes.normal,3,g.FLOAT,false,0,0)}if(a.hasUvs&&c.map){g.bindBuffer(g.ARRAY_BUFFER,a.__webglUvBuffer);g.bufferData(g.ARRAY_BUFFER,a.uvArray,g.DYNAMIC_DRAW);g.enableVertexAttribArray(b.attributes.uv);g.vertexAttribPointer(b.attributes.uv,2,g.FLOAT,
|
|
|
-false,0,0)}if(a.hasColors&&c.vertexColors!==THREE.NoColors){g.bindBuffer(g.ARRAY_BUFFER,a.__webglColorBuffer);g.bufferData(g.ARRAY_BUFFER,a.colorArray,g.DYNAMIC_DRAW);g.enableVertexAttribArray(b.attributes.color);g.vertexAttribPointer(b.attributes.color,3,g.FLOAT,false,0,0)}g.drawArrays(g.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,e,f){if(d.visible!==false){c=r(a,b,c,d,f);a=c.attributes;b=false;d=e.id*16777215+c.id*2+(d.wireframe?1:0);if(d!==S){S=d;b=true}if(f instanceof
|
|
|
-THREE.Mesh){f=e.offsets;f.length>1&&(b=true);d=0;for(c=f.length;d<c;++d){var h=f[d].index;if(b){var i=e.attributes.position,j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.position,j,g.FLOAT,false,0,h*j*4);i=e.attributes.normal;if(a.normal>=0&&i){j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.normal,j,g.FLOAT,false,0,h*j*4)}i=e.attributes.uv;if(a.uv>=0&&i)if(i.buffer){j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.uv,
|
|
|
-j,g.FLOAT,false,0,h*j*4);g.enableVertexAttribArray(a.uv)}else g.disableVertexAttribArray(a.uv);i=e.attributes.color;if(a.color>=0&&i){j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.color,j,g.FLOAT,false,0,h*j*4)}i=e.attributes.tangent;if(a.tangent>=0&&i){j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.tangent,j,g.FLOAT,false,0,h*j*4)}g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,e.attributes.index.buffer)}g.drawElements(g.TRIANGLES,f[d].count,g.UNSIGNED_SHORT,
|
|
|
-f[d].start*2);F.info.render.calls++;F.info.render.vertices=F.info.render.vertices+f[d].count;F.info.render.faces=F.info.render.faces+f[d].count/3}}}};this.renderBuffer=function(a,b,c,d,e,f){if(d.visible!==false){var h,i,c=r(a,b,c,d,f),b=c.attributes,a=false,c=e.id*16777215+c.id*2+(d.wireframe?1:0);if(c!==S){S=c;a=true}if(!d.morphTargets&&b.position>=0){if(a){g.bindBuffer(g.ARRAY_BUFFER,e.__webglVertexBuffer);g.vertexAttribPointer(b.position,3,g.FLOAT,false,0,0)}}else if(f.morphTargetBase){c=d.program.attributes;
|
|
|
-if(f.morphTargetBase!==-1){g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[f.morphTargetBase]);g.vertexAttribPointer(c.position,3,g.FLOAT,false,0,0)}else if(c.position>=0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglVertexBuffer);g.vertexAttribPointer(c.position,3,g.FLOAT,false,0,0)}if(f.morphTargetForcedOrder.length){var k=0;i=f.morphTargetForcedOrder;for(h=f.morphTargetInfluences;k<d.numSupportedMorphTargets&&k<i.length;){g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[i[k]]);g.vertexAttribPointer(c["morphTarget"+
|
|
|
-k],3,g.FLOAT,false,0,0);if(d.morphNormals){g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[i[k]]);g.vertexAttribPointer(c["morphNormal"+k],3,g.FLOAT,false,0,0)}f.__webglMorphTargetInfluences[k]=h[i[k]];k++}}else{i=[];h=f.morphTargetInfluences;var l,m=h.length;for(l=0;l<m;l++){k=h[l];k>0&&i.push([l,k])}if(i.length>d.numSupportedMorphTargets){i.sort(j);i.length=d.numSupportedMorphTargets}else i.length>d.numSupportedMorphNormals?i.sort(j):i.length===0&&i.push([0,0]);for(k=0;k<d.numSupportedMorphTargets;){if(i[k]){l=
|
|
|
-i[k][0];g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[l]);g.vertexAttribPointer(c["morphTarget"+k],3,g.FLOAT,false,0,0);if(d.morphNormals){g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[l]);g.vertexAttribPointer(c["morphNormal"+k],3,g.FLOAT,false,0,0)}f.__webglMorphTargetInfluences[k]=h[l]}else{g.vertexAttribPointer(c["morphTarget"+k],3,g.FLOAT,false,0,0);d.morphNormals&&g.vertexAttribPointer(c["morphNormal"+k],3,g.FLOAT,false,0,0);f.__webglMorphTargetInfluences[k]=0}k++}}d.program.uniforms.morphTargetInfluences!==
|
|
|
-null&&g.uniform1fv(d.program.uniforms.morphTargetInfluences,f.__webglMorphTargetInfluences)}if(a){if(e.__webglCustomAttributesList){h=0;for(i=e.__webglCustomAttributesList.length;h<i;h++){c=e.__webglCustomAttributesList[h];if(b[c.buffer.belongsToAttribute]>=0){g.bindBuffer(g.ARRAY_BUFFER,c.buffer);g.vertexAttribPointer(b[c.buffer.belongsToAttribute],c.size,g.FLOAT,false,0,0)}}}if(b.color>=0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglColorBuffer);g.vertexAttribPointer(b.color,3,g.FLOAT,false,0,0)}if(b.normal>=
|
|
|
-0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglNormalBuffer);g.vertexAttribPointer(b.normal,3,g.FLOAT,false,0,0)}if(b.tangent>=0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglTangentBuffer);g.vertexAttribPointer(b.tangent,4,g.FLOAT,false,0,0)}if(b.uv>=0)if(e.__webglUVBuffer){g.bindBuffer(g.ARRAY_BUFFER,e.__webglUVBuffer);g.vertexAttribPointer(b.uv,2,g.FLOAT,false,0,0);g.enableVertexAttribArray(b.uv)}else g.disableVertexAttribArray(b.uv);if(b.uv2>=0)if(e.__webglUV2Buffer){g.bindBuffer(g.ARRAY_BUFFER,e.__webglUV2Buffer);
|
|
|
-g.vertexAttribPointer(b.uv2,2,g.FLOAT,false,0,0);g.enableVertexAttribArray(b.uv2)}else g.disableVertexAttribArray(b.uv2);if(d.skinning&&b.skinVertexA>=0&&b.skinVertexB>=0&&b.skinIndex>=0&&b.skinWeight>=0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglSkinVertexABuffer);g.vertexAttribPointer(b.skinVertexA,4,g.FLOAT,false,0,0);g.bindBuffer(g.ARRAY_BUFFER,e.__webglSkinVertexBBuffer);g.vertexAttribPointer(b.skinVertexB,4,g.FLOAT,false,0,0);g.bindBuffer(g.ARRAY_BUFFER,e.__webglSkinIndicesBuffer);g.vertexAttribPointer(b.skinIndex,
|
|
|
-4,g.FLOAT,false,0,0);g.bindBuffer(g.ARRAY_BUFFER,e.__webglSkinWeightsBuffer);g.vertexAttribPointer(b.skinWeight,4,g.FLOAT,false,0,0)}}if(f instanceof THREE.Mesh){if(d.wireframe){d=d.wireframeLinewidth;if(d!==Mb){g.lineWidth(d);Mb=d}a&&g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,e.__webglLineBuffer);g.drawElements(g.LINES,e.__webglLineCount,g.UNSIGNED_SHORT,0)}else{a&&g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,e.__webglFaceBuffer);g.drawElements(g.TRIANGLES,e.__webglFaceCount,g.UNSIGNED_SHORT,0)}F.info.render.calls++;
|
|
|
-F.info.render.vertices=F.info.render.vertices+e.__webglFaceCount;F.info.render.faces=F.info.render.faces+e.__webglFaceCount/3}else if(f instanceof THREE.Line){f=f.type===THREE.LineStrip?g.LINE_STRIP:g.LINES;d=d.linewidth;if(d!==Mb){g.lineWidth(d);Mb=d}g.drawArrays(f,0,e.__webglLineCount);F.info.render.calls++}else if(f instanceof THREE.ParticleSystem){g.drawArrays(g.POINTS,0,e.__webglParticleCount);F.info.render.calls++;F.info.render.points=F.info.render.points+e.__webglParticleCount}else if(f instanceof
|
|
|
-THREE.Ribbon){g.drawArrays(g.TRIANGLE_STRIP,0,e.__webglVertexCount);F.info.render.calls++}}};this.render=function(a,b,c,d){var e,f,j,m,n=a.__lights,o=a.fog;$=-1;Wa=true;if(b.parent===void 0){console.warn("DEPRECATED: Camera hasn't been added to a Scene. Adding it...");a.add(b)}this.autoUpdateScene&&a.updateMatrixWorld();if(!b._viewMatrixArray)b._viewMatrixArray=new Float32Array(16);if(!b._projectionMatrixArray)b._projectionMatrixArray=new Float32Array(16);b.matrixWorldInverse.getInverse(b.matrixWorld);
|
|
|
-b.matrixWorldInverse.flattenToArray(b._viewMatrixArray);b.projectionMatrix.flattenToArray(b._projectionMatrixArray);Wb.multiply(b.projectionMatrix,b.matrixWorldInverse);ic.setFromMatrix(Wb);this.autoUpdateObjects&&this.initWebGLObjects(a);l(this.renderPluginsPre,a,b);F.info.render.calls=0;F.info.render.vertices=0;F.info.render.faces=0;F.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);m=a.__webglObjects;d=0;
|
|
|
-for(e=m.length;d<e;d++){f=m[d];j=f.object;f.render=false;if(j.visible&&(!(j instanceof THREE.Mesh||j instanceof THREE.ParticleSystem)||!j.frustumCulled||ic.contains(j))){p(j,b);var q=f,r=q.object,s=q.buffer,u=void 0,u=u=void 0,u=r.material;if(u instanceof THREE.MeshFaceMaterial){u=s.materialIndex;if(u>=0){u=r.geometry.materials[u];if(u.transparent){q.transparent=u;q.opaque=null}else{q.opaque=u;q.transparent=null}}}else if(u)if(u.transparent){q.transparent=u;q.opaque=null}else{q.opaque=u;q.transparent=
|
|
|
-null}f.render=true;if(this.sortObjects)if(j.renderDepth)f.z=j.renderDepth;else{pb.copy(j.matrixWorld.getPosition());Wb.multiplyVector3(pb);f.z=pb.z}}}this.sortObjects&&m.sort(h);m=a.__webglObjectsImmediate;d=0;for(e=m.length;d<e;d++){f=m[d];j=f.object;if(j.visible){p(j,b);j=f.object.material;if(j.transparent){f.transparent=j;f.opaque=null}else{f.opaque=j;f.transparent=null}}}if(a.overrideMaterial){d=a.overrideMaterial;this.setBlending(d.blending,d.blendEquation,d.blendSrc,d.blendDst);this.setDepthTest(d.depthTest);
|
|
|
-this.setDepthWrite(d.depthWrite);x(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits);k(a.__webglObjects,false,"",b,n,o,true,d);i(a.__webglObjectsImmediate,"",b,n,o,false,d)}else{this.setBlending(THREE.NormalBlending);k(a.__webglObjects,true,"opaque",b,n,o,false);i(a.__webglObjectsImmediate,"opaque",b,n,o,false);k(a.__webglObjects,false,"transparent",b,n,o,true);i(a.__webglObjectsImmediate,"transparent",b,n,o,true)}l(this.renderPluginsPost,a,b);if(c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&
|
|
|
-c.minFilter!==THREE.LinearFilter)if(c instanceof THREE.WebGLRenderTargetCube){g.bindTexture(g.TEXTURE_CUBE_MAP,c.__webglTexture);g.generateMipmap(g.TEXTURE_CUBE_MAP);g.bindTexture(g.TEXTURE_CUBE_MAP,null)}else{g.bindTexture(g.TEXTURE_2D,c.__webglTexture);g.generateMipmap(g.TEXTURE_2D);g.bindTexture(g.TEXTURE_2D,null)}this.setDepthTest(true);this.setDepthWrite(true)};this.renderImmediateObject=function(a,b,c,d,e){var f=r(a,b,c,d,e);S=-1;F.setObjectFaces(e);e.immediateRenderCallback?e.immediateRenderCallback(f,
|
|
|
-g,ic):e.render(function(a){F.renderBufferImmediate(a,f,d)})};this.initWebGLObjects=function(a){if(!a.__webglObjects){a.__webglObjects=[];a.__webglObjectsImmediate=[];a.__webglSprites=[];a.__webglFlares=[]}for(;a.__objectsAdded.length;){var h=a.__objectsAdded[0],i=a,j=void 0,k=void 0,l=void 0;if(!h.__webglInit){h.__webglInit=true;h._modelViewMatrix=new THREE.Matrix4;h._normalMatrix=new THREE.Matrix3;if(h instanceof THREE.Mesh){k=h.geometry;if(k instanceof THREE.Geometry){if(k.geometryGroups===void 0){var p=
|
|
|
-k,r=void 0,u=void 0,w=void 0,x=void 0,z=void 0,A=void 0,C=void 0,E={},H=p.morphTargets.length,L=p.morphNormals.length;p.geometryGroups={};r=0;for(u=p.faces.length;r<u;r++){w=p.faces[r];x=w.materialIndex;A=x!==void 0?x:-1;E[A]===void 0&&(E[A]={hash:A,counter:0});C=E[A].hash+"_"+E[A].counter;p.geometryGroups[C]===void 0&&(p.geometryGroups[C]={faces3:[],faces4:[],materialIndex:x,vertices:0,numMorphTargets:H,numMorphNormals:L});z=w instanceof THREE.Face3?3:4;if(p.geometryGroups[C].vertices+z>65535){E[A].counter=
|
|
|
-E[A].counter+1;C=E[A].hash+"_"+E[A].counter;p.geometryGroups[C]===void 0&&(p.geometryGroups[C]={faces3:[],faces4:[],materialIndex:x,vertices:0,numMorphTargets:H,numMorphNormals:L})}w instanceof THREE.Face3?p.geometryGroups[C].faces3.push(r):p.geometryGroups[C].faces4.push(r);p.geometryGroups[C].vertices=p.geometryGroups[C].vertices+z}p.geometryGroupsList=[];var K=void 0;for(K in p.geometryGroups){p.geometryGroups[K].id=sa++;p.geometryGroupsList.push(p.geometryGroups[K])}}for(j in k.geometryGroups){l=
|
|
|
-k.geometryGroups[j];if(!l.__webglVertexBuffer){var G=l;G.__webglVertexBuffer=g.createBuffer();G.__webglNormalBuffer=g.createBuffer();G.__webglTangentBuffer=g.createBuffer();G.__webglColorBuffer=g.createBuffer();G.__webglUVBuffer=g.createBuffer();G.__webglUV2Buffer=g.createBuffer();G.__webglSkinVertexABuffer=g.createBuffer();G.__webglSkinVertexBBuffer=g.createBuffer();G.__webglSkinIndicesBuffer=g.createBuffer();G.__webglSkinWeightsBuffer=g.createBuffer();G.__webglFaceBuffer=g.createBuffer();G.__webglLineBuffer=
|
|
|
-g.createBuffer();var J=void 0,M=void 0;if(G.numMorphTargets){G.__webglMorphTargetsBuffers=[];J=0;for(M=G.numMorphTargets;J<M;J++)G.__webglMorphTargetsBuffers.push(g.createBuffer())}if(G.numMorphNormals){G.__webglMorphNormalsBuffers=[];J=0;for(M=G.numMorphNormals;J<M;J++)G.__webglMorphNormalsBuffers.push(g.createBuffer())}F.info.memory.geometries++;var I=l,R=h,S=R.geometry,T=I.faces3,V=I.faces4,U=T.length*3+V.length*4,aa=T.length*1+V.length*2,ba=T.length*3+V.length*4,$=c(R,I),ha=e($),ka=d($),ta=$.vertexColors?
|
|
|
-$.vertexColors:false;I.__vertexArray=new Float32Array(U*3);if(ka)I.__normalArray=new Float32Array(U*3);if(S.hasTangents)I.__tangentArray=new Float32Array(U*4);if(ta)I.__colorArray=new Float32Array(U*3);if(ha){if(S.faceUvs.length>0||S.faceVertexUvs.length>0)I.__uvArray=new Float32Array(U*2);if(S.faceUvs.length>1||S.faceVertexUvs.length>1)I.__uv2Array=new Float32Array(U*2)}if(R.geometry.skinWeights.length&&R.geometry.skinIndices.length){I.__skinVertexAArray=new Float32Array(U*4);I.__skinVertexBArray=
|
|
|
-new Float32Array(U*4);I.__skinIndexArray=new Float32Array(U*4);I.__skinWeightArray=new Float32Array(U*4)}I.__faceArray=new Uint16Array(aa*3);I.__lineArray=new Uint16Array(ba*2);var ia=void 0,Lb=void 0;if(I.numMorphTargets){I.__morphTargetsArrays=[];ia=0;for(Lb=I.numMorphTargets;ia<Lb;ia++)I.__morphTargetsArrays.push(new Float32Array(U*3))}if(I.numMorphNormals){I.__morphNormalsArrays=[];ia=0;for(Lb=I.numMorphNormals;ia<Lb;ia++)I.__morphNormalsArrays.push(new Float32Array(U*3))}I.__webglFaceCount=aa*
|
|
|
-3;I.__webglLineCount=ba*2;if($.attributes){if(I.__webglCustomAttributesList===void 0)I.__webglCustomAttributesList=[];var Ba=void 0;for(Ba in $.attributes){var Aa=$.attributes[Ba],la={},Ia;for(Ia in Aa)la[Ia]=Aa[Ia];if(!la.__webglInitialized||la.createUniqueBuffers){la.__webglInitialized=true;var Ha=1;la.type==="v2"?Ha=2:la.type==="v3"?Ha=3:la.type==="v4"?Ha=4:la.type==="c"&&(Ha=3);la.size=Ha;la.array=new Float32Array(U*Ha);la.buffer=g.createBuffer();la.buffer.belongsToAttribute=Ba;Aa.needsUpdate=
|
|
|
-true;la.__original=Aa}I.__webglCustomAttributesList.push(la)}}I.__inittedArrays=true;k.verticesNeedUpdate=true;k.morphTargetsNeedUpdate=true;k.elementsNeedUpdate=true;k.uvsNeedUpdate=true;k.normalsNeedUpdate=true;k.tangentsNeedUpdate=true;k.colorsNeedUpdate=true}}}else if(k instanceof THREE.BufferGeometry){var Mb=k,La=void 0,xb=void 0,Va=void 0;for(La in Mb.attributes){Va=La==="index"?g.ELEMENT_ARRAY_BUFFER:g.ARRAY_BUFFER;xb=Mb.attributes[La];xb.buffer=g.createBuffer();g.bindBuffer(Va,xb.buffer);
|
|
|
-g.bufferData(Va,xb.array,g.STATIC_DRAW)}}}else if(h instanceof THREE.Ribbon){k=h.geometry;if(!k.__webglVertexBuffer){var pb=k;pb.__webglVertexBuffer=g.createBuffer();pb.__webglColorBuffer=g.createBuffer();F.info.memory.geometries++;var Wa=k,Za=Wa.vertices.length;Wa.__vertexArray=new Float32Array(Za*3);Wa.__colorArray=new Float32Array(Za*3);Wa.__webglVertexCount=Za;k.verticesNeedUpdate=true;k.colorsNeedUpdate=true}}else if(h instanceof THREE.Line){k=h.geometry;if(!k.__webglVertexBuffer){var wb=k;wb.__webglVertexBuffer=
|
|
|
-g.createBuffer();wb.__webglColorBuffer=g.createBuffer();F.info.memory.geometries++;var kc=k,Wb=h,Nb=kc.vertices.length;kc.__vertexArray=new Float32Array(Nb*3);kc.__colorArray=new Float32Array(Nb*3);kc.__webglLineCount=Nb;b(kc,Wb);k.verticesNeedUpdate=true;k.colorsNeedUpdate=true}}else if(h instanceof THREE.ParticleSystem){k=h.geometry;if(!k.__webglVertexBuffer){var Vb=k;Vb.__webglVertexBuffer=g.createBuffer();Vb.__webglColorBuffer=g.createBuffer();F.info.geometries++;var Xb=k,hc=h,Ob=Xb.vertices.length;
|
|
|
-Xb.__vertexArray=new Float32Array(Ob*3);Xb.__colorArray=new Float32Array(Ob*3);Xb.__sortArray=[];Xb.__webglParticleCount=Ob;b(Xb,hc);k.verticesNeedUpdate=true;k.colorsNeedUpdate=true}}}if(!h.__webglActive){if(h instanceof THREE.Mesh){k=h.geometry;if(k instanceof THREE.BufferGeometry)m(i.__webglObjects,k,h);else for(j in k.geometryGroups){l=k.geometryGroups[j];m(i.__webglObjects,l,h)}}else if(h instanceof THREE.Ribbon||h instanceof THREE.Line||h instanceof THREE.ParticleSystem){k=h.geometry;m(i.__webglObjects,
|
|
|
-k,h)}else h instanceof THREE.ImmediateRenderObject||h.immediateRenderCallback?i.__webglObjectsImmediate.push({object:h,opaque:null,transparent:null}):h instanceof THREE.Sprite?i.__webglSprites.push(h):h instanceof THREE.LensFlare&&i.__webglFlares.push(h);h.__webglActive=true}a.__objectsAdded.splice(0,1)}for(;a.__objectsRemoved.length;){var Ra=a.__objectsRemoved[0],zc=a;Ra instanceof THREE.Mesh||Ra instanceof THREE.ParticleSystem||Ra instanceof THREE.Ribbon||Ra instanceof THREE.Line?s(zc.__webglObjects,
|
|
|
-Ra):Ra instanceof THREE.Sprite?q(zc.__webglSprites,Ra):Ra instanceof THREE.LensFlare?q(zc.__webglFlares,Ra):(Ra instanceof THREE.ImmediateRenderObject||Ra.immediateRenderCallback)&&s(zc.__webglObjectsImmediate,Ra);Ra.__webglActive=false;a.__objectsRemoved.splice(0,1)}for(var Pb=0,ic=a.__webglObjects.length;Pb<ic;Pb++){var Xa=a.__webglObjects[Pb].object,W=Xa.geometry,lc=void 0,Yb=void 0,Ma=void 0;if(Xa instanceof THREE.Mesh)if(W instanceof THREE.BufferGeometry){if(W.verticesNeedUpdate||W.elementsNeedUpdate||
|
|
|
-W.uvsNeedUpdate||W.normalsNeedUpdate||W.colorsNeedUpdate||W.tangentsNeedUpdate){var qb=W,Zb=g.DYNAMIC_DRAW,jc=!W.dynamic,$b=qb.attributes,Rc=$b.index,Sc=$b.position,Tc=$b.normal,Uc=$b.uv,Vc=$b.color,Wc=$b.tangent;if(qb.elementsNeedUpdate&&Rc!==void 0){g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,Rc.buffer);g.bufferData(g.ELEMENT_ARRAY_BUFFER,Rc.array,Zb)}if(qb.verticesNeedUpdate&&Sc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Sc.buffer);g.bufferData(g.ARRAY_BUFFER,Sc.array,Zb)}if(qb.normalsNeedUpdate&&Tc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,
|
|
|
-Tc.buffer);g.bufferData(g.ARRAY_BUFFER,Tc.array,Zb)}if(qb.uvsNeedUpdate&&Uc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Uc.buffer);g.bufferData(g.ARRAY_BUFFER,Uc.array,Zb)}if(qb.colorsNeedUpdate&&Vc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Vc.buffer);g.bufferData(g.ARRAY_BUFFER,Vc.array,Zb)}if(qb.tangentsNeedUpdate&&Wc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Wc.buffer);g.bufferData(g.ARRAY_BUFFER,Wc.array,Zb)}if(jc){var gc=void 0;for(gc in qb.attributes)delete qb.attributes[gc].array}}W.verticesNeedUpdate=false;
|
|
|
-W.elementsNeedUpdate=false;W.uvsNeedUpdate=false;W.normalsNeedUpdate=false;W.colorsNeedUpdate=false;W.tangentsNeedUpdate=false}else{for(var Xc=0,xc=W.geometryGroupsList.length;Xc<xc;Xc++){lc=W.geometryGroupsList[Xc];Ma=c(Xa,lc);Yb=Ma.attributes&&n(Ma);if(W.verticesNeedUpdate||W.morphTargetsNeedUpdate||W.elementsNeedUpdate||W.uvsNeedUpdate||W.normalsNeedUpdate||W.colorsNeedUpdate||W.tangentsNeedUpdate||Yb){var Y=lc,yc=Xa,Oa=g.DYNAMIC_DRAW,Oc=!W.dynamic,Qb=Ma;if(Y.__inittedArrays){var fd=d(Qb),Yc=Qb.vertexColors?
|
|
|
-Qb.vertexColors:false,gd=e(Qb),Ac=fd===THREE.SmoothShading,y=void 0,N=void 0,Ua=void 0,D=void 0,ac=void 0,yb=void 0,Ya=void 0,Bc=void 0,rb=void 0,bc=void 0,cc=void 0,O=void 0,P=void 0,Q=void 0,fa=void 0,$a=void 0,ab=void 0,bb=void 0,mc=void 0,cb=void 0,db=void 0,eb=void 0,nc=void 0,fb=void 0,gb=void 0,hb=void 0,oc=void 0,ib=void 0,jb=void 0,kb=void 0,pc=void 0,lb=void 0,mb=void 0,nb=void 0,qc=void 0,zb=void 0,Ab=void 0,Bb=void 0,Cc=void 0,Cb=void 0,Db=void 0,Eb=void 0,Dc=void 0,ca=void 0,hd=void 0,
|
|
|
-Fb=void 0,dc=void 0,ec=void 0,Ca=void 0,id=void 0,ya=void 0,za=void 0,Gb=void 0,sb=void 0,ua=0,xa=0,tb=0,ub=0,Sa=0,Ga=0,ga=0,Ja=0,va=0,B=0,X=0,v=0,Pa=void 0,Da=Y.__vertexArray,rc=Y.__uvArray,sc=Y.__uv2Array,Ta=Y.__normalArray,ma=Y.__tangentArray,Ea=Y.__colorArray,na=Y.__skinVertexAArray,oa=Y.__skinVertexBArray,pa=Y.__skinIndexArray,qa=Y.__skinWeightArray,Zc=Y.__morphTargetsArrays,$c=Y.__morphNormalsArrays,ad=Y.__webglCustomAttributesList,t=void 0,ob=Y.__faceArray,Qa=Y.__lineArray,Ka=yc.geometry,Pc=
|
|
|
-Ka.elementsNeedUpdate,jd=Ka.uvsNeedUpdate,Qc=Ka.normalsNeedUpdate,qd=Ka.tangentsNeedUpdate,rd=Ka.colorsNeedUpdate,sd=Ka.morphTargetsNeedUpdate,Rb=Ka.vertices,da=Y.faces3,ea=Y.faces4,wa=Ka.faces,bd=Ka.faceVertexUvs[0],cd=Ka.faceVertexUvs[1],Sb=Ka.skinVerticesA,Tb=Ka.skinVerticesB,Ub=Ka.skinIndices,Hb=Ka.skinWeights,Ib=Ka.morphTargets,Ec=Ka.morphNormals;if(Ka.verticesNeedUpdate){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];O=Rb[D.a];P=Rb[D.b];Q=Rb[D.c];Da[xa]=O.x;Da[xa+1]=O.y;Da[xa+2]=O.z;Da[xa+3]=P.x;
|
|
|
-Da[xa+4]=P.y;Da[xa+5]=P.z;Da[xa+6]=Q.x;Da[xa+7]=Q.y;Da[xa+8]=Q.z;xa=xa+9}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];O=Rb[D.a];P=Rb[D.b];Q=Rb[D.c];fa=Rb[D.d];Da[xa]=O.x;Da[xa+1]=O.y;Da[xa+2]=O.z;Da[xa+3]=P.x;Da[xa+4]=P.y;Da[xa+5]=P.z;Da[xa+6]=Q.x;Da[xa+7]=Q.y;Da[xa+8]=Q.z;Da[xa+9]=fa.x;Da[xa+10]=fa.y;Da[xa+11]=fa.z;xa=xa+12}g.bindBuffer(g.ARRAY_BUFFER,Y.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,Da,Oa)}if(sd){Ca=0;for(id=Ib.length;Ca<id;Ca++){y=X=0;for(N=da.length;y<N;y++){Gb=da[y];D=wa[Gb];O=
|
|
|
-Ib[Ca].vertices[D.a];P=Ib[Ca].vertices[D.b];Q=Ib[Ca].vertices[D.c];ya=Zc[Ca];ya[X]=O.x;ya[X+1]=O.y;ya[X+2]=O.z;ya[X+3]=P.x;ya[X+4]=P.y;ya[X+5]=P.z;ya[X+6]=Q.x;ya[X+7]=Q.y;ya[X+8]=Q.z;if(Qb.morphNormals){if(Ac){sb=Ec[Ca].vertexNormals[Gb];cb=sb.a;db=sb.b;eb=sb.c}else eb=db=cb=Ec[Ca].faceNormals[Gb];za=$c[Ca];za[X]=cb.x;za[X+1]=cb.y;za[X+2]=cb.z;za[X+3]=db.x;za[X+4]=db.y;za[X+5]=db.z;za[X+6]=eb.x;za[X+7]=eb.y;za[X+8]=eb.z}X=X+9}y=0;for(N=ea.length;y<N;y++){Gb=ea[y];D=wa[Gb];O=Ib[Ca].vertices[D.a];P=
|
|
|
-Ib[Ca].vertices[D.b];Q=Ib[Ca].vertices[D.c];fa=Ib[Ca].vertices[D.d];ya=Zc[Ca];ya[X]=O.x;ya[X+1]=O.y;ya[X+2]=O.z;ya[X+3]=P.x;ya[X+4]=P.y;ya[X+5]=P.z;ya[X+6]=Q.x;ya[X+7]=Q.y;ya[X+8]=Q.z;ya[X+9]=fa.x;ya[X+10]=fa.y;ya[X+11]=fa.z;if(Qb.morphNormals){if(Ac){sb=Ec[Ca].vertexNormals[Gb];cb=sb.a;db=sb.b;eb=sb.c;nc=sb.d}else nc=eb=db=cb=Ec[Ca].faceNormals[Gb];za=$c[Ca];za[X]=cb.x;za[X+1]=cb.y;za[X+2]=cb.z;za[X+3]=db.x;za[X+4]=db.y;za[X+5]=db.z;za[X+6]=eb.x;za[X+7]=eb.y;za[X+8]=eb.z;za[X+9]=nc.x;za[X+10]=nc.y;
|
|
|
-za[X+11]=nc.z}X=X+12}g.bindBuffer(g.ARRAY_BUFFER,Y.__webglMorphTargetsBuffers[Ca]);g.bufferData(g.ARRAY_BUFFER,Zc[Ca],Oa);if(Qb.morphNormals){g.bindBuffer(g.ARRAY_BUFFER,Y.__webglMorphNormalsBuffers[Ca]);g.bufferData(g.ARRAY_BUFFER,$c[Ca],Oa)}}}if(Hb.length){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];ib=Hb[D.a];jb=Hb[D.b];kb=Hb[D.c];qa[B]=ib.x;qa[B+1]=ib.y;qa[B+2]=ib.z;qa[B+3]=ib.w;qa[B+4]=jb.x;qa[B+5]=jb.y;qa[B+6]=jb.z;qa[B+7]=jb.w;qa[B+8]=kb.x;qa[B+9]=kb.y;qa[B+10]=kb.z;qa[B+11]=kb.w;lb=Ub[D.a];mb=
|
|
|
-Ub[D.b];nb=Ub[D.c];pa[B]=lb.x;pa[B+1]=lb.y;pa[B+2]=lb.z;pa[B+3]=lb.w;pa[B+4]=mb.x;pa[B+5]=mb.y;pa[B+6]=mb.z;pa[B+7]=mb.w;pa[B+8]=nb.x;pa[B+9]=nb.y;pa[B+10]=nb.z;pa[B+11]=nb.w;zb=Sb[D.a];Ab=Sb[D.b];Bb=Sb[D.c];na[B]=zb.x;na[B+1]=zb.y;na[B+2]=zb.z;na[B+3]=1;na[B+4]=Ab.x;na[B+5]=Ab.y;na[B+6]=Ab.z;na[B+7]=1;na[B+8]=Bb.x;na[B+9]=Bb.y;na[B+10]=Bb.z;na[B+11]=1;Cb=Tb[D.a];Db=Tb[D.b];Eb=Tb[D.c];oa[B]=Cb.x;oa[B+1]=Cb.y;oa[B+2]=Cb.z;oa[B+3]=1;oa[B+4]=Db.x;oa[B+5]=Db.y;oa[B+6]=Db.z;oa[B+7]=1;oa[B+8]=Eb.x;oa[B+
|
|
|
+g.texParameteri(a,g.TEXTURE_MIN_FILTER,E(b.minFilter))}Za&&b.type!==THREE.FloatType&&g.texParameterf(a,Za.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(b.anisotropy,zc))}function w(a,b){g.bindRenderbuffer(g.RENDERBUFFER,a);if(b.depthBuffer&&!b.stencilBuffer){g.renderbufferStorage(g.RENDERBUFFER,g.DEPTH_COMPONENT16,b.width,b.height);g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_ATTACHMENT,g.RENDERBUFFER,a)}else if(b.depthBuffer&&b.stencilBuffer){g.renderbufferStorage(g.RENDERBUFFER,g.DEPTH_STENCIL,b.width,
|
|
|
+b.height);g.framebufferRenderbuffer(g.FRAMEBUFFER,g.DEPTH_STENCIL_ATTACHMENT,g.RENDERBUFFER,a)}else g.renderbufferStorage(g.RENDERBUFFER,g.RGBA4,b.width,b.height)}function E(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?g.NEAREST:g.LINEAR}function A(a){return a===THREE.RepeatWrapping?g.REPEAT:a===THREE.ClampToEdgeWrapping?g.CLAMP_TO_EDGE:a===THREE.MirroredRepeatWrapping?g.MIRRORED_REPEAT:a===THREE.NearestFilter?g.NEAREST:a===THREE.NearestMipMapNearestFilter?
|
|
|
+g.NEAREST_MIPMAP_NEAREST:a===THREE.NearestMipMapLinearFilter?g.NEAREST_MIPMAP_LINEAR:a===THREE.LinearFilter?g.LINEAR:a===THREE.LinearMipMapNearestFilter?g.LINEAR_MIPMAP_NEAREST:a===THREE.LinearMipMapLinearFilter?g.LINEAR_MIPMAP_LINEAR:a===THREE.UnsignedByteType?g.UNSIGNED_BYTE:a===THREE.UnsignedShort4444Type?g.UNSIGNED_SHORT_4_4_4_4:a===THREE.UnsignedShort5551Type?g.UNSIGNED_SHORT_5_5_5_1:a===THREE.UnsignedShort565Type?g.UNSIGNED_SHORT_5_6_5:a===THREE.ByteType?g.BYTE:a===THREE.ShortType?g.SHORT:a===
|
|
|
+THREE.UnsignedShortType?g.UNSIGNED_SHORT:a===THREE.IntType?g.INT:a===THREE.UnsignedIntType?g.UNSIGNED_INT:a===THREE.FloatType?g.FLOAT:a===THREE.AlphaFormat?g.ALPHA:a===THREE.RGBFormat?g.RGB:a===THREE.RGBAFormat?g.RGBA:a===THREE.LuminanceFormat?g.LUMINANCE:a===THREE.LuminanceAlphaFormat?g.LUMINANCE_ALPHA:a===THREE.AddEquation?g.FUNC_ADD:a===THREE.SubtractEquation?g.FUNC_SUBTRACT:a===THREE.ReverseSubtractEquation?g.FUNC_REVERSE_SUBTRACT:a===THREE.ZeroFactor?g.ZERO:a===THREE.OneFactor?g.ONE:a===THREE.SrcColorFactor?
|
|
|
+g.SRC_COLOR:a===THREE.OneMinusSrcColorFactor?g.ONE_MINUS_SRC_COLOR:a===THREE.SrcAlphaFactor?g.SRC_ALPHA:a===THREE.OneMinusSrcAlphaFactor?g.ONE_MINUS_SRC_ALPHA:a===THREE.DstAlphaFactor?g.DST_ALPHA:a===THREE.OneMinusDstAlphaFactor?g.ONE_MINUS_DST_ALPHA:a===THREE.DstColorFactor?g.DST_COLOR:a===THREE.OneMinusDstColorFactor?g.ONE_MINUS_DST_COLOR:a===THREE.SrcAlphaSaturateFactor?g.SRC_ALPHA_SATURATE:0}console.log("THREE.WebGLRenderer",THREE.REVISION);var a=a||{},G=a.canvas!==void 0?a.canvas:document.createElement("canvas"),
|
|
|
+C=a.precision!==void 0?a.precision:"highp",L=a.alpha!==void 0?a.alpha:true,I=a.premultipliedAlpha!==void 0?a.premultipliedAlpha:true,T=a.antialias!==void 0?a.antialias:false,V=a.stencil!==void 0?a.stencil:true,R=a.preserveDrawingBuffer!==void 0?a.preserveDrawingBuffer:false,z=a.clearColor!==void 0?new THREE.Color(a.clearColor):new THREE.Color(0),K=a.clearAlpha!==void 0?a.clearAlpha:0,U=a.maxLights!==void 0?a.maxLights:4;this.domElement=G;this.context=null;this.autoUpdateScene=this.autoUpdateObjects=
|
|
|
+this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=true;this.shadowMapEnabled=this.physicallyBasedShading=this.gammaOutput=this.gammaInput=false;this.shadowMapCullFrontFaces=this.shadowMapSoft=this.shadowMapAutoUpdate=true;this.shadowMapCascade=this.shadowMapDebug=false;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=true;this.renderPluginsPre=[];this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,
|
|
|
+vertices:0,faces:0,points:0}};var F=this,ba=[],ia=0,J=null,ka=null,$=-1,S=null,aa=null,sa=0,ha=-1,M=-1,ta=-1,Aa=-1,la=-1,Ia=-1,Ha=-1,Ba=-1,Va=null,wb=null,Lb=null,Mb=null,xb=0,Nb=0,Ob=0,Pb=0,gc=0,xc=0,ic=new THREE.Frustum,Wb=new THREE.Matrix4,Vb=new THREE.Matrix4,pb=new THREE.Vector4,La=new THREE.Vector3,Wa=true,yc={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],angles:[],
|
|
|
+exponents:[]}},g,Za;try{if(!(g=G.getContext("experimental-webgl",{alpha:L,premultipliedAlpha:I,antialias:T,stencil:V,preserveDrawingBuffer:R})))throw"Error creating WebGL context.";}catch(Qc){console.error(Qc)}a=g.getExtension("OES_texture_float");L=g.getExtension("OES_standard_derivatives");Za=g.getExtension("EXT_texture_filter_anisotropic")||g.getExtension("MOZ_EXT_texture_filter_anisotropic")||g.getExtension("WEBKIT_EXT_texture_filter_anisotropic");a||console.log("THREE.WebGLRenderer: Float textures not supported.");
|
|
|
+L||console.log("THREE.WebGLRenderer: Standard derivatives not supported.");Za||console.log("THREE.WebGLRenderer: Anisotropic texture filtering not supported.");g.clearColor(0,0,0,1);g.clearDepth(1);g.clearStencil(0);g.enable(g.DEPTH_TEST);g.depthFunc(g.LEQUAL);g.frontFace(g.CCW);g.cullFace(g.BACK);g.enable(g.CULL_FACE);g.enable(g.BLEND);g.blendEquation(g.FUNC_ADD);g.blendFunc(g.SRC_ALPHA,g.ONE_MINUS_SRC_ALPHA);g.clearColor(z.r,z.g,z.b,K);this.context=g;L=g.getParameter(g.MAX_VERTEX_TEXTURE_IMAGE_UNITS);
|
|
|
+g.getParameter(g.MAX_TEXTURE_SIZE);var Pc=g.getParameter(g.MAX_CUBE_MAP_TEXTURE_SIZE),zc=Za?g.getParameter(Za.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,jc=L>0,hc=jc&&a;this.getContext=function(){return g};this.supportsVertexTextures=function(){return jc};this.getMaxAnisotropy=function(){return zc};this.setSize=function(a,b){G.width=a;G.height=b;this.setViewport(0,0,G.width,G.height)};this.setViewport=function(a,b,c,d){xb=a!==void 0?a:0;Nb=b!==void 0?b:0;Ob=c!==void 0?c:G.width;Pb=d!==void 0?d:G.height;g.viewport(xb,
|
|
|
+Nb,Ob,Pb)};this.setScissor=function(a,b,c,d){g.scissor(a,b,c,d)};this.enableScissorTest=function(a){a?g.enable(g.SCISSOR_TEST):g.disable(g.SCISSOR_TEST)};this.setClearColorHex=function(a,b){z.setHex(a);K=b;g.clearColor(z.r,z.g,z.b,K)};this.setClearColor=function(a,b){z.copy(a);K=b;g.clearColor(z.r,z.g,z.b,K)};this.getClearColor=function(){return z};this.getClearAlpha=function(){return K};this.clear=function(a,b,c){var d=0;if(a===void 0||a)d=d|g.COLOR_BUFFER_BIT;if(b===void 0||b)d=d|g.DEPTH_BUFFER_BIT;
|
|
|
+if(c===void 0||c)d=d|g.STENCIL_BUFFER_BIT;g.clear(d)};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.deallocateObject=function(a){if(a.__webglInit){a.__webglInit=false;delete a._modelViewMatrix;delete a._normalMatrix;delete a._normalMatrixArray;delete a._modelViewMatrixArray;delete a._objectMatrixArray;if(a instanceof
|
|
|
+THREE.Mesh)for(var b in a.geometry.geometryGroups){var c=a.geometry.geometryGroups[b];g.deleteBuffer(c.__webglVertexBuffer);g.deleteBuffer(c.__webglNormalBuffer);g.deleteBuffer(c.__webglTangentBuffer);g.deleteBuffer(c.__webglColorBuffer);g.deleteBuffer(c.__webglUVBuffer);g.deleteBuffer(c.__webglUV2Buffer);g.deleteBuffer(c.__webglSkinVertexABuffer);g.deleteBuffer(c.__webglSkinVertexBBuffer);g.deleteBuffer(c.__webglSkinIndicesBuffer);g.deleteBuffer(c.__webglSkinWeightsBuffer);g.deleteBuffer(c.__webglFaceBuffer);
|
|
|
+g.deleteBuffer(c.__webglLineBuffer);var d=void 0,e=void 0;if(c.numMorphTargets){d=0;for(e=c.numMorphTargets;d<e;d++)g.deleteBuffer(c.__webglMorphTargetsBuffers[d])}if(c.numMorphNormals){d=0;for(e=c.numMorphNormals;d<e;d++)g.deleteBuffer(c.__webglMorphNormalsBuffers[d])}if(c.__webglCustomAttributesList){d=void 0;for(d in c.__webglCustomAttributesList)g.deleteBuffer(c.__webglCustomAttributesList[d].buffer)}F.info.memory.geometries--}else if(a instanceof THREE.Ribbon){a=a.geometry;g.deleteBuffer(a.__webglVertexBuffer);
|
|
|
+g.deleteBuffer(a.__webglColorBuffer);F.info.memory.geometries--}else if(a instanceof THREE.Line){a=a.geometry;g.deleteBuffer(a.__webglVertexBuffer);g.deleteBuffer(a.__webglColorBuffer);F.info.memory.geometries--}else if(a instanceof THREE.ParticleSystem){a=a.geometry;g.deleteBuffer(a.__webglVertexBuffer);g.deleteBuffer(a.__webglColorBuffer);F.info.memory.geometries--}}};this.deallocateTexture=function(a){if(a.__webglInit){a.__webglInit=false;g.deleteTexture(a.__webglTexture);F.info.memory.textures--}};
|
|
|
+this.deallocateRenderTarget=function(a){if(a&&a.__webglTexture){g.deleteTexture(a.__webglTexture);if(a instanceof THREE.WebGLRenderTargetCube)for(var b=0;b<6;b++){g.deleteFramebuffer(a.__webglFramebuffer[b]);g.deleteRenderbuffer(a.__webglRenderbuffer[b])}else{g.deleteFramebuffer(a.__webglFramebuffer);g.deleteRenderbuffer(a.__webglRenderbuffer)}}};this.deallocateMaterial=function(a){var b=a.program;if(b){a.program=void 0;var c,d,e=false,a=0;for(c=ba.length;a<c;a++){d=ba[a];if(d.program===b){d.usedTimes--;
|
|
|
+d.usedTimes===0&&(e=true);break}}if(e){e=[];a=0;for(c=ba.length;a<c;a++){d=ba[a];d.program!==b&&e.push(d)}ba=e;g.deleteProgram(b);F.info.memory.programs--}}};this.updateShadowMap=function(a,b){J=null;$=S=Ba=Ha=ta=-1;Wa=true;M=ha=-1;this.shadowMapPlugin.update(a,b)};this.renderBufferImmediate=function(a,b,c){if(a.hasPositions&&!a.__webglVertexBuffer)a.__webglVertexBuffer=g.createBuffer();if(a.hasNormals&&!a.__webglNormalBuffer)a.__webglNormalBuffer=g.createBuffer();if(a.hasUvs&&!a.__webglUvBuffer)a.__webglUvBuffer=
|
|
|
+g.createBuffer();if(a.hasColors&&!a.__webglColorBuffer)a.__webglColorBuffer=g.createBuffer();if(a.hasPositions){g.bindBuffer(g.ARRAY_BUFFER,a.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,a.positionArray,g.DYNAMIC_DRAW);g.enableVertexAttribArray(b.attributes.position);g.vertexAttribPointer(b.attributes.position,3,g.FLOAT,false,0,0)}if(a.hasNormals){g.bindBuffer(g.ARRAY_BUFFER,a.__webglNormalBuffer);if(c.shading===THREE.FlatShading){var d,e,f,h,i,j,k,l,m,n,o,q=a.count*3;for(o=0;o<q;o=o+9){n=a.normalArray;
|
|
|
+d=n[o];e=n[o+1];f=n[o+2];h=n[o+3];j=n[o+4];l=n[o+5];i=n[o+6];k=n[o+7];m=n[o+8];d=(d+h+i)/3;e=(e+j+k)/3;f=(f+l+m)/3;n[o]=d;n[o+1]=e;n[o+2]=f;n[o+3]=d;n[o+4]=e;n[o+5]=f;n[o+6]=d;n[o+7]=e;n[o+8]=f}}g.bufferData(g.ARRAY_BUFFER,a.normalArray,g.DYNAMIC_DRAW);g.enableVertexAttribArray(b.attributes.normal);g.vertexAttribPointer(b.attributes.normal,3,g.FLOAT,false,0,0)}if(a.hasUvs&&c.map){g.bindBuffer(g.ARRAY_BUFFER,a.__webglUvBuffer);g.bufferData(g.ARRAY_BUFFER,a.uvArray,g.DYNAMIC_DRAW);g.enableVertexAttribArray(b.attributes.uv);
|
|
|
+g.vertexAttribPointer(b.attributes.uv,2,g.FLOAT,false,0,0)}if(a.hasColors&&c.vertexColors!==THREE.NoColors){g.bindBuffer(g.ARRAY_BUFFER,a.__webglColorBuffer);g.bufferData(g.ARRAY_BUFFER,a.colorArray,g.DYNAMIC_DRAW);g.enableVertexAttribArray(b.attributes.color);g.vertexAttribPointer(b.attributes.color,3,g.FLOAT,false,0,0)}g.drawArrays(g.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,e,f){if(d.visible!==false){c=r(a,b,c,d,f);a=c.attributes;b=false;d=e.id*16777215+c.id*2+(d.wireframe?
|
|
|
+1:0);if(d!==S){S=d;b=true}if(f instanceof THREE.Mesh){f=e.offsets;f.length>1&&(b=true);d=0;for(c=f.length;d<c;++d){var h=f[d].index;if(b){var i=e.attributes.position,j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.position,j,g.FLOAT,false,0,h*j*4);i=e.attributes.normal;if(a.normal>=0&&i){j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.normal,j,g.FLOAT,false,0,h*j*4)}i=e.attributes.uv;if(a.uv>=0&&i)if(i.buffer){j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,
|
|
|
+i.buffer);g.vertexAttribPointer(a.uv,j,g.FLOAT,false,0,h*j*4);g.enableVertexAttribArray(a.uv)}else g.disableVertexAttribArray(a.uv);i=e.attributes.color;if(a.color>=0&&i){j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.color,j,g.FLOAT,false,0,h*j*4)}i=e.attributes.tangent;if(a.tangent>=0&&i){j=i.itemSize;g.bindBuffer(g.ARRAY_BUFFER,i.buffer);g.vertexAttribPointer(a.tangent,j,g.FLOAT,false,0,h*j*4)}g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,e.attributes.index.buffer)}g.drawElements(g.TRIANGLES,
|
|
|
+f[d].count,g.UNSIGNED_SHORT,f[d].start*2);F.info.render.calls++;F.info.render.vertices=F.info.render.vertices+f[d].count;F.info.render.faces=F.info.render.faces+f[d].count/3}}}};this.renderBuffer=function(a,b,c,d,e,f){if(d.visible!==false){var h,i,c=r(a,b,c,d,f),b=c.attributes,a=false,c=e.id*16777215+c.id*2+(d.wireframe?1:0);if(c!==S){S=c;a=true}if(!d.morphTargets&&b.position>=0){if(a){g.bindBuffer(g.ARRAY_BUFFER,e.__webglVertexBuffer);g.vertexAttribPointer(b.position,3,g.FLOAT,false,0,0)}}else if(f.morphTargetBase){c=
|
|
|
+d.program.attributes;if(f.morphTargetBase!==-1){g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[f.morphTargetBase]);g.vertexAttribPointer(c.position,3,g.FLOAT,false,0,0)}else if(c.position>=0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglVertexBuffer);g.vertexAttribPointer(c.position,3,g.FLOAT,false,0,0)}if(f.morphTargetForcedOrder.length){var k=0;i=f.morphTargetForcedOrder;for(h=f.morphTargetInfluences;k<d.numSupportedMorphTargets&&k<i.length;){g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[i[k]]);
|
|
|
+g.vertexAttribPointer(c["morphTarget"+k],3,g.FLOAT,false,0,0);if(d.morphNormals){g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[i[k]]);g.vertexAttribPointer(c["morphNormal"+k],3,g.FLOAT,false,0,0)}f.__webglMorphTargetInfluences[k]=h[i[k]];k++}}else{i=[];h=f.morphTargetInfluences;var l,m=h.length;for(l=0;l<m;l++){k=h[l];k>0&&i.push([l,k])}if(i.length>d.numSupportedMorphTargets){i.sort(j);i.length=d.numSupportedMorphTargets}else i.length>d.numSupportedMorphNormals?i.sort(j):i.length===0&&
|
|
|
+i.push([0,0]);for(k=0;k<d.numSupportedMorphTargets;){if(i[k]){l=i[k][0];g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphTargetsBuffers[l]);g.vertexAttribPointer(c["morphTarget"+k],3,g.FLOAT,false,0,0);if(d.morphNormals){g.bindBuffer(g.ARRAY_BUFFER,e.__webglMorphNormalsBuffers[l]);g.vertexAttribPointer(c["morphNormal"+k],3,g.FLOAT,false,0,0)}f.__webglMorphTargetInfluences[k]=h[l]}else{g.vertexAttribPointer(c["morphTarget"+k],3,g.FLOAT,false,0,0);d.morphNormals&&g.vertexAttribPointer(c["morphNormal"+k],3,
|
|
|
+g.FLOAT,false,0,0);f.__webglMorphTargetInfluences[k]=0}k++}}d.program.uniforms.morphTargetInfluences!==null&&g.uniform1fv(d.program.uniforms.morphTargetInfluences,f.__webglMorphTargetInfluences)}if(a){if(e.__webglCustomAttributesList){h=0;for(i=e.__webglCustomAttributesList.length;h<i;h++){c=e.__webglCustomAttributesList[h];if(b[c.buffer.belongsToAttribute]>=0){g.bindBuffer(g.ARRAY_BUFFER,c.buffer);g.vertexAttribPointer(b[c.buffer.belongsToAttribute],c.size,g.FLOAT,false,0,0)}}}if(b.color>=0){g.bindBuffer(g.ARRAY_BUFFER,
|
|
|
+e.__webglColorBuffer);g.vertexAttribPointer(b.color,3,g.FLOAT,false,0,0)}if(b.normal>=0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglNormalBuffer);g.vertexAttribPointer(b.normal,3,g.FLOAT,false,0,0)}if(b.tangent>=0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglTangentBuffer);g.vertexAttribPointer(b.tangent,4,g.FLOAT,false,0,0)}if(b.uv>=0)if(e.__webglUVBuffer){g.bindBuffer(g.ARRAY_BUFFER,e.__webglUVBuffer);g.vertexAttribPointer(b.uv,2,g.FLOAT,false,0,0);g.enableVertexAttribArray(b.uv)}else g.disableVertexAttribArray(b.uv);
|
|
|
+if(b.uv2>=0)if(e.__webglUV2Buffer){g.bindBuffer(g.ARRAY_BUFFER,e.__webglUV2Buffer);g.vertexAttribPointer(b.uv2,2,g.FLOAT,false,0,0);g.enableVertexAttribArray(b.uv2)}else g.disableVertexAttribArray(b.uv2);if(d.skinning&&b.skinVertexA>=0&&b.skinVertexB>=0&&b.skinIndex>=0&&b.skinWeight>=0){g.bindBuffer(g.ARRAY_BUFFER,e.__webglSkinVertexABuffer);g.vertexAttribPointer(b.skinVertexA,4,g.FLOAT,false,0,0);g.bindBuffer(g.ARRAY_BUFFER,e.__webglSkinVertexBBuffer);g.vertexAttribPointer(b.skinVertexB,4,g.FLOAT,
|
|
|
+false,0,0);g.bindBuffer(g.ARRAY_BUFFER,e.__webglSkinIndicesBuffer);g.vertexAttribPointer(b.skinIndex,4,g.FLOAT,false,0,0);g.bindBuffer(g.ARRAY_BUFFER,e.__webglSkinWeightsBuffer);g.vertexAttribPointer(b.skinWeight,4,g.FLOAT,false,0,0)}}if(f instanceof THREE.Mesh){if(d.wireframe){d=d.wireframeLinewidth;if(d!==Mb){g.lineWidth(d);Mb=d}a&&g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,e.__webglLineBuffer);g.drawElements(g.LINES,e.__webglLineCount,g.UNSIGNED_SHORT,0)}else{a&&g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,e.__webglFaceBuffer);
|
|
|
+g.drawElements(g.TRIANGLES,e.__webglFaceCount,g.UNSIGNED_SHORT,0)}F.info.render.calls++;F.info.render.vertices=F.info.render.vertices+e.__webglFaceCount;F.info.render.faces=F.info.render.faces+e.__webglFaceCount/3}else if(f instanceof THREE.Line){f=f.type===THREE.LineStrip?g.LINE_STRIP:g.LINES;d=d.linewidth;if(d!==Mb){g.lineWidth(d);Mb=d}g.drawArrays(f,0,e.__webglLineCount);F.info.render.calls++}else if(f instanceof THREE.ParticleSystem){g.drawArrays(g.POINTS,0,e.__webglParticleCount);F.info.render.calls++;
|
|
|
+F.info.render.points=F.info.render.points+e.__webglParticleCount}else if(f instanceof THREE.Ribbon){g.drawArrays(g.TRIANGLE_STRIP,0,e.__webglVertexCount);F.info.render.calls++}}};this.render=function(a,b,c,d){var e,f,j,m,n=a.__lights,o=a.fog;$=-1;Wa=true;if(b.parent===void 0){console.warn("DEPRECATED: Camera hasn't been added to a Scene. Adding it...");a.add(b)}this.autoUpdateScene&&a.updateMatrixWorld();if(!b._viewMatrixArray)b._viewMatrixArray=new Float32Array(16);if(!b._projectionMatrixArray)b._projectionMatrixArray=
|
|
|
+new Float32Array(16);b.matrixWorldInverse.getInverse(b.matrixWorld);b.matrixWorldInverse.flattenToArray(b._viewMatrixArray);b.projectionMatrix.flattenToArray(b._projectionMatrixArray);Wb.multiply(b.projectionMatrix,b.matrixWorldInverse);ic.setFromMatrix(Wb);this.autoUpdateObjects&&this.initWebGLObjects(a);l(this.renderPluginsPre,a,b);F.info.render.calls=0;F.info.render.vertices=0;F.info.render.faces=0;F.info.render.points=0;this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,
|
|
|
+this.autoClearDepth,this.autoClearStencil);m=a.__webglObjects;d=0;for(e=m.length;d<e;d++){f=m[d];j=f.object;f.render=false;if(j.visible&&(!(j instanceof THREE.Mesh||j instanceof THREE.ParticleSystem)||!j.frustumCulled||ic.contains(j))){p(j,b);var q=f,r=q.object,s=q.buffer,u=void 0,u=u=void 0,u=r.material;if(u instanceof THREE.MeshFaceMaterial){u=s.materialIndex;if(u>=0){u=r.geometry.materials[u];if(u.transparent){q.transparent=u;q.opaque=null}else{q.opaque=u;q.transparent=null}}}else if(u)if(u.transparent){q.transparent=
|
|
|
+u;q.opaque=null}else{q.opaque=u;q.transparent=null}f.render=true;if(this.sortObjects)if(j.renderDepth)f.z=j.renderDepth;else{pb.copy(j.matrixWorld.getPosition());Wb.multiplyVector3(pb);f.z=pb.z}}}this.sortObjects&&m.sort(h);m=a.__webglObjectsImmediate;d=0;for(e=m.length;d<e;d++){f=m[d];j=f.object;if(j.visible){p(j,b);j=f.object.material;if(j.transparent){f.transparent=j;f.opaque=null}else{f.opaque=j;f.transparent=null}}}if(a.overrideMaterial){d=a.overrideMaterial;this.setBlending(d.blending,d.blendEquation,
|
|
|
+d.blendSrc,d.blendDst);this.setDepthTest(d.depthTest);this.setDepthWrite(d.depthWrite);x(d.polygonOffset,d.polygonOffsetFactor,d.polygonOffsetUnits);k(a.__webglObjects,false,"",b,n,o,true,d);i(a.__webglObjectsImmediate,"",b,n,o,false,d)}else{this.setBlending(THREE.NormalBlending);k(a.__webglObjects,true,"opaque",b,n,o,false);i(a.__webglObjectsImmediate,"opaque",b,n,o,false);k(a.__webglObjects,false,"transparent",b,n,o,true);i(a.__webglObjectsImmediate,"transparent",b,n,o,true)}l(this.renderPluginsPost,
|
|
|
+a,b);if(c&&c.generateMipmaps&&c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter)if(c instanceof THREE.WebGLRenderTargetCube){g.bindTexture(g.TEXTURE_CUBE_MAP,c.__webglTexture);g.generateMipmap(g.TEXTURE_CUBE_MAP);g.bindTexture(g.TEXTURE_CUBE_MAP,null)}else{g.bindTexture(g.TEXTURE_2D,c.__webglTexture);g.generateMipmap(g.TEXTURE_2D);g.bindTexture(g.TEXTURE_2D,null)}this.setDepthTest(true);this.setDepthWrite(true)};this.renderImmediateObject=function(a,b,c,d,e){var f=r(a,b,c,d,e);S=
|
|
|
+-1;F.setObjectFaces(e);e.immediateRenderCallback?e.immediateRenderCallback(f,g,ic):e.render(function(a){F.renderBufferImmediate(a,f,d)})};this.initWebGLObjects=function(a){if(!a.__webglObjects){a.__webglObjects=[];a.__webglObjectsImmediate=[];a.__webglSprites=[];a.__webglFlares=[]}for(;a.__objectsAdded.length;){var h=a.__objectsAdded[0],i=a,j=void 0,k=void 0,l=void 0;if(!h.__webglInit){h.__webglInit=true;h._modelViewMatrix=new THREE.Matrix4;h._normalMatrix=new THREE.Matrix3;if(h instanceof THREE.Mesh){k=
|
|
|
+h.geometry;if(k instanceof THREE.Geometry){if(k.geometryGroups===void 0){var p=k,r=void 0,u=void 0,w=void 0,x=void 0,z=void 0,A=void 0,C=void 0,E={},H=p.morphTargets.length,L=p.morphNormals.length;p.geometryGroups={};r=0;for(u=p.faces.length;r<u;r++){w=p.faces[r];x=w.materialIndex;A=x!==void 0?x:-1;E[A]===void 0&&(E[A]={hash:A,counter:0});C=E[A].hash+"_"+E[A].counter;p.geometryGroups[C]===void 0&&(p.geometryGroups[C]={faces3:[],faces4:[],materialIndex:x,vertices:0,numMorphTargets:H,numMorphNormals:L});
|
|
|
+z=w instanceof THREE.Face3?3:4;if(p.geometryGroups[C].vertices+z>65535){E[A].counter=E[A].counter+1;C=E[A].hash+"_"+E[A].counter;p.geometryGroups[C]===void 0&&(p.geometryGroups[C]={faces3:[],faces4:[],materialIndex:x,vertices:0,numMorphTargets:H,numMorphNormals:L})}w instanceof THREE.Face3?p.geometryGroups[C].faces3.push(r):p.geometryGroups[C].faces4.push(r);p.geometryGroups[C].vertices=p.geometryGroups[C].vertices+z}p.geometryGroupsList=[];var K=void 0;for(K in p.geometryGroups){p.geometryGroups[K].id=
|
|
|
+sa++;p.geometryGroupsList.push(p.geometryGroups[K])}}for(j in k.geometryGroups){l=k.geometryGroups[j];if(!l.__webglVertexBuffer){var G=l;G.__webglVertexBuffer=g.createBuffer();G.__webglNormalBuffer=g.createBuffer();G.__webglTangentBuffer=g.createBuffer();G.__webglColorBuffer=g.createBuffer();G.__webglUVBuffer=g.createBuffer();G.__webglUV2Buffer=g.createBuffer();G.__webglSkinVertexABuffer=g.createBuffer();G.__webglSkinVertexBBuffer=g.createBuffer();G.__webglSkinIndicesBuffer=g.createBuffer();G.__webglSkinWeightsBuffer=
|
|
|
+g.createBuffer();G.__webglFaceBuffer=g.createBuffer();G.__webglLineBuffer=g.createBuffer();var J=void 0,M=void 0;if(G.numMorphTargets){G.__webglMorphTargetsBuffers=[];J=0;for(M=G.numMorphTargets;J<M;J++)G.__webglMorphTargetsBuffers.push(g.createBuffer())}if(G.numMorphNormals){G.__webglMorphNormalsBuffers=[];J=0;for(M=G.numMorphNormals;J<M;J++)G.__webglMorphNormalsBuffers.push(g.createBuffer())}F.info.memory.geometries++;var I=l,R=h,S=R.geometry,T=I.faces3,V=I.faces4,U=T.length*3+V.length*4,aa=T.length*
|
|
|
+1+V.length*2,ba=T.length*3+V.length*4,$=c(R,I),ha=e($),ka=d($),ta=$.vertexColors?$.vertexColors:false;I.__vertexArray=new Float32Array(U*3);if(ka)I.__normalArray=new Float32Array(U*3);if(S.hasTangents)I.__tangentArray=new Float32Array(U*4);if(ta)I.__colorArray=new Float32Array(U*3);if(ha){if(S.faceUvs.length>0||S.faceVertexUvs.length>0)I.__uvArray=new Float32Array(U*2);if(S.faceUvs.length>1||S.faceVertexUvs.length>1)I.__uv2Array=new Float32Array(U*2)}if(R.geometry.skinWeights.length&&R.geometry.skinIndices.length){I.__skinVertexAArray=
|
|
|
+new Float32Array(U*4);I.__skinVertexBArray=new Float32Array(U*4);I.__skinIndexArray=new Float32Array(U*4);I.__skinWeightArray=new Float32Array(U*4)}I.__faceArray=new Uint16Array(aa*3);I.__lineArray=new Uint16Array(ba*2);var ia=void 0,Lb=void 0;if(I.numMorphTargets){I.__morphTargetsArrays=[];ia=0;for(Lb=I.numMorphTargets;ia<Lb;ia++)I.__morphTargetsArrays.push(new Float32Array(U*3))}if(I.numMorphNormals){I.__morphNormalsArrays=[];ia=0;for(Lb=I.numMorphNormals;ia<Lb;ia++)I.__morphNormalsArrays.push(new Float32Array(U*
|
|
|
+3))}I.__webglFaceCount=aa*3;I.__webglLineCount=ba*2;if($.attributes){if(I.__webglCustomAttributesList===void 0)I.__webglCustomAttributesList=[];var Ba=void 0;for(Ba in $.attributes){var Aa=$.attributes[Ba],la={},Ia;for(Ia in Aa)la[Ia]=Aa[Ia];if(!la.__webglInitialized||la.createUniqueBuffers){la.__webglInitialized=true;var Ha=1;la.type==="v2"?Ha=2:la.type==="v3"?Ha=3:la.type==="v4"?Ha=4:la.type==="c"&&(Ha=3);la.size=Ha;la.array=new Float32Array(U*Ha);la.buffer=g.createBuffer();la.buffer.belongsToAttribute=
|
|
|
+Ba;Aa.needsUpdate=true;la.__original=Aa}I.__webglCustomAttributesList.push(la)}}I.__inittedArrays=true;k.verticesNeedUpdate=true;k.morphTargetsNeedUpdate=true;k.elementsNeedUpdate=true;k.uvsNeedUpdate=true;k.normalsNeedUpdate=true;k.tangentsNeedUpdate=true;k.colorsNeedUpdate=true}}}else if(k instanceof THREE.BufferGeometry){var Mb=k,La=void 0,xb=void 0,Va=void 0;for(La in Mb.attributes){Va=La==="index"?g.ELEMENT_ARRAY_BUFFER:g.ARRAY_BUFFER;xb=Mb.attributes[La];xb.buffer=g.createBuffer();g.bindBuffer(Va,
|
|
|
+xb.buffer);g.bufferData(Va,xb.array,g.STATIC_DRAW)}}}else if(h instanceof THREE.Ribbon){k=h.geometry;if(!k.__webglVertexBuffer){var pb=k;pb.__webglVertexBuffer=g.createBuffer();pb.__webglColorBuffer=g.createBuffer();F.info.memory.geometries++;var Wa=k,Za=Wa.vertices.length;Wa.__vertexArray=new Float32Array(Za*3);Wa.__colorArray=new Float32Array(Za*3);Wa.__webglVertexCount=Za;k.verticesNeedUpdate=true;k.colorsNeedUpdate=true}}else if(h instanceof THREE.Line){k=h.geometry;if(!k.__webglVertexBuffer){var wb=
|
|
|
+k;wb.__webglVertexBuffer=g.createBuffer();wb.__webglColorBuffer=g.createBuffer();F.info.memory.geometries++;var kc=k,Wb=h,Nb=kc.vertices.length;kc.__vertexArray=new Float32Array(Nb*3);kc.__colorArray=new Float32Array(Nb*3);kc.__webglLineCount=Nb;b(kc,Wb);k.verticesNeedUpdate=true;k.colorsNeedUpdate=true}}else if(h instanceof THREE.ParticleSystem){k=h.geometry;if(!k.__webglVertexBuffer){var Vb=k;Vb.__webglVertexBuffer=g.createBuffer();Vb.__webglColorBuffer=g.createBuffer();F.info.geometries++;var Xb=
|
|
|
+k,hc=h,Ob=Xb.vertices.length;Xb.__vertexArray=new Float32Array(Ob*3);Xb.__colorArray=new Float32Array(Ob*3);Xb.__sortArray=[];Xb.__webglParticleCount=Ob;b(Xb,hc);k.verticesNeedUpdate=true;k.colorsNeedUpdate=true}}}if(!h.__webglActive){if(h instanceof THREE.Mesh){k=h.geometry;if(k instanceof THREE.BufferGeometry)m(i.__webglObjects,k,h);else for(j in k.geometryGroups){l=k.geometryGroups[j];m(i.__webglObjects,l,h)}}else if(h instanceof THREE.Ribbon||h instanceof THREE.Line||h instanceof THREE.ParticleSystem){k=
|
|
|
+h.geometry;m(i.__webglObjects,k,h)}else h instanceof THREE.ImmediateRenderObject||h.immediateRenderCallback?i.__webglObjectsImmediate.push({object:h,opaque:null,transparent:null}):h instanceof THREE.Sprite?i.__webglSprites.push(h):h instanceof THREE.LensFlare&&i.__webglFlares.push(h);h.__webglActive=true}a.__objectsAdded.splice(0,1)}for(;a.__objectsRemoved.length;){var Ra=a.__objectsRemoved[0],Ac=a;Ra instanceof THREE.Mesh||Ra instanceof THREE.ParticleSystem||Ra instanceof THREE.Ribbon||Ra instanceof
|
|
|
+THREE.Line?s(Ac.__webglObjects,Ra):Ra instanceof THREE.Sprite?q(Ac.__webglSprites,Ra):Ra instanceof THREE.LensFlare?q(Ac.__webglFlares,Ra):(Ra instanceof THREE.ImmediateRenderObject||Ra.immediateRenderCallback)&&s(Ac.__webglObjectsImmediate,Ra);Ra.__webglActive=false;a.__objectsRemoved.splice(0,1)}for(var Pb=0,ic=a.__webglObjects.length;Pb<ic;Pb++){var Xa=a.__webglObjects[Pb].object,W=Xa.geometry,lc=void 0,Yb=void 0,Ma=void 0;if(Xa instanceof THREE.Mesh)if(W instanceof THREE.BufferGeometry){if(W.verticesNeedUpdate||
|
|
|
+W.elementsNeedUpdate||W.uvsNeedUpdate||W.normalsNeedUpdate||W.colorsNeedUpdate||W.tangentsNeedUpdate){var qb=W,Zb=g.DYNAMIC_DRAW,jc=!W.dynamic,$b=qb.attributes,Rc=$b.index,Sc=$b.position,Tc=$b.normal,Uc=$b.uv,Vc=$b.color,Wc=$b.tangent;if(qb.elementsNeedUpdate&&Rc!==void 0){g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,Rc.buffer);g.bufferData(g.ELEMENT_ARRAY_BUFFER,Rc.array,Zb)}if(qb.verticesNeedUpdate&&Sc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Sc.buffer);g.bufferData(g.ARRAY_BUFFER,Sc.array,Zb)}if(qb.normalsNeedUpdate&&
|
|
|
+Tc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Tc.buffer);g.bufferData(g.ARRAY_BUFFER,Tc.array,Zb)}if(qb.uvsNeedUpdate&&Uc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Uc.buffer);g.bufferData(g.ARRAY_BUFFER,Uc.array,Zb)}if(qb.colorsNeedUpdate&&Vc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Vc.buffer);g.bufferData(g.ARRAY_BUFFER,Vc.array,Zb)}if(qb.tangentsNeedUpdate&&Wc!==void 0){g.bindBuffer(g.ARRAY_BUFFER,Wc.buffer);g.bufferData(g.ARRAY_BUFFER,Wc.array,Zb)}if(jc){var gc=void 0;for(gc in qb.attributes)delete qb.attributes[gc].array}}W.verticesNeedUpdate=
|
|
|
+false;W.elementsNeedUpdate=false;W.uvsNeedUpdate=false;W.normalsNeedUpdate=false;W.colorsNeedUpdate=false;W.tangentsNeedUpdate=false}else{for(var Xc=0,xc=W.geometryGroupsList.length;Xc<xc;Xc++){lc=W.geometryGroupsList[Xc];Ma=c(Xa,lc);Yb=Ma.attributes&&n(Ma);if(W.verticesNeedUpdate||W.morphTargetsNeedUpdate||W.elementsNeedUpdate||W.uvsNeedUpdate||W.normalsNeedUpdate||W.colorsNeedUpdate||W.tangentsNeedUpdate||Yb){var Y=lc,yc=Xa,Oa=g.DYNAMIC_DRAW,zc=!W.dynamic,Qb=Ma;if(Y.__inittedArrays){var fd=d(Qb),
|
|
|
+Yc=Qb.vertexColors?Qb.vertexColors:false,gd=e(Qb),Bc=fd===THREE.SmoothShading,y=void 0,N=void 0,Ua=void 0,D=void 0,ac=void 0,yb=void 0,Ya=void 0,Cc=void 0,rb=void 0,bc=void 0,cc=void 0,O=void 0,P=void 0,Q=void 0,fa=void 0,$a=void 0,ab=void 0,bb=void 0,mc=void 0,cb=void 0,db=void 0,eb=void 0,nc=void 0,fb=void 0,gb=void 0,hb=void 0,oc=void 0,ib=void 0,jb=void 0,kb=void 0,pc=void 0,lb=void 0,mb=void 0,nb=void 0,qc=void 0,zb=void 0,Ab=void 0,Bb=void 0,Dc=void 0,Cb=void 0,Db=void 0,Eb=void 0,Ec=void 0,
|
|
|
+ca=void 0,hd=void 0,Fb=void 0,dc=void 0,ec=void 0,Ca=void 0,id=void 0,ya=void 0,za=void 0,Gb=void 0,sb=void 0,ua=0,xa=0,tb=0,ub=0,Sa=0,Ga=0,ga=0,Ja=0,va=0,B=0,X=0,v=0,Pa=void 0,Da=Y.__vertexArray,rc=Y.__uvArray,sc=Y.__uv2Array,Ta=Y.__normalArray,ma=Y.__tangentArray,Ea=Y.__colorArray,na=Y.__skinVertexAArray,oa=Y.__skinVertexBArray,pa=Y.__skinIndexArray,qa=Y.__skinWeightArray,Zc=Y.__morphTargetsArrays,$c=Y.__morphNormalsArrays,ad=Y.__webglCustomAttributesList,t=void 0,ob=Y.__faceArray,Qa=Y.__lineArray,
|
|
|
+Ka=yc.geometry,Pc=Ka.elementsNeedUpdate,jd=Ka.uvsNeedUpdate,Qc=Ka.normalsNeedUpdate,qd=Ka.tangentsNeedUpdate,rd=Ka.colorsNeedUpdate,sd=Ka.morphTargetsNeedUpdate,Rb=Ka.vertices,da=Y.faces3,ea=Y.faces4,wa=Ka.faces,bd=Ka.faceVertexUvs[0],cd=Ka.faceVertexUvs[1],Sb=Ka.skinVerticesA,Tb=Ka.skinVerticesB,Ub=Ka.skinIndices,Hb=Ka.skinWeights,Ib=Ka.morphTargets,Fc=Ka.morphNormals;if(Ka.verticesNeedUpdate){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];O=Rb[D.a];P=Rb[D.b];Q=Rb[D.c];Da[xa]=O.x;Da[xa+1]=O.y;Da[xa+2]=
|
|
|
+O.z;Da[xa+3]=P.x;Da[xa+4]=P.y;Da[xa+5]=P.z;Da[xa+6]=Q.x;Da[xa+7]=Q.y;Da[xa+8]=Q.z;xa=xa+9}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];O=Rb[D.a];P=Rb[D.b];Q=Rb[D.c];fa=Rb[D.d];Da[xa]=O.x;Da[xa+1]=O.y;Da[xa+2]=O.z;Da[xa+3]=P.x;Da[xa+4]=P.y;Da[xa+5]=P.z;Da[xa+6]=Q.x;Da[xa+7]=Q.y;Da[xa+8]=Q.z;Da[xa+9]=fa.x;Da[xa+10]=fa.y;Da[xa+11]=fa.z;xa=xa+12}g.bindBuffer(g.ARRAY_BUFFER,Y.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,Da,Oa)}if(sd){Ca=0;for(id=Ib.length;Ca<id;Ca++){y=X=0;for(N=da.length;y<N;y++){Gb=
|
|
|
+da[y];D=wa[Gb];O=Ib[Ca].vertices[D.a];P=Ib[Ca].vertices[D.b];Q=Ib[Ca].vertices[D.c];ya=Zc[Ca];ya[X]=O.x;ya[X+1]=O.y;ya[X+2]=O.z;ya[X+3]=P.x;ya[X+4]=P.y;ya[X+5]=P.z;ya[X+6]=Q.x;ya[X+7]=Q.y;ya[X+8]=Q.z;if(Qb.morphNormals){if(Bc){sb=Fc[Ca].vertexNormals[Gb];cb=sb.a;db=sb.b;eb=sb.c}else eb=db=cb=Fc[Ca].faceNormals[Gb];za=$c[Ca];za[X]=cb.x;za[X+1]=cb.y;za[X+2]=cb.z;za[X+3]=db.x;za[X+4]=db.y;za[X+5]=db.z;za[X+6]=eb.x;za[X+7]=eb.y;za[X+8]=eb.z}X=X+9}y=0;for(N=ea.length;y<N;y++){Gb=ea[y];D=wa[Gb];O=Ib[Ca].vertices[D.a];
|
|
|
+P=Ib[Ca].vertices[D.b];Q=Ib[Ca].vertices[D.c];fa=Ib[Ca].vertices[D.d];ya=Zc[Ca];ya[X]=O.x;ya[X+1]=O.y;ya[X+2]=O.z;ya[X+3]=P.x;ya[X+4]=P.y;ya[X+5]=P.z;ya[X+6]=Q.x;ya[X+7]=Q.y;ya[X+8]=Q.z;ya[X+9]=fa.x;ya[X+10]=fa.y;ya[X+11]=fa.z;if(Qb.morphNormals){if(Bc){sb=Fc[Ca].vertexNormals[Gb];cb=sb.a;db=sb.b;eb=sb.c;nc=sb.d}else nc=eb=db=cb=Fc[Ca].faceNormals[Gb];za=$c[Ca];za[X]=cb.x;za[X+1]=cb.y;za[X+2]=cb.z;za[X+3]=db.x;za[X+4]=db.y;za[X+5]=db.z;za[X+6]=eb.x;za[X+7]=eb.y;za[X+8]=eb.z;za[X+9]=nc.x;za[X+10]=
|
|
|
+nc.y;za[X+11]=nc.z}X=X+12}g.bindBuffer(g.ARRAY_BUFFER,Y.__webglMorphTargetsBuffers[Ca]);g.bufferData(g.ARRAY_BUFFER,Zc[Ca],Oa);if(Qb.morphNormals){g.bindBuffer(g.ARRAY_BUFFER,Y.__webglMorphNormalsBuffers[Ca]);g.bufferData(g.ARRAY_BUFFER,$c[Ca],Oa)}}}if(Hb.length){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];ib=Hb[D.a];jb=Hb[D.b];kb=Hb[D.c];qa[B]=ib.x;qa[B+1]=ib.y;qa[B+2]=ib.z;qa[B+3]=ib.w;qa[B+4]=jb.x;qa[B+5]=jb.y;qa[B+6]=jb.z;qa[B+7]=jb.w;qa[B+8]=kb.x;qa[B+9]=kb.y;qa[B+10]=kb.z;qa[B+11]=kb.w;lb=Ub[D.a];
|
|
|
+mb=Ub[D.b];nb=Ub[D.c];pa[B]=lb.x;pa[B+1]=lb.y;pa[B+2]=lb.z;pa[B+3]=lb.w;pa[B+4]=mb.x;pa[B+5]=mb.y;pa[B+6]=mb.z;pa[B+7]=mb.w;pa[B+8]=nb.x;pa[B+9]=nb.y;pa[B+10]=nb.z;pa[B+11]=nb.w;zb=Sb[D.a];Ab=Sb[D.b];Bb=Sb[D.c];na[B]=zb.x;na[B+1]=zb.y;na[B+2]=zb.z;na[B+3]=1;na[B+4]=Ab.x;na[B+5]=Ab.y;na[B+6]=Ab.z;na[B+7]=1;na[B+8]=Bb.x;na[B+9]=Bb.y;na[B+10]=Bb.z;na[B+11]=1;Cb=Tb[D.a];Db=Tb[D.b];Eb=Tb[D.c];oa[B]=Cb.x;oa[B+1]=Cb.y;oa[B+2]=Cb.z;oa[B+3]=1;oa[B+4]=Db.x;oa[B+5]=Db.y;oa[B+6]=Db.z;oa[B+7]=1;oa[B+8]=Eb.x;oa[B+
|
|
|
9]=Eb.y;oa[B+10]=Eb.z;oa[B+11]=1;B=B+12}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];ib=Hb[D.a];jb=Hb[D.b];kb=Hb[D.c];pc=Hb[D.d];qa[B]=ib.x;qa[B+1]=ib.y;qa[B+2]=ib.z;qa[B+3]=ib.w;qa[B+4]=jb.x;qa[B+5]=jb.y;qa[B+6]=jb.z;qa[B+7]=jb.w;qa[B+8]=kb.x;qa[B+9]=kb.y;qa[B+10]=kb.z;qa[B+11]=kb.w;qa[B+12]=pc.x;qa[B+13]=pc.y;qa[B+14]=pc.z;qa[B+15]=pc.w;lb=Ub[D.a];mb=Ub[D.b];nb=Ub[D.c];qc=Ub[D.d];pa[B]=lb.x;pa[B+1]=lb.y;pa[B+2]=lb.z;pa[B+3]=lb.w;pa[B+4]=mb.x;pa[B+5]=mb.y;pa[B+6]=mb.z;pa[B+7]=mb.w;pa[B+8]=nb.x;pa[B+
|
|
|
-9]=nb.y;pa[B+10]=nb.z;pa[B+11]=nb.w;pa[B+12]=qc.x;pa[B+13]=qc.y;pa[B+14]=qc.z;pa[B+15]=qc.w;zb=Sb[D.a];Ab=Sb[D.b];Bb=Sb[D.c];Cc=Sb[D.d];na[B]=zb.x;na[B+1]=zb.y;na[B+2]=zb.z;na[B+3]=1;na[B+4]=Ab.x;na[B+5]=Ab.y;na[B+6]=Ab.z;na[B+7]=1;na[B+8]=Bb.x;na[B+9]=Bb.y;na[B+10]=Bb.z;na[B+11]=1;na[B+12]=Cc.x;na[B+13]=Cc.y;na[B+14]=Cc.z;na[B+15]=1;Cb=Tb[D.a];Db=Tb[D.b];Eb=Tb[D.c];Dc=Tb[D.d];oa[B]=Cb.x;oa[B+1]=Cb.y;oa[B+2]=Cb.z;oa[B+3]=1;oa[B+4]=Db.x;oa[B+5]=Db.y;oa[B+6]=Db.z;oa[B+7]=1;oa[B+8]=Eb.x;oa[B+9]=Eb.y;
|
|
|
-oa[B+10]=Eb.z;oa[B+11]=1;oa[B+12]=Dc.x;oa[B+13]=Dc.y;oa[B+14]=Dc.z;oa[B+15]=1;B=B+16}if(B>0){g.bindBuffer(g.ARRAY_BUFFER,Y.__webglSkinVertexABuffer);g.bufferData(g.ARRAY_BUFFER,na,Oa);g.bindBuffer(g.ARRAY_BUFFER,Y.__webglSkinVertexBBuffer);g.bufferData(g.ARRAY_BUFFER,oa,Oa);g.bindBuffer(g.ARRAY_BUFFER,Y.__webglSkinIndicesBuffer);g.bufferData(g.ARRAY_BUFFER,pa,Oa);g.bindBuffer(g.ARRAY_BUFFER,Y.__webglSkinWeightsBuffer);g.bufferData(g.ARRAY_BUFFER,qa,Oa)}}if(rd&&Yc){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];
|
|
|
-Ya=D.vertexColors;Bc=D.color;if(Ya.length===3&&Yc===THREE.VertexColors){fb=Ya[0];gb=Ya[1];hb=Ya[2]}else hb=gb=fb=Bc;Ea[va]=fb.r;Ea[va+1]=fb.g;Ea[va+2]=fb.b;Ea[va+3]=gb.r;Ea[va+4]=gb.g;Ea[va+5]=gb.b;Ea[va+6]=hb.r;Ea[va+7]=hb.g;Ea[va+8]=hb.b;va=va+9}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];Ya=D.vertexColors;Bc=D.color;if(Ya.length===4&&Yc===THREE.VertexColors){fb=Ya[0];gb=Ya[1];hb=Ya[2];oc=Ya[3]}else oc=hb=gb=fb=Bc;Ea[va]=fb.r;Ea[va+1]=fb.g;Ea[va+2]=fb.b;Ea[va+3]=gb.r;Ea[va+4]=gb.g;Ea[va+5]=gb.b;Ea[va+
|
|
|
+9]=nb.y;pa[B+10]=nb.z;pa[B+11]=nb.w;pa[B+12]=qc.x;pa[B+13]=qc.y;pa[B+14]=qc.z;pa[B+15]=qc.w;zb=Sb[D.a];Ab=Sb[D.b];Bb=Sb[D.c];Dc=Sb[D.d];na[B]=zb.x;na[B+1]=zb.y;na[B+2]=zb.z;na[B+3]=1;na[B+4]=Ab.x;na[B+5]=Ab.y;na[B+6]=Ab.z;na[B+7]=1;na[B+8]=Bb.x;na[B+9]=Bb.y;na[B+10]=Bb.z;na[B+11]=1;na[B+12]=Dc.x;na[B+13]=Dc.y;na[B+14]=Dc.z;na[B+15]=1;Cb=Tb[D.a];Db=Tb[D.b];Eb=Tb[D.c];Ec=Tb[D.d];oa[B]=Cb.x;oa[B+1]=Cb.y;oa[B+2]=Cb.z;oa[B+3]=1;oa[B+4]=Db.x;oa[B+5]=Db.y;oa[B+6]=Db.z;oa[B+7]=1;oa[B+8]=Eb.x;oa[B+9]=Eb.y;
|
|
|
+oa[B+10]=Eb.z;oa[B+11]=1;oa[B+12]=Ec.x;oa[B+13]=Ec.y;oa[B+14]=Ec.z;oa[B+15]=1;B=B+16}if(B>0){g.bindBuffer(g.ARRAY_BUFFER,Y.__webglSkinVertexABuffer);g.bufferData(g.ARRAY_BUFFER,na,Oa);g.bindBuffer(g.ARRAY_BUFFER,Y.__webglSkinVertexBBuffer);g.bufferData(g.ARRAY_BUFFER,oa,Oa);g.bindBuffer(g.ARRAY_BUFFER,Y.__webglSkinIndicesBuffer);g.bufferData(g.ARRAY_BUFFER,pa,Oa);g.bindBuffer(g.ARRAY_BUFFER,Y.__webglSkinWeightsBuffer);g.bufferData(g.ARRAY_BUFFER,qa,Oa)}}if(rd&&Yc){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];
|
|
|
+Ya=D.vertexColors;Cc=D.color;if(Ya.length===3&&Yc===THREE.VertexColors){fb=Ya[0];gb=Ya[1];hb=Ya[2]}else hb=gb=fb=Cc;Ea[va]=fb.r;Ea[va+1]=fb.g;Ea[va+2]=fb.b;Ea[va+3]=gb.r;Ea[va+4]=gb.g;Ea[va+5]=gb.b;Ea[va+6]=hb.r;Ea[va+7]=hb.g;Ea[va+8]=hb.b;va=va+9}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];Ya=D.vertexColors;Cc=D.color;if(Ya.length===4&&Yc===THREE.VertexColors){fb=Ya[0];gb=Ya[1];hb=Ya[2];oc=Ya[3]}else oc=hb=gb=fb=Cc;Ea[va]=fb.r;Ea[va+1]=fb.g;Ea[va+2]=fb.b;Ea[va+3]=gb.r;Ea[va+4]=gb.g;Ea[va+5]=gb.b;Ea[va+
|
|
|
6]=hb.r;Ea[va+7]=hb.g;Ea[va+8]=hb.b;Ea[va+9]=oc.r;Ea[va+10]=oc.g;Ea[va+11]=oc.b;va=va+12}if(va>0){g.bindBuffer(g.ARRAY_BUFFER,Y.__webglColorBuffer);g.bufferData(g.ARRAY_BUFFER,Ea,Oa)}}if(qd&&Ka.hasTangents){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];rb=D.vertexTangents;$a=rb[0];ab=rb[1];bb=rb[2];ma[ga]=$a.x;ma[ga+1]=$a.y;ma[ga+2]=$a.z;ma[ga+3]=$a.w;ma[ga+4]=ab.x;ma[ga+5]=ab.y;ma[ga+6]=ab.z;ma[ga+7]=ab.w;ma[ga+8]=bb.x;ma[ga+9]=bb.y;ma[ga+10]=bb.z;ma[ga+11]=bb.w;ga=ga+12}y=0;for(N=ea.length;y<N;y++){D=
|
|
|
-wa[ea[y]];rb=D.vertexTangents;$a=rb[0];ab=rb[1];bb=rb[2];mc=rb[3];ma[ga]=$a.x;ma[ga+1]=$a.y;ma[ga+2]=$a.z;ma[ga+3]=$a.w;ma[ga+4]=ab.x;ma[ga+5]=ab.y;ma[ga+6]=ab.z;ma[ga+7]=ab.w;ma[ga+8]=bb.x;ma[ga+9]=bb.y;ma[ga+10]=bb.z;ma[ga+11]=bb.w;ma[ga+12]=mc.x;ma[ga+13]=mc.y;ma[ga+14]=mc.z;ma[ga+15]=mc.w;ga=ga+16}g.bindBuffer(g.ARRAY_BUFFER,Y.__webglTangentBuffer);g.bufferData(g.ARRAY_BUFFER,ma,Oa)}if(Qc&&fd){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];ac=D.vertexNormals;yb=D.normal;if(ac.length===3&&Ac)for(ca=
|
|
|
-0;ca<3;ca++){Fb=ac[ca];Ta[Ga]=Fb.x;Ta[Ga+1]=Fb.y;Ta[Ga+2]=Fb.z;Ga=Ga+3}else for(ca=0;ca<3;ca++){Ta[Ga]=yb.x;Ta[Ga+1]=yb.y;Ta[Ga+2]=yb.z;Ga=Ga+3}}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];ac=D.vertexNormals;yb=D.normal;if(ac.length===4&&Ac)for(ca=0;ca<4;ca++){Fb=ac[ca];Ta[Ga]=Fb.x;Ta[Ga+1]=Fb.y;Ta[Ga+2]=Fb.z;Ga=Ga+3}else for(ca=0;ca<4;ca++){Ta[Ga]=yb.x;Ta[Ga+1]=yb.y;Ta[Ga+2]=yb.z;Ga=Ga+3}}g.bindBuffer(g.ARRAY_BUFFER,Y.__webglNormalBuffer);g.bufferData(g.ARRAY_BUFFER,Ta,Oa)}if(jd&&bd&&gd){y=0;for(N=
|
|
|
+wa[ea[y]];rb=D.vertexTangents;$a=rb[0];ab=rb[1];bb=rb[2];mc=rb[3];ma[ga]=$a.x;ma[ga+1]=$a.y;ma[ga+2]=$a.z;ma[ga+3]=$a.w;ma[ga+4]=ab.x;ma[ga+5]=ab.y;ma[ga+6]=ab.z;ma[ga+7]=ab.w;ma[ga+8]=bb.x;ma[ga+9]=bb.y;ma[ga+10]=bb.z;ma[ga+11]=bb.w;ma[ga+12]=mc.x;ma[ga+13]=mc.y;ma[ga+14]=mc.z;ma[ga+15]=mc.w;ga=ga+16}g.bindBuffer(g.ARRAY_BUFFER,Y.__webglTangentBuffer);g.bufferData(g.ARRAY_BUFFER,ma,Oa)}if(Qc&&fd){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];ac=D.vertexNormals;yb=D.normal;if(ac.length===3&&Bc)for(ca=
|
|
|
+0;ca<3;ca++){Fb=ac[ca];Ta[Ga]=Fb.x;Ta[Ga+1]=Fb.y;Ta[Ga+2]=Fb.z;Ga=Ga+3}else for(ca=0;ca<3;ca++){Ta[Ga]=yb.x;Ta[Ga+1]=yb.y;Ta[Ga+2]=yb.z;Ga=Ga+3}}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];ac=D.vertexNormals;yb=D.normal;if(ac.length===4&&Bc)for(ca=0;ca<4;ca++){Fb=ac[ca];Ta[Ga]=Fb.x;Ta[Ga+1]=Fb.y;Ta[Ga+2]=Fb.z;Ga=Ga+3}else for(ca=0;ca<4;ca++){Ta[Ga]=yb.x;Ta[Ga+1]=yb.y;Ta[Ga+2]=yb.z;Ga=Ga+3}}g.bindBuffer(g.ARRAY_BUFFER,Y.__webglNormalBuffer);g.bufferData(g.ARRAY_BUFFER,Ta,Oa)}if(jd&&bd&&gd){y=0;for(N=
|
|
|
da.length;y<N;y++){Ua=da[y];D=wa[Ua];bc=bd[Ua];if(bc!==void 0)for(ca=0;ca<3;ca++){dc=bc[ca];rc[tb]=dc.u;rc[tb+1]=dc.v;tb=tb+2}}y=0;for(N=ea.length;y<N;y++){Ua=ea[y];D=wa[Ua];bc=bd[Ua];if(bc!==void 0)for(ca=0;ca<4;ca++){dc=bc[ca];rc[tb]=dc.u;rc[tb+1]=dc.v;tb=tb+2}}if(tb>0){g.bindBuffer(g.ARRAY_BUFFER,Y.__webglUVBuffer);g.bufferData(g.ARRAY_BUFFER,rc,Oa)}}if(jd&&cd&&gd){y=0;for(N=da.length;y<N;y++){Ua=da[y];D=wa[Ua];cc=cd[Ua];if(cc!==void 0)for(ca=0;ca<3;ca++){ec=cc[ca];sc[ub]=ec.u;sc[ub+1]=ec.v;ub=
|
|
|
ub+2}}y=0;for(N=ea.length;y<N;y++){Ua=ea[y];D=wa[Ua];cc=cd[Ua];if(cc!==void 0)for(ca=0;ca<4;ca++){ec=cc[ca];sc[ub]=ec.u;sc[ub+1]=ec.v;ub=ub+2}}if(ub>0){g.bindBuffer(g.ARRAY_BUFFER,Y.__webglUV2Buffer);g.bufferData(g.ARRAY_BUFFER,sc,Oa)}}if(Pc){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];ob[Sa]=ua;ob[Sa+1]=ua+1;ob[Sa+2]=ua+2;Sa=Sa+3;Qa[Ja]=ua;Qa[Ja+1]=ua+1;Qa[Ja+2]=ua;Qa[Ja+3]=ua+2;Qa[Ja+4]=ua+1;Qa[Ja+5]=ua+2;Ja=Ja+6;ua=ua+3}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];ob[Sa]=ua;ob[Sa+1]=ua+1;ob[Sa+2]=ua+
|
|
|
3;ob[Sa+3]=ua+1;ob[Sa+4]=ua+2;ob[Sa+5]=ua+3;Sa=Sa+6;Qa[Ja]=ua;Qa[Ja+1]=ua+1;Qa[Ja+2]=ua;Qa[Ja+3]=ua+3;Qa[Ja+4]=ua+1;Qa[Ja+5]=ua+2;Qa[Ja+6]=ua+2;Qa[Ja+7]=ua+3;Ja=Ja+8;ua=ua+4}g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,Y.__webglFaceBuffer);g.bufferData(g.ELEMENT_ARRAY_BUFFER,ob,Oa);g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,Y.__webglLineBuffer);g.bufferData(g.ELEMENT_ARRAY_BUFFER,Qa,Oa)}if(ad){ca=0;for(hd=ad.length;ca<hd;ca++){t=ad[ca];if(t.__original.needsUpdate){v=0;if(t.size===1)if(t.boundTo===void 0||t.boundTo===
|
|
@@ -378,11 +378,11 @@ t.array[v+5]=P[Z[2]];t.array[v+6]=Q[Z[0]];t.array[v+7]=Q[Z[1]];t.array[v+8]=Q[Z[
|
|
|
O[Z[0]];t.array[v+1]=O[Z[1]];t.array[v+2]=O[Z[2]];t.array[v+3]=P[Z[0]];t.array[v+4]=P[Z[1]];t.array[v+5]=P[Z[2]];t.array[v+6]=Q[Z[0]];t.array[v+7]=Q[Z[1]];t.array[v+8]=Q[Z[2]];t.array[v+9]=fa[Z[0]];t.array[v+10]=fa[Z[1]];t.array[v+11]=fa[Z[2]];v=v+12}}}else if(t.size===4)if(t.boundTo===void 0||t.boundTo==="vertices"){y=0;for(N=da.length;y<N;y++){D=wa[da[y]];O=t.value[D.a];P=t.value[D.b];Q=t.value[D.c];t.array[v]=O.x;t.array[v+1]=O.y;t.array[v+2]=O.z;t.array[v+3]=O.w;t.array[v+4]=P.x;t.array[v+5]=
|
|
|
P.y;t.array[v+6]=P.z;t.array[v+7]=P.w;t.array[v+8]=Q.x;t.array[v+9]=Q.y;t.array[v+10]=Q.z;t.array[v+11]=Q.w;v=v+12}y=0;for(N=ea.length;y<N;y++){D=wa[ea[y]];O=t.value[D.a];P=t.value[D.b];Q=t.value[D.c];fa=t.value[D.d];t.array[v]=O.x;t.array[v+1]=O.y;t.array[v+2]=O.z;t.array[v+3]=O.w;t.array[v+4]=P.x;t.array[v+5]=P.y;t.array[v+6]=P.z;t.array[v+7]=P.w;t.array[v+8]=Q.x;t.array[v+9]=Q.y;t.array[v+10]=Q.z;t.array[v+11]=Q.w;t.array[v+12]=fa.x;t.array[v+13]=fa.y;t.array[v+14]=fa.z;t.array[v+15]=fa.w;v=v+
|
|
|
16}}else if(t.boundTo==="faces"){y=0;for(N=da.length;y<N;y++){Q=P=O=Pa=t.value[da[y]];t.array[v]=O.x;t.array[v+1]=O.y;t.array[v+2]=O.z;t.array[v+3]=O.w;t.array[v+4]=P.x;t.array[v+5]=P.y;t.array[v+6]=P.z;t.array[v+7]=P.w;t.array[v+8]=Q.x;t.array[v+9]=Q.y;t.array[v+10]=Q.z;t.array[v+11]=Q.w;v=v+12}y=0;for(N=ea.length;y<N;y++){fa=Q=P=O=Pa=t.value[ea[y]];t.array[v]=O.x;t.array[v+1]=O.y;t.array[v+2]=O.z;t.array[v+3]=O.w;t.array[v+4]=P.x;t.array[v+5]=P.y;t.array[v+6]=P.z;t.array[v+7]=P.w;t.array[v+8]=Q.x;
|
|
|
-t.array[v+9]=Q.y;t.array[v+10]=Q.z;t.array[v+11]=Q.w;t.array[v+12]=fa.x;t.array[v+13]=fa.y;t.array[v+14]=fa.z;t.array[v+15]=fa.w;v=v+16}}g.bindBuffer(g.ARRAY_BUFFER,t.buffer);g.bufferData(g.ARRAY_BUFFER,t.array,Oa)}}}if(Oc){delete Y.__inittedArrays;delete Y.__colorArray;delete Y.__normalArray;delete Y.__tangentArray;delete Y.__uvArray;delete Y.__uv2Array;delete Y.__faceArray;delete Y.__vertexArray;delete Y.__lineArray;delete Y.__skinVertexAArray;delete Y.__skinVertexBArray;delete Y.__skinIndexArray;
|
|
|
-delete Y.__skinWeightArray}}}}W.verticesNeedUpdate=false;W.morphTargetsNeedUpdate=false;W.elementsNeedUpdate=false;W.uvsNeedUpdate=false;W.normalsNeedUpdate=false;W.colorsNeedUpdate=false;W.tangentsNeedUpdate=false;Ma.attributes&&o(Ma)}else if(Xa instanceof THREE.Ribbon){if(W.verticesNeedUpdate||W.colorsNeedUpdate){var Jb=W,kd=g.DYNAMIC_DRAW,tc=void 0,uc=void 0,Fc=void 0,Kb=void 0,Gc=void 0,ld=Jb.vertices,md=Jb.colors,td=ld.length,ud=md.length,Hc=Jb.__vertexArray,Ic=Jb.__colorArray,vd=Jb.colorsNeedUpdate;
|
|
|
-if(Jb.verticesNeedUpdate){for(tc=0;tc<td;tc++){Fc=ld[tc];Kb=tc*3;Hc[Kb]=Fc.x;Hc[Kb+1]=Fc.y;Hc[Kb+2]=Fc.z}g.bindBuffer(g.ARRAY_BUFFER,Jb.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,Hc,kd)}if(vd){for(uc=0;uc<ud;uc++){Gc=md[uc];Kb=uc*3;Ic[Kb]=Gc.r;Ic[Kb+1]=Gc.g;Ic[Kb+2]=Gc.b}g.bindBuffer(g.ARRAY_BUFFER,Jb.__webglColorBuffer);g.bufferData(g.ARRAY_BUFFER,Ic,kd)}}W.verticesNeedUpdate=false;W.colorsNeedUpdate=false}else if(Xa instanceof THREE.Line){Ma=c(Xa,lc);Yb=Ma.attributes&&n(Ma);if(W.verticesNeedUpdate||
|
|
|
-W.colorsNeedUpdate||Yb){var vb=W,dd=g.DYNAMIC_DRAW,vc=void 0,wc=void 0,Jc=void 0,ra=void 0,Kc=void 0,nd=vb.vertices,od=vb.colors,wd=nd.length,xd=od.length,Lc=vb.__vertexArray,Mc=vb.__colorArray,yd=vb.colorsNeedUpdate,ed=vb.__webglCustomAttributesList,Nc=void 0,pd=void 0,Fa=void 0,fc=void 0,Na=void 0,ja=void 0;if(vb.verticesNeedUpdate){for(vc=0;vc<wd;vc++){Jc=nd[vc];ra=vc*3;Lc[ra]=Jc.x;Lc[ra+1]=Jc.y;Lc[ra+2]=Jc.z}g.bindBuffer(g.ARRAY_BUFFER,vb.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,Lc,dd)}if(yd){for(wc=
|
|
|
-0;wc<xd;wc++){Kc=od[wc];ra=wc*3;Mc[ra]=Kc.r;Mc[ra+1]=Kc.g;Mc[ra+2]=Kc.b}g.bindBuffer(g.ARRAY_BUFFER,vb.__webglColorBuffer);g.bufferData(g.ARRAY_BUFFER,Mc,dd)}if(ed){Nc=0;for(pd=ed.length;Nc<pd;Nc++){ja=ed[Nc];if(ja.needsUpdate&&(ja.boundTo===void 0||ja.boundTo==="vertices")){ra=0;fc=ja.value.length;if(ja.size===1)for(Fa=0;Fa<fc;Fa++)ja.array[Fa]=ja.value[Fa];else if(ja.size===2)for(Fa=0;Fa<fc;Fa++){Na=ja.value[Fa];ja.array[ra]=Na.x;ja.array[ra+1]=Na.y;ra=ra+2}else if(ja.size===3)if(ja.type==="c")for(Fa=
|
|
|
+t.array[v+9]=Q.y;t.array[v+10]=Q.z;t.array[v+11]=Q.w;t.array[v+12]=fa.x;t.array[v+13]=fa.y;t.array[v+14]=fa.z;t.array[v+15]=fa.w;v=v+16}}g.bindBuffer(g.ARRAY_BUFFER,t.buffer);g.bufferData(g.ARRAY_BUFFER,t.array,Oa)}}}if(zc){delete Y.__inittedArrays;delete Y.__colorArray;delete Y.__normalArray;delete Y.__tangentArray;delete Y.__uvArray;delete Y.__uv2Array;delete Y.__faceArray;delete Y.__vertexArray;delete Y.__lineArray;delete Y.__skinVertexAArray;delete Y.__skinVertexBArray;delete Y.__skinIndexArray;
|
|
|
+delete Y.__skinWeightArray}}}}W.verticesNeedUpdate=false;W.morphTargetsNeedUpdate=false;W.elementsNeedUpdate=false;W.uvsNeedUpdate=false;W.normalsNeedUpdate=false;W.colorsNeedUpdate=false;W.tangentsNeedUpdate=false;Ma.attributes&&o(Ma)}else if(Xa instanceof THREE.Ribbon){if(W.verticesNeedUpdate||W.colorsNeedUpdate){var Jb=W,kd=g.DYNAMIC_DRAW,tc=void 0,uc=void 0,Gc=void 0,Kb=void 0,Hc=void 0,ld=Jb.vertices,md=Jb.colors,td=ld.length,ud=md.length,Ic=Jb.__vertexArray,Jc=Jb.__colorArray,vd=Jb.colorsNeedUpdate;
|
|
|
+if(Jb.verticesNeedUpdate){for(tc=0;tc<td;tc++){Gc=ld[tc];Kb=tc*3;Ic[Kb]=Gc.x;Ic[Kb+1]=Gc.y;Ic[Kb+2]=Gc.z}g.bindBuffer(g.ARRAY_BUFFER,Jb.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,Ic,kd)}if(vd){for(uc=0;uc<ud;uc++){Hc=md[uc];Kb=uc*3;Jc[Kb]=Hc.r;Jc[Kb+1]=Hc.g;Jc[Kb+2]=Hc.b}g.bindBuffer(g.ARRAY_BUFFER,Jb.__webglColorBuffer);g.bufferData(g.ARRAY_BUFFER,Jc,kd)}}W.verticesNeedUpdate=false;W.colorsNeedUpdate=false}else if(Xa instanceof THREE.Line){Ma=c(Xa,lc);Yb=Ma.attributes&&n(Ma);if(W.verticesNeedUpdate||
|
|
|
+W.colorsNeedUpdate||Yb){var vb=W,dd=g.DYNAMIC_DRAW,vc=void 0,wc=void 0,Kc=void 0,ra=void 0,Lc=void 0,nd=vb.vertices,od=vb.colors,wd=nd.length,xd=od.length,Mc=vb.__vertexArray,Nc=vb.__colorArray,yd=vb.colorsNeedUpdate,ed=vb.__webglCustomAttributesList,Oc=void 0,pd=void 0,Fa=void 0,fc=void 0,Na=void 0,ja=void 0;if(vb.verticesNeedUpdate){for(vc=0;vc<wd;vc++){Kc=nd[vc];ra=vc*3;Mc[ra]=Kc.x;Mc[ra+1]=Kc.y;Mc[ra+2]=Kc.z}g.bindBuffer(g.ARRAY_BUFFER,vb.__webglVertexBuffer);g.bufferData(g.ARRAY_BUFFER,Mc,dd)}if(yd){for(wc=
|
|
|
+0;wc<xd;wc++){Lc=od[wc];ra=wc*3;Nc[ra]=Lc.r;Nc[ra+1]=Lc.g;Nc[ra+2]=Lc.b}g.bindBuffer(g.ARRAY_BUFFER,vb.__webglColorBuffer);g.bufferData(g.ARRAY_BUFFER,Nc,dd)}if(ed){Oc=0;for(pd=ed.length;Oc<pd;Oc++){ja=ed[Oc];if(ja.needsUpdate&&(ja.boundTo===void 0||ja.boundTo==="vertices")){ra=0;fc=ja.value.length;if(ja.size===1)for(Fa=0;Fa<fc;Fa++)ja.array[Fa]=ja.value[Fa];else if(ja.size===2)for(Fa=0;Fa<fc;Fa++){Na=ja.value[Fa];ja.array[ra]=Na.x;ja.array[ra+1]=Na.y;ra=ra+2}else if(ja.size===3)if(ja.type==="c")for(Fa=
|
|
|
0;Fa<fc;Fa++){Na=ja.value[Fa];ja.array[ra]=Na.r;ja.array[ra+1]=Na.g;ja.array[ra+2]=Na.b;ra=ra+3}else for(Fa=0;Fa<fc;Fa++){Na=ja.value[Fa];ja.array[ra]=Na.x;ja.array[ra+1]=Na.y;ja.array[ra+2]=Na.z;ra=ra+3}else if(ja.size===4)for(Fa=0;Fa<fc;Fa++){Na=ja.value[Fa];ja.array[ra]=Na.x;ja.array[ra+1]=Na.y;ja.array[ra+2]=Na.z;ja.array[ra+3]=Na.w;ra=ra+4}g.bindBuffer(g.ARRAY_BUFFER,ja.buffer);g.bufferData(g.ARRAY_BUFFER,ja.array,dd)}}}}W.verticesNeedUpdate=false;W.colorsNeedUpdate=false;Ma.attributes&&o(Ma)}else if(Xa instanceof
|
|
|
THREE.ParticleSystem){Ma=c(Xa,lc);Yb=Ma.attributes&&n(Ma);(W.verticesNeedUpdate||W.colorsNeedUpdate||Xa.sortParticles||Yb)&&f(W,g.DYNAMIC_DRAW,Xa);W.verticesNeedUpdate=false;W.colorsNeedUpdate=false;Ma.attributes&&o(Ma)}}};this.initMaterial=function(a,b,c,d){var e,f,h,i,j,k,l,m;a instanceof THREE.MeshDepthMaterial?m="depth":a instanceof THREE.MeshNormalMaterial?m="normal":a instanceof THREE.MeshBasicMaterial?m="basic":a instanceof THREE.MeshLambertMaterial?m="lambert":a instanceof THREE.MeshPhongMaterial?
|
|
|
m="phong":a instanceof THREE.LineBasicMaterial?m="basic":a instanceof THREE.ParticleBasicMaterial&&(m="particle_basic");if(m){var n=THREE.ShaderLib[m];a.uniforms=THREE.UniformsUtils.clone(n.uniforms);a.vertexShader=n.vertexShader;a.fragmentShader=n.fragmentShader}var o,q;o=h=e=n=0;for(f=b.length;o<f;o++){q=b[o];if(!q.onlyShadow){q instanceof THREE.DirectionalLight&&h++;q instanceof THREE.PointLight&&e++;q instanceof THREE.SpotLight&&n++}}if(e+n+h<=U){o=h;f=e}else{o=Math.ceil(U*h/(e+h));n=f=U-o}e=
|