|
@@ -35,27 +35,27 @@ b){g.set(a);h=void 0!==b?b:1;f(g,h)},getClearAlpha:function(){return h},setClear
|
|
|
e.mapping)){void 0===n&&(n=new U(new Ib(1,1,1),new Fa({name:"BackgroundCubeMaterial",uniforms:Lc(Za.cube.uniforms),vertexShader:Za.cube.vertexShader,fragmentShader:Za.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),n.geometry.deleteAttribute("normal"),n.geometry.deleteAttribute("uv"),n.onBeforeRender=function(a,b,c){this.matrixWorld.copyPosition(c.matrixWorld)},Object.defineProperty(n.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),d.update(n));e.isWebGLCubeRenderTarget&&
|
|
|
(e=e.texture);n.material.uniforms.envMap.value=e;n.material.uniforms.flipEnvMap.value=e.isCubeTexture?-1:1;if(r!==e||p!==e.version||k!==a.toneMapping)n.material.needsUpdate=!0,r=e,p=e.version,k=a.toneMapping;c.unshift(n,n.geometry,n.material,0,0,null)}else if(e&&e.isTexture){void 0===l&&(l=new U(new ic(2,2),new Fa({name:"BackgroundMaterial",uniforms:Lc(Za.background.uniforms),vertexShader:Za.background.vertexShader,fragmentShader:Za.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),
|
|
|
l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),d.update(l));l.material.uniforms.t2D.value=e;!0===e.matrixAutoUpdate&&e.updateMatrix();l.material.uniforms.uvTransform.value.copy(e.matrix);if(r!==e||p!==e.version||k!==a.toneMapping)l.material.needsUpdate=!0,r=e,p=e.version,k=a.toneMapping;c.unshift(l,l.geometry,l.material,0,0,null)}}}}function lj(a,b,c,d){function e(b){return d.isWebGL2?a.bindVertexArray(b):q.bindVertexArrayOES(b)}
|
|
|
-function f(b){return d.isWebGL2?a.deleteVertexArray(b):q.deleteVertexArrayOES(b)}function g(a){for(var b=[],c=[],d=[],e=0;e<t;e++)b[e]=0,c[e]=0,d[e]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:b,enabledAttributes:c,attributeDivisors:d,object:a,attributes:{}}}function h(){for(var a=x.newAttributes,b=0,c=a.length;b<c;b++)a[b]=0}function l(a){n(a,0)}function n(c,e){var f=x.enabledAttributes,g=x.attributeDivisors;x.newAttributes[c]=1;0===f[c]&&(a.enableVertexAttribArray(c),f[c]=1);
|
|
|
-g[c]!==e&&((d.isWebGL2?a:b.get("ANGLE_instanced_arrays"))[d.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,e),g[c]=e)}function r(){for(var b=x.newAttributes,c=x.enabledAttributes,d=0,e=c.length;d<e;d++)c[d]!==b[d]&&(a.disableVertexAttribArray(d),c[d]=0)}function p(){k();x!==A&&(x=A,e(x.object))}function k(){A.geometry=null;A.program=null;A.wireframe=!1}var t=a.getParameter(34921),q=d.isWebGL2?null:b.get("OES_vertex_array_object"),v=d.isWebGL2||null!==q,m={},A=g(null),x=A;return{setup:function(f,
|
|
|
-p,k,u,t){var y=!1;if(v){y=!0===p.wireframe;var D=m[u.id];void 0===D&&(D={},m[u.id]=D);var z=D[k.id];void 0===z&&(z={},D[k.id]=z);D=z[y];void 0===D&&(D=g(d.isWebGL2?a.createVertexArray():q.createVertexArrayOES()),z[y]=D);y=D;x!==y&&(x=y,e(x.object));a:if(y=x.attributes,z=u.attributes,Object.keys(y).length!==Object.keys(z).length)y=!0;else{for(var A in z){D=y[A];var Q=z[A];if(D.attribute!==Q||D.data!==Q.data){y=!0;break a}}y=!1}if(y){A={};z=u.attributes;for(var K in z)D=z[K],Q={},Q.attribute=D,D.data&&
|
|
|
-(Q.data=D.data),A[K]=Q;x.attributes=A}}else if(K=!0===p.wireframe,x.geometry!==u.id||x.program!==k.id||x.wireframe!==K)x.geometry=u.id,x.program=k.id,x.wireframe=K,y=!0;!0===f.isInstancedMesh&&(y=!0);null!==t&&c.update(t,34963);if(y){if(!1!==d.isWebGL2||!f.isInstancedMesh&&!u.isInstancedBufferGeometry||null!==b.get("ANGLE_instanced_arrays")){h();K=u.attributes;k=k.getAttributes();p=p.defaultAttributeValues;for(var da in k)if(y=k[da],0<=y){var I=K[da];if(void 0!==I){if(A=I.normalized,Q=I.itemSize,
|
|
|
-D=c.get(I),void 0!==D){var w=D.buffer;z=D.type;D=D.bytesPerElement;if(I.isInterleavedBufferAttribute){var B=I.data,C=B.stride;I=I.offset;B&&B.isInstancedInterleavedBuffer?(n(y,B.meshPerAttribute),void 0===u._maxInstanceCount&&(u._maxInstanceCount=B.meshPerAttribute*B.count)):l(y);a.bindBuffer(34962,w);C*=D;D*=I;!0!==d.isWebGL2||5124!==z&&5125!==z?a.vertexAttribPointer(y,Q,z,A,C,D):a.vertexAttribIPointer(y,Q,z,C,D)}else I.isInstancedBufferAttribute?(n(y,I.meshPerAttribute),void 0===u._maxInstanceCount&&
|
|
|
-(u._maxInstanceCount=I.meshPerAttribute*I.count)):l(y),a.bindBuffer(34962,w),D=Q,!0!==d.isWebGL2||5124!==z&&5125!==z?a.vertexAttribPointer(y,D,z,A,0,0):a.vertexAttribIPointer(y,D,z,0,0)}}else if("instanceMatrix"===da)z=c.get(f.instanceMatrix),void 0!==z&&(A=z.buffer,z=z.type,n(y+0,1),n(y+1,1),n(y+2,1),n(y+3,1),a.bindBuffer(34962,A),a.vertexAttribPointer(y+0,4,z,!1,64,0),a.vertexAttribPointer(y+1,4,z,!1,64,16),a.vertexAttribPointer(y+2,4,z,!1,64,32),a.vertexAttribPointer(y+3,4,z,!1,64,48));else if("instanceColor"===
|
|
|
-da)z=c.get(f.instanceColor),void 0!==z&&(A=z.buffer,z=z.type,n(y,1),a.bindBuffer(34962,A),a.vertexAttribPointer(y,3,z,!1,12,0));else if(void 0!==p&&(A=p[da],void 0!==A))switch(A.length){case 2:a.vertexAttrib2fv(y,A);break;case 3:a.vertexAttrib3fv(y,A);break;case 4:a.vertexAttrib4fv(y,A);break;default:a.vertexAttrib1fv(y,A)}}r()}null!==t&&a.bindBuffer(34963,c.get(t).buffer)}},reset:p,resetDefaultState:k,dispose:function(){p();for(var a in m){var b=m[a],c;for(c in b){var d=b[c],e;for(e in d)f(d[e].object),
|
|
|
-delete d[e];delete b[c]}delete m[a]}},releaseStatesOfGeometry:function(a){if(void 0!==m[a.id]){var b=m[a.id],c;for(c in b){var d=b[c],e;for(e in d)f(d[e].object),delete d[e];delete b[c]}delete m[a.id]}},releaseStatesOfProgram:function(a){for(var b in m){var c=m[b];if(void 0!==c[a.id]){var d=c[a.id],e;for(e in d)f(d[e].object),delete d[e];delete c[a.id]}}},initAttributes:h,enableAttribute:l,disableUnusedAttributes:r}}function mj(a,b,c,d){var e=d.isWebGL2,f;this.setMode=function(a){f=a};this.render=
|
|
|
-function(b,d){a.drawArrays(f,b,d);c.update(d,f,1)};this.renderInstances=function(d,h,l){if(0!==l){if(e){var g=a;var r="drawArraysInstanced"}else if(g=b.get("ANGLE_instanced_arrays"),r="drawArraysInstancedANGLE",null===g){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}g[r](f,d,h,l);c.update(h,f,l)}}}function nj(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(35633,36338).precision&&
|
|
|
-0<a.getShaderPrecisionFormat(35632,36338).precision)return"highp";b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(35633,36337).precision&&0<a.getShaderPrecisionFormat(35632,36337).precision?"mediump":"lowp"}var e,f="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&a instanceof WebGL2ComputeRenderingContext,g=void 0!==c.precision?c.precision:"highp",h=d(g);h!==g&&(console.warn("THREE.WebGLRenderer:",g,
|
|
|
-"not supported, using",h,"instead."),g=h);c=!0===c.logarithmicDepthBuffer;h=a.getParameter(34930);var l=a.getParameter(35660),n=a.getParameter(3379),r=a.getParameter(34076),p=a.getParameter(34921),k=a.getParameter(36347),t=a.getParameter(36348),q=a.getParameter(36349),v=0<l,y=f||!!b.get("OES_texture_float"),m=v&&y,x=f?a.getParameter(36183):0;return{isWebGL2:f,getMaxAnisotropy:function(){if(void 0!==e)return e;var c=b.get("EXT_texture_filter_anisotropic");return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):
|
|
|
-0},getMaxPrecision:d,precision:g,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:l,maxTextureSize:n,maxCubemapSize:r,maxAttributes:p,maxVertexUniforms:k,maxVaryings:t,maxFragmentUniforms:q,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:m,maxSamples:x}}function oj(){function a(){n.value!==d&&(n.value=d,n.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,b,d,e){var f=null!==a?a.length:0,g=null;if(0!==f){g=n.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;
|
|
|
-l.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,l),h.normal.toArray(g,d),g[d+3]=h.constant}n.value=g;n.needsUpdate=!0}c.numPlanes=f;c.numIntersection=0;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new Ya,l=new Aa,n={value:null,needsUpdate:!1};this.uniform=n;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};
|
|
|
-this.endShadows=function(){g=!1;a()};this.setState=function(c,h,l,k,q,v){if(!f||null===c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var r=4*l,p=q.clippingState||null;n.value=p;p=b(c,k,r,v);for(c=0;c!==r;++c)p[c]=d[c];q.clippingState=p;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function pj(a){function b(a,b){303===b?a.mapping=301:304===b&&(a.mapping=302);return a}var c=new WeakMap;return{get:function(d){if(d&&d.isTexture){var e=d.mapping;if(303===e||304===e)return c.has(d)?(e=
|
|
|
-c.get(d).texture,b(e,d.mapping)):(e=d.image)&&0<e.height?(e=new Jb(e.height/2),e.fromEquirectangularTexture(a,d),c.set(d,e),b(e.texture,d.mapping)):null}return d},dispose:function(){c=new WeakMap}}}function qj(a){var b={};return{has:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=a.getExtension("EXT_texture_filter_anisotropic")||
|
|
|
-a.getExtension("MOZ_EXT_texture_filter_anisotropic")||a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:d=a.getExtension(c)}b[c]=
|
|
|
-d;return!!d},get:function(a){this.has(a)||console.warn("THREE.WebGLRenderer: "+a+" extension not supported.");return b[a]}}}function rj(a,b,c,d){function e(a){a=a.target;var f=g.get(a);null!==f.index&&b.remove(f.index);for(var l in f.attributes)b.remove(f.attributes[l]);a.removeEventListener("dispose",e);g.delete(a);if(l=h.get(f))b.remove(l),h.delete(f);d.releaseStatesOfGeometry(a);!0===a.isInstancedBufferGeometry&&delete a._maxInstanceCount;c.memory.geometries--}function f(a){var c=[],d=a.index,
|
|
|
-e=a.attributes.position;if(null!==d){e=d.array;d=d.version;for(var f=0,g=e.length;f<g;f+=3){var l=e[f+0],k=e[f+1],y=e[f+2];c.push(l,k,k,y,y,l)}}else for(f=e.array,d=e.version,e=0,f=f.length/3-1;e<f;e+=3)g=e+0,l=e+1,k=e+2,c.push(g,l,l,k,k,g);c=new (65535<uh(c)?fc:ec)(c,1);c.version=d;(d=h.get(a))&&b.remove(d);h.set(a,c)}var g=new WeakMap,h=new WeakMap;return{get:function(a,b){var d=g.get(b);if(d)return d;b.addEventListener("dispose",e);b.isBufferGeometry?d=b:b.isGeometry&&(void 0===b._bufferGeometry&&
|
|
|
-(b._bufferGeometry=(new F).setFromObject(a)),d=b._bufferGeometry);g.set(b,d);c.memory.geometries++;return d},update:function(a){var c=a.attributes;for(e in c)b.update(c[e],34962);a=a.morphAttributes;for(var d in a){c=a[d];var e=0;for(var f=c.length;e<f;e++)b.update(c[e],34962)}},getWireframeAttribute:function(a){var b=h.get(a);if(b){var c=a.index;null!==c&&b.version<c.version&&f(a)}else f(a);return h.get(a)}}}function sj(a,b,c,d){var e=d.isWebGL2,f,g,h;this.setMode=function(a){f=a};this.setIndex=
|
|
|
-function(a){g=a.type;h=a.bytesPerElement};this.render=function(b,d){a.drawElements(f,d,g,b*h);c.update(d,f,1)};this.renderInstances=function(d,n,r){if(0!==r){if(e){var l=a;var k="drawElementsInstanced"}else if(l=b.get("ANGLE_instanced_arrays"),k="drawElementsInstancedANGLE",null===l){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}l[k](f,n,g,d*h,r);c.update(n,f,r)}}}function tj(a){var b={frame:0,
|
|
|
-calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(a,d,e){b.calls++;switch(d){case 4:b.triangles+=a/3*e;break;case 1:b.lines+=a/2*e;break;case 3:b.lines+=e*(a-1);break;case 2:b.lines+=e*a;break;case 0:b.points+=e*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",d)}}}}function uj(a,b){return a[0]-b[0]}function vj(a,b){return Math.abs(b[1])-
|
|
|
+function f(b){return d.isWebGL2?a.deleteVertexArray(b):q.deleteVertexArrayOES(b)}function g(a){for(var b=[],c=[],d=[],e=0;e<t;e++)b[e]=0,c[e]=0,d[e]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:b,enabledAttributes:c,attributeDivisors:d,object:a,attributes:{},index:null}}function h(){for(var a=x.newAttributes,b=0,c=a.length;b<c;b++)a[b]=0}function l(a){n(a,0)}function n(c,e){var f=x.enabledAttributes,g=x.attributeDivisors;x.newAttributes[c]=1;0===f[c]&&(a.enableVertexAttribArray(c),
|
|
|
+f[c]=1);g[c]!==e&&((d.isWebGL2?a:b.get("ANGLE_instanced_arrays"))[d.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,e),g[c]=e)}function r(){for(var b=x.newAttributes,c=x.enabledAttributes,d=0,e=c.length;d<e;d++)c[d]!==b[d]&&(a.disableVertexAttribArray(d),c[d]=0)}function p(){k();x!==A&&(x=A,e(x.object))}function k(){A.geometry=null;A.program=null;A.wireframe=!1}var t=a.getParameter(34921),q=d.isWebGL2?null:b.get("OES_vertex_array_object"),v=d.isWebGL2||null!==q,m={},A=g(null),x=A;return{setup:function(f,
|
|
|
+p,k,u,t){var y=!1;if(v){y=!0===p.wireframe;var D=m[u.id];void 0===D&&(D={},m[u.id]=D);var z=D[k.id];void 0===z&&(z={},D[k.id]=z);D=z[y];void 0===D&&(D=g(d.isWebGL2?a.createVertexArray():q.createVertexArrayOES()),z[y]=D);y=D;x!==y&&(x=y,e(x.object));a:if(y=x.attributes,z=u.attributes,Object.keys(y).length!==Object.keys(z).length)y=!0;else{for(var A in z){D=y[A];var Q=z[A];if(void 0===D||D.attribute!==Q||D.data!==Q.data){y=!0;break a}}y=x.index!==t?!0:!1}if(y){A={};z=u.attributes;for(var K in z)D=z[K],
|
|
|
+Q={},Q.attribute=D,D.data&&(Q.data=D.data),A[K]=Q;x.attributes=A;x.index=t}}else if(K=!0===p.wireframe,x.geometry!==u.id||x.program!==k.id||x.wireframe!==K)x.geometry=u.id,x.program=k.id,x.wireframe=K,y=!0;!0===f.isInstancedMesh&&(y=!0);null!==t&&c.update(t,34963);if(y){if(!1!==d.isWebGL2||!f.isInstancedMesh&&!u.isInstancedBufferGeometry||null!==b.get("ANGLE_instanced_arrays")){h();K=u.attributes;k=k.getAttributes();p=p.defaultAttributeValues;for(var da in k)if(y=k[da],0<=y){var I=K[da];if(void 0!==
|
|
|
+I){if(A=I.normalized,Q=I.itemSize,D=c.get(I),void 0!==D){var w=D.buffer;z=D.type;D=D.bytesPerElement;if(I.isInterleavedBufferAttribute){var B=I.data,C=B.stride;I=I.offset;B&&B.isInstancedInterleavedBuffer?(n(y,B.meshPerAttribute),void 0===u._maxInstanceCount&&(u._maxInstanceCount=B.meshPerAttribute*B.count)):l(y);a.bindBuffer(34962,w);C*=D;D*=I;!0!==d.isWebGL2||5124!==z&&5125!==z?a.vertexAttribPointer(y,Q,z,A,C,D):a.vertexAttribIPointer(y,Q,z,C,D)}else I.isInstancedBufferAttribute?(n(y,I.meshPerAttribute),
|
|
|
+void 0===u._maxInstanceCount&&(u._maxInstanceCount=I.meshPerAttribute*I.count)):l(y),a.bindBuffer(34962,w),D=Q,!0!==d.isWebGL2||5124!==z&&5125!==z?a.vertexAttribPointer(y,D,z,A,0,0):a.vertexAttribIPointer(y,D,z,0,0)}}else if("instanceMatrix"===da)z=c.get(f.instanceMatrix),void 0!==z&&(A=z.buffer,z=z.type,n(y+0,1),n(y+1,1),n(y+2,1),n(y+3,1),a.bindBuffer(34962,A),a.vertexAttribPointer(y+0,4,z,!1,64,0),a.vertexAttribPointer(y+1,4,z,!1,64,16),a.vertexAttribPointer(y+2,4,z,!1,64,32),a.vertexAttribPointer(y+
|
|
|
+3,4,z,!1,64,48));else if("instanceColor"===da)z=c.get(f.instanceColor),void 0!==z&&(A=z.buffer,z=z.type,n(y,1),a.bindBuffer(34962,A),a.vertexAttribPointer(y,3,z,!1,12,0));else if(void 0!==p&&(A=p[da],void 0!==A))switch(A.length){case 2:a.vertexAttrib2fv(y,A);break;case 3:a.vertexAttrib3fv(y,A);break;case 4:a.vertexAttrib4fv(y,A);break;default:a.vertexAttrib1fv(y,A)}}r()}null!==t&&a.bindBuffer(34963,c.get(t).buffer)}},reset:p,resetDefaultState:k,dispose:function(){p();for(var a in m){var b=m[a],c;
|
|
|
+for(c in b){var d=b[c],e;for(e in d)f(d[e].object),delete d[e];delete b[c]}delete m[a]}},releaseStatesOfGeometry:function(a){if(void 0!==m[a.id]){var b=m[a.id],c;for(c in b){var d=b[c],e;for(e in d)f(d[e].object),delete d[e];delete b[c]}delete m[a.id]}},releaseStatesOfProgram:function(a){for(var b in m){var c=m[b];if(void 0!==c[a.id]){var d=c[a.id],e;for(e in d)f(d[e].object),delete d[e];delete c[a.id]}}},initAttributes:h,enableAttribute:l,disableUnusedAttributes:r}}function mj(a,b,c,d){var e=d.isWebGL2,
|
|
|
+f;this.setMode=function(a){f=a};this.render=function(b,d){a.drawArrays(f,b,d);c.update(d,f,1)};this.renderInstances=function(d,h,l){if(0!==l){if(e){var g=a;var r="drawArraysInstanced"}else if(g=b.get("ANGLE_instanced_arrays"),r="drawArraysInstancedANGLE",null===g){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}g[r](f,d,h,l);c.update(h,f,l)}}}function nj(a,b,c){function d(b){if("highp"===b){if(0<
|
|
|
+a.getShaderPrecisionFormat(35633,36338).precision&&0<a.getShaderPrecisionFormat(35632,36338).precision)return"highp";b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(35633,36337).precision&&0<a.getShaderPrecisionFormat(35632,36337).precision?"mediump":"lowp"}var e,f="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&a instanceof WebGL2ComputeRenderingContext,g=void 0!==c.precision?c.precision:"highp",h=
|
|
|
+d(g);h!==g&&(console.warn("THREE.WebGLRenderer:",g,"not supported, using",h,"instead."),g=h);c=!0===c.logarithmicDepthBuffer;h=a.getParameter(34930);var l=a.getParameter(35660),n=a.getParameter(3379),r=a.getParameter(34076),p=a.getParameter(34921),k=a.getParameter(36347),t=a.getParameter(36348),q=a.getParameter(36349),v=0<l,y=f||!!b.get("OES_texture_float"),m=v&&y,x=f?a.getParameter(36183):0;return{isWebGL2:f,getMaxAnisotropy:function(){if(void 0!==e)return e;var c=b.get("EXT_texture_filter_anisotropic");
|
|
|
+return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:d,precision:g,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:l,maxTextureSize:n,maxCubemapSize:r,maxAttributes:p,maxVertexUniforms:k,maxVaryings:t,maxFragmentUniforms:q,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:m,maxSamples:x}}function oj(){function a(){n.value!==d&&(n.value=d,n.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,b,d,e){var f=null!==a?a.length:0,g=null;if(0!==
|
|
|
+f){g=n.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;l.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,l),h.normal.toArray(g,d),g[d+3]=h.constant}n.value=g;n.needsUpdate=!0}c.numPlanes=f;c.numIntersection=0;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new Ya,l=new Aa,n={value:null,needsUpdate:!1};this.uniform=n;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);
|
|
|
+e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};this.endShadows=function(){g=!1;a()};this.setState=function(c,h,l,k,q,v){if(!f||null===c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var r=4*l,p=q.clippingState||null;n.value=p;p=b(c,k,r,v);for(c=0;c!==r;++c)p[c]=d[c];q.clippingState=p;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function pj(a){function b(a,b){303===b?a.mapping=301:304===b&&(a.mapping=302);return a}var c=new WeakMap;return{get:function(d){if(d&&d.isTexture){var e=
|
|
|
+d.mapping;if(303===e||304===e)return c.has(d)?(e=c.get(d).texture,b(e,d.mapping)):(e=d.image)&&0<e.height?(e=new Jb(e.height/2),e.fromEquirectangularTexture(a,d),c.set(d,e),b(e.texture,d.mapping)):null}return d},dispose:function(){c=new WeakMap}}}function qj(a){var b={};return{has:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=
|
|
|
+a.getExtension("EXT_texture_filter_anisotropic")||a.getExtension("MOZ_EXT_texture_filter_anisotropic")||a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");
|
|
|
+break;default:d=a.getExtension(c)}b[c]=d;return!!d},get:function(a){this.has(a)||console.warn("THREE.WebGLRenderer: "+a+" extension not supported.");return b[a]}}}function rj(a,b,c,d){function e(a){a=a.target;var f=g.get(a);null!==f.index&&b.remove(f.index);for(var l in f.attributes)b.remove(f.attributes[l]);a.removeEventListener("dispose",e);g.delete(a);if(l=h.get(f))b.remove(l),h.delete(f);d.releaseStatesOfGeometry(a);!0===a.isInstancedBufferGeometry&&delete a._maxInstanceCount;c.memory.geometries--}
|
|
|
+function f(a){var c=[],d=a.index,e=a.attributes.position;if(null!==d){e=d.array;d=d.version;for(var f=0,g=e.length;f<g;f+=3){var l=e[f+0],k=e[f+1],y=e[f+2];c.push(l,k,k,y,y,l)}}else for(f=e.array,d=e.version,e=0,f=f.length/3-1;e<f;e+=3)g=e+0,l=e+1,k=e+2,c.push(g,l,l,k,k,g);c=new (65535<uh(c)?fc:ec)(c,1);c.version=d;(d=h.get(a))&&b.remove(d);h.set(a,c)}var g=new WeakMap,h=new WeakMap;return{get:function(a,b){var d=g.get(b);if(d)return d;b.addEventListener("dispose",e);b.isBufferGeometry?d=b:b.isGeometry&&
|
|
|
+(void 0===b._bufferGeometry&&(b._bufferGeometry=(new F).setFromObject(a)),d=b._bufferGeometry);g.set(b,d);c.memory.geometries++;return d},update:function(a){var c=a.attributes;for(e in c)b.update(c[e],34962);a=a.morphAttributes;for(var d in a){c=a[d];var e=0;for(var f=c.length;e<f;e++)b.update(c[e],34962)}},getWireframeAttribute:function(a){var b=h.get(a);if(b){var c=a.index;null!==c&&b.version<c.version&&f(a)}else f(a);return h.get(a)}}}function sj(a,b,c,d){var e=d.isWebGL2,f,g,h;this.setMode=function(a){f=
|
|
|
+a};this.setIndex=function(a){g=a.type;h=a.bytesPerElement};this.render=function(b,d){a.drawElements(f,d,g,b*h);c.update(d,f,1)};this.renderInstances=function(d,n,r){if(0!==r){if(e){var l=a;var k="drawElementsInstanced"}else if(l=b.get("ANGLE_instanced_arrays"),k="drawElementsInstancedANGLE",null===l){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}l[k](f,n,g,d*h,r);c.update(n,f,r)}}}function tj(a){var b=
|
|
|
+{frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(a,d,e){b.calls++;switch(d){case 4:b.triangles+=a/3*e;break;case 1:b.lines+=a/2*e;break;case 3:b.lines+=e*(a-1);break;case 2:b.lines+=e*a;break;case 0:b.points+=e*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",d)}}}}function uj(a,b){return a[0]-b[0]}function vj(a,b){return Math.abs(b[1])-
|
|
|
Math.abs(a[1])}function wj(a){for(var b={},c=new Float32Array(8),d=[],e=0;8>e;e++)d[e]=[e,0];return{update:function(e,g,h,l){var f=e.morphTargetInfluences;e=void 0===f?0:f.length;var r=b[g.id];if(void 0===r){r=[];for(var p=0;p<e;p++)r[p]=[p,0];b[g.id]=r}for(p=0;p<e;p++){var k=r[p];k[0]=p;k[1]=f[p]}r.sort(vj);for(f=0;8>f;f++)f<e&&r[f][1]?(d[f][0]=r[f][0],d[f][1]=r[f][1]):(d[f][0]=Number.MAX_SAFE_INTEGER,d[f][1]=0);d.sort(uj);e=h.morphTargets&&g.morphAttributes.position;h=h.morphNormals&&g.morphAttributes.normal;
|
|
|
for(f=r=0;8>f;f++)k=d[f],p=k[0],k=k[1],p!==Number.MAX_SAFE_INTEGER&&k?(e&&g.getAttribute("morphTarget"+f)!==e[p]&&g.setAttribute("morphTarget"+f,e[p]),h&&g.getAttribute("morphNormal"+f)!==h[p]&&g.setAttribute("morphNormal"+f,h[p]),c[f]=k,r+=k):(e&&void 0!==g.getAttribute("morphTarget"+f)&&g.deleteAttribute("morphTarget"+f),h&&void 0!==g.getAttribute("morphNormal"+f)&&g.deleteAttribute("morphNormal"+f),c[f]=0);g=g.morphTargetsRelative?1:1-r;l.getUniforms().setValue(a,"morphTargetBaseInfluence",g);
|
|
|
l.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function xj(a,b,c,d){var e=new WeakMap;return{update:function(a){var f=d.render.frame,h=a.geometry,l=b.get(a,h);e.get(l)!==f&&(h.isGeometry&&l.updateFromObject(a),b.update(l),e.set(l,f));a.isInstancedMesh&&(c.update(a.instanceMatrix,34962),null!==a.instanceColor&&c.update(a.instanceColor,34962));return l},dispose:function(){e=new WeakMap}}}function vb(a,b,c,d,e,f,g,h,l,n){a=void 0!==a?a:[];Y.call(this,a,void 0!==b?b:301,c,d,e,f,void 0!==g?g:
|
|
@@ -841,7 +841,7 @@ a.stencilWrite&&(d.stencilWrite=a.stencilWrite);void 0!==a.stencilWriteMask&&(d.
|
|
|
void 0!==a.wireframeLinewidth&&(d.wireframeLinewidth=a.wireframeLinewidth);void 0!==a.wireframeLinecap&&(d.wireframeLinecap=a.wireframeLinecap);void 0!==a.wireframeLinejoin&&(d.wireframeLinejoin=a.wireframeLinejoin);void 0!==a.rotation&&(d.rotation=a.rotation);1!==a.linewidth&&(d.linewidth=a.linewidth);void 0!==a.dashSize&&(d.dashSize=a.dashSize);void 0!==a.gapSize&&(d.gapSize=a.gapSize);void 0!==a.scale&&(d.scale=a.scale);void 0!==a.polygonOffset&&(d.polygonOffset=a.polygonOffset);void 0!==a.polygonOffsetFactor&&
|
|
|
(d.polygonOffsetFactor=a.polygonOffsetFactor);void 0!==a.polygonOffsetUnits&&(d.polygonOffsetUnits=a.polygonOffsetUnits);void 0!==a.skinning&&(d.skinning=a.skinning);void 0!==a.morphTargets&&(d.morphTargets=a.morphTargets);void 0!==a.morphNormals&&(d.morphNormals=a.morphNormals);void 0!==a.dithering&&(d.dithering=a.dithering);void 0!==a.vertexTangents&&(d.vertexTangents=a.vertexTangents);void 0!==a.visible&&(d.visible=a.visible);void 0!==a.toneMapped&&(d.toneMapped=a.toneMapped);void 0!==a.userData&&
|
|
|
(d.userData=a.userData);void 0!==a.vertexColors&&(d.vertexColors="number"===typeof a.vertexColors?0<a.vertexColors?!0:!1:a.vertexColors);if(void 0!==a.uniforms)for(var e in a.uniforms){var f=a.uniforms[e];d.uniforms[e]={};switch(f.type){case "t":d.uniforms[e].value=b(f.value);break;case "c":d.uniforms[e].value=(new J).setHex(f.value);break;case "v2":d.uniforms[e].value=(new w).fromArray(f.value);break;case "v3":d.uniforms[e].value=(new m).fromArray(f.value);break;case "v4":d.uniforms[e].value=(new ea).fromArray(f.value);
|
|
|
-break;case "m3":d.uniforms[e].value=(new Aa).fromArray(f.value);case "m4":d.uniforms[e].value=(new R).fromArray(f.value);break;default:d.uniforms[e].value=f.value}}void 0!==a.defines&&(d.defines=a.defines);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&(d.fragmentShader=a.fragmentShader);if(void 0!==a.extensions)for(var g in a.extensions)d.extensions[g]=a.extensions[g];void 0!==a.shading&&(d.flatShading=1===a.shading);void 0!==a.size&&(d.size=a.size);void 0!==
|
|
|
+break;case "m3":d.uniforms[e].value=(new Aa).fromArray(f.value);break;case "m4":d.uniforms[e].value=(new R).fromArray(f.value);break;default:d.uniforms[e].value=f.value}}void 0!==a.defines&&(d.defines=a.defines);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&(d.fragmentShader=a.fragmentShader);if(void 0!==a.extensions)for(var g in a.extensions)d.extensions[g]=a.extensions[g];void 0!==a.shading&&(d.flatShading=1===a.shading);void 0!==a.size&&(d.size=a.size);void 0!==
|
|
|
a.sizeAttenuation&&(d.sizeAttenuation=a.sizeAttenuation);void 0!==a.map&&(d.map=b(a.map));void 0!==a.matcap&&(d.matcap=b(a.matcap));void 0!==a.alphaMap&&(d.alphaMap=b(a.alphaMap));void 0!==a.bumpMap&&(d.bumpMap=b(a.bumpMap));void 0!==a.bumpScale&&(d.bumpScale=a.bumpScale);void 0!==a.normalMap&&(d.normalMap=b(a.normalMap));void 0!==a.normalMapType&&(d.normalMapType=a.normalMapType);void 0!==a.normalScale&&(e=a.normalScale,!1===Array.isArray(e)&&(e=[e,e]),d.normalScale=(new w).fromArray(e));void 0!==
|
|
|
a.displacementMap&&(d.displacementMap=b(a.displacementMap));void 0!==a.displacementScale&&(d.displacementScale=a.displacementScale);void 0!==a.displacementBias&&(d.displacementBias=a.displacementBias);void 0!==a.roughnessMap&&(d.roughnessMap=b(a.roughnessMap));void 0!==a.metalnessMap&&(d.metalnessMap=b(a.metalnessMap));void 0!==a.emissiveMap&&(d.emissiveMap=b(a.emissiveMap));void 0!==a.emissiveIntensity&&(d.emissiveIntensity=a.emissiveIntensity);void 0!==a.specularMap&&(d.specularMap=b(a.specularMap));
|
|
|
void 0!==a.envMap&&(d.envMap=b(a.envMap));void 0!==a.envMapIntensity&&(d.envMapIntensity=a.envMapIntensity);void 0!==a.reflectivity&&(d.reflectivity=a.reflectivity);void 0!==a.refractionRatio&&(d.refractionRatio=a.refractionRatio);void 0!==a.lightMap&&(d.lightMap=b(a.lightMap));void 0!==a.lightMapIntensity&&(d.lightMapIntensity=a.lightMapIntensity);void 0!==a.aoMap&&(d.aoMap=b(a.aoMap));void 0!==a.aoMapIntensity&&(d.aoMapIntensity=a.aoMapIntensity);void 0!==a.gradientMap&&(d.gradientMap=b(a.gradientMap));
|