Mr.doob пре 6 година
родитељ
комит
9073da180e
3 измењених фајлова са 185 додато и 156 уклоњено
  1. 20 6
      build/three.js
  2. 145 144
      build/three.min.js
  3. 20 6
      build/three.module.js

+ 20 - 6
build/three.js

@@ -22019,7 +22019,7 @@
 
 
 		var framebufferScaleFactor = 1.0;
 		var framebufferScaleFactor = 1.0;
 
 
-		var frameOfReferenceType = 'stage';
+		var referenceSpaceType = 'local-floor';
 
 
 		if ( typeof window !== 'undefined' && 'VRFrameData' in window ) {
 		if ( typeof window !== 'undefined' && 'VRFrameData' in window ) {
 
 
@@ -22224,9 +22224,9 @@
 
 
 		};
 		};
 
 
-		this.setFrameOfReferenceType = function ( value ) {
+		this.setReferenceSpaceType = function ( value ) {
 
 
-			frameOfReferenceType = value;
+			referenceSpaceType = value;
 
 
 		};
 		};
 
 
@@ -22238,7 +22238,7 @@
 
 
 		this.getCamera = function ( camera ) {
 		this.getCamera = function ( camera ) {
 
 
-			var userHeight = frameOfReferenceType === 'stage' ? 1.6 : 0;
+			var userHeight = referenceSpaceType === 'local-floor' ? 1.6 : 0;
 
 
 			if ( isPresenting() === false ) {
 			if ( isPresenting() === false ) {
 
 
@@ -22256,7 +22256,7 @@
 
 
 			//
 			//
 
 
-			if ( frameOfReferenceType === 'stage' ) {
+			if ( referenceSpaceType === 'local-floor' ) {
 
 
 				var stageParameters = device.stageParameters;
 				var stageParameters = device.stageParameters;
 
 
@@ -22313,7 +22313,7 @@
 
 
 			standingMatrixInverse.getInverse( standingMatrix );
 			standingMatrixInverse.getInverse( standingMatrix );
 
 
-			if ( frameOfReferenceType === 'stage' ) {
+			if ( referenceSpaceType === 'local-floor' ) {
 
 
 				cameraL.matrixWorldInverse.multiply( standingMatrixInverse );
 				cameraL.matrixWorldInverse.multiply( standingMatrixInverse );
 				cameraR.matrixWorldInverse.multiply( standingMatrixInverse );
 				cameraR.matrixWorldInverse.multiply( standingMatrixInverse );
@@ -22396,6 +22396,14 @@
 
 
 		};
 		};
 
 
+		// DEPRECATED
+
+		this.setFrameOfReferenceType = function () {
+
+			console.warn( 'THREE.WebVRManager: setFrameOfReferenceType() has been deprecated.' );
+
+		};
+
 	}
 	}
 
 
 	/**
 	/**
@@ -22693,6 +22701,12 @@
 
 
 		};
 		};
 
 
+		this.setFrameOfReferenceType = function () {
+
+			console.warn( 'THREE.WebXRManager: setFrameOfReferenceType() has been deprecated.' );
+
+		};
+
 		this.submitFrame = function () {};
 		this.submitFrame = function () {};
 
 
 	}
 	}

+ 145 - 144
build/three.min.js

@@ -145,150 +145,151 @@ null!==d))return d.COMPRESSED_RGB_ETC1_WEBGL;if(37808===a||37809===a||37810===a|
 if(null!==d)return d.UNSIGNED_INT_24_8_WEBGL}return 0}}}function Yb(){H.call(this);this.type="Group"}function Xa(){H.call(this);this.type="Camera";this.matrixWorldInverse=new O;this.projectionMatrix=new O;this.projectionMatrixInverse=new O}function ja(a,b,c,d){Xa.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}
 if(null!==d)return d.UNSIGNED_INT_24_8_WEBGL}return 0}}}function Yb(){H.call(this);this.type="Group"}function Xa(){H.call(this);this.type="Camera";this.matrixWorldInverse=new O;this.projectionMatrix=new O;this.projectionMatrixInverse=new O}function ja(a,b,c,d){Xa.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}
 function Lc(a){ja.call(this);this.cameras=a||[]}function tf(a,b,c){uf.setFromMatrixPosition(b.matrixWorld);vf.setFromMatrixPosition(c.matrixWorld);var d=uf.distanceTo(vf),e=b.projectionMatrix.elements,f=c.projectionMatrix.elements,g=e[14]/(e[10]-1);c=e[14]/(e[10]+1);var h=(e[9]+1)/e[5],k=(e[9]-1)/e[5],m=(e[8]-1)/e[0],q=(f[8]+1)/f[0];e=g*m;f=g*q;q=d/(-m+q);m=q*-m;b.matrixWorld.decompose(a.position,a.quaternion,a.scale);a.translateX(m);a.translateZ(q);a.matrixWorld.compose(a.position,a.quaternion,a.scale);
 function Lc(a){ja.call(this);this.cameras=a||[]}function tf(a,b,c){uf.setFromMatrixPosition(b.matrixWorld);vf.setFromMatrixPosition(c.matrixWorld);var d=uf.distanceTo(vf),e=b.projectionMatrix.elements,f=c.projectionMatrix.elements,g=e[14]/(e[10]-1);c=e[14]/(e[10]+1);var h=(e[9]+1)/e[5],k=(e[9]-1)/e[5],m=(e[8]-1)/e[0],q=(f[8]+1)/f[0];e=g*m;f=g*q;q=d/(-m+q);m=q*-m;b.matrixWorld.decompose(a.position,a.quaternion,a.scale);a.translateX(m);a.translateZ(q);a.matrixWorld.compose(a.position,a.quaternion,a.scale);
 a.matrixWorldInverse.getInverse(a.matrixWorld);b=g+q;g=c+q;a.projectionMatrix.makePerspective(e-m,f+(d-m),h*c/g*b,k*c/g*b,b,g)}function wf(a){function b(){return null!==h&&!0===h.isPresenting}function c(){if(b()){var c=h.getEyeParameters("left");e=2*c.renderWidth*l;f=c.renderHeight*l;xa=a.getPixelRatio();a.getSize(G);a.setDrawingBufferSize(e,f,1);y.viewport.set(0,0,e/2,f);x.viewport.set(e/2,0,e/2,f);F.start()}else g.enabled&&a.setDrawingBufferSize(G.width,G.height,xa),F.stop()}function d(a,b){null!==
 a.matrixWorldInverse.getInverse(a.matrixWorld);b=g+q;g=c+q;a.projectionMatrix.makePerspective(e-m,f+(d-m),h*c/g*b,k*c/g*b,b,g)}function wf(a){function b(){return null!==h&&!0===h.isPresenting}function c(){if(b()){var c=h.getEyeParameters("left");e=2*c.renderWidth*l;f=c.renderHeight*l;xa=a.getPixelRatio();a.getSize(G);a.setDrawingBufferSize(e,f,1);y.viewport.set(0,0,e/2,f);x.viewport.set(e/2,0,e/2,f);F.start()}else g.enabled&&a.setDrawingBufferSize(G.width,G.height,xa),F.stop()}function d(a,b){null!==
-b&&4===b.length&&a.set(b[0]*e,b[1]*f,b[2]*e,b[3]*f)}var e,f,g=this,h=null,k=null,m=null,q=[],p=new O,v=new O,l=1,r="stage";"undefined"!==typeof window&&"VRFrameData"in window&&(k=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",c,!1));var u=new O,w=new ea,z=new n,y=new ja;y.viewport=new ba;y.layers.enable(1);var x=new ja;x.viewport=new ba;x.layers.enable(2);var A=new Lc([y,x]);A.layers.enable(1);A.layers.enable(2);var G=new D,xa,C=[];this.enabled=!1;this.getController=function(a){var b=
-q[a];void 0===b&&(b=new Yb,b.matrixAutoUpdate=!1,b.visible=!1,q[a]=b);return b};this.getDevice=function(){return h};this.setDevice=function(a){void 0!==a&&(h=a);F.setContext(a)};this.setFramebufferScaleFactor=function(a){l=a};this.setFrameOfReferenceType=function(a){r=a};this.setPoseTarget=function(a){void 0!==a&&(m=a)};this.getCamera=function(a){var c="stage"===r?1.6:0;if(!1===b())return a.position.set(0,c,0),a.rotation.set(0,0,0),a;h.depthNear=a.near;h.depthFar=a.far;h.getFrameData(k);if("stage"===
-r){var e=h.stageParameters;e?p.fromArray(e.sittingToStandingTransform):p.makeTranslation(0,c,0)}c=k.pose;e=null!==m?m:a;e.matrix.copy(p);e.matrix.decompose(e.position,e.quaternion,e.scale);null!==c.orientation&&(w.fromArray(c.orientation),e.quaternion.multiply(w));null!==c.position&&(w.setFromRotationMatrix(p),z.fromArray(c.position),z.applyQuaternion(w),e.position.add(z));e.updateMatrixWorld();y.near=a.near;x.near=a.near;y.far=a.far;x.far=a.far;y.matrixWorldInverse.fromArray(k.leftViewMatrix);x.matrixWorldInverse.fromArray(k.rightViewMatrix);
-v.getInverse(p);"stage"===r&&(y.matrixWorldInverse.multiply(v),x.matrixWorldInverse.multiply(v));a=e.parent;null!==a&&(u.getInverse(a.matrixWorld),y.matrixWorldInverse.multiply(u),x.matrixWorldInverse.multiply(u));y.matrixWorld.getInverse(y.matrixWorldInverse);x.matrixWorld.getInverse(x.matrixWorldInverse);y.projectionMatrix.fromArray(k.leftProjectionMatrix);x.projectionMatrix.fromArray(k.rightProjectionMatrix);tf(A,y,x);a=h.getLayers();a.length&&(a=a[0],d(y.viewport,a.leftBounds),d(x.viewport,a.rightBounds));
-a:for(a=0;a<q.length;a++){c=q[a];b:{e=a;for(var f=navigator.getGamepads&&navigator.getGamepads(),g=0,l=0,t=f.length;g<t;g++){var n=f[g];if(n&&("Daydream Controller"===n.id||"Gear VR Controller"===n.id||"Oculus Go Controller"===n.id||"OpenVR Gamepad"===n.id||n.id.startsWith("Oculus Touch")||n.id.startsWith("Spatial Controller"))){if(l===e){e=n;break b}l++}}e=void 0}if(void 0!==e&&void 0!==e.pose){if(null===e.pose)break a;f=e.pose;!1===f.hasPosition&&c.position.set(.2,-.6,-.05);null!==f.position&&c.position.fromArray(f.position);
-null!==f.orientation&&c.quaternion.fromArray(f.orientation);c.matrix.compose(c.position,c.quaternion,c.scale);c.matrix.premultiply(p);c.matrix.decompose(c.position,c.quaternion,c.scale);c.matrixWorldNeedsUpdate=!0;c.visible=!0;f="Daydream Controller"===e.id?0:1;void 0===C[a]&&(C[a]=!1);C[a]!==e.buttons[f].pressed&&(C[a]=e.buttons[f].pressed,!0===C[a]?c.dispatchEvent({type:"selectstart"}):(c.dispatchEvent({type:"selectend"}),c.dispatchEvent({type:"select"})))}else c.visible=!1}return A};this.getStandingMatrix=
-function(){return p};this.isPresenting=b;var F=new ie;this.setAnimationLoop=function(a){F.setAnimationLoop(a);b()&&F.start()};this.submitFrame=function(){b()&&h.submitFrame()};this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",c)}}function lh(a){function b(){return null!==h&&null!==k}function c(a){for(var b=0;b<p.length;b++)v[b]===a.inputSource&&p[b].dispatchEvent({type:a.type})}function d(){a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());
-z.stop()}function e(a){k=a;z.setContext(h);z.start()}function f(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var g=a.context,h=null,k=null,m="local-floor",q=null,p=[],v=[],l=new ja;l.layers.enable(1);l.viewport=new ba;var r=new ja;r.layers.enable(2);r.viewport=new ba;var u=new Lc([l,r]);u.layers.enable(1);u.layers.enable(2);this.enabled=!1;this.getController=function(a){var b=p[a];void 0===b&&(b=new Yb,
-b.matrixAutoUpdate=!1,b.visible=!1,p[a]=b);return b};this.setFramebufferScaleFactor=function(a){};this.setReferenceSpaceType=function(a){m=a};this.setSession=function(a){h=a;null!==h&&(h.addEventListener("select",c),h.addEventListener("selectstart",c),h.addEventListener("selectend",c),h.addEventListener("end",d),h.updateRenderState({baseLayer:new XRWebGLLayer(h,g)}),h.requestReferenceSpace(m).then(e),v=h.inputSources,h.addEventListener("inputsourceschange",function(){v=h.inputSources;console.log(v);
-for(var a=0;a<p.length;a++)p[a].userData.inputSource=v[a]}))};this.getCamera=function(a){if(b()){var c=a.parent,d=u.cameras;f(u,c);for(var e=0;e<d.length;e++)f(d[e],c);a.matrixWorld.copy(u.matrixWorld);a=a.children;e=0;for(c=a.length;e<c;e++)a[e].updateMatrixWorld(!0);tf(u,l,r);return u}return a};this.isPresenting=b;var n=null,z=new ie;z.setAnimationLoop(function(b,c){q=c.getViewerPose(k);if(null!==q){var d=h.renderState.baseLayer,e=q.views;a.setFramebuffer(h.renderState.baseLayer.framebuffer);for(var f=
-0;f<e.length;f++){var g=e[f],m=d.getViewport(g),l=u.cameras[f];l.matrix.fromArray(g.transform.inverse.matrix).getInverse(l.matrix);l.projectionMatrix.fromArray(g.projectionMatrix);l.viewport.set(m.x,m.y,m.width,m.height);0===f&&u.matrix.copy(l.matrix)}}for(f=0;f<p.length;f++){d=p[f];if(e=v[f])if(e=c.getPose(e.targetRaySpace,k),null!==e){d.matrix.fromArray(e.transform.matrix);d.matrix.decompose(d.position,d.rotation,d.scale);d.visible=!0;continue}d.visible=!1}n&&n(b)});this.setAnimationLoop=function(a){n=
-a};this.dispose=function(){};this.getStandingMatrix=function(){console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed.");return new O};this.getDevice=function(){console.warn("THREE.WebXRManager: getDevice() has been deprecated.")};this.setDevice=function(){console.warn("THREE.WebXRManager: setDevice() has been deprecated.")};this.submitFrame=function(){}}function ne(a){var b;function c(){la=new gg(M);Ea=new eg(M,la,a);Ea.isWebGL2||(la.get("WEBGL_depth_texture"),la.get("OES_texture_float"),
-la.get("OES_texture_half_float"),la.get("OES_texture_half_float_linear"),la.get("OES_standard_derivatives"),la.get("OES_element_index_uint"),la.get("ANGLE_instanced_arrays"));la.get("OES_texture_float_linear");ka=new sf(M,la,Ea);da=new jh(M,la,ka,Ea);da.scissor(aa.copy(ia).multiplyScalar(ca));da.viewport(S.copy(ea).multiplyScalar(ca));ha=new jg(M);T=new bh;Z=new kh(M,la,da,T,Ea,ka,ha);ua=new Yf(M);va=new hg(M,ua,ha);qa=new mg(va,ha);za=new lg(M);pa=new ah(Y,la,Ea,Z);wa=new eh;sa=new ih;oa=new cg(Y,
-da,qa,xa);Ba=new dg(M,la,ha,Ea);Ca=new ig(M,la,ha,Ea);ha.programs=pa.programs;Y.context=M;Y.capabilities=Ea;Y.extensions=la;Y.properties=T;Y.renderLists=wa;Y.state=da;Y.info=ha}function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");N=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");N=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);T.remove(a)}function g(a){var b=T.get(a).program;a.program=void 0;void 0!==b&&pa.releaseProgram(b)}
-function h(a,b){a.render(function(a){Y.renderBufferImmediate(a,b)})}function k(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=a.renderOrder;else if(a.isLight)B.pushLight(a),a.castShadow&&B.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||fa.intersectsSprite(a)){d&&mb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kc);var e=qa.update(a),f=a.material;f.visible&&E.push(a,e,f,c,mb.z,null)}}else if(a.isImmediateRenderObject)d&&mb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kc),
-E.push(a,null,a.material,c,mb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||fa.intersectsObject(a))if(d&&mb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kc),e=qa.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var p=g[h],q=f[p.materialIndex];q&&q.visible&&E.push(a,e,q,c,mb.z,p)}else f.visible&&E.push(a,e,f,c,mb.z,null);a=a.children;h=0;for(m=a.length;h<m;h++)k(a[h],b,c,d)}}function m(a,b,c,d){for(var e=
-0,f=a.length;e<f;e++){var g=a[e],h=g.object,k=g.geometry,m=void 0===d?g.material:d;g=g.group;if(c.isArrayCamera){X=c;for(var p=c.cameras,l=0,v=p.length;l<v;l++){var r=p[l];h.layers.test(r.layers)&&(da.viewport(S.copy(r.viewport)),B.setupLights(r),q(h,b,r,k,m,g))}}else X=null,q(h,b,c,k,m,g)}}function q(a,c,d,e,f,g){a.onBeforeRender(Y,c,d,e,f,g);B=sa.get(c,X||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){da.setMaterial(f);
-var k=l(d,c.fog,f,a);I=b=null;U=!1;h(a,k)}else Y.renderBufferDirect(d,c.fog,e,f,a,g);a.onAfterRender(Y,c,d,e,f,g);B=sa.get(c,X||d)}function p(a,b,c){var d=T.get(a),e=B.state.lights,h=d.lightsHash,k=e.state.hash;c=pa.getParameters(a,e.state,B.state.shadowsArray,b,Ia.numPlanes,Ia.numIntersection,c);var m=pa.getProgramCode(a,c),p=d.program,q=!0;if(void 0===p)a.addEventListener("dispose",f);else if(p.code!==m)g(a);else{if(h.stateID!==k.stateID||h.directionalLength!==k.directionalLength||h.pointLength!==
-k.pointLength||h.spotLength!==k.spotLength||h.rectAreaLength!==k.rectAreaLength||h.hemiLength!==k.hemiLength||h.shadowsLength!==k.shadowsLength)h.stateID=k.stateID,h.directionalLength=k.directionalLength,h.pointLength=k.pointLength,h.spotLength=k.spotLength,h.rectAreaLength=k.rectAreaLength,h.hemiLength=k.hemiLength,h.shadowsLength=k.shadowsLength;else if(void 0!==c.shaderID)return;q=!1}q&&(c.shaderID?(m=Wa[c.shaderID],d.shader={name:a.type,uniforms:Sb(m.uniforms),vertexShader:m.vertexShader,fragmentShader:m.fragmentShader}):
-d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader,Y),m=pa.getProgramCode(a,c),p=pa.acquireProgram(a,d.shader,c,m),d.program=p,a.program=p);c=p.getAttributes();if(a.morphTargets)for(m=a.numSupportedMorphTargets=0;m<Y.maxMorphTargets;m++)0<=c["morphTarget"+m]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(m=a.numSupportedMorphNormals=0;m<Y.maxMorphNormals;m++)0<=c["morphNormal"+m]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;
-if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Ia.numPlanes,d.numIntersection=Ia.numIntersection,c.clippingPlanes=Ia.uniform;d.fog=b;void 0===h&&(d.lightsHash=h={});h.stateID=k.stateID;h.directionalLength=k.directionalLength;h.pointLength=k.pointLength;h.spotLength=k.spotLength;h.rectAreaLength=k.rectAreaLength;h.hemiLength=k.hemiLength;h.shadowsLength=k.shadowsLength;a.lights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=
-e.state.directional,c.spotLights.value=e.state.spot,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();
-a=jb.seqWithValue(a.seq,c);d.uniformsList=a}function l(a,b,c,d){Z.resetTextureUnits();var e=T.get(c),f=e.lightsHash,g=B.state.lights.state.hash;Cd&&(ta||a!==V)&&Ia.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===V&&c.id===bb);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:!c.lights||f.stateID===g.stateID&&f.directionalLength===g.directionalLength&&f.pointLength===g.pointLength&&f.spotLength===g.spotLength&&f.rectAreaLength===g.rectAreaLength&&
-f.hemiLength===g.hemiLength&&f.shadowsLength===g.shadowsLength?void 0===e.numClippingPlanes||e.numClippingPlanes===Ia.numPlanes&&e.numIntersection===Ia.numIntersection||(c.needsUpdate=!0):c.needsUpdate=!0);c.needsUpdate&&(p(c,b,d),c.needsUpdate=!1);var h=!1,k=!1,m=!1;f=e.program;g=f.getUniforms();var q=e.shader.uniforms;da.useProgram(f.program)&&(m=k=h=!0);c.id!==bb&&(bb=c.id,k=!0);if(h||V!==a){g.setValue(M,"projectionMatrix",a.projectionMatrix);Ea.logarithmicDepthBuffer&&g.setValue(M,"logDepthBufFC",
-2/(Math.log(a.far+1)/Math.LN2));V!==a&&(V=a,m=k=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)h=g.map.cameraPosition,void 0!==h&&h.setValue(M,mb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&g.setValue(M,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(g.setOptional(M,d,"bindMatrix"),g.setOptional(M,d,"bindMatrixInverse"),a=d.skeleton))if(h=
-a.bones,Ea.floatVertexTextures){if(void 0===a.boneTexture){h=Math.sqrt(4*h.length);h=P.ceilPowerOfTwo(h);h=Math.max(h,4);var l=new Float32Array(h*h*4);l.set(a.boneMatrices);var v=new sb(l,h,h,1023,1015);v.needsUpdate=!0;a.boneMatrices=l;a.boneTexture=v;a.boneTextureSize=h}g.setValue(M,"boneTexture",a.boneTexture,Z);g.setValue(M,"boneTextureSize",a.boneTextureSize)}else g.setOptional(M,a,"boneMatrices");k&&(g.setValue(M,"toneMappingExposure",Y.toneMappingExposure),g.setValue(M,"toneMappingWhitePoint",
-Y.toneMappingWhitePoint),c.lights&&(k=m,q.ambientLightColor.needsUpdate=k,q.lightProbe.needsUpdate=k,q.directionalLights.needsUpdate=k,q.pointLights.needsUpdate=k,q.spotLights.needsUpdate=k,q.rectAreaLights.needsUpdate=k,q.hemisphereLights.needsUpdate=k),b&&c.fog&&(q.fogColor.value.copy(b.color),b.isFog?(q.fogNear.value=b.near,q.fogFar.value=b.far):b.isFogExp2&&(q.fogDensity.value=b.density)),c.isMeshBasicMaterial?t(q,c):c.isMeshLambertMaterial?(t(q,c),c.emissiveMap&&(q.emissiveMap.value=c.emissiveMap)):
-c.isMeshPhongMaterial?(t(q,c),c.isMeshToonMaterial?(r(q,c),c.gradientMap&&(q.gradientMap.value=c.gradientMap)):r(q,c)):c.isMeshStandardMaterial?(t(q,c),c.isMeshPhysicalMaterial?(u(q,c),q.reflectivity.value=c.reflectivity,q.clearCoat.value=c.clearCoat,q.clearCoatRoughness.value=c.clearCoatRoughness):u(q,c)):c.isMeshMatcapMaterial?(t(q,c),c.matcap&&(q.matcap.value=c.matcap),c.bumpMap&&(q.bumpMap.value=c.bumpMap,q.bumpScale.value=c.bumpScale,1===c.side&&(q.bumpScale.value*=-1)),c.normalMap&&(q.normalMap.value=
-c.normalMap,q.normalScale.value.copy(c.normalScale),1===c.side&&q.normalScale.value.negate()),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isMeshDepthMaterial?(t(q,c),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isMeshDistanceMaterial?(t(q,c),c.displacementMap&&(q.displacementMap.value=
-c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias),q.referencePosition.value.copy(c.referencePosition),q.nearDistance.value=c.nearDistance,q.farDistance.value=c.farDistance):c.isMeshNormalMaterial?(t(q,c),c.bumpMap&&(q.bumpMap.value=c.bumpMap,q.bumpScale.value=c.bumpScale,1===c.side&&(q.bumpScale.value*=-1)),c.normalMap&&(q.normalMap.value=c.normalMap,q.normalScale.value.copy(c.normalScale),1===c.side&&q.normalScale.value.negate()),c.displacementMap&&
-(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isLineBasicMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,c.isLineDashedMaterial&&(q.dashSize.value=c.dashSize,q.totalSize.value=c.dashSize+c.gapSize,q.scale.value=c.scale)):c.isPointsMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,q.size.value=c.size*ca,q.scale.value=.5*W,q.map.value=c.map,null!==c.map&&(!0===c.map.matrixAutoUpdate&&
-c.map.updateMatrix(),q.uvTransform.value.copy(c.map.matrix))):c.isSpriteMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,q.rotation.value=c.rotation,q.map.value=c.map,null!==c.map&&(!0===c.map.matrixAutoUpdate&&c.map.updateMatrix(),q.uvTransform.value.copy(c.map.matrix))):c.isShadowMaterial&&(q.color.value.copy(c.color),q.opacity.value=c.opacity),void 0!==q.ltc_1&&(q.ltc_1.value=J.LTC_1),void 0!==q.ltc_2&&(q.ltc_2.value=J.LTC_2),jb.upload(M,e.uniformsList,q,Z));c.isShaderMaterial&&
-!0===c.uniformsNeedUpdate&&(jb.upload(M,e.uniformsList,q,Z),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&g.setValue(M,"center",d.center);g.setValue(M,"modelViewMatrix",d.modelViewMatrix);g.setValue(M,"normalMatrix",d.normalMatrix);g.setValue(M,"modelMatrix",d.matrixWorld);return f}function t(a,b){a.opacity.value=b.opacity;b.color&&a.diffuse.value.copy(b.color);b.emissive&&a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);b.map&&(a.map.value=b.map);b.alphaMap&&(a.alphaMap.value=
-b.alphaMap);b.specularMap&&(a.specularMap.value=b.specularMap);b.envMap&&(a.envMap.value=b.envMap,a.flipEnvMap.value=b.envMap.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=b.refractionRatio,a.maxMipLevel.value=T.get(b.envMap).__maxMipLevel);b.lightMap&&(a.lightMap.value=b.lightMap,a.lightMapIntensity.value=b.lightMapIntensity);b.aoMap&&(a.aoMap.value=b.aoMap,a.aoMapIntensity.value=b.aoMapIntensity);if(b.map)var c=b.map;else b.specularMap?c=b.specularMap:b.displacementMap?
-c=b.displacementMap:b.normalMap?c=b.normalMap:b.bumpMap?c=b.bumpMap:b.roughnessMap?c=b.roughnessMap:b.metalnessMap?c=b.metalnessMap:b.alphaMap?c=b.alphaMap:b.emissiveMap&&(c=b.emissiveMap);void 0!==c&&(c.isWebGLRenderTarget&&(c=c.texture),!0===c.matrixAutoUpdate&&c.updateMatrix(),a.uvTransform.value.copy(c.matrix))}function r(a,b){a.specular.value.copy(b.specular);a.shininess.value=Math.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,
-a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias)}function u(a,b){a.roughness.value=b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=
-b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias);b.envMap&&(a.envMapIntensity.value=b.envMapIntensity)}
-console.log("THREE.WebGLRenderer","105dev");a=a||{};var w=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),z=void 0!==a.context?a.context:null,y=void 0!==a.alpha?a.alpha:!1,x=void 0!==a.depth?a.depth:!0,A=void 0!==a.stencil?a.stencil:!0,G=void 0!==a.antialias?a.antialias:!1,xa=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,C=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,F=void 0!==a.powerPreference?a.powerPreference:"default",H=void 0!==
-a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,E=null,B=null;this.domElement=w;this.context=null;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var Y=
-this,N=!1,Q=null,ma=0,R=0,L=null,yb=null,bb=-1;var I=b=null;var U=!1;var V=null,X=null,S=new ba,aa=new ba,ja=null,K=w.width,W=w.height,ca=1,ea=new ba(0,0,K,W),ia=new ba(0,0,K,W),ra=!1,fa=new Ad,Ia=new fg,Cd=!1,ta=!1,Kc=new O,mb=new n;try{y={alpha:y,depth:x,stencil:A,antialias:G,premultipliedAlpha:xa,preserveDrawingBuffer:C,powerPreference:F,failIfMajorPerformanceCaveat:H,xrCompatible:!0};w.addEventListener("webglcontextlost",d,!1);w.addEventListener("webglcontextrestored",e,!1);var M=z||w.getContext("webgl",
-y)||w.getContext("experimental-webgl",y);if(null===M){if(null!==w.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===M.getShaderPrecisionFormat&&(M.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(xf){throw console.error("THREE.WebGLRenderer: "+xf.message),xf;}var la,Ea,da,ha,T,Z,ua,va,qa,pa,wa,sa,oa,za,Ba,Ca,ka;c();var na="undefined"!==typeof navigator&&"xr"in navigator&&
-"supportsSession"in navigator.xr?new lh(Y):new wf(Y);this.vr=na;var Da=new qf(Y,qa,Ea.maxTextureSize);this.shadowMap=Da;this.getContext=function(){return M};this.getContextAttributes=function(){return M.getContextAttributes()};this.forceContextLoss=function(){var a=la.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=la.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return ca};this.setPixelRatio=function(a){void 0!==a&&(ca=a,this.setSize(K,
-W,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new D);return a.set(K,W)};this.setSize=function(a,b,c){na.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(K=a,W=b,w.width=a*ca,w.height=b*ca,!1!==c&&(w.style.width=a+"px",w.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),
-a=new D);return a.set(K*ca,W*ca)};this.setDrawingBufferSize=function(a,b,c){K=a;W=b;ca=c;w.width=a*c;w.height=b*c;this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new ba);return a.copy(S)};this.getViewport=function(a){return a.copy(ea)};this.setViewport=function(a,b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);da.viewport(S.copy(ea).multiplyScalar(ca))};this.getScissor=
-function(a){return a.copy(ia)};this.setScissor=function(a,b,c,d){a.isVector4?ia.set(a.x,a.y,a.z,a.w):ia.set(a,b,c,d);da.scissor(aa.copy(ia).multiplyScalar(ca))};this.getScissorTest=function(){return ra};this.setScissorTest=function(a){da.setScissorTest(ra=a)};this.getClearColor=function(){return oa.getClearColor()};this.setClearColor=function(){oa.setClearColor.apply(oa,arguments)};this.getClearAlpha=function(){return oa.getClearAlpha()};this.setClearAlpha=function(){oa.setClearAlpha.apply(oa,arguments)};
-this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;M.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.dispose=function(){w.removeEventListener("webglcontextlost",d,!1);w.removeEventListener("webglcontextrestored",e,!1);wa.dispose();sa.dispose();T.dispose();qa.dispose();na.dispose();ya.stop()};this.renderBufferImmediate=function(a,
-b){da.initAttributes();var c=T.get(a);a.hasPositions&&!c.position&&(c.position=M.createBuffer());a.hasNormals&&!c.normal&&(c.normal=M.createBuffer());a.hasUvs&&!c.uv&&(c.uv=M.createBuffer());a.hasColors&&!c.color&&(c.color=M.createBuffer());b=b.getAttributes();a.hasPositions&&(M.bindBuffer(34962,c.position),M.bufferData(34962,a.positionArray,35048),da.enableAttribute(b.position),M.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(M.bindBuffer(34962,c.normal),M.bufferData(34962,a.normalArray,
-35048),da.enableAttribute(b.normal),M.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(M.bindBuffer(34962,c.uv),M.bufferData(34962,a.uvArray,35048),da.enableAttribute(b.uv),M.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(M.bindBuffer(34962,c.color),M.bufferData(34962,a.colorArray,35048),da.enableAttribute(b.color),M.vertexAttribPointer(b.color,3,5126,!1,0,0));da.disableUnusedAttributes();M.drawArrays(4,0,a.count);a.count=0};this.renderBufferDirect=function(a,c,d,e,f,g){var h=f.isMesh&&
-0>f.matrixWorld.determinant();da.setMaterial(e,h);var k=l(a,c,e,f),m=!1;if(b!==d.id||I!==k.id||U!==(!0===e.wireframe))b=d.id,I=k.id,U=!0===e.wireframe,m=!0;f.morphTargetInfluences&&(za.update(f,d,e,k),m=!0);h=d.index;var q=d.attributes.position;c=1;!0===e.wireframe&&(h=va.getWireframeAttribute(d),c=2);a=Ba;if(null!==h){var p=ua.get(h);a=Ca;a.setIndex(p)}if(m){if(d&&d.isInstancedBufferGeometry&&!Ea.isWebGL2&&null===la.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");
-else{da.initAttributes();m=d.attributes;k=k.getAttributes();var v=e.defaultAttributeValues;for(A in k){var r=k[A];if(0<=r){var t=m[A];if(void 0!==t){var u=t.normalized,n=t.itemSize,w=ua.get(t);if(void 0!==w){var x=w.buffer,y=w.type;w=w.bytesPerElement;if(t.isInterleavedBufferAttribute){var G=t.data,z=G.stride;t=t.offset;G&&G.isInstancedInterleavedBuffer?(da.enableAttributeAndDivisor(r,G.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=G.meshPerAttribute*G.count)):da.enableAttribute(r);
-M.bindBuffer(34962,x);M.vertexAttribPointer(r,n,y,u,z*w,t*w)}else t.isInstancedBufferAttribute?(da.enableAttributeAndDivisor(r,t.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=t.meshPerAttribute*t.count)):da.enableAttribute(r),M.bindBuffer(34962,x),M.vertexAttribPointer(r,n,y,u,0,0)}}else if(void 0!==v&&(u=v[A],void 0!==u))switch(u.length){case 2:M.vertexAttrib2fv(r,u);break;case 3:M.vertexAttrib3fv(r,u);break;case 4:M.vertexAttrib4fv(r,u);break;default:M.vertexAttrib1fv(r,u)}}}da.disableUnusedAttributes()}null!==
-h&&M.bindBuffer(34963,p.buffer)}p=Infinity;null!==h?p=h.count:void 0!==q&&(p=q.count);h=d.drawRange.start*c;q=null!==g?g.start*c:0;var A=Math.max(h,q);g=Math.max(0,Math.min(p,h+d.drawRange.count*c,q+(null!==g?g.count*c:Infinity))-1-A+1);if(0!==g){if(f.isMesh)if(!0===e.wireframe)da.setLineWidth(e.wireframeLinewidth*(null===L?ca:1)),a.setMode(1);else switch(f.drawMode){case 0:a.setMode(4);break;case 1:a.setMode(5);break;case 2:a.setMode(6)}else f.isLine?(e=e.linewidth,void 0===e&&(e=1),da.setLineWidth(e*
-(null===L?ca:1)),f.isLineSegments?a.setMode(1):f.isLineLoop?a.setMode(2):a.setMode(3)):f.isPoints?a.setMode(0):f.isSprite&&a.setMode(4);d&&d.isInstancedBufferGeometry?0<d.maxInstancedCount&&a.renderInstances(d,A,g):a.render(A,g)}};this.compile=function(a,b){B=sa.get(a,b);B.init();a.traverse(function(a){a.isLight&&(B.pushLight(a),a.castShadow&&B.pushShadow(a))});B.setupLights(b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=0;c<b.material.length;c++)p(b.material[c],a.fog,
-b);else p(b.material,a.fog,b)})};var Aa=null,ya=new ie;ya.setAnimationLoop(function(a){na.isPresenting()||Aa&&Aa(a)});"undefined"!==typeof window&&ya.setContext(window);this.setAnimationLoop=function(a){Aa=a;na.setAnimationLoop(a);ya.start()};this.render=function(a,c,d,e){if(void 0!==d){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");var f=d}if(void 0!==e){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");
-var g=e}c&&c.isCamera?N||(I=b=null,U=!1,bb=-1,V=null,!0===a.autoUpdate&&a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),na.enabled&&(c=na.getCamera(c)),B=sa.get(a,c),B.init(),a.onBeforeRender(Y,a,c,f||L),Kc.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),fa.setFromMatrix(Kc),ta=this.localClippingEnabled,Cd=Ia.init(this.clippingPlanes,ta,c),E=wa.get(a,c),E.init(),k(a,c,0,Y.sortObjects),!0===Y.sortObjects&&E.sort(),Cd&&Ia.beginShadows(),Da.render(B.state.shadowsArray,a,c),B.setupLights(c),
-Cd&&Ia.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==f&&this.setRenderTarget(f),oa.render(E,a,c,g),d=E.opaque,e=E.transparent,a.overrideMaterial?(f=a.overrideMaterial,d.length&&m(d,a,c,f),e.length&&m(e,a,c,f)):(d.length&&m(d,a,c),e.length&&m(e,a,c)),a.onAfterRender(Y,a,c),null!==L&&(Z.updateRenderTargetMipmap(L),Z.updateMultisampleRenderTarget(L)),da.buffers.depth.setTest(!0),da.buffers.depth.setMask(!0),da.buffers.color.setMask(!0),da.setPolygonOffset(!1),na.enabled&&na.submitFrame(),
-B=E=null):console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")};this.setFramebuffer=function(a){Q!==a&&M.bindFramebuffer(36160,a);Q=a};this.getActiveCubeFace=function(){return ma};this.getActiveMipMapLevel=function(){return R};this.getRenderTarget=function(){return L};this.setRenderTarget=function(a,b,c){L=a;ma=b;R=c;a&&void 0===T.get(a).__webglFramebuffer&&Z.setupRenderTarget(a);var d=Q,e=!1;a?(d=T.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube?(d=d[b||0],
-e=!0):d=a.isWebGLMultisampleRenderTarget?T.get(a).__webglMultisampledFramebuffer:d,S.copy(a.viewport),aa.copy(a.scissor),ja=a.scissorTest):(S.copy(ea).multiplyScalar(ca),aa.copy(ia).multiplyScalar(ca),ja=ra);yb!==d&&(M.bindFramebuffer(36160,d),yb=d);da.viewport(S);da.scissor(aa);da.setScissorTest(ja);e&&(a=T.get(a.texture),M.framebufferTexture2D(36160,36064,34069+(b||0),a.__webglTexture,c||0))};this.readRenderTargetPixels=function(a,b,c,d,e,f,g){if(a&&a.isWebGLRenderTarget){var h=T.get(a).__webglFramebuffer;
-a.isWebGLRenderTargetCube&&void 0!==g&&(h=h[g]);if(h){g=!1;h!==yb&&(M.bindFramebuffer(36160,h),g=!0);try{var k=a.texture,m=k.format,q=k.type;1023!==m&&ka.convert(m)!==M.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===q||ka.convert(q)===M.getParameter(35738)||1015===q&&(Ea.isWebGL2||la.get("OES_texture_float")||la.get("WEBGL_color_buffer_float"))||1016===q&&(Ea.isWebGL2?la.get("EXT_color_buffer_float"):
-la.get("EXT_color_buffer_half_float"))?36053===M.checkFramebufferStatus(36160)?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&M.readPixels(b,c,d,e,ka.convert(m),ka.convert(q),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{g&&M.bindFramebuffer(36160,yb)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};
-this.copyFramebufferToTexture=function(a,b,c){var d=b.image.width,e=b.image.height,f=ka.convert(b.format);Z.setTexture2D(b,0);M.copyTexImage2D(3553,c||0,f,a.x,a.y,d,e,0)};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=ka.convert(c.format),h=ka.convert(c.type);Z.setTexture2D(c,0);b.isDataTexture?M.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,h,b.image.data):M.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image)}}function Dd(a,b){this.name="";this.color=new B(a);this.density=void 0!==
-b?b:2.5E-4}function Ed(a,b,c){this.name="";this.color=new B(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function Fd(){H.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function Bb(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.version=0}function Mc(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function nb(a){L.call(this);this.type=
-"SpriteMaterial";this.color=new B(16777215);this.map=null;this.rotation=0;this.sizeAttenuation=!0;this.lights=!1;this.transparent=!0;this.setValues(a)}function Nc(a){H.call(this);this.type="Sprite";if(void 0===Zb){Zb=new E;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new Bb(b,5);Zb.setIndex([0,1,2,0,2,3]);Zb.addAttribute("position",new Mc(b,3,0,!1));Zb.addAttribute("uv",new Mc(b,2,3,!1))}this.geometry=Zb;this.material=void 0!==a?a:new nb;this.center=new D(.5,.5)}
-function Oc(){H.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Pc(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");ha.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new O;this.bindMatrixInverse=new O}function Gd(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();
-else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new O)}function oe(){H.call(this);this.type="Bone"}function V(a){L.call(this);this.type="LineBasicMaterial";this.color=new B(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(a)}function T(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");
-H.call(this);this.type="Line";this.geometry=void 0!==a?a:new E;this.material=void 0!==b?b:new V({color:16777215*Math.random()})}function S(a,b){T.call(this,a,b);this.type="LineSegments"}function Hd(a,b){T.call(this,a,b);this.type="LineLoop"}function Ja(a){L.call(this);this.type="PointsMaterial";this.color=new B(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=this.morphTargets=!1;this.setValues(a)}function $b(a,b){H.call(this);this.type="Points";this.geometry=void 0!==a?a:new E;
-this.material=void 0!==b?b:new Ja({color:16777215*Math.random()})}function pe(a,b,c,d,e,f,g,h,k){X.call(this,a,b,c,d,e,f,g,h,k);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function ac(a,b,c,d,e,f,g,h,k,m,q,p){X.call(this,null,f,g,h,k,m,d,e,q,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Qc(a,b,c,d,e,f,g,h,k){X.call(this,a,b,c,d,e,f,g,h,k);this.needsUpdate=!0}function Rc(a,b,c,
-d,e,f,g,h,k,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);X.call(this,null,d,e,f,g,h,m,c,k);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function bc(a){E.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var k=
-a.faces;var m=0;for(d=k.length;m<d;m++){var q=k[m];for(c=0;3>c;c++){var p=q[h[c]];var l=q[h[(c+1)%3]];f[0]=Math.min(p,l);f[1]=Math.max(p,l);p=f[0]+","+f[1];void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]})}}for(p in g)m=g[p],h=a.vertices[m.index1],b.push(h.x,h.y,h.z),h=a.vertices[m.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(h=new n,null!==a.index){k=a.attributes.position;q=a.index;var t=a.groups;0===t.length&&(t=[{start:0,count:q.count,materialIndex:0}]);a=0;for(e=t.length;a<e;++a)for(m=
-t[a],c=m.start,d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)p=q.getX(m+c),l=q.getX(m+(c+1)%3),f[0]=Math.min(p,l),f[1]=Math.max(p,l),p=f[0]+","+f[1],void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]});for(p in g)m=g[p],h.fromBufferAttribute(k,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(k,m.index2),b.push(h.x,h.y,h.z)}else for(k=a.attributes.position,m=0,d=k.count/3;m<d;m++)for(c=0;3>c;c++)g=3*m+c,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(k,g),b.push(h.x,
-h.y,h.z);this.addAttribute("position",new C(b,3))}function Sc(a,b,c){Q.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new cc(a,b,c));this.mergeVertices()}function cc(a,b,c){E.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new n,k=new n,m=new n,q=new n,p=new n,l,t;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");
-var r=b+1;for(l=0;l<=c;l++){var u=l/c;for(t=0;t<=b;t++){var w=t/b;a(w,u,k);e.push(k.x,k.y,k.z);0<=w-1E-5?(a(w-1E-5,u,m),q.subVectors(k,m)):(a(w+1E-5,u,m),q.subVectors(m,k));0<=u-1E-5?(a(w,u-1E-5,m),p.subVectors(k,m)):(a(w,u+1E-5,m),p.subVectors(m,k));h.crossVectors(q,p).normalize();f.push(h.x,h.y,h.z);g.push(w,u)}}for(l=0;l<c;l++)for(t=0;t<b;t++)a=l*r+t+1,h=(l+1)*r+t+1,k=(l+1)*r+t,d.push(l*r+t,a,k),d.push(a,h,k);this.setIndex(d);this.addAttribute("position",new C(e,3));this.addAttribute("normal",
-new C(f,3));this.addAttribute("uv",new C(g,2))}function Tc(a,b,c,d){Q.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new oa(a,b,c,d));this.mergeVertices()}function oa(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(k[b]=a.x-1);0===c.x&&0===c.z&&(k[b]=d/2/Math.PI+.5)}E.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,
-indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],k=[];(function(a){for(var c=new n,d=new n,g=new n,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);var k,m,l=c,z=d,y=g,x=Math.pow(2,a),A=[];for(m=0;m<=x;m++){A[m]=[];var G=l.clone().lerp(y,m/x),D=z.clone().lerp(y,m/x),C=x-m;for(k=0;k<=C;k++)A[m][k]=0===k&&m===x?G:G.clone().lerp(D,k/C)}for(m=0;m<x;m++)for(k=0;k<2*(x-m)-1;k++)l=Math.floor(k/2),0===k%2?(e(A[m][l+1]),e(A[m+1][l]),e(A[m][l])):(e(A[m][l+1]),e(A[m+1][l+1]),e(A[m+1][l]))}})(d);(function(a){for(var b=
-new n,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new n,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],k.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new n;b=new n;for(var c=new n,d=new n,e=new D,f=new D,l=new D,w=0,z=0;w<h.length;w+=9,z+=6){a.set(h[w+0],h[w+1],h[w+2]);b.set(h[w+3],h[w+4],h[w+5]);c.set(h[w+6],h[w+7],h[w+8]);e.set(k[z+0],
-k[z+1]);f.set(k[z+2],k[z+3]);l.set(k[z+4],k[z+5]);d.copy(a).add(b).add(c).divideScalar(3);var y=Math.atan2(d.z,-d.x);g(e,z+0,a,y);g(f,z+2,b,y);g(l,z+4,c,y)}for(a=0;a<k.length;a+=6)b=k[a+0],c=k[a+2],d=k[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(k[a+0]+=1),.2>c&&(k[a+2]+=1),.2>d&&(k[a+4]+=1))})();this.addAttribute("position",new C(h,3));this.addAttribute("normal",new C(h.slice(),3));this.addAttribute("uv",new C(k,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Uc(a,
-b){Q.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new dc(a,b));this.mergeVertices()}function dc(a,b){oa.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Vc(a,b){Q.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Cb(a,b));this.mergeVertices()}function Cb(a,b){oa.call(this,[1,0,0,
--1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Wc(a,b){Q.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new ec(a,b));this.mergeVertices()}function ec(a,b){var c=(1+Math.sqrt(5))/2;oa.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,
-11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Xc(a,b){Q.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new fc(a,b));this.mergeVertices()}function fc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;oa.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,
-0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Yc(a,b,c,d,e,f){Q.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,
-closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new Db(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function Db(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(l=0;l<=d;l++){var m=l/d*Math.PI*2,p=Math.sin(m);m=-Math.cos(m);k.x=m*f.x+p*e.x;k.y=m*f.y+p*e.y;k.z=m*f.z+p*e.z;k.normalize();r.push(k.x,k.y,k.z);h.x=q.x+c*k.x;h.y=q.y+c*k.y;h.z=
-q.z+c*k.z;t.push(h.x,h.y,h.z)}}E.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new n,k=new n,m=new D,q=new n,p,l,t=[],r=[],u=[],w=[];for(p=0;p<b;p++)f(p);f(!1===e?b:0);for(p=0;p<=b;p++)for(l=0;l<=d;l++)m.x=p/b,m.y=l/d,u.push(m.x,m.y);(function(){for(l=1;l<=b;l++)for(p=1;p<=d;p++){var a=
-(d+1)*l+(p-1),c=(d+1)*l+p,e=(d+1)*(l-1)+p;w.push((d+1)*(l-1)+(p-1),a,e);w.push(a,c,e)}})();this.setIndex(w);this.addAttribute("position",new C(t,3));this.addAttribute("normal",new C(r,3));this.addAttribute("uv",new C(u,2))}function Zc(a,b,c,d,e,f,g){Q.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new gc(a,
-b,c,d,e,f));this.mergeVertices()}function gc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}E.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;var h=[],k=[],m=[],q=[],p,l=new n,t=new n,r=new n,u=new n,w=new n,z=new n,y=new n;for(p=0;p<=c;++p){var x=p/c*e*Math.PI*2;
-g(x,e,f,a,r);g(x+.01,e,f,a,u);z.subVectors(u,r);y.addVectors(u,r);w.crossVectors(z,y);y.crossVectors(w,z);w.normalize();y.normalize();for(x=0;x<=d;++x){var A=x/d*Math.PI*2,G=-b*Math.cos(A);A=b*Math.sin(A);l.x=r.x+(G*y.x+A*w.x);l.y=r.y+(G*y.y+A*w.y);l.z=r.z+(G*y.z+A*w.z);k.push(l.x,l.y,l.z);t.subVectors(l,r).normalize();m.push(t.x,t.y,t.z);q.push(p/c);q.push(x/d)}}for(x=1;x<=c;x++)for(p=1;p<=d;p++)a=(d+1)*x+(p-1),b=(d+1)*x+p,e=(d+1)*(x-1)+p,h.push((d+1)*(x-1)+(p-1),a,e),h.push(a,b,e);this.setIndex(h);
-this.addAttribute("position",new C(k,3));this.addAttribute("normal",new C(m,3));this.addAttribute("uv",new C(q,2))}function $c(a,b,c,d,e){Q.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new hc(a,b,c,d,e));this.mergeVertices()}function hc(a,b,c,d,e){E.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||
-6;e=e||2*Math.PI;var f=[],g=[],h=[],k=[],m=new n,q=new n,p=new n,l,t;for(l=0;l<=c;l++)for(t=0;t<=d;t++){var r=t/d*e,u=l/c*Math.PI*2;q.x=(a+b*Math.cos(u))*Math.cos(r);q.y=(a+b*Math.cos(u))*Math.sin(r);q.z=b*Math.sin(u);g.push(q.x,q.y,q.z);m.x=a*Math.cos(r);m.y=a*Math.sin(r);p.subVectors(q,m).normalize();h.push(p.x,p.y,p.z);k.push(t/d);k.push(l/c)}for(l=1;l<=c;l++)for(t=1;t<=d;t++)a=(d+1)*(l-1)+t-1,b=(d+1)*(l-1)+t,e=(d+1)*l+t,f.push((d+1)*l+t-1,a,e),f.push(a,b,e);this.setIndex(f);this.addAttribute("position",
-new C(g,3));this.addAttribute("normal",new C(h,3));this.addAttribute("uv",new C(k,2))}function yf(a,b,c,d,e){for(var f,g=0,h=b,k=c-d;h<c;h+=d)g+=(a[k]-a[h])*(a[h+1]+a[k+1]),k=h;if(e===0<g)for(e=b;e<c;e+=d)f=zf(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=zf(e,a[e],a[e+1],f);f&&Eb(f,f.next)&&(ad(f),f=f.next);return f}function bd(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!Eb(a,a.next)&&0!==qa(a.prev,a,a.next))a=a.next;else{ad(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}
-function cd(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,k=h;do null===k.z&&(k.z=qe(k.x,k.y,d,e,f)),k.prevZ=k.prev,k=k.nextZ=k.next;while(k!==h);k.prevZ.nextZ=null;k.prevZ=null;h=k;var m,q,p,l,t=1;do{k=h;var r=h=null;for(q=0;k;){q++;var n=k;for(m=p=0;m<t&&(p++,n=n.nextZ,n);m++);for(l=t;0<p||0<l&&n;)0!==p&&(0===l||!n||k.z<=n.z)?(m=k,k=k.nextZ,p--):(m=n,n=n.nextZ,l--),r?r.nextZ=m:h=m,m.prevZ=r,r=m;k=n}r.nextZ=null;t*=2}while(1<q)}for(h=a;a.prev!==a.next;){k=a.prev;n=a.next;if(f)a:{r=a;l=d;var w=e,z=f;q=r.prev;
-p=r;t=r.next;if(0<=qa(q,p,t))r=!1;else{var y=q.x>p.x?q.x>t.x?q.x:t.x:p.x>t.x?p.x:t.x,x=q.y>p.y?q.y>t.y?q.y:t.y:p.y>t.y?p.y:t.y;m=qe(q.x<p.x?q.x<t.x?q.x:t.x:p.x<t.x?p.x:t.x,q.y<p.y?q.y<t.y?q.y:t.y:p.y<t.y?p.y:t.y,l,w,z);l=qe(y,x,l,w,z);for(w=r.nextZ;w&&w.z<=l;){if(w!==r.prev&&w!==r.next&&Id(q.x,q.y,p.x,p.y,t.x,t.y,w.x,w.y)&&0<=qa(w.prev,w,w.next)){r=!1;break a}w=w.nextZ}for(w=r.prevZ;w&&w.z>=m;){if(w!==r.prev&&w!==r.next&&Id(q.x,q.y,p.x,p.y,t.x,t.y,w.x,w.y)&&0<=qa(w.prev,w,w.next)){r=!1;break a}w=
-w.prevZ}r=!0}}else a:if(r=a,q=r.prev,p=r,t=r.next,0<=qa(q,p,t))r=!1;else{for(m=r.next.next;m!==r.prev;){if(Id(q.x,q.y,p.x,p.y,t.x,t.y,m.x,m.y)&&0<=qa(m.prev,m,m.next)){r=!1;break a}m=m.next}r=!0}if(r)b.push(k.i/c),b.push(a.i/c),b.push(n.i/c),ad(a),h=a=n.next;else if(a=n,a===h){if(!g)cd(bd(a),b,c,d,e,f,1);else if(1===g){g=b;h=c;k=a;do n=k.prev,r=k.next.next,!Eb(n,r)&&Af(n,k,k.next,r)&&dd(n,r)&&dd(r,n)&&(g.push(n.i/h),g.push(k.i/h),g.push(r.i/h),ad(k),ad(k.next),k=a=r),k=k.next;while(k!==a);a=k;cd(a,
-b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(k=g.i!==h.i){k=g;n=h;if(r=k.next.i!==n.i&&k.prev.i!==n.i){b:{r=k;do{if(r.i!==k.i&&r.next.i!==k.i&&r.i!==n.i&&r.next.i!==n.i&&Af(r,r.next,k,n)){r=!0;break b}r=r.next}while(r!==k);r=!1}r=!r}if(r=r&&dd(k,n)&&dd(n,k)){r=k;q=!1;p=(k.x+n.x)/2;n=(k.y+n.y)/2;do r.y>n!==r.next.y>n&&r.next.y!==r.y&&p<(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(q=!q),r=r.next;while(r!==k);r=q}k=r}if(k){a=Bf(g,h);g=bd(g,g.next);a=bd(a,a.next);cd(g,b,c,d,e,
-f);cd(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function mh(a,b){return a.x-b.x}function nh(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;if(d===f)return h.prev;b=h;g=h.x;var k=h.y,m=Infinity;for(c=h.next;c!==b;){if(d>=c.x&&c.x>=g&&d!==c.x&&Id(e<k?d:f,e,
-g,k,e<k?f:d,e,c.x,c.y)){var q=Math.abs(e-c.y)/(d-c.x);(q<m||q===m&&c.x>h.x)&&dd(c,a)&&(h=c,m=q)}c=c.next}return h}function qe(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function oh(a){var b=a,c=a;do b.x<c.x&&(c=b),b=b.next;while(b!==a);return c}function Id(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-
-g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function qa(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function Eb(a,b){return a.x===b.x&&a.y===b.y}function Af(a,b,c,d){return Eb(a,b)&&Eb(c,d)||Eb(a,d)&&Eb(c,b)?!0:0<qa(a,b,c)!==0<qa(a,b,d)&&0<qa(c,d,a)!==0<qa(c,d,b)}function dd(a,b){return 0>qa(a.prev,a,a.next)?0<=qa(a,b,a.next)&&0<=qa(a,a.prev,b):0>qa(a,b,a.prev)||0>qa(a,a.next,b)}function Bf(a,b){var c=new re(a.i,a.x,a.y),d=new re(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=
-c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function zf(a,b,c,d){a=new re(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):(a.prev=a,a.next=a);return a}function ad(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function re(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function Cf(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function Df(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),
-a.push(b[c].y)}function Fb(a,b){Q.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new Ya(a,b));this.mergeVertices()}function Ya(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var d=a.x-b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var k=Math.sqrt(h),m=Math.sqrt(f*f+g*g);h=b.x-e/k;b=b.y+d/k;
-g=((c.x-g/m-h)*g-(c.y+f/m-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new D(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new D(f/e,d/e)}function h(a,b){for(K=a.length;0<=--K;){var c=K;var f=K-1;0>f&&(f=a.length-1);var g,h=y+2*F;for(g=0;g<h;g++){var k=X*g,m=X*(g+1),q=b+f+k,p=b+f+m;m=b+c+m;r(b+c+k);r(q);r(m);r(q);
-r(p);r(m);k=e.length/3;k=H.generateSideWallUV(d,e,k-6,k-3,k-2,k-1);u(k[0]);u(k[1]);u(k[3]);u(k[1]);u(k[2]);u(k[3])}}}function k(a,b,c){w.push(a);w.push(b);w.push(c)}function l(a,b,c){r(a);r(b);r(c);a=e.length/3;a=H.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function r(a){e.push(w[3*a]);e.push(w[3*a+1]);e.push(w[3*a+2])}function u(a){f.push(a.x);f.push(a.y)}var w=[],z=void 0!==b.curveSegments?b.curveSegments:12,y=void 0!==b.steps?b.steps:1,x=void 0!==b.depth?b.depth:100,A=void 0!==b.bevelEnabled?
-b.bevelEnabled:!0,G=void 0!==b.bevelThickness?b.bevelThickness:6,C=void 0!==b.bevelSize?b.bevelSize:G-2,B=void 0!==b.bevelOffset?b.bevelOffset:0,F=void 0!==b.bevelSegments?b.bevelSegments:3,E=b.extrudePath,H=void 0!==b.UVGenerator?b.UVGenerator:ph;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),x=b.amount);var J=!1;if(E){var Y=E.getSpacedPoints(y);J=!0;A=!1;var N=E.computeFrenetFrames(y,!1);var Q=new n;var ma=new n;var R=new n}A||(B=C=G=F=0);var O;
-z=a.extractPoints(z);a=z.shape;var L=z.holes;if(!db.isClockWise(a)){a=a.reverse();var I=0;for(O=L.length;I<O;I++){var P=L[I];db.isClockWise(P)&&(L[I]=P.reverse())}}var U=db.triangulateShape(a,L),V=a;I=0;for(O=L.length;I<O;I++)P=L[I],a=a.concat(P);var S,X=a.length,T,aa=U.length;z=[];var K=0;var W=V.length;var ca=W-1;for(S=K+1;K<W;K++,ca++,S++)ca===W&&(ca=0),S===W&&(S=0),z[K]=g(V[K],V[ca],V[S]);E=[];var ba=z.concat();I=0;for(O=L.length;I<O;I++){P=L[I];var Z=[];K=0;W=P.length;ca=W-1;for(S=K+1;K<W;K++,
-ca++,S++)ca===W&&(ca=0),S===W&&(S=0),Z[K]=g(P[K],P[ca],P[S]);E.push(Z);ba=ba.concat(Z)}for(ca=0;ca<F;ca++){W=ca/F;var ea=G*Math.cos(W*Math.PI/2);S=C*Math.sin(W*Math.PI/2)+B;K=0;for(W=V.length;K<W;K++){var fa=c(V[K],z[K],S);k(fa.x,fa.y,-ea)}I=0;for(O=L.length;I<O;I++)for(P=L[I],Z=E[I],K=0,W=P.length;K<W;K++)fa=c(P[K],Z[K],S),k(fa.x,fa.y,-ea)}S=C+B;for(K=0;K<X;K++)fa=A?c(a[K],ba[K],S):a[K],J?(ma.copy(N.normals[0]).multiplyScalar(fa.x),Q.copy(N.binormals[0]).multiplyScalar(fa.y),R.copy(Y[0]).add(ma).add(Q),
-k(R.x,R.y,R.z)):k(fa.x,fa.y,0);for(W=1;W<=y;W++)for(K=0;K<X;K++)fa=A?c(a[K],ba[K],S):a[K],J?(ma.copy(N.normals[W]).multiplyScalar(fa.x),Q.copy(N.binormals[W]).multiplyScalar(fa.y),R.copy(Y[W]).add(ma).add(Q),k(R.x,R.y,R.z)):k(fa.x,fa.y,x/y*W);for(ca=F-1;0<=ca;ca--){W=ca/F;ea=G*Math.cos(W*Math.PI/2);S=C*Math.sin(W*Math.PI/2)+B;K=0;for(W=V.length;K<W;K++)fa=c(V[K],z[K],S),k(fa.x,fa.y,x+ea);I=0;for(O=L.length;I<O;I++)for(P=L[I],Z=E[I],K=0,W=P.length;K<W;K++)fa=c(P[K],Z[K],S),J?k(fa.x,fa.y+Y[y-1].y,Y[y-
-1].x+ea):k(fa.x,fa.y,x+ea)}(function(){var a=e.length/3;if(A){var b=0*X;for(K=0;K<aa;K++)T=U[K],l(T[2]+b,T[1]+b,T[0]+b);b=X*(y+2*F);for(K=0;K<aa;K++)T=U[K],l(T[0]+b,T[1]+b,T[2]+b)}else{for(K=0;K<aa;K++)T=U[K],l(T[2],T[1],T[0]);for(K=0;K<aa;K++)T=U[K],l(T[0]+X*y,T[1]+X*y,T[2]+X*y)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(V,b);b+=V.length;I=0;for(O=L.length;I<O;I++)P=L[I],h(P,b),b+=P.length;d.addGroup(a,e.length/3-a,1)})()}E.call(this);this.type="ExtrudeBufferGeometry";this.parameters=
-{shapes:a,options:b};a=Array.isArray(a)?a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.addAttribute("position",new C(e,3));this.addAttribute("uv",new C(f,2));this.computeVertexNormals()}function Ef(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function ed(a,b){Q.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};
-this.fromBufferGeometry(new ic(a,b));this.mergeVertices()}function ic(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new Q;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);Ya.call(this,a,b);this.type="TextBufferGeometry"}function fd(a,b,c,d,e,f,g){Q.call(this);this.type=
-"SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new ob(a,b,c,d,e,f,g));this.mergeVertices()}function ob(a,b,c,d,e,f,g){E.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?
-f:0;g=void 0!==g?g:Math.PI;var h=Math.min(f+g,Math.PI),k,m,q=0,p=[],l=new n,t=new n,r=[],u=[],w=[],z=[];for(m=0;m<=c;m++){var y=[],x=m/c,A=0;0==m&&0==f?A=.5/b:m==c&&h==Math.PI&&(A=-.5/b);for(k=0;k<=b;k++){var G=k/b;l.x=-a*Math.cos(d+G*e)*Math.sin(f+x*g);l.y=a*Math.cos(f+x*g);l.z=a*Math.sin(d+G*e)*Math.sin(f+x*g);u.push(l.x,l.y,l.z);t.copy(l).normalize();w.push(t.x,t.y,t.z);z.push(G+A,1-x);y.push(q++)}p.push(y)}for(m=0;m<c;m++)for(k=0;k<b;k++)a=p[m][k+1],d=p[m][k],e=p[m+1][k],g=p[m+1][k+1],(0!==m||
-0<f)&&r.push(a,d,g),(m!==c-1||h<Math.PI)&&r.push(d,e,g);this.setIndex(r);this.addAttribute("position",new C(u,3));this.addAttribute("normal",new C(w,3));this.addAttribute("uv",new C(z,2))}function gd(a,b,c,d,e,f){Q.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new jc(a,b,c,d,e,f));this.mergeVertices()}function jc(a,b,c,d,e,f){E.call(this);this.type="RingBufferGeometry";this.parameters=
-{innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=[],h=[],k=[],m=[],q=a,p=(b-a)/d,l=new n,t=new D,r,u;for(r=0;r<=d;r++){for(u=0;u<=c;u++)a=e+u/c*f,l.x=q*Math.cos(a),l.y=q*Math.sin(a),h.push(l.x,l.y,l.z),k.push(0,0,1),t.x=(l.x/b+1)/2,t.y=(l.y/b+1)/2,m.push(t.x,t.y);q+=p}for(r=0;r<d;r++)for(b=r*(c+1),u=0;u<c;u++)a=u+b,e=a+c+1,f=a+c+2,q=a+1,g.push(a,
-e,q),g.push(e,f,q);this.setIndex(g);this.addAttribute("position",new C(h,3));this.addAttribute("normal",new C(k,3));this.addAttribute("uv",new C(m,2))}function hd(a,b,c,d){Q.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new kc(a,b,c,d));this.mergeVertices()}function kc(a,b,c,d){E.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;
-d=P.clamp(d,0,2*Math.PI);var e=[],f=[],g=[],h=1/b,k=new n,m=new D,q;for(q=0;q<=b;q++){var p=c+q*h*d;var l=Math.sin(p),t=Math.cos(p);for(p=0;p<=a.length-1;p++)k.x=a[p].x*l,k.y=a[p].y,k.z=a[p].x*t,f.push(k.x,k.y,k.z),m.x=q/b,m.y=p/(a.length-1),g.push(m.x,m.y)}for(q=0;q<b;q++)for(p=0;p<a.length-1;p++)c=p+q*a.length,h=c+a.length,k=c+a.length+1,m=c+1,e.push(c,h,m),e.push(h,k,m);this.setIndex(e);this.addAttribute("position",new C(f,3));this.addAttribute("uv",new C(g,2));this.computeVertexNormals();if(d===
-2*Math.PI)for(d=this.attributes.normal.array,e=new n,f=new n,g=new n,c=b*a.length*3,p=q=0;q<a.length;q++,p+=3)e.x=d[p+0],e.y=d[p+1],e.z=d[p+2],f.x=d[c+p+0],f.y=d[c+p+1],f.z=d[c+p+2],g.addVectors(e,f).normalize(),d[p+0]=d[c+p+0]=g.x,d[p+1]=d[c+p+1]=g.y,d[p+2]=d[c+p+2]=g.z}function Gb(a,b){Q.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new Hb(a,
-b));this.mergeVertices()}function Hb(a,b){function c(a){var c,h=e.length/3;a=a.extractPoints(b);var m=a.shape,q=a.holes;!1===db.isClockWise(m)&&(m=m.reverse());a=0;for(c=q.length;a<c;a++){var l=q[a];!0===db.isClockWise(l)&&(q[a]=l.reverse())}var n=db.triangulateShape(m,q);a=0;for(c=q.length;a<c;a++)l=q[a],m=m.concat(l);a=0;for(c=m.length;a<c;a++)l=m[a],e.push(l.x,l.y,0),f.push(0,0,1),g.push(l.x,l.y);a=0;for(c=n.length;a<c;a++)m=n[a],d.push(m[0]+h,m[1]+h,m[2]+h),k+=3}E.call(this);this.type="ShapeBufferGeometry";
-this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,k=0;if(!1===Array.isArray(a))c(a);else for(var m=0;m<a.length;m++)c(a[m]),this.addGroup(h,k,m),h+=k,k=0;this.setIndex(d);this.addAttribute("position",new C(e,3));this.addAttribute("normal",new C(f,3));this.addAttribute("uv",new C(g,2))}function Ff(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function lc(a,b){E.call(this);this.type="EdgesGeometry";
-this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new Q;g.fromBufferGeometry(a)}else g=a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,k=g.length;h<k;h++)for(var m=g[h],q=0;3>q;q++){var l=m[f[q]];var n=m[f[(q+1)%3]];d[0]=Math.min(l,n);d[1]=Math.max(l,n);l=d[0]+","+d[1];void 0===e[l]?e[l]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[l].face2=h}for(l in e)if(d=e[l],
-void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.addAttribute("position",new C(c,3))}function Ib(a,b,c,d,e,f,g,h){Q.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new eb(a,b,c,d,e,f,g,h));this.mergeVertices()}function eb(a,b,c,d,e,f,g,h){function k(c){var e,f=new D,k=new n,
-p=0,u=!0===c?a:b,y=!0===c?1:-1;var C=r;for(e=1;e<=d;e++)l.push(0,w*y,0),v.push(0,y,0),t.push(.5,.5),r++;var E=r;for(e=0;e<=d;e++){var B=e/d*h+g,H=Math.cos(B);B=Math.sin(B);k.x=u*B;k.y=w*y;k.z=u*H;l.push(k.x,k.y,k.z);v.push(0,y,0);f.x=.5*H+.5;f.y=.5*B*y+.5;t.push(f.x,f.y);r++}for(e=0;e<d;e++)f=C+e,k=E+e,!0===c?q.push(k,k+1,f):q.push(k+1,k,f),p+=3;m.addGroup(z,p,!0===c?1:2);z+=p}E.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,
-openEnded:f,thetaStart:g,thetaLength:h};var m=this;a=void 0!==a?a:1;b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==h?h:2*Math.PI;var q=[],l=[],v=[],t=[],r=0,u=[],w=c/2,z=0;(function(){var f,k,p=new n,G=new n,D=0,C=(b-a)/c;for(k=0;k<=e;k++){var F=[],B=k/e,E=B*(b-a)+a;for(f=0;f<=d;f++){var H=f/d,I=H*h+g,J=Math.sin(I);I=Math.cos(I);G.x=E*J;G.y=-B*c+w;G.z=E*I;l.push(G.x,G.y,G.z);p.set(J,C,I).normalize();v.push(p.x,p.y,p.z);t.push(H,1-B);F.push(r++)}u.push(F)}for(f=
-0;f<d;f++)for(k=0;k<e;k++)p=u[k+1][f],G=u[k+1][f+1],C=u[k][f+1],q.push(u[k][f],p,C),q.push(p,G,C),D+=6;m.addGroup(z,D,0);z+=D})();!1===f&&(0<a&&k(!0),0<b&&k(!1));this.setIndex(q);this.addAttribute("position",new C(l,3));this.addAttribute("normal",new C(v,3));this.addAttribute("uv",new C(t,2))}function id(a,b,c,d,e,f,g){Ib.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function jd(a,b,
-c,d,e,f,g){eb.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function kd(a,b,c,d){Q.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new mc(a,b,c,d));this.mergeVertices()}function mc(a,b,c,d){E.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};
-a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],k,m=new n,q=new D;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);var l=0;for(k=3;l<=b;l++,k+=3){var v=c+l/b*d;m.x=a*Math.cos(v);m.y=a*Math.sin(v);f.push(m.x,m.y,m.z);g.push(0,0,1);q.x=(f[k]/a+1)/2;q.y=(f[k+1]/a+1)/2;h.push(q.x,q.y)}for(k=1;k<=b;k++)e.push(k,k+1,0);this.setIndex(e);this.addAttribute("position",new C(f,3));this.addAttribute("normal",new C(g,3));this.addAttribute("uv",new C(h,2))}function Jb(a){L.call(this);
-this.type="ShadowMaterial";this.color=new B(0);this.transparent=!0;this.setValues(a)}function nc(a){sa.call(this,a);this.type="RawShaderMaterial"}function Za(a){L.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new B(16777215);this.metalness=this.roughness=.5;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;
-this.normalMapType=0;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Kb(a){Za.call(this);this.defines={PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=
-.5;this.clearCoatRoughness=this.clearCoat=0;this.setValues(a)}function Ka(a){L.call(this);this.type="MeshPhongMaterial";this.color=new B(16777215);this.specular=new B(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=
-1;this.displacementBias=0;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Lb(a){Ka.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}function Mb(a){L.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=
-1;this.normalMap=null;this.normalMapType=0;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.lights=this.fog=!1;this.setValues(a)}function Nb(a){L.call(this);this.type="MeshLambertMaterial";this.color=new B(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=
-1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Ob(a){L.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new B(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=
-0;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.lights=this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Pb(a){V.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function Da(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=c}function Jd(a,b,c,
-d){Da.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function ld(a,b,c,d){Da.call(this,a,b,c,d)}function Kd(a,b,c,d){Da.call(this,a,b,c,d)}function Z(a,b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+a);this.name=a;this.times=ra.convertArray(b,this.TimeBufferType);this.values=ra.convertArray(c,this.ValueBufferType);this.setInterpolation(d||
-this.DefaultInterpolation)}function Ld(a,b,c){Z.call(this,a,b,c)}function Md(a,b,c,d){Z.call(this,a,b,c,d)}function oc(a,b,c,d){Z.call(this,a,b,c,d)}function Nd(a,b,c,d){Da.call(this,a,b,c,d)}function md(a,b,c,d){Z.call(this,a,b,c,d)}function Od(a,b,c,d){Z.call(this,a,b,c,d)}function pc(a,b,c,d){Z.call(this,a,b,c,d)}function Ga(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=P.generateUUID();0>this.duration&&this.resetDuration()}function qh(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return oc;
-case "vector":case "vector2":case "vector3":case "vector4":return pc;case "color":return Md;case "quaternion":return md;case "bool":case "boolean":return Ld;case "string":return Od}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function rh(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=qh(a.type);if(void 0===a.times){var c=[],d=[];ra.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,
-a.times,a.values,a.interpolation)}function se(a,b,c){var d=this,e=!1,f=0,g=0,h=void 0;this.onStart=void 0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)};this.resolveURL=function(a){return h?h(a):a};this.setURLModifier=function(a){h=a;
-return this}}function La(a){this.manager=void 0!==a?a:za}function Gf(a){this.manager=void 0!==a?a:za}function Hf(a){this.manager=void 0!==a?a:za;this._parser=null}function te(a){this.manager=void 0!==a?a:za;this._parser=null}function nd(a){this.manager=void 0!==a?a:za}function ue(a){this.manager=void 0!==a?a:za}function Pd(a){this.manager=void 0!==a?a:za}function N(){this.type="Curve";this.arcLengthDivisions=200}function Aa(a,b,c,d,e,f,g,h){N.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=
-b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*Math.PI;this.aClockwise=g||!1;this.aRotation=h||0}function qc(a,b,c,d,e,f){Aa.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function ve(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,k){e=k*(g-e);h=k*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,k,m,q){e=((f-e)/k-(g-e)/(k+m)+(g-f)/m)*m;h=((g-f)/m-(h-f)/(m+q)+(h-g)/q)*m;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=
-e*e;return a+b*e+c*f+d*f*e}}}function ua(a,b,c,d){N.call(this);this.type="CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=d||.5}function If(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function od(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function pd(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function Ma(a,b,c,d){N.call(this);this.type="CubicBezierCurve";this.v0=
-a||new D;this.v1=b||new D;this.v2=c||new D;this.v3=d||new D}function $a(a,b,c,d){N.call(this);this.type="CubicBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n;this.v3=d||new n}function Ba(a,b){N.call(this);this.type="LineCurve";this.v1=a||new D;this.v2=b||new D}function Na(a,b){N.call(this);this.type="LineCurve3";this.v1=a||new n;this.v2=b||new n}function Oa(a,b,c){N.call(this);this.type="QuadraticBezierCurve";this.v0=a||new D;this.v1=b||new D;this.v2=c||new D}function ab(a,b,c){N.call(this);
-this.type="QuadraticBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n}function Pa(a){N.call(this);this.type="SplineCurve";this.points=a||[]}function fb(){N.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function Qa(a){fb.call(this);this.type="Path";this.currentPoint=new D;a&&this.setFromPoints(a)}function pb(a){Qa.call(this,a);this.uuid=P.generateUUID();this.type="Shape";this.holes=[]}function aa(a,b){H.call(this);this.type="Light";this.color=new B(a);this.intensity=
-void 0!==b?b:1;this.receiveShadow=void 0}function Qd(a,b,c){aa.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(H.DefaultUp);this.updateMatrix();this.groundColor=new B(b)}function Qb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new D(512,512);this.map=null;this.matrix=new O}function Rd(){Qb.call(this,new ja(50,1,.5,500))}function Sd(a,b,c,d,e,f){aa.call(this,a,b);this.type="SpotLight";this.position.copy(H.DefaultUp);this.updateMatrix();this.target=new H;
-Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new Rd}function Td(a,b,c,d){aa.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==
-d?d:1;this.shadow=new Qb(new ja(90,1,.5,500))}function qd(a,b,c,d,e,f){Xa.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=void 0!==a?a:-1;this.right=void 0!==b?b:1;this.top=void 0!==c?c:1;this.bottom=void 0!==d?d:-1;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function Ud(){Qb.call(this,new qd(-5,5,5,-5,.5,500))}function Vd(a,b){aa.call(this,a,b);this.type="DirectionalLight";this.position.copy(H.DefaultUp);this.updateMatrix();this.target=
-new H;this.shadow=new Ud}function Wd(a,b){aa.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function Xd(a,b,c,d){aa.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function Yd(a){this.manager=void 0!==a?a:za;this.textures={}}function Zd(){E.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function $d(a,b,c,d){"number"===typeof c&&(d=c,c=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));
-I.call(this,a,b,c);this.meshPerAttribute=d||1}function we(a){this.manager=void 0!==a?a:za}function xe(a){this.manager=void 0!==a?a:za;this.resourcePath=""}function ye(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");this.manager=void 0!==a?a:za;this.options=void 0}function ze(){this.type="ShapePath";this.color=new B;this.subPaths=[];this.currentPath=
-null}function Ae(a){this.type="Font";this.data=a}function Jf(a){this.manager=void 0!==a?a:za}function rd(){}function Be(a){this.manager=void 0!==a?a:za}function ae(){this.coefficients=[];for(var a=0;9>a;a++)this.coefficients.push(new n)}function Ra(a,b){aa.call(this,void 0,b);this.sh=void 0!==a?a:new ae}function Ce(a,b,c){Ra.call(this,void 0,c);a=(new B).set(a);c=(new B).set(b);b=new n(a.r,a.g,a.b);a=new n(c.r,c.g,c.b);c=Math.sqrt(Math.PI);var d=c*Math.sqrt(.75);this.sh.coefficients[0].copy(b).add(a).multiplyScalar(c);
+b&&4===b.length&&a.set(b[0]*e,b[1]*f,b[2]*e,b[3]*f)}var e,f,g=this,h=null,k=null,m=null,q=[],p=new O,v=new O,l=1,r="local-floor";"undefined"!==typeof window&&"VRFrameData"in window&&(k=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",c,!1));var u=new O,w=new ea,z=new n,y=new ja;y.viewport=new ba;y.layers.enable(1);var x=new ja;x.viewport=new ba;x.layers.enable(2);var A=new Lc([y,x]);A.layers.enable(1);A.layers.enable(2);var G=new D,xa,C=[];this.enabled=!1;this.getController=
+function(a){var b=q[a];void 0===b&&(b=new Yb,b.matrixAutoUpdate=!1,b.visible=!1,q[a]=b);return b};this.getDevice=function(){return h};this.setDevice=function(a){void 0!==a&&(h=a);F.setContext(a)};this.setFramebufferScaleFactor=function(a){l=a};this.setReferenceSpaceType=function(a){r=a};this.setPoseTarget=function(a){void 0!==a&&(m=a)};this.getCamera=function(a){var c="local-floor"===r?1.6:0;if(!1===b())return a.position.set(0,c,0),a.rotation.set(0,0,0),a;h.depthNear=a.near;h.depthFar=a.far;h.getFrameData(k);
+if("local-floor"===r){var e=h.stageParameters;e?p.fromArray(e.sittingToStandingTransform):p.makeTranslation(0,c,0)}c=k.pose;e=null!==m?m:a;e.matrix.copy(p);e.matrix.decompose(e.position,e.quaternion,e.scale);null!==c.orientation&&(w.fromArray(c.orientation),e.quaternion.multiply(w));null!==c.position&&(w.setFromRotationMatrix(p),z.fromArray(c.position),z.applyQuaternion(w),e.position.add(z));e.updateMatrixWorld();y.near=a.near;x.near=a.near;y.far=a.far;x.far=a.far;y.matrixWorldInverse.fromArray(k.leftViewMatrix);
+x.matrixWorldInverse.fromArray(k.rightViewMatrix);v.getInverse(p);"local-floor"===r&&(y.matrixWorldInverse.multiply(v),x.matrixWorldInverse.multiply(v));a=e.parent;null!==a&&(u.getInverse(a.matrixWorld),y.matrixWorldInverse.multiply(u),x.matrixWorldInverse.multiply(u));y.matrixWorld.getInverse(y.matrixWorldInverse);x.matrixWorld.getInverse(x.matrixWorldInverse);y.projectionMatrix.fromArray(k.leftProjectionMatrix);x.projectionMatrix.fromArray(k.rightProjectionMatrix);tf(A,y,x);a=h.getLayers();a.length&&
+(a=a[0],d(y.viewport,a.leftBounds),d(x.viewport,a.rightBounds));a:for(a=0;a<q.length;a++){c=q[a];b:{e=a;for(var f=navigator.getGamepads&&navigator.getGamepads(),g=0,l=0,t=f.length;g<t;g++){var n=f[g];if(n&&("Daydream Controller"===n.id||"Gear VR Controller"===n.id||"Oculus Go Controller"===n.id||"OpenVR Gamepad"===n.id||n.id.startsWith("Oculus Touch")||n.id.startsWith("Spatial Controller"))){if(l===e){e=n;break b}l++}}e=void 0}if(void 0!==e&&void 0!==e.pose){if(null===e.pose)break a;f=e.pose;!1===
+f.hasPosition&&c.position.set(.2,-.6,-.05);null!==f.position&&c.position.fromArray(f.position);null!==f.orientation&&c.quaternion.fromArray(f.orientation);c.matrix.compose(c.position,c.quaternion,c.scale);c.matrix.premultiply(p);c.matrix.decompose(c.position,c.quaternion,c.scale);c.matrixWorldNeedsUpdate=!0;c.visible=!0;f="Daydream Controller"===e.id?0:1;void 0===C[a]&&(C[a]=!1);C[a]!==e.buttons[f].pressed&&(C[a]=e.buttons[f].pressed,!0===C[a]?c.dispatchEvent({type:"selectstart"}):(c.dispatchEvent({type:"selectend"}),
+c.dispatchEvent({type:"select"})))}else c.visible=!1}return A};this.getStandingMatrix=function(){return p};this.isPresenting=b;var F=new ie;this.setAnimationLoop=function(a){F.setAnimationLoop(a);b()&&F.start()};this.submitFrame=function(){b()&&h.submitFrame()};this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",c)};this.setFrameOfReferenceType=function(){console.warn("THREE.WebVRManager: setFrameOfReferenceType() has been deprecated.")}}function lh(a){function b(){return null!==
+h&&null!==k}function c(a){for(var b=0;b<p.length;b++)v[b]===a.inputSource&&p[b].dispatchEvent({type:a.type})}function d(){a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());z.stop()}function e(a){k=a;z.setContext(h);z.start()}function f(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var g=a.context,h=null,k=null,m="local-floor",q=null,p=[],v=[],l=new ja;l.layers.enable(1);l.viewport=new ba;
+var r=new ja;r.layers.enable(2);r.viewport=new ba;var u=new Lc([l,r]);u.layers.enable(1);u.layers.enable(2);this.enabled=!1;this.getController=function(a){var b=p[a];void 0===b&&(b=new Yb,b.matrixAutoUpdate=!1,b.visible=!1,p[a]=b);return b};this.setFramebufferScaleFactor=function(a){};this.setReferenceSpaceType=function(a){m=a};this.setSession=function(a){h=a;null!==h&&(h.addEventListener("select",c),h.addEventListener("selectstart",c),h.addEventListener("selectend",c),h.addEventListener("end",d),
+h.updateRenderState({baseLayer:new XRWebGLLayer(h,g)}),h.requestReferenceSpace(m).then(e),v=h.inputSources,h.addEventListener("inputsourceschange",function(){v=h.inputSources;console.log(v);for(var a=0;a<p.length;a++)p[a].userData.inputSource=v[a]}))};this.getCamera=function(a){if(b()){var c=a.parent,d=u.cameras;f(u,c);for(var e=0;e<d.length;e++)f(d[e],c);a.matrixWorld.copy(u.matrixWorld);a=a.children;e=0;for(c=a.length;e<c;e++)a[e].updateMatrixWorld(!0);tf(u,l,r);return u}return a};this.isPresenting=
+b;var n=null,z=new ie;z.setAnimationLoop(function(b,c){q=c.getViewerPose(k);if(null!==q){var d=h.renderState.baseLayer,e=q.views;a.setFramebuffer(h.renderState.baseLayer.framebuffer);for(var f=0;f<e.length;f++){var g=e[f],m=d.getViewport(g),l=u.cameras[f];l.matrix.fromArray(g.transform.inverse.matrix).getInverse(l.matrix);l.projectionMatrix.fromArray(g.projectionMatrix);l.viewport.set(m.x,m.y,m.width,m.height);0===f&&u.matrix.copy(l.matrix)}}for(f=0;f<p.length;f++){d=p[f];if(e=v[f])if(e=c.getPose(e.targetRaySpace,
+k),null!==e){d.matrix.fromArray(e.transform.matrix);d.matrix.decompose(d.position,d.rotation,d.scale);d.visible=!0;continue}d.visible=!1}n&&n(b)});this.setAnimationLoop=function(a){n=a};this.dispose=function(){};this.getStandingMatrix=function(){console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed.");return new O};this.getDevice=function(){console.warn("THREE.WebXRManager: getDevice() has been deprecated.")};this.setDevice=function(){console.warn("THREE.WebXRManager: setDevice() has been deprecated.")};
+this.setFrameOfReferenceType=function(){console.warn("THREE.WebXRManager: setFrameOfReferenceType() has been deprecated.")};this.submitFrame=function(){}}function ne(a){var b;function c(){la=new gg(M);Ea=new eg(M,la,a);Ea.isWebGL2||(la.get("WEBGL_depth_texture"),la.get("OES_texture_float"),la.get("OES_texture_half_float"),la.get("OES_texture_half_float_linear"),la.get("OES_standard_derivatives"),la.get("OES_element_index_uint"),la.get("ANGLE_instanced_arrays"));la.get("OES_texture_float_linear");
+ka=new sf(M,la,Ea);da=new jh(M,la,ka,Ea);da.scissor(aa.copy(ia).multiplyScalar(ca));da.viewport(S.copy(ea).multiplyScalar(ca));ha=new jg(M);T=new bh;Z=new kh(M,la,da,T,Ea,ka,ha);ua=new Yf(M);va=new hg(M,ua,ha);qa=new mg(va,ha);za=new lg(M);pa=new ah(Y,la,Ea,Z);wa=new eh;sa=new ih;oa=new cg(Y,da,qa,xa);Ba=new dg(M,la,ha,Ea);Ca=new ig(M,la,ha,Ea);ha.programs=pa.programs;Y.context=M;Y.capabilities=Ea;Y.extensions=la;Y.properties=T;Y.renderLists=wa;Y.state=da;Y.info=ha}function d(a){a.preventDefault();
+console.log("THREE.WebGLRenderer: Context Lost.");N=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");N=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);T.remove(a)}function g(a){var b=T.get(a).program;a.program=void 0;void 0!==b&&pa.releaseProgram(b)}function h(a,b){a.render(function(a){Y.renderBufferImmediate(a,b)})}function k(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=a.renderOrder;else if(a.isLight)B.pushLight(a),a.castShadow&&
+B.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||fa.intersectsSprite(a)){d&&mb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kc);var e=qa.update(a),f=a.material;f.visible&&E.push(a,e,f,c,mb.z,null)}}else if(a.isImmediateRenderObject)d&&mb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kc),E.push(a,null,a.material,c,mb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||fa.intersectsObject(a))if(d&&mb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Kc),
+e=qa.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,m=g.length;h<m;h++){var p=g[h],q=f[p.materialIndex];q&&q.visible&&E.push(a,e,q,c,mb.z,p)}else f.visible&&E.push(a,e,f,c,mb.z,null);a=a.children;h=0;for(m=a.length;h<m;h++)k(a[h],b,c,d)}}function m(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,k=g.geometry,m=void 0===d?g.material:d;g=g.group;if(c.isArrayCamera){X=c;for(var p=c.cameras,l=0,v=p.length;l<v;l++){var r=p[l];h.layers.test(r.layers)&&(da.viewport(S.copy(r.viewport)),
+B.setupLights(r),q(h,b,r,k,m,g))}}else X=null,q(h,b,c,k,m,g)}}function q(a,c,d,e,f,g){a.onBeforeRender(Y,c,d,e,f,g);B=sa.get(c,X||d);a.modelViewMatrix.multiplyMatrices(d.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){da.setMaterial(f);var k=l(d,c.fog,f,a);I=b=null;U=!1;h(a,k)}else Y.renderBufferDirect(d,c.fog,e,f,a,g);a.onAfterRender(Y,c,d,e,f,g);B=sa.get(c,X||d)}function p(a,b,c){var d=T.get(a),e=B.state.lights,h=d.lightsHash,k=e.state.hash;
+c=pa.getParameters(a,e.state,B.state.shadowsArray,b,Ia.numPlanes,Ia.numIntersection,c);var m=pa.getProgramCode(a,c),p=d.program,q=!0;if(void 0===p)a.addEventListener("dispose",f);else if(p.code!==m)g(a);else{if(h.stateID!==k.stateID||h.directionalLength!==k.directionalLength||h.pointLength!==k.pointLength||h.spotLength!==k.spotLength||h.rectAreaLength!==k.rectAreaLength||h.hemiLength!==k.hemiLength||h.shadowsLength!==k.shadowsLength)h.stateID=k.stateID,h.directionalLength=k.directionalLength,h.pointLength=
+k.pointLength,h.spotLength=k.spotLength,h.rectAreaLength=k.rectAreaLength,h.hemiLength=k.hemiLength,h.shadowsLength=k.shadowsLength;else if(void 0!==c.shaderID)return;q=!1}q&&(c.shaderID?(m=Wa[c.shaderID],d.shader={name:a.type,uniforms:Sb(m.uniforms),vertexShader:m.vertexShader,fragmentShader:m.fragmentShader}):d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},a.onBeforeCompile(d.shader,Y),m=pa.getProgramCode(a,c),p=pa.acquireProgram(a,d.shader,
+c,m),d.program=p,a.program=p);c=p.getAttributes();if(a.morphTargets)for(m=a.numSupportedMorphTargets=0;m<Y.maxMorphTargets;m++)0<=c["morphTarget"+m]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(m=a.numSupportedMorphNormals=0;m<Y.maxMorphNormals;m++)0<=c["morphNormal"+m]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=Ia.numPlanes,d.numIntersection=Ia.numIntersection,c.clippingPlanes=Ia.uniform;d.fog=b;void 0===
+h&&(d.lightsHash=h={});h.stateID=k.stateID;h.directionalLength=k.directionalLength;h.pointLength=k.pointLength;h.spotLength=k.spotLength;h.rectAreaLength=k.rectAreaLength;h.hemiLength=k.hemiLength;h.shadowsLength=k.shadowsLength;a.lights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.spotLights.value=e.state.spot,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.hemisphereLights.value=e.state.hemi,
+c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=jb.seqWithValue(a.seq,c);d.uniformsList=a}function l(a,b,c,d){Z.resetTextureUnits();var e=T.get(c),f=e.lightsHash,g=B.state.lights.state.hash;Cd&&(ta||a!==V)&&
+Ia.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===V&&c.id===bb);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:!c.lights||f.stateID===g.stateID&&f.directionalLength===g.directionalLength&&f.pointLength===g.pointLength&&f.spotLength===g.spotLength&&f.rectAreaLength===g.rectAreaLength&&f.hemiLength===g.hemiLength&&f.shadowsLength===g.shadowsLength?void 0===e.numClippingPlanes||e.numClippingPlanes===Ia.numPlanes&&e.numIntersection===Ia.numIntersection||
+(c.needsUpdate=!0):c.needsUpdate=!0);c.needsUpdate&&(p(c,b,d),c.needsUpdate=!1);var h=!1,k=!1,m=!1;f=e.program;g=f.getUniforms();var q=e.shader.uniforms;da.useProgram(f.program)&&(m=k=h=!0);c.id!==bb&&(bb=c.id,k=!0);if(h||V!==a){g.setValue(M,"projectionMatrix",a.projectionMatrix);Ea.logarithmicDepthBuffer&&g.setValue(M,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));V!==a&&(V=a,m=k=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)h=g.map.cameraPosition,void 0!==
+h&&h.setValue(M,mb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&g.setValue(M,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(g.setOptional(M,d,"bindMatrix"),g.setOptional(M,d,"bindMatrixInverse"),a=d.skeleton))if(h=a.bones,Ea.floatVertexTextures){if(void 0===a.boneTexture){h=Math.sqrt(4*h.length);h=P.ceilPowerOfTwo(h);h=Math.max(h,4);var l=new Float32Array(h*h*4);l.set(a.boneMatrices);
+var v=new sb(l,h,h,1023,1015);v.needsUpdate=!0;a.boneMatrices=l;a.boneTexture=v;a.boneTextureSize=h}g.setValue(M,"boneTexture",a.boneTexture,Z);g.setValue(M,"boneTextureSize",a.boneTextureSize)}else g.setOptional(M,a,"boneMatrices");k&&(g.setValue(M,"toneMappingExposure",Y.toneMappingExposure),g.setValue(M,"toneMappingWhitePoint",Y.toneMappingWhitePoint),c.lights&&(k=m,q.ambientLightColor.needsUpdate=k,q.lightProbe.needsUpdate=k,q.directionalLights.needsUpdate=k,q.pointLights.needsUpdate=k,q.spotLights.needsUpdate=
+k,q.rectAreaLights.needsUpdate=k,q.hemisphereLights.needsUpdate=k),b&&c.fog&&(q.fogColor.value.copy(b.color),b.isFog?(q.fogNear.value=b.near,q.fogFar.value=b.far):b.isFogExp2&&(q.fogDensity.value=b.density)),c.isMeshBasicMaterial?t(q,c):c.isMeshLambertMaterial?(t(q,c),c.emissiveMap&&(q.emissiveMap.value=c.emissiveMap)):c.isMeshPhongMaterial?(t(q,c),c.isMeshToonMaterial?(r(q,c),c.gradientMap&&(q.gradientMap.value=c.gradientMap)):r(q,c)):c.isMeshStandardMaterial?(t(q,c),c.isMeshPhysicalMaterial?(u(q,
+c),q.reflectivity.value=c.reflectivity,q.clearCoat.value=c.clearCoat,q.clearCoatRoughness.value=c.clearCoatRoughness):u(q,c)):c.isMeshMatcapMaterial?(t(q,c),c.matcap&&(q.matcap.value=c.matcap),c.bumpMap&&(q.bumpMap.value=c.bumpMap,q.bumpScale.value=c.bumpScale,1===c.side&&(q.bumpScale.value*=-1)),c.normalMap&&(q.normalMap.value=c.normalMap,q.normalScale.value.copy(c.normalScale),1===c.side&&q.normalScale.value.negate()),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=
+c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isMeshDepthMaterial?(t(q,c),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isMeshDistanceMaterial?(t(q,c),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias),q.referencePosition.value.copy(c.referencePosition),q.nearDistance.value=
+c.nearDistance,q.farDistance.value=c.farDistance):c.isMeshNormalMaterial?(t(q,c),c.bumpMap&&(q.bumpMap.value=c.bumpMap,q.bumpScale.value=c.bumpScale,1===c.side&&(q.bumpScale.value*=-1)),c.normalMap&&(q.normalMap.value=c.normalMap,q.normalScale.value.copy(c.normalScale),1===c.side&&q.normalScale.value.negate()),c.displacementMap&&(q.displacementMap.value=c.displacementMap,q.displacementScale.value=c.displacementScale,q.displacementBias.value=c.displacementBias)):c.isLineBasicMaterial?(q.diffuse.value.copy(c.color),
+q.opacity.value=c.opacity,c.isLineDashedMaterial&&(q.dashSize.value=c.dashSize,q.totalSize.value=c.dashSize+c.gapSize,q.scale.value=c.scale)):c.isPointsMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,q.size.value=c.size*ca,q.scale.value=.5*W,q.map.value=c.map,null!==c.map&&(!0===c.map.matrixAutoUpdate&&c.map.updateMatrix(),q.uvTransform.value.copy(c.map.matrix))):c.isSpriteMaterial?(q.diffuse.value.copy(c.color),q.opacity.value=c.opacity,q.rotation.value=c.rotation,q.map.value=c.map,
+null!==c.map&&(!0===c.map.matrixAutoUpdate&&c.map.updateMatrix(),q.uvTransform.value.copy(c.map.matrix))):c.isShadowMaterial&&(q.color.value.copy(c.color),q.opacity.value=c.opacity),void 0!==q.ltc_1&&(q.ltc_1.value=J.LTC_1),void 0!==q.ltc_2&&(q.ltc_2.value=J.LTC_2),jb.upload(M,e.uniformsList,q,Z));c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(jb.upload(M,e.uniformsList,q,Z),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&g.setValue(M,"center",d.center);g.setValue(M,"modelViewMatrix",d.modelViewMatrix);
+g.setValue(M,"normalMatrix",d.normalMatrix);g.setValue(M,"modelMatrix",d.matrixWorld);return f}function t(a,b){a.opacity.value=b.opacity;b.color&&a.diffuse.value.copy(b.color);b.emissive&&a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);b.map&&(a.map.value=b.map);b.alphaMap&&(a.alphaMap.value=b.alphaMap);b.specularMap&&(a.specularMap.value=b.specularMap);b.envMap&&(a.envMap.value=b.envMap,a.flipEnvMap.value=b.envMap.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=
+b.refractionRatio,a.maxMipLevel.value=T.get(b.envMap).__maxMipLevel);b.lightMap&&(a.lightMap.value=b.lightMap,a.lightMapIntensity.value=b.lightMapIntensity);b.aoMap&&(a.aoMap.value=b.aoMap,a.aoMapIntensity.value=b.aoMapIntensity);if(b.map)var c=b.map;else b.specularMap?c=b.specularMap:b.displacementMap?c=b.displacementMap:b.normalMap?c=b.normalMap:b.bumpMap?c=b.bumpMap:b.roughnessMap?c=b.roughnessMap:b.metalnessMap?c=b.metalnessMap:b.alphaMap?c=b.alphaMap:b.emissiveMap&&(c=b.emissiveMap);void 0!==
+c&&(c.isWebGLRenderTarget&&(c=c.texture),!0===c.matrixAutoUpdate&&c.updateMatrix(),a.uvTransform.value.copy(c.matrix))}function r(a,b){a.specular.value.copy(b.specular);a.shininess.value=Math.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&
+(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias)}function u(a,b){a.roughness.value=b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=
+b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias);b.envMap&&(a.envMapIntensity.value=b.envMapIntensity)}console.log("THREE.WebGLRenderer","105dev");a=a||{};var w=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),z=void 0!==a.context?a.context:null,y=void 0!==a.alpha?
+a.alpha:!1,x=void 0!==a.depth?a.depth:!0,A=void 0!==a.stencil?a.stencil:!0,G=void 0!==a.antialias?a.antialias:!1,xa=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,C=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,F=void 0!==a.powerPreference?a.powerPreference:"default",H=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,E=null,B=null;this.domElement=w;this.context=null;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=
+this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var Y=this,N=!1,Q=null,ma=0,R=0,L=null,yb=null,bb=-1;var I=b=null;var U=!1;var V=null,X=null,S=new ba,aa=new ba,ja=null,K=w.width,W=w.height,ca=1,ea=new ba(0,0,K,W),ia=new ba(0,0,K,W),ra=!1,fa=new Ad,Ia=new fg,
+Cd=!1,ta=!1,Kc=new O,mb=new n;try{y={alpha:y,depth:x,stencil:A,antialias:G,premultipliedAlpha:xa,preserveDrawingBuffer:C,powerPreference:F,failIfMajorPerformanceCaveat:H,xrCompatible:!0};w.addEventListener("webglcontextlost",d,!1);w.addEventListener("webglcontextrestored",e,!1);var M=z||w.getContext("webgl",y)||w.getContext("experimental-webgl",y);if(null===M){if(null!==w.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");
+}void 0===M.getShaderPrecisionFormat&&(M.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(xf){throw console.error("THREE.WebGLRenderer: "+xf.message),xf;}var la,Ea,da,ha,T,Z,ua,va,qa,pa,wa,sa,oa,za,Ba,Ca,ka;c();var na="undefined"!==typeof navigator&&"xr"in navigator&&"supportsSession"in navigator.xr?new lh(Y):new wf(Y);this.vr=na;var Da=new qf(Y,qa,Ea.maxTextureSize);this.shadowMap=Da;this.getContext=function(){return M};this.getContextAttributes=function(){return M.getContextAttributes()};
+this.forceContextLoss=function(){var a=la.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=la.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return ca};this.setPixelRatio=function(a){void 0!==a&&(ca=a,this.setSize(K,W,!1))};this.getSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new D);return a.set(K,W)};this.setSize=function(a,b,c){na.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):
+(K=a,W=b,w.width=a*ca,w.height=b*ca,!1!==c&&(w.style.width=a+"px",w.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),a=new D);return a.set(K*ca,W*ca)};this.setDrawingBufferSize=function(a,b,c){K=a;W=b;ca=c;w.width=a*c;w.height=b*c;this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),
+a=new ba);return a.copy(S)};this.getViewport=function(a){return a.copy(ea)};this.setViewport=function(a,b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);da.viewport(S.copy(ea).multiplyScalar(ca))};this.getScissor=function(a){return a.copy(ia)};this.setScissor=function(a,b,c,d){a.isVector4?ia.set(a.x,a.y,a.z,a.w):ia.set(a,b,c,d);da.scissor(aa.copy(ia).multiplyScalar(ca))};this.getScissorTest=function(){return ra};this.setScissorTest=function(a){da.setScissorTest(ra=a)};this.getClearColor=
+function(){return oa.getClearColor()};this.setClearColor=function(){oa.setClearColor.apply(oa,arguments)};this.getClearAlpha=function(){return oa.getClearAlpha()};this.setClearAlpha=function(){oa.setClearAlpha.apply(oa,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;M.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};
+this.dispose=function(){w.removeEventListener("webglcontextlost",d,!1);w.removeEventListener("webglcontextrestored",e,!1);wa.dispose();sa.dispose();T.dispose();qa.dispose();na.dispose();ya.stop()};this.renderBufferImmediate=function(a,b){da.initAttributes();var c=T.get(a);a.hasPositions&&!c.position&&(c.position=M.createBuffer());a.hasNormals&&!c.normal&&(c.normal=M.createBuffer());a.hasUvs&&!c.uv&&(c.uv=M.createBuffer());a.hasColors&&!c.color&&(c.color=M.createBuffer());b=b.getAttributes();a.hasPositions&&
+(M.bindBuffer(34962,c.position),M.bufferData(34962,a.positionArray,35048),da.enableAttribute(b.position),M.vertexAttribPointer(b.position,3,5126,!1,0,0));a.hasNormals&&(M.bindBuffer(34962,c.normal),M.bufferData(34962,a.normalArray,35048),da.enableAttribute(b.normal),M.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(M.bindBuffer(34962,c.uv),M.bufferData(34962,a.uvArray,35048),da.enableAttribute(b.uv),M.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(M.bindBuffer(34962,c.color),M.bufferData(34962,
+a.colorArray,35048),da.enableAttribute(b.color),M.vertexAttribPointer(b.color,3,5126,!1,0,0));da.disableUnusedAttributes();M.drawArrays(4,0,a.count);a.count=0};this.renderBufferDirect=function(a,c,d,e,f,g){var h=f.isMesh&&0>f.matrixWorld.determinant();da.setMaterial(e,h);var k=l(a,c,e,f),m=!1;if(b!==d.id||I!==k.id||U!==(!0===e.wireframe))b=d.id,I=k.id,U=!0===e.wireframe,m=!0;f.morphTargetInfluences&&(za.update(f,d,e,k),m=!0);h=d.index;var q=d.attributes.position;c=1;!0===e.wireframe&&(h=va.getWireframeAttribute(d),
+c=2);a=Ba;if(null!==h){var p=ua.get(h);a=Ca;a.setIndex(p)}if(m){if(d&&d.isInstancedBufferGeometry&&!Ea.isWebGL2&&null===la.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{da.initAttributes();m=d.attributes;k=k.getAttributes();var v=e.defaultAttributeValues;for(A in k){var r=k[A];if(0<=r){var t=m[A];if(void 0!==t){var u=t.normalized,n=t.itemSize,w=ua.get(t);
+if(void 0!==w){var x=w.buffer,y=w.type;w=w.bytesPerElement;if(t.isInterleavedBufferAttribute){var G=t.data,z=G.stride;t=t.offset;G&&G.isInstancedInterleavedBuffer?(da.enableAttributeAndDivisor(r,G.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=G.meshPerAttribute*G.count)):da.enableAttribute(r);M.bindBuffer(34962,x);M.vertexAttribPointer(r,n,y,u,z*w,t*w)}else t.isInstancedBufferAttribute?(da.enableAttributeAndDivisor(r,t.meshPerAttribute),void 0===d.maxInstancedCount&&(d.maxInstancedCount=
+t.meshPerAttribute*t.count)):da.enableAttribute(r),M.bindBuffer(34962,x),M.vertexAttribPointer(r,n,y,u,0,0)}}else if(void 0!==v&&(u=v[A],void 0!==u))switch(u.length){case 2:M.vertexAttrib2fv(r,u);break;case 3:M.vertexAttrib3fv(r,u);break;case 4:M.vertexAttrib4fv(r,u);break;default:M.vertexAttrib1fv(r,u)}}}da.disableUnusedAttributes()}null!==h&&M.bindBuffer(34963,p.buffer)}p=Infinity;null!==h?p=h.count:void 0!==q&&(p=q.count);h=d.drawRange.start*c;q=null!==g?g.start*c:0;var A=Math.max(h,q);g=Math.max(0,
+Math.min(p,h+d.drawRange.count*c,q+(null!==g?g.count*c:Infinity))-1-A+1);if(0!==g){if(f.isMesh)if(!0===e.wireframe)da.setLineWidth(e.wireframeLinewidth*(null===L?ca:1)),a.setMode(1);else switch(f.drawMode){case 0:a.setMode(4);break;case 1:a.setMode(5);break;case 2:a.setMode(6)}else f.isLine?(e=e.linewidth,void 0===e&&(e=1),da.setLineWidth(e*(null===L?ca:1)),f.isLineSegments?a.setMode(1):f.isLineLoop?a.setMode(2):a.setMode(3)):f.isPoints?a.setMode(0):f.isSprite&&a.setMode(4);d&&d.isInstancedBufferGeometry?
+0<d.maxInstancedCount&&a.renderInstances(d,A,g):a.render(A,g)}};this.compile=function(a,b){B=sa.get(a,b);B.init();a.traverse(function(a){a.isLight&&(B.pushLight(a),a.castShadow&&B.pushShadow(a))});B.setupLights(b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=0;c<b.material.length;c++)p(b.material[c],a.fog,b);else p(b.material,a.fog,b)})};var Aa=null,ya=new ie;ya.setAnimationLoop(function(a){na.isPresenting()||Aa&&Aa(a)});"undefined"!==typeof window&&ya.setContext(window);
+this.setAnimationLoop=function(a){Aa=a;na.setAnimationLoop(a);ya.start()};this.render=function(a,c,d,e){if(void 0!==d){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");var f=d}if(void 0!==e){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");var g=e}c&&c.isCamera?N||(I=b=null,U=!1,bb=-1,V=null,!0===a.autoUpdate&&a.updateMatrixWorld(),null===c.parent&&c.updateMatrixWorld(),
+na.enabled&&(c=na.getCamera(c)),B=sa.get(a,c),B.init(),a.onBeforeRender(Y,a,c,f||L),Kc.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),fa.setFromMatrix(Kc),ta=this.localClippingEnabled,Cd=Ia.init(this.clippingPlanes,ta,c),E=wa.get(a,c),E.init(),k(a,c,0,Y.sortObjects),!0===Y.sortObjects&&E.sort(),Cd&&Ia.beginShadows(),Da.render(B.state.shadowsArray,a,c),B.setupLights(c),Cd&&Ia.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==f&&this.setRenderTarget(f),oa.render(E,a,c,g),d=E.opaque,
+e=E.transparent,a.overrideMaterial?(f=a.overrideMaterial,d.length&&m(d,a,c,f),e.length&&m(e,a,c,f)):(d.length&&m(d,a,c),e.length&&m(e,a,c)),a.onAfterRender(Y,a,c),null!==L&&(Z.updateRenderTargetMipmap(L),Z.updateMultisampleRenderTarget(L)),da.buffers.depth.setTest(!0),da.buffers.depth.setMask(!0),da.buffers.color.setMask(!0),da.setPolygonOffset(!1),na.enabled&&na.submitFrame(),B=E=null):console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")};this.setFramebuffer=function(a){Q!==
+a&&M.bindFramebuffer(36160,a);Q=a};this.getActiveCubeFace=function(){return ma};this.getActiveMipMapLevel=function(){return R};this.getRenderTarget=function(){return L};this.setRenderTarget=function(a,b,c){L=a;ma=b;R=c;a&&void 0===T.get(a).__webglFramebuffer&&Z.setupRenderTarget(a);var d=Q,e=!1;a?(d=T.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?T.get(a).__webglMultisampledFramebuffer:d,S.copy(a.viewport),aa.copy(a.scissor),ja=a.scissorTest):
+(S.copy(ea).multiplyScalar(ca),aa.copy(ia).multiplyScalar(ca),ja=ra);yb!==d&&(M.bindFramebuffer(36160,d),yb=d);da.viewport(S);da.scissor(aa);da.setScissorTest(ja);e&&(a=T.get(a.texture),M.framebufferTexture2D(36160,36064,34069+(b||0),a.__webglTexture,c||0))};this.readRenderTargetPixels=function(a,b,c,d,e,f,g){if(a&&a.isWebGLRenderTarget){var h=T.get(a).__webglFramebuffer;a.isWebGLRenderTargetCube&&void 0!==g&&(h=h[g]);if(h){g=!1;h!==yb&&(M.bindFramebuffer(36160,h),g=!0);try{var k=a.texture,m=k.format,
+q=k.type;1023!==m&&ka.convert(m)!==M.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===q||ka.convert(q)===M.getParameter(35738)||1015===q&&(Ea.isWebGL2||la.get("OES_texture_float")||la.get("WEBGL_color_buffer_float"))||1016===q&&(Ea.isWebGL2?la.get("EXT_color_buffer_float"):la.get("EXT_color_buffer_half_float"))?36053===M.checkFramebufferStatus(36160)?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&M.readPixels(b,
+c,d,e,ka.convert(m),ka.convert(q),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{g&&M.bindFramebuffer(36160,yb)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(a,b,c){var d=b.image.width,
+e=b.image.height,f=ka.convert(b.format);Z.setTexture2D(b,0);M.copyTexImage2D(3553,c||0,f,a.x,a.y,d,e,0)};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=ka.convert(c.format),h=ka.convert(c.type);Z.setTexture2D(c,0);b.isDataTexture?M.texSubImage2D(3553,d||0,a.x,a.y,e,f,g,h,b.image.data):M.texSubImage2D(3553,d||0,a.x,a.y,g,h,b.image)}}function Dd(a,b){this.name="";this.color=new B(a);this.density=void 0!==b?b:2.5E-4}function Ed(a,b,c){this.name="";this.color=new B(a);
+this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function Fd(){H.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function Bb(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.version=0}function Mc(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function nb(a){L.call(this);this.type="SpriteMaterial";this.color=new B(16777215);this.map=null;this.rotation=
+0;this.sizeAttenuation=!0;this.lights=!1;this.transparent=!0;this.setValues(a)}function Nc(a){H.call(this);this.type="Sprite";if(void 0===Zb){Zb=new E;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new Bb(b,5);Zb.setIndex([0,1,2,0,2,3]);Zb.addAttribute("position",new Mc(b,3,0,!1));Zb.addAttribute("uv",new Mc(b,2,3,!1))}this.geometry=Zb;this.material=void 0!==a?a:new nb;this.center=new D(.5,.5)}function Oc(){H.call(this);this.type="LOD";Object.defineProperties(this,
+{levels:{enumerable:!0,value:[]}})}function Pc(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");ha.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new O;this.bindMatrixInverse=new O}function Gd(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),
+this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new O)}function oe(){H.call(this);this.type="Bone"}function V(a){L.call(this);this.type="LineBasicMaterial";this.color=new B(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(a)}function T(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");H.call(this);this.type="Line";this.geometry=void 0!==a?a:new E;this.material=
+void 0!==b?b:new V({color:16777215*Math.random()})}function S(a,b){T.call(this,a,b);this.type="LineSegments"}function Hd(a,b){T.call(this,a,b);this.type="LineLoop"}function Ja(a){L.call(this);this.type="PointsMaterial";this.color=new B(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=this.morphTargets=!1;this.setValues(a)}function $b(a,b){H.call(this);this.type="Points";this.geometry=void 0!==a?a:new E;this.material=void 0!==b?b:new Ja({color:16777215*Math.random()})}function pe(a,
+b,c,d,e,f,g,h,k){X.call(this,a,b,c,d,e,f,g,h,k);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1}function ac(a,b,c,d,e,f,g,h,k,m,q,p){X.call(this,null,f,g,h,k,m,d,e,q,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Qc(a,b,c,d,e,f,g,h,k){X.call(this,a,b,c,d,e,f,g,h,k);this.needsUpdate=!0}function Rc(a,b,c,d,e,f,g,h,k,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");
+void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);X.call(this,null,d,e,f,g,h,m,c,k);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function bc(a){E.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=["a","b","c"];if(a&&a.isGeometry){var k=a.faces;var m=0;for(d=k.length;m<d;m++){var q=k[m];for(c=0;3>c;c++){var p=q[h[c]];var l=q[h[(c+1)%3]];f[0]=Math.min(p,l);f[1]=Math.max(p,l);p=f[0]+
+","+f[1];void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]})}}for(p in g)m=g[p],h=a.vertices[m.index1],b.push(h.x,h.y,h.z),h=a.vertices[m.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(h=new n,null!==a.index){k=a.attributes.position;q=a.index;var t=a.groups;0===t.length&&(t=[{start:0,count:q.count,materialIndex:0}]);a=0;for(e=t.length;a<e;++a)for(m=t[a],c=m.start,d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)p=q.getX(m+c),l=q.getX(m+(c+1)%3),f[0]=Math.min(p,l),f[1]=Math.max(p,l),p=f[0]+","+
+f[1],void 0===g[p]&&(g[p]={index1:f[0],index2:f[1]});for(p in g)m=g[p],h.fromBufferAttribute(k,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(k,m.index2),b.push(h.x,h.y,h.z)}else for(k=a.attributes.position,m=0,d=k.count/3;m<d;m++)for(c=0;3>c;c++)g=3*m+c,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(k,g),b.push(h.x,h.y,h.z);this.addAttribute("position",new C(b,3))}function Sc(a,b,c){Q.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,
+stacks:c};this.fromBufferGeometry(new cc(a,b,c));this.mergeVertices()}function cc(a,b,c){E.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new n,k=new n,m=new n,q=new n,p=new n,l,t;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var r=b+1;for(l=0;l<=c;l++){var u=l/c;for(t=0;t<=b;t++){var w=t/b;a(w,u,k);e.push(k.x,k.y,k.z);0<=w-1E-5?(a(w-1E-5,u,m),q.subVectors(k,m)):(a(w+
+1E-5,u,m),q.subVectors(m,k));0<=u-1E-5?(a(w,u-1E-5,m),p.subVectors(k,m)):(a(w,u+1E-5,m),p.subVectors(m,k));h.crossVectors(q,p).normalize();f.push(h.x,h.y,h.z);g.push(w,u)}}for(l=0;l<c;l++)for(t=0;t<b;t++)a=l*r+t+1,h=(l+1)*r+t+1,k=(l+1)*r+t,d.push(l*r+t,a,k),d.push(a,h,k);this.setIndex(d);this.addAttribute("position",new C(e,3));this.addAttribute("normal",new C(f,3));this.addAttribute("uv",new C(g,2))}function Tc(a,b,c,d){Q.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,
+radius:c,detail:d};this.fromBufferGeometry(new oa(a,b,c,d));this.mergeVertices()}function oa(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(k[b]=a.x-1);0===c.x&&0===c.z&&(k[b]=d/2/Math.PI+.5)}E.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],k=[];(function(a){for(var c=new n,d=new n,g=new n,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);
+f(b[h+2],g);var k,m,l=c,z=d,y=g,x=Math.pow(2,a),A=[];for(m=0;m<=x;m++){A[m]=[];var G=l.clone().lerp(y,m/x),D=z.clone().lerp(y,m/x),C=x-m;for(k=0;k<=C;k++)A[m][k]=0===k&&m===x?G:G.clone().lerp(D,k/C)}for(m=0;m<x;m++)for(k=0;k<2*(x-m)-1;k++)l=Math.floor(k/2),0===k%2?(e(A[m][l+1]),e(A[m+1][l]),e(A[m][l])):(e(A[m][l+1]),e(A[m+1][l+1]),e(A[m+1][l]))}})(d);(function(a){for(var b=new n,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);
+(function(){for(var a=new n,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],k.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new n;b=new n;for(var c=new n,d=new n,e=new D,f=new D,l=new D,w=0,z=0;w<h.length;w+=9,z+=6){a.set(h[w+0],h[w+1],h[w+2]);b.set(h[w+3],h[w+4],h[w+5]);c.set(h[w+6],h[w+7],h[w+8]);e.set(k[z+0],k[z+1]);f.set(k[z+2],k[z+3]);l.set(k[z+4],k[z+5]);d.copy(a).add(b).add(c).divideScalar(3);var y=Math.atan2(d.z,-d.x);g(e,z+0,a,y);
+g(f,z+2,b,y);g(l,z+4,c,y)}for(a=0;a<k.length;a+=6)b=k[a+0],c=k[a+2],d=k[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(k[a+0]+=1),.2>c&&(k[a+2]+=1),.2>d&&(k[a+4]+=1))})();this.addAttribute("position",new C(h,3));this.addAttribute("normal",new C(h.slice(),3));this.addAttribute("uv",new C(k,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Uc(a,b){Q.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new dc(a,b));this.mergeVertices()}
+function dc(a,b){oa.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Vc(a,b){Q.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Cb(a,b));this.mergeVertices()}function Cb(a,b){oa.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters=
+{radius:a,detail:b}}function Wc(a,b){Q.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new ec(a,b));this.mergeVertices()}function ec(a,b){var c=(1+Math.sqrt(5))/2;oa.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters=
+{radius:a,detail:b}}function Xc(a,b){Q.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new fc(a,b));this.mergeVertices()}function fc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;oa.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,
+6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Yc(a,b,c,d,e,f){Q.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new Db(a,b,c,d,e);this.tangents=a.tangents;this.normals=
+a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function Db(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];e=g.binormals[e];for(l=0;l<=d;l++){var m=l/d*Math.PI*2,p=Math.sin(m);m=-Math.cos(m);k.x=m*f.x+p*e.x;k.y=m*f.y+p*e.y;k.z=m*f.z+p*e.z;k.normalize();r.push(k.x,k.y,k.z);h.x=q.x+c*k.x;h.y=q.y+c*k.y;h.z=q.z+c*k.z;t.push(h.x,h.y,h.z)}}E.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,
+closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new n,k=new n,m=new D,q=new n,p,l,t=[],r=[],u=[],w=[];for(p=0;p<b;p++)f(p);f(!1===e?b:0);for(p=0;p<=b;p++)for(l=0;l<=d;l++)m.x=p/b,m.y=l/d,u.push(m.x,m.y);(function(){for(l=1;l<=b;l++)for(p=1;p<=d;p++){var a=(d+1)*l+(p-1),c=(d+1)*l+p,e=(d+1)*(l-1)+p;w.push((d+1)*(l-1)+(p-1),a,e);w.push(a,c,e)}})();this.setIndex(w);this.addAttribute("position",new C(t,
+3));this.addAttribute("normal",new C(r,3));this.addAttribute("uv",new C(u,2))}function Zc(a,b,c,d,e,f,g){Q.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new gc(a,b,c,d,e,f));this.mergeVertices()}function gc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*
+(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}E.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;var h=[],k=[],m=[],q=[],p,l=new n,t=new n,r=new n,u=new n,w=new n,z=new n,y=new n;for(p=0;p<=c;++p){var x=p/c*e*Math.PI*2;g(x,e,f,a,r);g(x+.01,e,f,a,u);z.subVectors(u,r);y.addVectors(u,r);w.crossVectors(z,y);y.crossVectors(w,z);w.normalize();y.normalize();
+for(x=0;x<=d;++x){var A=x/d*Math.PI*2,G=-b*Math.cos(A);A=b*Math.sin(A);l.x=r.x+(G*y.x+A*w.x);l.y=r.y+(G*y.y+A*w.y);l.z=r.z+(G*y.z+A*w.z);k.push(l.x,l.y,l.z);t.subVectors(l,r).normalize();m.push(t.x,t.y,t.z);q.push(p/c);q.push(x/d)}}for(x=1;x<=c;x++)for(p=1;p<=d;p++)a=(d+1)*x+(p-1),b=(d+1)*x+p,e=(d+1)*(x-1)+p,h.push((d+1)*(x-1)+(p-1),a,e),h.push(a,b,e);this.setIndex(h);this.addAttribute("position",new C(k,3));this.addAttribute("normal",new C(m,3));this.addAttribute("uv",new C(q,2))}function $c(a,b,
+c,d,e){Q.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new hc(a,b,c,d,e));this.mergeVertices()}function hc(a,b,c,d,e){E.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||6;e=e||2*Math.PI;var f=[],g=[],h=[],k=[],m=new n,q=new n,p=new n,l,t;for(l=0;l<=c;l++)for(t=0;t<=d;t++){var r=t/d*e,u=l/c*
+Math.PI*2;q.x=(a+b*Math.cos(u))*Math.cos(r);q.y=(a+b*Math.cos(u))*Math.sin(r);q.z=b*Math.sin(u);g.push(q.x,q.y,q.z);m.x=a*Math.cos(r);m.y=a*Math.sin(r);p.subVectors(q,m).normalize();h.push(p.x,p.y,p.z);k.push(t/d);k.push(l/c)}for(l=1;l<=c;l++)for(t=1;t<=d;t++)a=(d+1)*(l-1)+t-1,b=(d+1)*(l-1)+t,e=(d+1)*l+t,f.push((d+1)*l+t-1,a,e),f.push(a,b,e);this.setIndex(f);this.addAttribute("position",new C(g,3));this.addAttribute("normal",new C(h,3));this.addAttribute("uv",new C(k,2))}function yf(a,b,c,d,e){for(var f,
+g=0,h=b,k=c-d;h<c;h+=d)g+=(a[k]-a[h])*(a[h+1]+a[k+1]),k=h;if(e===0<g)for(e=b;e<c;e+=d)f=zf(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=zf(e,a[e],a[e+1],f);f&&Eb(f,f.next)&&(ad(f),f=f.next);return f}function bd(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!Eb(a,a.next)&&0!==qa(a.prev,a,a.next))a=a.next;else{ad(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function cd(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,k=h;do null===k.z&&(k.z=qe(k.x,k.y,d,e,f)),k.prevZ=k.prev,k=k.nextZ=
+k.next;while(k!==h);k.prevZ.nextZ=null;k.prevZ=null;h=k;var m,q,p,l,t=1;do{k=h;var r=h=null;for(q=0;k;){q++;var n=k;for(m=p=0;m<t&&(p++,n=n.nextZ,n);m++);for(l=t;0<p||0<l&&n;)0!==p&&(0===l||!n||k.z<=n.z)?(m=k,k=k.nextZ,p--):(m=n,n=n.nextZ,l--),r?r.nextZ=m:h=m,m.prevZ=r,r=m;k=n}r.nextZ=null;t*=2}while(1<q)}for(h=a;a.prev!==a.next;){k=a.prev;n=a.next;if(f)a:{r=a;l=d;var w=e,z=f;q=r.prev;p=r;t=r.next;if(0<=qa(q,p,t))r=!1;else{var y=q.x>p.x?q.x>t.x?q.x:t.x:p.x>t.x?p.x:t.x,x=q.y>p.y?q.y>t.y?q.y:t.y:p.y>
+t.y?p.y:t.y;m=qe(q.x<p.x?q.x<t.x?q.x:t.x:p.x<t.x?p.x:t.x,q.y<p.y?q.y<t.y?q.y:t.y:p.y<t.y?p.y:t.y,l,w,z);l=qe(y,x,l,w,z);for(w=r.nextZ;w&&w.z<=l;){if(w!==r.prev&&w!==r.next&&Id(q.x,q.y,p.x,p.y,t.x,t.y,w.x,w.y)&&0<=qa(w.prev,w,w.next)){r=!1;break a}w=w.nextZ}for(w=r.prevZ;w&&w.z>=m;){if(w!==r.prev&&w!==r.next&&Id(q.x,q.y,p.x,p.y,t.x,t.y,w.x,w.y)&&0<=qa(w.prev,w,w.next)){r=!1;break a}w=w.prevZ}r=!0}}else a:if(r=a,q=r.prev,p=r,t=r.next,0<=qa(q,p,t))r=!1;else{for(m=r.next.next;m!==r.prev;){if(Id(q.x,q.y,
+p.x,p.y,t.x,t.y,m.x,m.y)&&0<=qa(m.prev,m,m.next)){r=!1;break a}m=m.next}r=!0}if(r)b.push(k.i/c),b.push(a.i/c),b.push(n.i/c),ad(a),h=a=n.next;else if(a=n,a===h){if(!g)cd(bd(a),b,c,d,e,f,1);else if(1===g){g=b;h=c;k=a;do n=k.prev,r=k.next.next,!Eb(n,r)&&Af(n,k,k.next,r)&&dd(n,r)&&dd(r,n)&&(g.push(n.i/h),g.push(k.i/h),g.push(r.i/h),ad(k),ad(k.next),k=a=r),k=k.next;while(k!==a);a=k;cd(a,b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(k=g.i!==h.i){k=g;n=h;if(r=k.next.i!==n.i&&k.prev.i!==
+n.i){b:{r=k;do{if(r.i!==k.i&&r.next.i!==k.i&&r.i!==n.i&&r.next.i!==n.i&&Af(r,r.next,k,n)){r=!0;break b}r=r.next}while(r!==k);r=!1}r=!r}if(r=r&&dd(k,n)&&dd(n,k)){r=k;q=!1;p=(k.x+n.x)/2;n=(k.y+n.y)/2;do r.y>n!==r.next.y>n&&r.next.y!==r.y&&p<(r.next.x-r.x)*(n-r.y)/(r.next.y-r.y)+r.x&&(q=!q),r=r.next;while(r!==k);r=q}k=r}if(k){a=Bf(g,h);g=bd(g,g.next);a=bd(a,a.next);cd(g,b,c,d,e,f);cd(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function mh(a,b){return a.x-b.x}function nh(a,b){var c=b,
+d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;if(d===f)return h.prev;b=h;g=h.x;var k=h.y,m=Infinity;for(c=h.next;c!==b;){if(d>=c.x&&c.x>=g&&d!==c.x&&Id(e<k?d:f,e,g,k,e<k?f:d,e,c.x,c.y)){var q=Math.abs(e-c.y)/(d-c.x);(q<m||q===m&&c.x>h.x)&&dd(c,a)&&(h=c,m=q)}c=c.next}return h}function qe(a,
+b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function oh(a){var b=a,c=a;do b.x<c.x&&(c=b),b=b.next;while(b!==a);return c}function Id(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function qa(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function Eb(a,b){return a.x===
+b.x&&a.y===b.y}function Af(a,b,c,d){return Eb(a,b)&&Eb(c,d)||Eb(a,d)&&Eb(c,b)?!0:0<qa(a,b,c)!==0<qa(a,b,d)&&0<qa(c,d,a)!==0<qa(c,d,b)}function dd(a,b){return 0>qa(a.prev,a,a.next)?0<=qa(a,b,a.next)&&0<=qa(a,a.prev,b):0>qa(a,b,a.prev)||0>qa(a,a.next,b)}function Bf(a,b){var c=new re(a.i,a.x,a.y),d=new re(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function zf(a,b,c,d){a=new re(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):
+(a.prev=a,a.next=a);return a}function ad(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function re(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function Cf(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function Df(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function Fb(a,b){Q.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new Ya(a,
+b));this.mergeVertices()}function Ya(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var d=a.x-b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var k=Math.sqrt(h),m=Math.sqrt(f*f+g*g);h=b.x-e/k;b=b.y+d/k;g=((c.x-g/m-h)*g-(c.y+f/m-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new D(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?
+f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new D(f/e,d/e)}function h(a,b){for(K=a.length;0<=--K;){var c=K;var f=K-1;0>f&&(f=a.length-1);var g,h=y+2*F;for(g=0;g<h;g++){var k=X*g,m=X*(g+1),q=b+f+k,p=b+f+m;m=b+c+m;r(b+c+k);r(q);r(m);r(q);r(p);r(m);k=e.length/3;k=H.generateSideWallUV(d,e,k-6,k-3,k-2,k-1);u(k[0]);u(k[1]);u(k[3]);u(k[1]);u(k[2]);u(k[3])}}}function k(a,b,c){w.push(a);w.push(b);
+w.push(c)}function l(a,b,c){r(a);r(b);r(c);a=e.length/3;a=H.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function r(a){e.push(w[3*a]);e.push(w[3*a+1]);e.push(w[3*a+2])}function u(a){f.push(a.x);f.push(a.y)}var w=[],z=void 0!==b.curveSegments?b.curveSegments:12,y=void 0!==b.steps?b.steps:1,x=void 0!==b.depth?b.depth:100,A=void 0!==b.bevelEnabled?b.bevelEnabled:!0,G=void 0!==b.bevelThickness?b.bevelThickness:6,C=void 0!==b.bevelSize?b.bevelSize:G-2,B=void 0!==b.bevelOffset?b.bevelOffset:0,
+F=void 0!==b.bevelSegments?b.bevelSegments:3,E=b.extrudePath,H=void 0!==b.UVGenerator?b.UVGenerator:ph;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),x=b.amount);var J=!1;if(E){var Y=E.getSpacedPoints(y);J=!0;A=!1;var N=E.computeFrenetFrames(y,!1);var Q=new n;var ma=new n;var R=new n}A||(B=C=G=F=0);var O;z=a.extractPoints(z);a=z.shape;var L=z.holes;if(!db.isClockWise(a)){a=a.reverse();var I=0;for(O=L.length;I<O;I++){var P=L[I];db.isClockWise(P)&&
+(L[I]=P.reverse())}}var U=db.triangulateShape(a,L),V=a;I=0;for(O=L.length;I<O;I++)P=L[I],a=a.concat(P);var S,X=a.length,T,aa=U.length;z=[];var K=0;var W=V.length;var ca=W-1;for(S=K+1;K<W;K++,ca++,S++)ca===W&&(ca=0),S===W&&(S=0),z[K]=g(V[K],V[ca],V[S]);E=[];var ba=z.concat();I=0;for(O=L.length;I<O;I++){P=L[I];var Z=[];K=0;W=P.length;ca=W-1;for(S=K+1;K<W;K++,ca++,S++)ca===W&&(ca=0),S===W&&(S=0),Z[K]=g(P[K],P[ca],P[S]);E.push(Z);ba=ba.concat(Z)}for(ca=0;ca<F;ca++){W=ca/F;var ea=G*Math.cos(W*Math.PI/
+2);S=C*Math.sin(W*Math.PI/2)+B;K=0;for(W=V.length;K<W;K++){var fa=c(V[K],z[K],S);k(fa.x,fa.y,-ea)}I=0;for(O=L.length;I<O;I++)for(P=L[I],Z=E[I],K=0,W=P.length;K<W;K++)fa=c(P[K],Z[K],S),k(fa.x,fa.y,-ea)}S=C+B;for(K=0;K<X;K++)fa=A?c(a[K],ba[K],S):a[K],J?(ma.copy(N.normals[0]).multiplyScalar(fa.x),Q.copy(N.binormals[0]).multiplyScalar(fa.y),R.copy(Y[0]).add(ma).add(Q),k(R.x,R.y,R.z)):k(fa.x,fa.y,0);for(W=1;W<=y;W++)for(K=0;K<X;K++)fa=A?c(a[K],ba[K],S):a[K],J?(ma.copy(N.normals[W]).multiplyScalar(fa.x),
+Q.copy(N.binormals[W]).multiplyScalar(fa.y),R.copy(Y[W]).add(ma).add(Q),k(R.x,R.y,R.z)):k(fa.x,fa.y,x/y*W);for(ca=F-1;0<=ca;ca--){W=ca/F;ea=G*Math.cos(W*Math.PI/2);S=C*Math.sin(W*Math.PI/2)+B;K=0;for(W=V.length;K<W;K++)fa=c(V[K],z[K],S),k(fa.x,fa.y,x+ea);I=0;for(O=L.length;I<O;I++)for(P=L[I],Z=E[I],K=0,W=P.length;K<W;K++)fa=c(P[K],Z[K],S),J?k(fa.x,fa.y+Y[y-1].y,Y[y-1].x+ea):k(fa.x,fa.y,x+ea)}(function(){var a=e.length/3;if(A){var b=0*X;for(K=0;K<aa;K++)T=U[K],l(T[2]+b,T[1]+b,T[0]+b);b=X*(y+2*F);for(K=
+0;K<aa;K++)T=U[K],l(T[0]+b,T[1]+b,T[2]+b)}else{for(K=0;K<aa;K++)T=U[K],l(T[2],T[1],T[0]);for(K=0;K<aa;K++)T=U[K],l(T[0]+X*y,T[1]+X*y,T[2]+X*y)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(V,b);b+=V.length;I=0;for(O=L.length;I<O;I++)P=L[I],h(P,b),b+=P.length;d.addGroup(a,e.length/3-a,1)})()}E.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:a,options:b};a=Array.isArray(a)?a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.addAttribute("position",
+new C(e,3));this.addAttribute("uv",new C(f,2));this.computeVertexNormals()}function Ef(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function ed(a,b){Q.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new ic(a,b));this.mergeVertices()}function ic(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),
+new Q;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);Ya.call(this,a,b);this.type="TextBufferGeometry"}function fd(a,b,c,d,e,f,g){Q.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new ob(a,b,c,d,e,f,g));this.mergeVertices()}function ob(a,
+b,c,d,e,f,g){E.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;var h=Math.min(f+g,Math.PI),k,m,q=0,p=[],l=new n,t=new n,r=[],u=[],w=[],z=[];for(m=0;m<=c;m++){var y=[],x=m/c,A=0;0==m&&0==f?A=.5/b:m==c&&h==Math.PI&&(A=-.5/b);for(k=0;k<=b;k++){var G=
+k/b;l.x=-a*Math.cos(d+G*e)*Math.sin(f+x*g);l.y=a*Math.cos(f+x*g);l.z=a*Math.sin(d+G*e)*Math.sin(f+x*g);u.push(l.x,l.y,l.z);t.copy(l).normalize();w.push(t.x,t.y,t.z);z.push(G+A,1-x);y.push(q++)}p.push(y)}for(m=0;m<c;m++)for(k=0;k<b;k++)a=p[m][k+1],d=p[m][k],e=p[m+1][k],g=p[m+1][k+1],(0!==m||0<f)&&r.push(a,d,g),(m!==c-1||h<Math.PI)&&r.push(d,e,g);this.setIndex(r);this.addAttribute("position",new C(u,3));this.addAttribute("normal",new C(w,3));this.addAttribute("uv",new C(z,2))}function gd(a,b,c,d,e,
+f){Q.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new jc(a,b,c,d,e,f));this.mergeVertices()}function jc(a,b,c,d,e,f){E.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=
+[],h=[],k=[],m=[],q=a,p=(b-a)/d,l=new n,t=new D,r,u;for(r=0;r<=d;r++){for(u=0;u<=c;u++)a=e+u/c*f,l.x=q*Math.cos(a),l.y=q*Math.sin(a),h.push(l.x,l.y,l.z),k.push(0,0,1),t.x=(l.x/b+1)/2,t.y=(l.y/b+1)/2,m.push(t.x,t.y);q+=p}for(r=0;r<d;r++)for(b=r*(c+1),u=0;u<c;u++)a=u+b,e=a+c+1,f=a+c+2,q=a+1,g.push(a,e,q),g.push(e,f,q);this.setIndex(g);this.addAttribute("position",new C(h,3));this.addAttribute("normal",new C(k,3));this.addAttribute("uv",new C(m,2))}function hd(a,b,c,d){Q.call(this);this.type="LatheGeometry";
+this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new kc(a,b,c,d));this.mergeVertices()}function kc(a,b,c,d){E.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=P.clamp(d,0,2*Math.PI);var e=[],f=[],g=[],h=1/b,k=new n,m=new D,q;for(q=0;q<=b;q++){var p=c+q*h*d;var l=Math.sin(p),t=Math.cos(p);for(p=0;p<=a.length-1;p++)k.x=a[p].x*l,k.y=a[p].y,k.z=a[p].x*t,f.push(k.x,k.y,
+k.z),m.x=q/b,m.y=p/(a.length-1),g.push(m.x,m.y)}for(q=0;q<b;q++)for(p=0;p<a.length-1;p++)c=p+q*a.length,h=c+a.length,k=c+a.length+1,m=c+1,e.push(c,h,m),e.push(h,k,m);this.setIndex(e);this.addAttribute("position",new C(f,3));this.addAttribute("uv",new C(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new n,f=new n,g=new n,c=b*a.length*3,p=q=0;q<a.length;q++,p+=3)e.x=d[p+0],e.y=d[p+1],e.z=d[p+2],f.x=d[c+p+0],f.y=d[c+p+1],f.z=d[c+p+2],g.addVectors(e,f).normalize(),
+d[p+0]=d[c+p+0]=g.x,d[p+1]=d[c+p+1]=g.y,d[p+2]=d[c+p+2]=g.z}function Gb(a,b){Q.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new Hb(a,b));this.mergeVertices()}function Hb(a,b){function c(a){var c,h=e.length/3;a=a.extractPoints(b);var m=a.shape,q=a.holes;!1===db.isClockWise(m)&&(m=m.reverse());a=0;for(c=q.length;a<c;a++){var l=q[a];
+!0===db.isClockWise(l)&&(q[a]=l.reverse())}var n=db.triangulateShape(m,q);a=0;for(c=q.length;a<c;a++)l=q[a],m=m.concat(l);a=0;for(c=m.length;a<c;a++)l=m[a],e.push(l.x,l.y,0),f.push(0,0,1),g.push(l.x,l.y);a=0;for(c=n.length;a<c;a++)m=n[a],d.push(m[0]+h,m[1]+h,m[2]+h),k+=3}E.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,k=0;if(!1===Array.isArray(a))c(a);else for(var m=0;m<a.length;m++)c(a[m]),this.addGroup(h,k,m),h+=k,k=0;this.setIndex(d);
+this.addAttribute("position",new C(e,3));this.addAttribute("normal",new C(f,3));this.addAttribute("uv",new C(g,2))}function Ff(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function lc(a,b){E.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new Q;g.fromBufferGeometry(a)}else g=a.clone();
+g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,k=g.length;h<k;h++)for(var m=g[h],q=0;3>q;q++){var l=m[f[q]];var n=m[f[(q+1)%3]];d[0]=Math.min(l,n);d[1]=Math.max(l,n);l=d[0]+","+d[1];void 0===e[l]?e[l]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[l].face2=h}for(l in e)if(d=e[l],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.addAttribute("position",new C(c,3))}function Ib(a,b,c,d,
+e,f,g,h){Q.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new eb(a,b,c,d,e,f,g,h));this.mergeVertices()}function eb(a,b,c,d,e,f,g,h){function k(c){var e,f=new D,k=new n,p=0,u=!0===c?a:b,y=!0===c?1:-1;var C=r;for(e=1;e<=d;e++)l.push(0,w*y,0),v.push(0,y,0),t.push(.5,.5),r++;var E=r;for(e=0;e<=d;e++){var B=e/d*h+g,H=Math.cos(B);B=Math.sin(B);k.x=u*B;k.y=w*y;
+k.z=u*H;l.push(k.x,k.y,k.z);v.push(0,y,0);f.x=.5*H+.5;f.y=.5*B*y+.5;t.push(f.x,f.y);r++}for(e=0;e<d;e++)f=C+e,k=E+e,!0===c?q.push(k,k+1,f):q.push(k+1,k,f),p+=3;m.addGroup(z,p,!0===c?1:2);z+=p}E.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var m=this;a=void 0!==a?a:1;b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==
+h?h:2*Math.PI;var q=[],l=[],v=[],t=[],r=0,u=[],w=c/2,z=0;(function(){var f,k,p=new n,G=new n,D=0,C=(b-a)/c;for(k=0;k<=e;k++){var F=[],B=k/e,E=B*(b-a)+a;for(f=0;f<=d;f++){var H=f/d,I=H*h+g,J=Math.sin(I);I=Math.cos(I);G.x=E*J;G.y=-B*c+w;G.z=E*I;l.push(G.x,G.y,G.z);p.set(J,C,I).normalize();v.push(p.x,p.y,p.z);t.push(H,1-B);F.push(r++)}u.push(F)}for(f=0;f<d;f++)for(k=0;k<e;k++)p=u[k+1][f],G=u[k+1][f+1],C=u[k][f+1],q.push(u[k][f],p,C),q.push(p,G,C),D+=6;m.addGroup(z,D,0);z+=D})();!1===f&&(0<a&&k(!0),0<
+b&&k(!1));this.setIndex(q);this.addAttribute("position",new C(l,3));this.addAttribute("normal",new C(v,3));this.addAttribute("uv",new C(t,2))}function id(a,b,c,d,e,f,g){Ib.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function jd(a,b,c,d,e,f,g){eb.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,
+thetaStart:f,thetaLength:g}}function kd(a,b,c,d){Q.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new mc(a,b,c,d));this.mergeVertices()}function mc(a,b,c,d){E.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],k,m=new n,q=new D;f.push(0,0,0);g.push(0,0,1);h.push(.5,
+.5);var l=0;for(k=3;l<=b;l++,k+=3){var v=c+l/b*d;m.x=a*Math.cos(v);m.y=a*Math.sin(v);f.push(m.x,m.y,m.z);g.push(0,0,1);q.x=(f[k]/a+1)/2;q.y=(f[k+1]/a+1)/2;h.push(q.x,q.y)}for(k=1;k<=b;k++)e.push(k,k+1,0);this.setIndex(e);this.addAttribute("position",new C(f,3));this.addAttribute("normal",new C(g,3));this.addAttribute("uv",new C(h,2))}function Jb(a){L.call(this);this.type="ShadowMaterial";this.color=new B(0);this.transparent=!0;this.setValues(a)}function nc(a){sa.call(this,a);this.type="RawShaderMaterial"}
+function Za(a){L.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new B(16777215);this.metalness=this.roughness=.5;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=
+this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Kb(a){Za.call(this);this.defines={PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=.5;this.clearCoatRoughness=this.clearCoat=0;this.setValues(a)}function Ka(a){L.call(this);this.type="MeshPhongMaterial";this.color=new B(16777215);
+this.specular=new B(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=
+!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Lb(a){Ka.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}function Mb(a){L.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=
+0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.lights=this.fog=!1;this.setValues(a)}function Nb(a){L.call(this);this.type="MeshLambertMaterial";this.color=new B(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new B(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=
+!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Ob(a){L.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new B(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.lights=this.morphNormals=
+this.morphTargets=this.skinning=!1;this.setValues(a)}function Pb(a){V.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function Da(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=c}function Jd(a,b,c,d){Da.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function ld(a,b,c,d){Da.call(this,a,b,c,d)}function Kd(a,
+b,c,d){Da.call(this,a,b,c,d)}function Z(a,b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+a);this.name=a;this.times=ra.convertArray(b,this.TimeBufferType);this.values=ra.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation)}function Ld(a,b,c){Z.call(this,a,b,c)}function Md(a,b,c,d){Z.call(this,a,b,c,d)}function oc(a,b,c,d){Z.call(this,a,b,
+c,d)}function Nd(a,b,c,d){Da.call(this,a,b,c,d)}function md(a,b,c,d){Z.call(this,a,b,c,d)}function Od(a,b,c,d){Z.call(this,a,b,c,d)}function pc(a,b,c,d){Z.call(this,a,b,c,d)}function Ga(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=P.generateUUID();0>this.duration&&this.resetDuration()}function qh(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return oc;case "vector":case "vector2":case "vector3":case "vector4":return pc;
+case "color":return Md;case "quaternion":return md;case "bool":case "boolean":return Ld;case "string":return Od}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function rh(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=qh(a.type);if(void 0===a.times){var c=[],d=[];ra.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)}function se(a,b,c){var d=this,e=
+!1,f=0,g=0,h=void 0;this.onStart=void 0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)};this.resolveURL=function(a){return h?h(a):a};this.setURLModifier=function(a){h=a;return this}}function La(a){this.manager=void 0!==a?a:za}function Gf(a){this.manager=
+void 0!==a?a:za}function Hf(a){this.manager=void 0!==a?a:za;this._parser=null}function te(a){this.manager=void 0!==a?a:za;this._parser=null}function nd(a){this.manager=void 0!==a?a:za}function ue(a){this.manager=void 0!==a?a:za}function Pd(a){this.manager=void 0!==a?a:za}function N(){this.type="Curve";this.arcLengthDivisions=200}function Aa(a,b,c,d,e,f,g,h){N.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*
+Math.PI;this.aClockwise=g||!1;this.aRotation=h||0}function qc(a,b,c,d,e,f){Aa.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function ve(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,k){e=k*(g-e);h=k*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,k,m,q){e=((f-e)/k-(g-e)/(k+m)+(g-f)/m)*m;h=((g-f)/m-(h-f)/(m+q)+(h-g)/q)*m;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function ua(a,b,c,d){N.call(this);
+this.type="CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=d||.5}function If(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function od(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function pd(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function Ma(a,b,c,d){N.call(this);this.type="CubicBezierCurve";this.v0=a||new D;this.v1=b||new D;this.v2=c||new D;this.v3=d||new D}function $a(a,
+b,c,d){N.call(this);this.type="CubicBezierCurve3";this.v0=a||new n;this.v1=b||new n;this.v2=c||new n;this.v3=d||new n}function Ba(a,b){N.call(this);this.type="LineCurve";this.v1=a||new D;this.v2=b||new D}function Na(a,b){N.call(this);this.type="LineCurve3";this.v1=a||new n;this.v2=b||new n}function Oa(a,b,c){N.call(this);this.type="QuadraticBezierCurve";this.v0=a||new D;this.v1=b||new D;this.v2=c||new D}function ab(a,b,c){N.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new n;this.v1=b||
+new n;this.v2=c||new n}function Pa(a){N.call(this);this.type="SplineCurve";this.points=a||[]}function fb(){N.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function Qa(a){fb.call(this);this.type="Path";this.currentPoint=new D;a&&this.setFromPoints(a)}function pb(a){Qa.call(this,a);this.uuid=P.generateUUID();this.type="Shape";this.holes=[]}function aa(a,b){H.call(this);this.type="Light";this.color=new B(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function Qd(a,b,c){aa.call(this,
+a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(H.DefaultUp);this.updateMatrix();this.groundColor=new B(b)}function Qb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new D(512,512);this.map=null;this.matrix=new O}function Rd(){Qb.call(this,new ja(50,1,.5,500))}function Sd(a,b,c,d,e,f){aa.call(this,a,b);this.type="SpotLight";this.position.copy(H.DefaultUp);this.updateMatrix();this.target=new H;Object.defineProperty(this,"power",{get:function(){return this.intensity*
+Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new Rd}function Td(a,b,c,d){aa.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new Qb(new ja(90,1,.5,500))}function qd(a,b,c,d,e,
+f){Xa.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=void 0!==a?a:-1;this.right=void 0!==b?b:1;this.top=void 0!==c?c:1;this.bottom=void 0!==d?d:-1;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function Ud(){Qb.call(this,new qd(-5,5,5,-5,.5,500))}function Vd(a,b){aa.call(this,a,b);this.type="DirectionalLight";this.position.copy(H.DefaultUp);this.updateMatrix();this.target=new H;this.shadow=new Ud}function Wd(a,b){aa.call(this,a,b);
+this.type="AmbientLight";this.castShadow=void 0}function Xd(a,b,c,d){aa.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function Yd(a){this.manager=void 0!==a?a:za;this.textures={}}function Zd(){E.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function $d(a,b,c,d){"number"===typeof c&&(d=c,c=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));I.call(this,a,b,
+c);this.meshPerAttribute=d||1}function we(a){this.manager=void 0!==a?a:za}function xe(a){this.manager=void 0!==a?a:za;this.resourcePath=""}function ye(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");this.manager=void 0!==a?a:za;this.options=void 0}function ze(){this.type="ShapePath";this.color=new B;this.subPaths=[];this.currentPath=null}
+function Ae(a){this.type="Font";this.data=a}function Jf(a){this.manager=void 0!==a?a:za}function rd(){}function Be(a){this.manager=void 0!==a?a:za}function ae(){this.coefficients=[];for(var a=0;9>a;a++)this.coefficients.push(new n)}function Ra(a,b){aa.call(this,void 0,b);this.sh=void 0!==a?a:new ae}function Ce(a,b,c){Ra.call(this,void 0,c);a=(new B).set(a);c=(new B).set(b);b=new n(a.r,a.g,a.b);a=new n(c.r,c.g,c.b);c=Math.sqrt(Math.PI);var d=c*Math.sqrt(.75);this.sh.coefficients[0].copy(b).add(a).multiplyScalar(c);
 this.sh.coefficients[1].copy(b).sub(a).multiplyScalar(d)}function De(a,b){Ra.call(this,void 0,b);a=(new B).set(a);this.sh.coefficients[0].set(a.r,a.g,a.b).multiplyScalar(2*Math.sqrt(Math.PI))}function Kf(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new ja;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new ja;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function sd(a,b,c,d){H.call(this);this.type="CubeCamera";var e=new ja(90,
 this.sh.coefficients[1].copy(b).sub(a).multiplyScalar(d)}function De(a,b){Ra.call(this,void 0,b);a=(new B).set(a);this.sh.coefficients[0].set(a.r,a.g,a.b).multiplyScalar(2*Math.sqrt(Math.PI))}function Kf(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new ja;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new ja;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function sd(a,b,c,d){H.call(this);this.type="CubeCamera";var e=new ja(90,
 1,a,b);e.up.set(0,-1,0);e.lookAt(new n(1,0,0));this.add(e);var f=new ja(90,1,a,b);f.up.set(0,-1,0);f.lookAt(new n(-1,0,0));this.add(f);var g=new ja(90,1,a,b);g.up.set(0,0,1);g.lookAt(new n(0,1,0));this.add(g);var h=new ja(90,1,a,b);h.up.set(0,0,-1);h.lookAt(new n(0,-1,0));this.add(h);var k=new ja(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new n(0,0,1));this.add(k);var m=new ja(90,1,a,b);m.up.set(0,-1,0);m.lookAt(new n(0,0,-1));this.add(m);d=d||{format:1022,magFilter:1006,minFilter:1006};this.renderTarget=
 1,a,b);e.up.set(0,-1,0);e.lookAt(new n(1,0,0));this.add(e);var f=new ja(90,1,a,b);f.up.set(0,-1,0);f.lookAt(new n(-1,0,0));this.add(f);var g=new ja(90,1,a,b);g.up.set(0,0,1);g.lookAt(new n(0,1,0));this.add(g);var h=new ja(90,1,a,b);h.up.set(0,0,-1);h.lookAt(new n(0,-1,0));this.add(h);var k=new ja(90,1,a,b);k.up.set(0,-1,0);k.lookAt(new n(0,0,1));this.add(k);var m=new ja(90,1,a,b);m.up.set(0,-1,0);m.lookAt(new n(0,0,-1));this.add(m);d=d||{format:1022,magFilter:1006,minFilter:1006};this.renderTarget=
 new rb(c,c,d);this.renderTarget.texture.name="CubeCamera";this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=a.getRenderTarget(),d=this.renderTarget,q=d.texture.generateMipmaps;d.texture.generateMipmaps=!1;a.setRenderTarget(d,0);a.render(b,e);a.setRenderTarget(d,1);a.render(b,f);a.setRenderTarget(d,2);a.render(b,g);a.setRenderTarget(d,3);a.render(b,h);a.setRenderTarget(d,4);a.render(b,k);d.texture.generateMipmaps=q;a.setRenderTarget(d,5);a.render(b,m);a.setRenderTarget(c)};
 new rb(c,c,d);this.renderTarget.texture.name="CubeCamera";this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=a.getRenderTarget(),d=this.renderTarget,q=d.texture.generateMipmaps;d.texture.generateMipmaps=!1;a.setRenderTarget(d,0);a.render(b,e);a.setRenderTarget(d,1);a.render(b,f);a.setRenderTarget(d,2);a.render(b,g);a.setRenderTarget(d,3);a.render(b,h);a.setRenderTarget(d,4);a.render(b,k);d.texture.generateMipmaps=q;a.setRenderTarget(d,5);a.render(b,m);a.setRenderTarget(c)};

+ 20 - 6
build/three.module.js

@@ -22013,7 +22013,7 @@ function WebVRManager( renderer ) {
 
 
 	var framebufferScaleFactor = 1.0;
 	var framebufferScaleFactor = 1.0;
 
 
-	var frameOfReferenceType = 'stage';
+	var referenceSpaceType = 'local-floor';
 
 
 	if ( typeof window !== 'undefined' && 'VRFrameData' in window ) {
 	if ( typeof window !== 'undefined' && 'VRFrameData' in window ) {
 
 
@@ -22218,9 +22218,9 @@ function WebVRManager( renderer ) {
 
 
 	};
 	};
 
 
-	this.setFrameOfReferenceType = function ( value ) {
+	this.setReferenceSpaceType = function ( value ) {
 
 
-		frameOfReferenceType = value;
+		referenceSpaceType = value;
 
 
 	};
 	};
 
 
@@ -22232,7 +22232,7 @@ function WebVRManager( renderer ) {
 
 
 	this.getCamera = function ( camera ) {
 	this.getCamera = function ( camera ) {
 
 
-		var userHeight = frameOfReferenceType === 'stage' ? 1.6 : 0;
+		var userHeight = referenceSpaceType === 'local-floor' ? 1.6 : 0;
 
 
 		if ( isPresenting() === false ) {
 		if ( isPresenting() === false ) {
 
 
@@ -22250,7 +22250,7 @@ function WebVRManager( renderer ) {
 
 
 		//
 		//
 
 
-		if ( frameOfReferenceType === 'stage' ) {
+		if ( referenceSpaceType === 'local-floor' ) {
 
 
 			var stageParameters = device.stageParameters;
 			var stageParameters = device.stageParameters;
 
 
@@ -22307,7 +22307,7 @@ function WebVRManager( renderer ) {
 
 
 		standingMatrixInverse.getInverse( standingMatrix );
 		standingMatrixInverse.getInverse( standingMatrix );
 
 
-		if ( frameOfReferenceType === 'stage' ) {
+		if ( referenceSpaceType === 'local-floor' ) {
 
 
 			cameraL.matrixWorldInverse.multiply( standingMatrixInverse );
 			cameraL.matrixWorldInverse.multiply( standingMatrixInverse );
 			cameraR.matrixWorldInverse.multiply( standingMatrixInverse );
 			cameraR.matrixWorldInverse.multiply( standingMatrixInverse );
@@ -22390,6 +22390,14 @@ function WebVRManager( renderer ) {
 
 
 	};
 	};
 
 
+	// DEPRECATED
+
+	this.setFrameOfReferenceType = function () {
+
+		console.warn( 'THREE.WebVRManager: setFrameOfReferenceType() has been deprecated.' );
+
+	};
+
 }
 }
 
 
 /**
 /**
@@ -22687,6 +22695,12 @@ function WebXRManager( renderer ) {
 
 
 	};
 	};
 
 
+	this.setFrameOfReferenceType = function () {
+
+		console.warn( 'THREE.WebXRManager: setFrameOfReferenceType() has been deprecated.' );
+
+	};
+
 	this.submitFrame = function () {};
 	this.submitFrame = function () {};
 
 
 }
 }