chbim-plugins 0.0.139 → 0.0.142
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chbim-plugins.js +7 -7
- package/chbim-plugins.umd.cjs +4 -4
- package/package.json +1 -1
package/chbim-plugins.umd.cjs
CHANGED
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
#define texture2DProjGradEXT textureProjGrad
|
|
283
283
|
#define textureCubeGradEXT textureGrad`].join(`
|
|
284
284
|
`)+`
|
|
285
|
-
`+e),A=e+A,w=sa(p,35633,y+w),A=sa(p,35632,A),p.attachShader(gt,w),p.attachShader(gt,A),n.index0AttributeName!==void 0?p.bindAttribLocation(gt,0,n.index0AttributeName):l.morphTargets===!0&&p.bindAttribLocation(gt,0,"position"),p.linkProgram(gt),l=p.getProgramInfoLog(gt).trim(),f=p.getShaderInfoLog(w).trim(),P=p.getShaderInfoLog(A).trim(),H=B=!0,p.getProgramParameter(gt,35714)===!1?(B=!1,console.error("THREE.WebGLProgram: shader error: ",p.getError(),"35715",p.getProgramParameter(gt,35715),"gl.getProgramInfoLog",l,f,P)):l!==""?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",l):(f===""||P==="")&&(H=!1),H&&(this.diagnostics={runnable:B,material:n,programLog:l,vertexShader:{log:f,prefix:y},fragmentShader:{log:P,prefix:e}}),p.deleteShader(w),p.deleteShader(A);var Ct;this.getUniforms=function(){return Ct===void 0&&(Ct=new ho(p,gt,t)),Ct};var wt;return this.getAttributes=function(){if(wt===void 0){for(var Vt={},J=p.getProgramParameter(gt,35721),ot=0;ot<J;ot++){var zt=p.getActiveAttrib(gt,ot).name;Vt[zt]=p.getAttribLocation(gt,zt)}wt=Vt}return wt},this.destroy=function(){p.deleteProgram(gt),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms()."),this.getUniforms()}},attributes:{get:function(){return console.warn("THREE.WebGLProgram: .attributes is now .getAttributes()."),this.getAttributes()}}}),this.name=o.name,this.id=Bo++,this.code=i,this.usedTimes=1,this.program=gt,this.vertexShader=w,this.fragmentShader=A,this}function lt(t,e,i){function n(p,y){if(p)p.isTexture?w=p.encoding:p.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),w=p.texture.encoding);else var w=3e3;return w===3e3&&y&&(w=3007),w}var o=[],l={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},f="precision supportsVertexTextures map mapEncoding matcapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering".split(" ");this.getParameters=function(p,y,w,A,P,B,H){var q=l[p.type];if(H.isSkinnedMesh){var $=H.skeleton.bones;if(i.floatVertexTextures)$=1024;else{var rt=Math.min(Math.floor((i.maxVertexUniforms-20)/4),$.length);rt<$.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+$.length+" bones. This GPU supports "+rt+"."),$=0):$=rt}}else $=0;rt=i.precision,p.precision!==null&&(rt=i.getMaxPrecision(p.precision),rt!==p.precision&&console.warn("THREE.WebGLProgram.getParameters:",p.precision,"not supported, using",rt,"instead."));var xt=t.getRenderTarget();return{shaderID:q,precision:rt,supportsVertexTextures:i.vertexTextures,outputEncoding:n(xt?xt.texture:null,t.gammaOutput),map:!!p.map,mapEncoding:n(p.map,t.gammaInput),matcap:!!p.matcap,matcapEncoding:n(p.matcap,t.gammaInput),envMap:!!p.envMap,envMapMode:p.envMap&&p.envMap.mapping,envMapEncoding:n(p.envMap,t.gammaInput),envMapCubeUV:!!p.envMap&&(p.envMap.mapping===306||p.envMap.mapping===307),lightMap:!!p.lightMap,aoMap:!!p.aoMap,emissiveMap:!!p.emissiveMap,emissiveMapEncoding:n(p.emissiveMap,t.gammaInput),bumpMap:!!p.bumpMap,normalMap:!!p.normalMap,objectSpaceNormalMap:p.normalMapType===1,displacementMap:!!p.displacementMap,roughnessMap:!!p.roughnessMap,metalnessMap:!!p.metalnessMap,specularMap:!!p.specularMap,alphaMap:!!p.alphaMap,gradientMap:!!p.gradientMap,combine:p.combine,vertexColors:p.vertexColors,fog:!!A,useFog:p.fog,fogExp:A&&A.isFogExp2,flatShading:p.flatShading,sizeAttenuation:p.sizeAttenuation,logarithmicDepthBuffer:i.logarithmicDepthBuffer,skinning:p.skinning&&0<$,maxBones:$,useVertexTexture:i.floatVertexTextures,morphTargets:p.morphTargets,morphNormals:p.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:y.directional.length,numPointLights:y.point.length,numSpotLights:y.spot.length,numRectAreaLights:y.rectArea.length,numHemiLights:y.hemi.length,numClippingPlanes:P,numClipIntersection:B,dithering:p.dithering,shadowMapEnabled:t.shadowMap.enabled&&H.receiveShadow&&0<w.length,shadowMapType:t.shadowMap.type,toneMapping:t.toneMapping,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:p.premultipliedAlpha,alphaTest:p.alphaTest,doubleSided:p.side===2,flipSided:p.side===1,depthPacking:p.depthPacking!==void 0?p.depthPacking:!1}},this.getProgramCode=function(p,y){var w=[];if(y.shaderID?w.push(y.shaderID):(w.push(p.fragmentShader),w.push(p.vertexShader)),p.defines!==void 0)for(var A in p.defines)w.push(A),w.push(p.defines[A]);for(A=0;A<f.length;A++)w.push(y[f[A]]);return w.push(p.onBeforeCompile.toString()),w.push(t.gammaOutput),w.push(t.gammaFactor),w.join()},this.acquireProgram=function(p,y,w,A){for(var P,B=0,H=o.length;B<H;B++){var q=o[B];if(q.code===A){P=q,++P.usedTimes;break}}return P===void 0&&(P=new et(t,e,A,p,y,w,i),o.push(P)),P},this.releaseProgram=function(p){if(--p.usedTimes===0){var y=o.indexOf(p);o[y]=o[o.length-1],o.pop(),p.destroy()}},this.programs=o}function at(){var t=new WeakMap;return{get:function(e){var i=t.get(e);return i===void 0&&(i={},t.set(e,i)),i},remove:function(e){t.delete(e)},update:function(e,i,n){t.get(e)[i]=n},dispose:function(){t=new WeakMap}}}function j(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program&&e.program&&t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function St(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function ht(){var t=[],e=0,i=[],n=[];return{opaque:i,transparent:n,init:function(){e=0,i.length=0,n.length=0},push:function(o,l,f,p,y){var w=t[e];w===void 0?(w={id:o.id,object:o,geometry:l,material:f,program:f.program,renderOrder:o.renderOrder,z:p,group:y},t[e]=w):(w.id=o.id,w.object=o,w.geometry=l,w.material=f,w.program=f.program,w.renderOrder=o.renderOrder,w.z=p,w.group=y),(f.transparent===!0?n:i).push(w),e++},sort:function(){1<i.length&&i.sort(j),1<n.length&&n.sort(St)}}}function Ot(){var t={};return{get:function(e,i){return e=e.id+","+i.id,i=t[e],i===void 0&&(i=new ht,t[e]=i),i},dispose:function(){t={}}}}function Ht(){var t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];switch(e.type){case"DirectionalLight":var i={direction:new u,color:new L,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new s};break;case"SpotLight":i={position:new u,direction:new u,color:new L,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new s};break;case"PointLight":i={position:new u,color:new L,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new s,shadowCameraNear:1,shadowCameraFar:1e3};break;case"HemisphereLight":i={direction:new u,skyColor:new L,groundColor:new L};break;case"RectAreaLight":i={color:new L,position:new u,halfWidth:new u,halfHeight:new u}}return t[e.id]=i}}}function kt(){var t=new Ht,e={id:Jh++,hash:{stateID:-1,directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,shadowsLength:-1},ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},i=new u,n=new c,o=new c;return{setup:function(l,f,p){var y=0,w=0,A=0,P=0,B=0,H=0,q=0,$=0;p=p.matrixWorldInverse;for(var rt=0,xt=l.length;rt<xt;rt++){var gt=l[rt],Ct=gt.color,wt=gt.intensity,Vt=gt.distance,J=gt.shadow&>.shadow.map?gt.shadow.map.texture:null;if(gt.isAmbientLight)y+=Ct.r*wt,w+=Ct.g*wt,A+=Ct.b*wt;else if(gt.isDirectionalLight){var ot=t.get(gt);ot.color.copy(gt.color).multiplyScalar(gt.intensity),ot.direction.setFromMatrixPosition(gt.matrixWorld),i.setFromMatrixPosition(gt.target.matrixWorld),ot.direction.sub(i),ot.direction.transformDirection(p),(ot.shadow=gt.castShadow)&&(Ct=gt.shadow,ot.shadowBias=Ct.bias,ot.shadowRadius=Ct.radius,ot.shadowMapSize=Ct.mapSize),e.directionalShadowMap[P]=J,e.directionalShadowMatrix[P]=gt.shadow.matrix,e.directional[P]=ot,P++}else gt.isSpotLight?(ot=t.get(gt),ot.position.setFromMatrixPosition(gt.matrixWorld),ot.position.applyMatrix4(p),ot.color.copy(Ct).multiplyScalar(wt),ot.distance=Vt,ot.direction.setFromMatrixPosition(gt.matrixWorld),i.setFromMatrixPosition(gt.target.matrixWorld),ot.direction.sub(i),ot.direction.transformDirection(p),ot.coneCos=Math.cos(gt.angle),ot.penumbraCos=Math.cos(gt.angle*(1-gt.penumbra)),ot.decay=gt.decay,(ot.shadow=gt.castShadow)&&(Ct=gt.shadow,ot.shadowBias=Ct.bias,ot.shadowRadius=Ct.radius,ot.shadowMapSize=Ct.mapSize),e.spotShadowMap[H]=J,e.spotShadowMatrix[H]=gt.shadow.matrix,e.spot[H]=ot,H++):gt.isRectAreaLight?(ot=t.get(gt),ot.color.copy(Ct).multiplyScalar(wt),ot.position.setFromMatrixPosition(gt.matrixWorld),ot.position.applyMatrix4(p),o.identity(),n.copy(gt.matrixWorld),n.premultiply(p),o.extractRotation(n),ot.halfWidth.set(.5*gt.width,0,0),ot.halfHeight.set(0,.5*gt.height,0),ot.halfWidth.applyMatrix4(o),ot.halfHeight.applyMatrix4(o),e.rectArea[q]=ot,q++):gt.isPointLight?(ot=t.get(gt),ot.position.setFromMatrixPosition(gt.matrixWorld),ot.position.applyMatrix4(p),ot.color.copy(gt.color).multiplyScalar(gt.intensity),ot.distance=gt.distance,ot.decay=gt.decay,(ot.shadow=gt.castShadow)&&(Ct=gt.shadow,ot.shadowBias=Ct.bias,ot.shadowRadius=Ct.radius,ot.shadowMapSize=Ct.mapSize,ot.shadowCameraNear=Ct.camera.near,ot.shadowCameraFar=Ct.camera.far),e.pointShadowMap[B]=J,e.pointShadowMatrix[B]=gt.shadow.matrix,e.point[B]=ot,B++):gt.isHemisphereLight&&(ot=t.get(gt),ot.direction.setFromMatrixPosition(gt.matrixWorld),ot.direction.transformDirection(p),ot.direction.normalize(),ot.skyColor.copy(gt.color).multiplyScalar(wt),ot.groundColor.copy(gt.groundColor).multiplyScalar(wt),e.hemi[$]=ot,$++)}e.ambient[0]=y,e.ambient[1]=w,e.ambient[2]=A,e.directional.length=P,e.spot.length=H,e.rectArea.length=q,e.point.length=B,e.hemi.length=$,e.hash.stateID=e.id,e.hash.directionalLength=P,e.hash.pointLength=B,e.hash.spotLength=H,e.hash.rectAreaLength=q,e.hash.hemiLength=$,e.hash.shadowsLength=f.length},state:e}}function Mt(){var t=new kt,e=[],i=[];return{init:function(){e.length=0,i.length=0},state:{lightsArray:e,shadowsArray:i,lights:t},setupLights:function(n){t.setup(e,i,n)},pushLight:function(n){e.push(n)},pushShadow:function(n){i.push(n)}}}function he(){var t={};return{get:function(e,i){if(t[e.id]===void 0){var n=new Mt;t[e.id]={},t[e.id][i.id]=n}else t[e.id][i.id]===void 0?(n=new Mt,t[e.id][i.id]=n):n=t[e.id][i.id];return n},dispose:function(){t={}}}}function se(t){Wt.call(this),this.type="MeshDepthMaterial",this.depthPacking=3200,this.morphTargets=this.skinning=!1,this.displacementMap=this.alphaMap=this.map=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.lights=this.fog=!1,this.setValues(t)}function te(t){Wt.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new u,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=this.skinning=!1,this.displacementMap=this.alphaMap=this.map=null,this.displacementScale=1,this.displacementBias=0,this.lights=this.fog=!1,this.setValues(t)}function ye(t,e,i){function n(J,ot,zt,ee,$t,Yt){var Te=J.geometry,me=P,De=J.customDepthMaterial;return zt&&(me=B,De=J.customDistanceMaterial),De?me=De:(De=!1,ot.morphTargets&&(Te&&Te.isBufferGeometry?De=Te.morphAttributes&&Te.morphAttributes.position&&0<Te.morphAttributes.position.length:Te&&Te.isGeometry&&(De=Te.morphTargets&&0<Te.morphTargets.length)),J.isSkinnedMesh&&ot.skinning===!1&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",J),J=J.isSkinnedMesh&&ot.skinning,Te=0,De&&(Te|=1),J&&(Te|=2),me=me[Te]),t.localClippingEnabled&&ot.clipShadows===!0&&ot.clippingPlanes.length!==0&&(Te=me.uuid,De=ot.uuid,J=H[Te],J===void 0&&(J={},H[Te]=J),Te=J[De],Te===void 0&&(Te=me.clone(),J[De]=Te),me=Te),me.visible=ot.visible,me.wireframe=ot.wireframe,me.side=ot.shadowSide!=null?ot.shadowSide:q[ot.side],me.clipShadows=ot.clipShadows,me.clippingPlanes=ot.clippingPlanes,me.clipIntersection=ot.clipIntersection,me.wireframeLinewidth=ot.wireframeLinewidth,me.linewidth=ot.linewidth,zt&&me.isMeshDistanceMaterial&&(me.referencePosition.copy(ee),me.nearDistance=$t,me.farDistance=Yt),me}function o(J,ot,zt,ee){if(J.visible!==!1){if(J.layers.test(ot.layers)&&(J.isMesh||J.isLine||J.isPoints)&&J.castShadow&&(!J.frustumCulled||l.intersectsObject(J))){J.modelViewMatrix.multiplyMatrices(zt.matrixWorldInverse,J.matrixWorld);var $t=e.update(J),Yt=J.material;if(Array.isArray(Yt))for(var Te=$t.groups,me=0,De=Te.length;me<De;me++){var be=Te[me],ae=Yt[be.materialIndex];ae&&ae.visible&&(ae=n(J,ae,ee,A,zt.near,zt.far),t.renderBufferDirect(zt,null,$t,ae,J,be))}else Yt.visible&&(ae=n(J,Yt,ee,A,zt.near,zt.far),t.renderBufferDirect(zt,null,$t,ae,J,null))}for(J=J.children,$t=0,Yt=J.length;$t<Yt;$t++)o(J[$t],ot,zt,ee)}}var l=new E,f=new c,p=new s,y=new s(i,i),w=new u,A=new u,P=Array(4),B=Array(4),H={},q={0:1,1:0,2:2},$=[new u(1,0,0),new u(-1,0,0),new u(0,0,1),new u(0,0,-1),new u(0,1,0),new u(0,-1,0)],rt=[new u(0,1,0),new u(0,1,0),new u(0,1,0),new u(0,1,0),new u(0,0,1),new u(0,0,-1)],xt=[new _,new _,new _,new _,new _,new _];for(i=0;i!==4;++i){var gt=(i&1)!==0,Ct=(i&2)!==0,wt=new se({depthPacking:3201,morphTargets:gt,skinning:Ct});P[i]=wt,gt=new te({morphTargets:gt,skinning:Ct}),B[i]=gt}var Vt=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(J,ot,zt){if(Vt.enabled!==!1&&(Vt.autoUpdate!==!1||Vt.needsUpdate!==!1)&&J.length!==0){var ee=t.state;ee.disable(3042),ee.buffers.color.setClear(1,1,1,1),ee.buffers.depth.setTest(!0),ee.setScissorTest(!1);for(var $t,Yt=0,Te=J.length;Yt<Te;Yt++){var me=J[Yt];$t=me.shadow;var De=me&&me.isPointLight;if($t===void 0)console.warn("THREE.WebGLShadowMap:",me,"has no shadow.");else{var be=$t.camera;if(p.copy($t.mapSize),p.min(y),De){var ae=p.x,We=p.y;xt[0].set(2*ae,We,ae,We),xt[1].set(0,We,ae,We),xt[2].set(3*ae,We,ae,We),xt[3].set(ae,We,ae,We),xt[4].set(3*ae,0,ae,We),xt[5].set(ae,0,ae,We),p.x*=4,p.y*=2}for($t.map===null&&($t.map=new S(p.x,p.y,{minFilter:1003,magFilter:1003,format:1023}),$t.map.texture.name=me.name+".shadowMap",be.updateProjectionMatrix()),$t.isSpotLightShadow&&$t.update(me),ae=$t.map,We=$t.matrix,A.setFromMatrixPosition(me.matrixWorld),be.position.copy(A),De?($t=6,We.makeTranslation(-A.x,-A.y,-A.z)):($t=1,w.setFromMatrixPosition(me.target.matrixWorld),be.lookAt(w),be.updateMatrixWorld(),We.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),We.multiply(be.projectionMatrix),We.multiply(be.matrixWorldInverse)),t.setRenderTarget(ae),t.clear(),me=0;me<$t;me++)De&&(w.copy(be.position),w.add($[me]),be.up.copy(rt[me]),be.lookAt(w),be.updateMatrixWorld(),ee.viewport(xt[me])),f.multiplyMatrices(be.projectionMatrix,be.matrixWorldInverse),l.setFromMatrix(f),o(ot,zt,be,De)}}Vt.needsUpdate=!1}}}function ue(t,e,i,n){function o(Ut,Ye,ei){var Wi=new Uint8Array(4),Ae=t.createTexture();for(t.bindTexture(Ut,Ae),t.texParameteri(Ut,10241,9728),t.texParameteri(Ut,10240,9728),Ut=0;Ut<ei;Ut++)t.texImage2D(Ye+Ut,0,6408,1,1,0,6408,5121,Wi);return Ae}function l(Ut,Ye){xt[Ut]=1,gt[Ut]===0&&(t.enableVertexAttribArray(Ut),gt[Ut]=1),Ct[Ut]!==Ye&&((n.isWebGL2?t:e.get("ANGLE_instanced_arrays"))[n.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](Ut,Ye),Ct[Ut]=Ye)}function f(Ut){wt[Ut]!==!0&&(t.enable(Ut),wt[Ut]=!0)}function p(Ut){wt[Ut]!==!1&&(t.disable(Ut),wt[Ut]=!1)}function y(Ut,Ye,ei,Wi,Ae,Xe,ri,Li){if(Ut===0)ot&&(p(3042),ot=!1);else if(ot||(f(3042),ot=!0),Ut!==5){if(Ut!==zt||Li!==be){if((ee!==100||Te!==100)&&(t.blendEquation(32774),Te=ee=100),Li)switch(Ut){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",Ut)}else switch(Ut){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",Ut)}De=me=Yt=$t=null,zt=Ut,be=Li}}else Ae=Ae||Ye,Xe=Xe||ei,ri=ri||Wi,(Ye!==ee||Ae!==Te)&&(t.blendEquationSeparate(i.convert(Ye),i.convert(Ae)),ee=Ye,Te=Ae),(ei!==$t||Wi!==Yt||Xe!==me||ri!==De)&&(t.blendFuncSeparate(i.convert(ei),i.convert(Wi),i.convert(Xe),i.convert(ri)),$t=ei,Yt=Wi,me=Xe,De=ri),zt=Ut,be=null}function w(Ut){ae!==Ut&&(Ut?t.frontFace(2304):t.frontFace(2305),ae=Ut)}function A(Ut){Ut!==0?(f(2884),Ut!==We&&(Ut===1?t.cullFace(1029):Ut===2?t.cullFace(1028):t.cullFace(1032))):p(2884),We=Ut}function P(Ut,Ye,ei){Ut?(f(32823),(fi!==Ye||Cn!==ei)&&(t.polygonOffset(Ye,ei),fi=Ye,Cn=ei)):p(32823)}function B(Ut){Ut===void 0&&(Ut=33984+_n-1),Vi!==Ut&&(t.activeTexture(Ut),Vi=Ut)}var H=new function(){var Ut=!1,Ye=new _,ei=null,Wi=new _(0,0,0,0);return{setMask:function(Ae){ei===Ae||Ut||(t.colorMask(Ae,Ae,Ae,Ae),ei=Ae)},setLocked:function(Ae){Ut=Ae},setClear:function(Ae,Xe,ri,Li,Ai){Ai===!0&&(Ae*=Li,Xe*=Li,ri*=Li),Ye.set(Ae,Xe,ri,Li),Wi.equals(Ye)===!1&&(t.clearColor(Ae,Xe,ri,Li),Wi.copy(Ye))},reset:function(){Ut=!1,ei=null,Wi.set(-1,0,0,0)}}},q=new function(){var Ut=!1,Ye=null,ei=null,Wi=null;return{setTest:function(Ae){Ae?f(2929):p(2929)},setMask:function(Ae){Ye===Ae||Ut||(t.depthMask(Ae),Ye=Ae)},setFunc:function(Ae){if(ei!==Ae){if(Ae)switch(Ae){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);ei=Ae}},setLocked:function(Ae){Ut=Ae},setClear:function(Ae){Wi!==Ae&&(t.clearDepth(Ae),Wi=Ae)},reset:function(){Ut=!1,Wi=ei=Ye=null}}},$=new function(){var Ut=!1,Ye=null,ei=null,Wi=null,Ae=null,Xe=null,ri=null,Li=null,Ai=null;return{setTest:function(ne){ne?f(2960):p(2960)},setMask:function(ne){Ye===ne||Ut||(t.stencilMask(ne),Ye=ne)},setFunc:function(ne,ii,Ze){(ei!==ne||Wi!==ii||Ae!==Ze)&&(t.stencilFunc(ne,ii,Ze),ei=ne,Wi=ii,Ae=Ze)},setOp:function(ne,ii,Ze){(Xe!==ne||ri!==ii||Li!==Ze)&&(t.stencilOp(ne,ii,Ze),Xe=ne,ri=ii,Li=Ze)},setLocked:function(ne){Ut=ne},setClear:function(ne){Ai!==ne&&(t.clearStencil(ne),Ai=ne)},reset:function(){Ut=!1,Ai=Li=ri=Xe=Ae=Wi=ei=Ye=null}}},rt=t.getParameter(34921),xt=new Uint8Array(rt),gt=new Uint8Array(rt),Ct=new Uint8Array(rt),wt={},Vt=null,J=null,ot=null,zt=null,ee=null,$t=null,Yt=null,Te=null,me=null,De=null,be=!1,ae=null,We=null,Qe=null,fi=null,Cn=null,_n=t.getParameter(35661),qi=!1;rt=0,rt=t.getParameter(7938),rt.indexOf("WebGL")!==-1?(rt=parseFloat(/^WebGL ([0-9])/.exec(rt)[1]),qi=1<=rt):rt.indexOf("OpenGL ES")!==-1&&(rt=parseFloat(/^OpenGL ES ([0-9])/.exec(rt)[1]),qi=2<=rt);var Vi=null,on={},An=new _,Ce=new _,ti={};return ti[3553]=o(3553,3553,1),ti[34067]=o(34067,34069,6),H.setClear(0,0,0,1),q.setClear(1),$.setClear(0),f(2929),q.setFunc(3),w(!1),A(1),f(2884),y(0),{buffers:{color:H,depth:q,stencil:$},initAttributes:function(){for(var Ut=0,Ye=xt.length;Ut<Ye;Ut++)xt[Ut]=0},enableAttribute:function(Ut){l(Ut,0)},enableAttributeAndDivisor:l,disableUnusedAttributes:function(){for(var Ut=0,Ye=gt.length;Ut!==Ye;++Ut)gt[Ut]!==xt[Ut]&&(t.disableVertexAttribArray(Ut),gt[Ut]=0)},enable:f,disable:p,getCompressedTextureFormats:function(){if(Vt===null&&(Vt=[],e.get("WEBGL_compressed_texture_pvrtc")||e.get("WEBGL_compressed_texture_s3tc")||e.get("WEBGL_compressed_texture_etc1")||e.get("WEBGL_compressed_texture_astc")))for(var Ut=t.getParameter(34467),Ye=0;Ye<Ut.length;Ye++)Vt.push(Ut[Ye]);return Vt},useProgram:function(Ut){return J!==Ut?(t.useProgram(Ut),J=Ut,!0):!1},setBlending:y,setMaterial:function(Ut,Ye){Ut.side===2?p(2884):f(2884);var ei=Ut.side===1;Ye&&(ei=!ei),w(ei),Ut.blending===1&&Ut.transparent===!1?y(0):y(Ut.blending,Ut.blendEquation,Ut.blendSrc,Ut.blendDst,Ut.blendEquationAlpha,Ut.blendSrcAlpha,Ut.blendDstAlpha,Ut.premultipliedAlpha),q.setFunc(Ut.depthFunc),q.setTest(Ut.depthTest),q.setMask(Ut.depthWrite),H.setMask(Ut.colorWrite),P(Ut.polygonOffset,Ut.polygonOffsetFactor,Ut.polygonOffsetUnits)},setFlipSided:w,setCullFace:A,setLineWidth:function(Ut){Ut!==Qe&&(qi&&t.lineWidth(Ut),Qe=Ut)},setPolygonOffset:P,setScissorTest:function(Ut){Ut?f(3089):p(3089)},activeTexture:B,bindTexture:function(Ut,Ye){Vi===null&&B();var ei=on[Vi];ei===void 0&&(ei={type:void 0,texture:void 0},on[Vi]=ei),(ei.type!==Ut||ei.texture!==Ye)&&(t.bindTexture(Ut,Ye||ti[Ut]),ei.type=Ut,ei.texture=Ye)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(Ut){console.error("THREE.WebGLState:",Ut)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(Ut){console.error("THREE.WebGLState:",Ut)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(Ut){console.error("THREE.WebGLState:",Ut)}},scissor:function(Ut){An.equals(Ut)===!1&&(t.scissor(Ut.x,Ut.y,Ut.z,Ut.w),An.copy(Ut))},viewport:function(Ut){Ce.equals(Ut)===!1&&(t.viewport(Ut.x,Ut.y,Ut.z,Ut.w),Ce.copy(Ut))},reset:function(){for(var Ut=0;Ut<gt.length;Ut++)gt[Ut]===1&&(t.disableVertexAttribArray(Ut),gt[Ut]=0);wt={},Vi=Vt=null,on={},We=ae=zt=J=null,H.reset(),q.reset(),$.reset()}}}function je(t,e,i,n,o,l,f){function p(J,ot){if(J.width>ot||J.height>ot){if("data"in J){console.warn("THREE.WebGLRenderer: image in DataTexture is too big ("+J.width+"x"+J.height+").");return}ot/=Math.max(J.width,J.height);var zt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return zt.width=Math.floor(J.width*ot),zt.height=Math.floor(J.height*ot),zt.getContext("2d").drawImage(J,0,0,J.width,J.height,0,0,zt.width,zt.height),console.warn("THREE.WebGLRenderer: image is too big ("+J.width+"x"+J.height+"). Resized to "+zt.width+"x"+zt.height),zt}return J}function y(J){return di.isPowerOfTwo(J.width)&&di.isPowerOfTwo(J.height)}function w(J,ot){return J.generateMipmaps&&ot&&J.minFilter!==1003&&J.minFilter!==1006}function A(J,ot,zt,ee){t.generateMipmap(J),n.get(ot).__maxMipLevel=Math.log(Math.max(zt,ee))*Math.LOG2E}function P(J,ot){if(!o.isWebGL2)return J;if(J===6403){if(ot===5126)return 33326;if(ot===5131)return 33325;if(ot===5121)return 33321}if(J===6407){if(ot===5126)return 34837;if(ot===5131)return 34843;if(ot===5121)return 32849}if(J===6408){if(ot===5126)return 34836;if(ot===5131)return 34842;if(ot===5121)return 32856}return J}function B(J){return J===1003||J===1004||J===1005?9728:9729}function H(J){J=J.target,J.removeEventListener("dispose",H);t:{var ot=n.get(J);if(J.image&&ot.__image__webglTextureCube)t.deleteTexture(ot.__image__webglTextureCube);else{if(ot.__webglInit===void 0)break t;t.deleteTexture(ot.__webglTexture)}n.remove(J)}J.isVideoTexture&&delete wt[J.id],f.memory.textures--}function q(J){J=J.target,J.removeEventListener("dispose",q);var ot=n.get(J),zt=n.get(J.texture);if(J){if(zt.__webglTexture!==void 0&&t.deleteTexture(zt.__webglTexture),J.depthTexture&&J.depthTexture.dispose(),J.isWebGLRenderTargetCube)for(zt=0;6>zt;zt++)t.deleteFramebuffer(ot.__webglFramebuffer[zt]),ot.__webglDepthbuffer&&t.deleteRenderbuffer(ot.__webglDepthbuffer[zt]);else t.deleteFramebuffer(ot.__webglFramebuffer),ot.__webglDepthbuffer&&t.deleteRenderbuffer(ot.__webglDepthbuffer);n.remove(J.texture),n.remove(J)}f.memory.textures--}function $(J,ot){var zt=n.get(J);if(J.isVideoTexture){var ee=J.id,$t=f.render.frame;wt[ee]!==$t&&(wt[ee]=$t,J.update())}if(0<J.version&&zt.__version!==J.version)if(ee=J.image,ee===void 0)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(ee.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{xt(zt,J,ot);return}i.activeTexture(33984+ot),i.bindTexture(3553,zt.__webglTexture)}function rt(J,ot,zt){zt?(t.texParameteri(J,10242,l.convert(ot.wrapS)),t.texParameteri(J,10243,l.convert(ot.wrapT)),t.texParameteri(J,10240,l.convert(ot.magFilter)),t.texParameteri(J,10241,l.convert(ot.minFilter))):(t.texParameteri(J,10242,33071),t.texParameteri(J,10243,33071),ot.wrapS===1001&&ot.wrapT===1001||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(J,10240,B(ot.magFilter)),t.texParameteri(J,10241,B(ot.minFilter)),ot.minFilter!==1003&&ot.minFilter!==1006&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!(zt=e.get("EXT_texture_filter_anisotropic"))||ot.type===1015&&e.get("OES_texture_float_linear")===null||ot.type===1016&&(o.isWebGL2||e.get("OES_texture_half_float_linear"))===null||!(1<ot.anisotropy||n.get(ot).__currentAnisotropy)||(t.texParameterf(J,zt.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(ot.anisotropy,o.getMaxAnisotropy())),n.get(ot).__currentAnisotropy=ot.anisotropy)}function xt(J,ot,zt){var ee=ot.isDataTexture3D?32879:3553;J.__webglInit===void 0&&(J.__webglInit=!0,ot.addEventListener("dispose",H),J.__webglTexture=t.createTexture(),f.memory.textures++),i.activeTexture(33984+zt),i.bindTexture(ee,J.__webglTexture),t.pixelStorei(37440,ot.flipY),t.pixelStorei(37441,ot.premultiplyAlpha),t.pixelStorei(3317,ot.unpackAlignment),zt=p(ot.image,o.maxTextureSize);var $t=o.isWebGL2?!1:ot.wrapS!==1001||ot.wrapT!==1001||ot.minFilter!==1003&&ot.minFilter!==1006;$t&&y(zt)===!1&&(zt instanceof HTMLImageElement||zt instanceof HTMLCanvasElement||zt instanceof ImageBitmap)&&(Vt===void 0&&(Vt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),Vt.width=di.floorPowerOfTwo(zt.width),Vt.height=di.floorPowerOfTwo(zt.height),Vt.getContext("2d").drawImage(zt,0,0,Vt.width,Vt.height),console.warn("THREE.WebGLRenderer: image is not power of two ("+zt.width+"x"+zt.height+"). Resized to "+Vt.width+"x"+Vt.height),zt=Vt),$t=y(zt);var Yt=l.convert(ot.format),Te=l.convert(ot.type),me=P(Yt,Te);rt(ee,ot,$t);var De=ot.mipmaps;if(ot.isDepthTexture){if(me=6402,ot.type===1015){if(!o.isWebGL2)throw Error("Float Depth Texture only supported in WebGL2.0");me=36012}else o.isWebGL2&&(me=33189);ot.format===1026&&me===6402&&ot.type!==1012&&ot.type!==1014&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),ot.type=1012,Te=l.convert(ot.type)),ot.format===1027&&(me=34041,ot.type!==1020&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),ot.type=1020,Te=l.convert(ot.type))),i.texImage2D(3553,0,me,zt.width,zt.height,0,Yt,Te,null)}else if(ot.isDataTexture)if(0<De.length&&$t){for(var be=0,ae=De.length;be<ae;be++)ee=De[be],i.texImage2D(3553,be,me,ee.width,ee.height,0,Yt,Te,ee.data);ot.generateMipmaps=!1,J.__maxMipLevel=De.length-1}else i.texImage2D(3553,0,me,zt.width,zt.height,0,Yt,Te,zt.data),J.__maxMipLevel=0;else if(ot.isCompressedTexture){for(be=0,ae=De.length;be<ae;be++)ee=De[be],ot.format!==1023&&ot.format!==1022?-1<i.getCompressedTextureFormats().indexOf(Yt)?i.compressedTexImage2D(3553,be,me,ee.width,ee.height,0,ee.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):i.texImage2D(3553,be,me,ee.width,ee.height,0,Yt,Te,ee.data);J.__maxMipLevel=De.length-1}else if(ot.isDataTexture3D)i.texImage3D(32879,0,me,zt.width,zt.height,zt.depth,0,Yt,Te,zt.data),J.__maxMipLevel=0;else if(0<De.length&&$t){for(be=0,ae=De.length;be<ae;be++)ee=De[be],i.texImage2D(3553,be,me,Yt,Te,ee);ot.generateMipmaps=!1,J.__maxMipLevel=De.length-1}else i.texImage2D(3553,0,me,Yt,Te,zt),J.__maxMipLevel=0;w(ot,$t)&&A(3553,ot,zt.width,zt.height),J.__version=ot.version,ot.onUpdate&&ot.onUpdate(ot)}function gt(J,ot,zt,ee){var $t=l.convert(ot.texture.format),Yt=l.convert(ot.texture.type),Te=P($t,Yt);i.texImage2D(ee,0,Te,ot.width,ot.height,0,$t,Yt,null),t.bindFramebuffer(36160,J),t.framebufferTexture2D(36160,zt,ee,n.get(ot.texture).__webglTexture,0),t.bindFramebuffer(36160,null)}function Ct(J,ot){t.bindRenderbuffer(36161,J),ot.depthBuffer&&!ot.stencilBuffer?(t.renderbufferStorage(36161,33189,ot.width,ot.height),t.framebufferRenderbuffer(36160,36096,36161,J)):ot.depthBuffer&&ot.stencilBuffer?(t.renderbufferStorage(36161,34041,ot.width,ot.height),t.framebufferRenderbuffer(36160,33306,36161,J)):t.renderbufferStorage(36161,32854,ot.width,ot.height),t.bindRenderbuffer(36161,null)}var wt={},Vt;this.setTexture2D=$,this.setTexture3D=function(J,ot){var zt=n.get(J);0<J.version&&zt.__version!==J.version?xt(zt,J,ot):(i.activeTexture(33984+ot),i.bindTexture(32879,zt.__webglTexture))},this.setTextureCube=function(J,ot){var zt=n.get(J);if(J.image.length===6)if(0<J.version&&zt.__version!==J.version){zt.__image__webglTextureCube||(J.addEventListener("dispose",H),zt.__image__webglTextureCube=t.createTexture(),f.memory.textures++),i.activeTexture(33984+ot),i.bindTexture(34067,zt.__image__webglTextureCube),t.pixelStorei(37440,J.flipY),ot=J&&J.isCompressedTexture;for(var ee=J.image[0]&&J.image[0].isDataTexture,$t=[],Yt=0;6>Yt;Yt++)$t[Yt]=ot||ee?ee?J.image[Yt].image:J.image[Yt]:p(J.image[Yt],o.maxCubemapSize);var Te=$t[0],me=y(Te),De=l.convert(J.format),be=l.convert(J.type),ae=P(De,be);for(rt(34067,J,me),Yt=0;6>Yt;Yt++)if(ot)for(var We,Qe=$t[Yt].mipmaps,fi=0,Cn=Qe.length;fi<Cn;fi++)We=Qe[fi],J.format!==1023&&J.format!==1022?-1<i.getCompressedTextureFormats().indexOf(De)?i.compressedTexImage2D(34069+Yt,fi,ae,We.width,We.height,0,We.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):i.texImage2D(34069+Yt,fi,ae,We.width,We.height,0,De,be,We.data);else ee?i.texImage2D(34069+Yt,0,ae,$t[Yt].width,$t[Yt].height,0,De,be,$t[Yt].data):i.texImage2D(34069+Yt,0,ae,De,be,$t[Yt]);zt.__maxMipLevel=ot?Qe.length-1:0,w(J,me)&&A(34067,J,Te.width,Te.height),zt.__version=J.version,J.onUpdate&&J.onUpdate(J)}else i.activeTexture(33984+ot),i.bindTexture(34067,zt.__image__webglTextureCube)},this.setTextureCubeDynamic=function(J,ot){i.activeTexture(33984+ot),i.bindTexture(34067,n.get(J).__webglTexture)},this.setupRenderTarget=function(J){var ot=n.get(J),zt=n.get(J.texture);J.addEventListener("dispose",q),zt.__webglTexture=t.createTexture(),f.memory.textures++;var ee=J.isWebGLRenderTargetCube===!0,$t=y(J);if(ee){ot.__webglFramebuffer=[];for(var Yt=0;6>Yt;Yt++)ot.__webglFramebuffer[Yt]=t.createFramebuffer()}else ot.__webglFramebuffer=t.createFramebuffer();if(ee){for(i.bindTexture(34067,zt.__webglTexture),rt(34067,J.texture,$t),Yt=0;6>Yt;Yt++)gt(ot.__webglFramebuffer[Yt],J,36064,34069+Yt);w(J.texture,$t)&&A(34067,J.texture,J.width,J.height),i.bindTexture(34067,null)}else i.bindTexture(3553,zt.__webglTexture),rt(3553,J.texture,$t),gt(ot.__webglFramebuffer,J,36064,3553),w(J.texture,$t)&&A(3553,J.texture,J.width,J.height),i.bindTexture(3553,null);if(J.depthBuffer){if(ot=n.get(J),zt=J.isWebGLRenderTargetCube===!0,J.depthTexture){if(zt)throw Error("target.depthTexture not supported in Cube render targets");if(J&&J.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,ot.__webglFramebuffer),!J.depthTexture||!J.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");if(n.get(J.depthTexture).__webglTexture&&J.depthTexture.image.width===J.width&&J.depthTexture.image.height===J.height||(J.depthTexture.image.width=J.width,J.depthTexture.image.height=J.height,J.depthTexture.needsUpdate=!0),$(J.depthTexture,0),ot=n.get(J.depthTexture).__webglTexture,J.depthTexture.format===1026)t.framebufferTexture2D(36160,36096,3553,ot,0);else if(J.depthTexture.format===1027)t.framebufferTexture2D(36160,33306,3553,ot,0);else throw Error("Unknown depthTexture format")}else if(zt)for(ot.__webglDepthbuffer=[],zt=0;6>zt;zt++)t.bindFramebuffer(36160,ot.__webglFramebuffer[zt]),ot.__webglDepthbuffer[zt]=t.createRenderbuffer(),Ct(ot.__webglDepthbuffer[zt],J);else t.bindFramebuffer(36160,ot.__webglFramebuffer),ot.__webglDepthbuffer=t.createRenderbuffer(),Ct(ot.__webglDepthbuffer,J);t.bindFramebuffer(36160,null)}},this.updateRenderTargetMipmap=function(J){var ot=J.texture,zt=y(J);if(w(ot,zt)){zt=J.isWebGLRenderTargetCube?34067:3553;var ee=n.get(ot).__webglTexture;i.bindTexture(zt,ee),A(zt,ot,J.width,J.height),i.bindTexture(zt,null)}}}function He(t,e,i){return{convert:function(n){if(n===1e3)return 10497;if(n===1001)return 33071;if(n===1002)return 33648;if(n===1003)return 9728;if(n===1004)return 9984;if(n===1005)return 9986;if(n===1006)return 9729;if(n===1007)return 9985;if(n===1008)return 9987;if(n===1009)return 5121;if(n===1017)return 32819;if(n===1018)return 32820;if(n===1019)return 33635;if(n===1010)return 5120;if(n===1011)return 5122;if(n===1012)return 5123;if(n===1013)return 5124;if(n===1014)return 5125;if(n===1015)return 5126;if(n===1016){if(i.isWebGL2)return 5131;var o=e.get("OES_texture_half_float");if(o!==null)return o.HALF_FLOAT_OES}if(n===1021)return 6406;if(n===1022)return 6407;if(n===1023)return 6408;if(n===1024)return 6409;if(n===1025)return 6410;if(n===1026)return 6402;if(n===1027)return 34041;if(n===1028)return 6403;if(n===100)return 32774;if(n===101)return 32778;if(n===102)return 32779;if(n===200)return 0;if(n===201)return 1;if(n===202)return 768;if(n===203)return 769;if(n===204)return 770;if(n===205)return 771;if(n===206)return 772;if(n===207)return 773;if(n===208)return 774;if(n===209)return 775;if(n===210)return 776;if((n===33776||n===33777||n===33778||n===33779)&&(o=e.get("WEBGL_compressed_texture_s3tc"),o!==null)){if(n===33776)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===33777)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===33778)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===33779)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}if((n===35840||n===35841||n===35842||n===35843)&&(o=e.get("WEBGL_compressed_texture_pvrtc"),o!==null)){if(n===35840)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===35841)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===35842)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===35843)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===36196&&(o=e.get("WEBGL_compressed_texture_etc1"),o!==null))return o.COMPRESSED_RGB_ETC1_WEBGL;if((n===37808||n===37809||n===37810||n===37811||n===37812||n===37813||n===37814||n===37815||n===37816||n===37817||n===37818||n===37819||n===37820||n===37821)&&(o=e.get("WEBGL_compressed_texture_astc"),o!==null))return n;if(n===103||n===104){if(i.isWebGL2){if(n===103)return 32775;if(n===104)return 32776}if(o=e.get("EXT_blend_minmax"),o!==null){if(n===103)return o.MIN_EXT;if(n===104)return o.MAX_EXT}}if(n===1020){if(i.isWebGL2)return 34042;if(o=e.get("WEBGL_depth_texture"),o!==null)return o.UNSIGNED_INT_24_8_WEBGL}return 0}}}function ci(){N.call(this),this.type="Group"}function Be(){N.call(this),this.type="Camera",this.matrixWorldInverse=new c,this.projectionMatrix=new c,this.projectionMatrixInverse=new c}function _e(t,e,i,n){Be.call(this),this.type="PerspectiveCamera",this.fov=t!==void 0?t:50,this.zoom=1,this.near=i!==void 0?i:.1,this.far=n!==void 0?n:2e3,this.focus=10,this.aspect=e!==void 0?e:1,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}function Fe(t){_e.call(this),this.cameras=t||[]}function fe(t,e,i){as.setFromMatrixPosition(e.matrixWorld),wr.setFromMatrixPosition(i.matrixWorld);var n=as.distanceTo(wr),o=e.projectionMatrix.elements,l=i.projectionMatrix.elements,f=o[14]/(o[10]-1);i=o[14]/(o[10]+1);var p=(o[9]+1)/o[5],y=(o[9]-1)/o[5],w=(o[8]-1)/o[0],A=(l[8]+1)/l[0];o=f*w,l=f*A,A=n/(-w+A),w=A*-w,e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(w),t.translateZ(A),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.getInverse(t.matrixWorld),e=f+A,f=i+A,t.projectionMatrix.makePerspective(o-w,l+(n-w),p*i/f*e,y*i/f*e,e,f)}function mi(t){function e(){return o!==null&&o.isPresenting===!0}function i(){if(e()){var J=o.getEyeParameters("left"),ot=J.renderWidth*A;J=J.renderHeight*A,Ct=t.getPixelRatio(),gt=t.getSize(),t.setDrawingBufferSize(2*ot,J,1),Vt.start()}else n.enabled&&t.setDrawingBufferSize(gt.width,gt.height,Ct),Vt.stop()}var n=this,o=null,l=null,f=null,p=[],y=new c,w=new c,A=1,P="stage";typeof window<"u"&&"VRFrameData"in window&&(l=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",i,!1));var B=new c,H=new d,q=new u,$=new _e;$.bounds=new _(0,0,.5,1),$.layers.enable(1);var rt=new _e;rt.bounds=new _(.5,0,.5,1),rt.layers.enable(2);var xt=new Fe([$,rt]);xt.layers.enable(1),xt.layers.enable(2);var gt,Ct,wt=[];this.enabled=!1,this.getController=function(J){var ot=p[J];return ot===void 0&&(ot=new ci,ot.matrixAutoUpdate=!1,ot.visible=!1,p[J]=ot),ot},this.getDevice=function(){return o},this.setDevice=function(J){J!==void 0&&(o=J),Vt.setContext(J)},this.setFramebufferScaleFactor=function(J){A=J},this.setFrameOfReferenceType=function(J){P=J},this.setPoseTarget=function(J){J!==void 0&&(f=J)},this.getCamera=function(J){var ot=P==="stage"?1.6:0;if(o===null)return J.position.set(0,ot,0),J;if(o.depthNear=J.near,o.depthFar=J.far,o.getFrameData(l),P==="stage"){var zt=o.stageParameters;zt?y.fromArray(zt.sittingToStandingTransform):y.makeTranslation(0,ot,0)}if(ot=l.pose,zt=f!==null?f:J,zt.matrix.copy(y),zt.matrix.decompose(zt.position,zt.quaternion,zt.scale),ot.orientation!==null&&(H.fromArray(ot.orientation),zt.quaternion.multiply(H)),ot.position!==null&&(H.setFromRotationMatrix(y),q.fromArray(ot.position),q.applyQuaternion(H),zt.position.add(q)),zt.updateMatrixWorld(),o.isPresenting===!1)return J;$.near=J.near,rt.near=J.near,$.far=J.far,rt.far=J.far,$.matrixWorldInverse.fromArray(l.leftViewMatrix),rt.matrixWorldInverse.fromArray(l.rightViewMatrix),w.getInverse(y),P==="stage"&&($.matrixWorldInverse.multiply(w),rt.matrixWorldInverse.multiply(w)),J=zt.parent,J!==null&&(B.getInverse(J.matrixWorld),$.matrixWorldInverse.multiply(B),rt.matrixWorldInverse.multiply(B)),$.matrixWorld.getInverse($.matrixWorldInverse),rt.matrixWorld.getInverse(rt.matrixWorldInverse),$.projectionMatrix.fromArray(l.leftProjectionMatrix),rt.projectionMatrix.fromArray(l.rightProjectionMatrix),fe(xt,$,rt),J=o.getLayers(),J.length&&(J=J[0],J.leftBounds!==null&&J.leftBounds.length===4&&$.bounds.fromArray(J.leftBounds),J.rightBounds!==null&&J.rightBounds.length===4&&rt.bounds.fromArray(J.rightBounds));t:for(J=0;J<p.length;J++){ot=p[J];e:{zt=J;for(var ee=navigator.getGamepads&&navigator.getGamepads(),$t=0,Yt=0,Te=ee.length;$t<Te;$t++){var me=ee[$t];if(me&&(me.id==="Daydream Controller"||me.id==="Gear VR Controller"||me.id==="Oculus Go Controller"||me.id==="OpenVR Gamepad"||me.id.startsWith("Oculus Touch")||me.id.startsWith("Spatial Controller"))){if(Yt===zt){zt=me;break e}Yt++}}zt=void 0}if(zt!==void 0&&zt.pose!==void 0){if(zt.pose===null)break t;ee=zt.pose,ee.hasPosition===!1&&ot.position.set(.2,-.6,-.05),ee.position!==null&&ot.position.fromArray(ee.position),ee.orientation!==null&&ot.quaternion.fromArray(ee.orientation),ot.matrix.compose(ot.position,ot.quaternion,ot.scale),ot.matrix.premultiply(y),ot.matrix.decompose(ot.position,ot.quaternion,ot.scale),ot.matrixWorldNeedsUpdate=!0,ot.visible=!0,ee=zt.id==="Daydream Controller"?0:1,wt[J]!==zt.buttons[ee].pressed&&(wt[J]=zt.buttons[ee].pressed,wt[J]===!0?ot.dispatchEvent({type:"selectstart"}):(ot.dispatchEvent({type:"selectend"}),ot.dispatchEvent({type:"select"})))}else ot.visible=!1}return xt},this.getStandingMatrix=function(){return y},this.isPresenting=e;var Vt=new T;this.setAnimationLoop=function(J){Vt.setAnimationLoop(J)},this.submitFrame=function(){e()&&o.submitFrame()},this.dispose=function(){typeof window<"u"&&window.removeEventListener("vrdisplaypresentchange",i)}}function Le(t){function e(){return p!==null&&w!==null}function i(Ct){var wt=B[H.indexOf(Ct.inputSource)];wt&&wt.dispatchEvent({type:Ct.type})}function n(){t.setFramebuffer(null),gt.stop()}function o(Ct,wt){wt===null?Ct.matrixWorld.copy(Ct.matrix):Ct.matrixWorld.multiplyMatrices(wt.matrixWorld,Ct.matrix),Ct.matrixWorldInverse.getInverse(Ct.matrixWorld)}var l=t.context,f=null,p=null,y=1,w=null,A="stage",P=null,B=[],H=[],q=new _e;q.layers.enable(1),q.viewport=new _;var $=new _e;$.layers.enable(2),$.viewport=new _;var rt=new Fe([q,$]);rt.layers.enable(1),rt.layers.enable(2),this.enabled=!1,this.getController=function(Ct){var wt=B[Ct];return wt===void 0&&(wt=new ci,wt.matrixAutoUpdate=!1,wt.visible=!1,B[Ct]=wt),wt},this.getDevice=function(){return f},this.setDevice=function(Ct){Ct!==void 0&&(f=Ct),Ct instanceof XRDevice&&l.setCompatibleXRDevice(Ct)},this.setFramebufferScaleFactor=function(Ct){y=Ct},this.setFrameOfReferenceType=function(Ct){A=Ct},this.setSession=function(Ct){p=Ct,p!==null&&(p.addEventListener("select",i),p.addEventListener("selectstart",i),p.addEventListener("selectend",i),p.addEventListener("end",n),p.baseLayer=new XRWebGLLayer(p,l,{framebufferScaleFactor:y}),p.requestFrameOfReference(A).then(function(wt){w=wt,t.setFramebuffer(p.baseLayer.framebuffer),gt.setContext(p),gt.start()}),H=p.getInputSources(),p.addEventListener("inputsourceschange",function(){H=p.getInputSources(),console.log(H);for(var wt=0;wt<B.length;wt++)B[wt].userData.inputSource=H[wt]}))},this.getCamera=function(Ct){if(e()){var wt=Ct.parent,Vt=rt.cameras;o(rt,wt);for(var J=0;J<Vt.length;J++)o(Vt[J],wt);for(Ct.matrixWorld.copy(rt.matrixWorld),Ct=Ct.children,J=0,wt=Ct.length;J<wt;J++)Ct[J].updateMatrixWorld(!0);return fe(rt,q,$),rt}return Ct},this.isPresenting=e;var xt=null,gt=new T;gt.setAnimationLoop(function(Ct,wt){if(P=wt.getDevicePose(w),P!==null)for(var Vt=p.baseLayer,J=wt.views,ot=0;ot<J.length;ot++){var zt=J[ot],ee=Vt.getViewport(zt),$t=P.getViewMatrix(zt),Yt=rt.cameras[ot];Yt.matrix.fromArray($t).getInverse(Yt.matrix),Yt.projectionMatrix.fromArray(zt.projectionMatrix),Yt.viewport.set(ee.x,ee.y,ee.width,ee.height),ot===0&&rt.matrix.copy(Yt.matrix)}for(ot=0;ot<B.length;ot++){if(Vt=B[ot],(J=H[ot])&&(J=wt.getInputPose(J,w),J!==null)){"targetRay"in J?Vt.matrix.elements=J.targetRay.transformMatrix:"pointerMatrix"in J&&(Vt.matrix.elements=J.pointerMatrix),Vt.matrix.decompose(Vt.position,Vt.rotation,Vt.scale),Vt.visible=!0;continue}Vt.visible=!1}xt&&xt(Ct)}),this.setAnimationLoop=function(Ct){xt=Ct},this.dispose=function(){},this.getStandingMatrix=function(){return console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed."),new THREE.Matrix4},this.submitFrame=function(){}}function xe(t){var e;function i(){ii=new Jt(ne),Ze=new Qi(ne,ii,t),Ze.isWebGL2||(ii.get("WEBGL_depth_texture"),ii.get("OES_texture_float"),ii.get("OES_texture_half_float"),ii.get("OES_texture_half_float_linear"),ii.get("OES_standard_derivatives"),ii.get("OES_element_index_uint"),ii.get("ANGLE_instanced_arrays")),ii.get("OES_texture_float_linear"),In=new He(ne,ii,Ze),li=new ue(ne,ii,In,Ze),li.scissor(qi.copy(Ye).multiplyScalar(ti)),li.viewport(_n.copy(Ut).multiplyScalar(ti)),xn=new pt,Pn=new at,No=new je(ne,ii,li,Pn,Ze,In,xn),Oa=new M(ne),Kh=new jt(ne,Oa,xn),Ia=new Kt(Kh,xn),Qh=new ie(ne),Gs=new lt(Yt,ii,Ze),bl=new Ot,Hs=new he,hs=new Di(Yt,li,Ia,J),tu=new mn(ne,ii,xn,Ze),er=new dt(ne,ii,xn,Ze),xn.programs=Gs.programs,Yt.context=ne,Yt.capabilities=Ze,Yt.extensions=ii,Yt.properties=Pn,Yt.renderLists=bl,Yt.state=li,Yt.info=xn}function n(ft){ft.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),Te=!0}function o(){console.log("THREE.WebGLRenderer: Context Restored."),Te=!1,i()}function l(ft){ft=ft.target,ft.removeEventListener("dispose",l),f(ft),Pn.remove(ft)}function f(ft){var Tt=Pn.get(ft).program;ft.program=void 0,Tt!==void 0&&Gs.releaseProgram(Tt)}function p(ft,Tt){ft.render(function(mt){Yt.renderBufferImmediate(mt,Tt)})}function y(ft,Tt,mt){if(ft.visible!==!1){if(ft.layers.test(Tt.layers)){if(ft.isLight)$t.pushLight(ft),ft.castShadow&&$t.pushShadow(ft);else if(ft.isSprite){if(!ft.frustumCulled||Wi.intersectsSprite(ft)){mt&&Ai.setFromMatrixPosition(ft.matrixWorld).applyMatrix4(Li);var Me=Ia.update(ft),ze=ft.material;ee.push(ft,Me,ze,Ai.z,null)}}else if(ft.isImmediateRenderObject)mt&&Ai.setFromMatrixPosition(ft.matrixWorld).applyMatrix4(Li),ee.push(ft,null,ft.material,Ai.z,null);else if((ft.isMesh||ft.isLine||ft.isPoints)&&(ft.isSkinnedMesh&&ft.skeleton.update(),!ft.frustumCulled||Wi.intersectsObject(ft)))if(mt&&Ai.setFromMatrixPosition(ft.matrixWorld).applyMatrix4(Li),Me=Ia.update(ft),ze=ft.material,Array.isArray(ze))for(var Ve=Me.groups,Se=0,Ke=Ve.length;Se<Ke;Se++){var Oi=Ve[Se],$i=ze[Oi.materialIndex];$i&&$i.visible&&ee.push(ft,Me,$i,Ai.z,Oi)}else ze.visible&&ee.push(ft,Me,ze,Ai.z,null)}for(ft=ft.children,Se=0,Ke=ft.length;Se<Ke;Se++)y(ft[Se],Tt,mt)}}function w(ft,Tt,mt,Me){for(var ze=0,Ve=ft.length;ze<Ve;ze++){var Se=ft[ze],Ke=Se.object,Oi=Se.geometry,$i=Me===void 0?Se.material:Me;if(Se=Se.group,mt.isArrayCamera){Cn=mt;for(var ve=mt.cameras,Tr=0,Nn=ve.length;Tr<Nn;Tr++){var an=ve[Tr];if(Ke.layers.test(an.layers)){if("viewport"in an)li.viewport(_n.copy(an.viewport));else{var pr=an.bounds;li.viewport(_n.set(pr.x*An,pr.y*Ce,pr.z*An,pr.w*Ce).multiplyScalar(ti))}$t.setupLights(an),A(Ke,Tt,an,Oi,$i,Se)}}}else Cn=null,A(Ke,Tt,mt,Oi,$i,Se)}}function A(ft,Tt,mt,Me,ze,Ve){if(ft.onBeforeRender(Yt,Tt,mt,Me,ze,Ve),$t=Hs.get(Tt,Cn||mt),ft.modelViewMatrix.multiplyMatrices(mt.matrixWorldInverse,ft.matrixWorld),ft.normalMatrix.getNormalMatrix(ft.modelViewMatrix),ft.isImmediateRenderObject){li.setMaterial(ze);var Se=B(mt,Tt.fog,ze,ft);We=e=null,Qe=!1,p(ft,Se)}else Yt.renderBufferDirect(mt,Tt.fog,Me,ze,ft,Ve);ft.onAfterRender(Yt,Tt,mt,Me,ze,Ve),$t=Hs.get(Tt,Cn||mt)}function P(ft,Tt,mt){var Me=Pn.get(ft),ze=$t.state.lights,Ve=Me.lightsHash,Se=ze.state.hash;mt=Gs.getParameters(ft,ze.state,$t.state.shadowsArray,Tt,Ae.numPlanes,Ae.numIntersection,mt);var Ke=Gs.getProgramCode(ft,mt),Oi=Me.program,$i=!0;if(Oi===void 0)ft.addEventListener("dispose",l);else if(Oi.code!==Ke)f(ft);else{if(Ve.stateID!==Se.stateID||Ve.directionalLength!==Se.directionalLength||Ve.pointLength!==Se.pointLength||Ve.spotLength!==Se.spotLength||Ve.rectAreaLength!==Se.rectAreaLength||Ve.hemiLength!==Se.hemiLength||Ve.shadowsLength!==Se.shadowsLength)Ve.stateID=Se.stateID,Ve.directionalLength=Se.directionalLength,Ve.pointLength=Se.pointLength,Ve.spotLength=Se.spotLength,Ve.rectAreaLength=Se.rectAreaLength,Ve.hemiLength=Se.hemiLength,Ve.shadowsLength=Se.shadowsLength;else if(mt.shaderID!==void 0)return;$i=!1}if($i&&(mt.shaderID?(Ke=wo[mt.shaderID],Me.shader={name:ft.type,uniforms:Bn.clone(Ke.uniforms),vertexShader:Ke.vertexShader,fragmentShader:Ke.fragmentShader}):Me.shader={name:ft.type,uniforms:ft.uniforms,vertexShader:ft.vertexShader,fragmentShader:ft.fragmentShader},ft.onBeforeCompile(Me.shader,Yt),Ke=Gs.getProgramCode(ft,mt),Oi=Gs.acquireProgram(ft,Me.shader,mt,Ke),Me.program=Oi,ft.program=Oi),mt=Oi.getAttributes(),ft.morphTargets)for(Ke=ft.numSupportedMorphTargets=0;Ke<Yt.maxMorphTargets;Ke++)0<=mt["morphTarget"+Ke]&&ft.numSupportedMorphTargets++;if(ft.morphNormals)for(Ke=ft.numSupportedMorphNormals=0;Ke<Yt.maxMorphNormals;Ke++)0<=mt["morphNormal"+Ke]&&ft.numSupportedMorphNormals++;mt=Me.shader.uniforms,(!ft.isShaderMaterial&&!ft.isRawShaderMaterial||ft.clipping===!0)&&(Me.numClippingPlanes=Ae.numPlanes,Me.numIntersection=Ae.numIntersection,mt.clippingPlanes=Ae.uniform),Me.fog=Tt,Ve===void 0&&(Me.lightsHash=Ve={}),Ve.stateID=Se.stateID,Ve.directionalLength=Se.directionalLength,Ve.pointLength=Se.pointLength,Ve.spotLength=Se.spotLength,Ve.rectAreaLength=Se.rectAreaLength,Ve.hemiLength=Se.hemiLength,Ve.shadowsLength=Se.shadowsLength,ft.lights&&(mt.ambientLightColor.value=ze.state.ambient,mt.directionalLights.value=ze.state.directional,mt.spotLights.value=ze.state.spot,mt.rectAreaLights.value=ze.state.rectArea,mt.pointLights.value=ze.state.point,mt.hemisphereLights.value=ze.state.hemi,mt.directionalShadowMap.value=ze.state.directionalShadowMap,mt.directionalShadowMatrix.value=ze.state.directionalShadowMatrix,mt.spotShadowMap.value=ze.state.spotShadowMap,mt.spotShadowMatrix.value=ze.state.spotShadowMatrix,mt.pointShadowMap.value=ze.state.pointShadowMap,mt.pointShadowMatrix.value=ze.state.pointShadowMatrix),ft=Me.program.getUniforms(),ft=ho.seqWithValue(ft.seq,mt),Me.uniformsList=ft}function B(ft,Tt,mt,Me){on=0;var ze=Pn.get(mt),Ve=ze.lightsHash,Se=$t.state.lights.state.hash;Xe&&(ri||ft!==fi)&&Ae.setState(mt.clippingPlanes,mt.clipIntersection,mt.clipShadows,ft,ze,ft===fi&&mt.id===ae),mt.needsUpdate===!1&&(ze.program===void 0||mt.fog&&ze.fog!==Tt?mt.needsUpdate=!0:(!mt.lights||Ve.stateID===Se.stateID&&Ve.directionalLength===Se.directionalLength&&Ve.pointLength===Se.pointLength&&Ve.spotLength===Se.spotLength&&Ve.rectAreaLength===Se.rectAreaLength&&Ve.hemiLength===Se.hemiLength&&Ve.shadowsLength===Se.shadowsLength)&&(ze.numClippingPlanes===void 0||ze.numClippingPlanes===Ae.numPlanes&&ze.numIntersection===Ae.numIntersection)||(mt.needsUpdate=!0)),mt.needsUpdate&&(P(mt,Tt,Me),mt.needsUpdate=!1);var Ke=!1,Oi=!1,$i=!1;Ve=ze.program,Se=Ve.getUniforms();var ve=ze.shader.uniforms;if(li.useProgram(Ve.program)&&($i=Oi=Ke=!0),mt.id!==ae&&(ae=mt.id,Oi=!0),(Ke||fi!==ft)&&(Se.setValue(ne,"projectionMatrix",ft.projectionMatrix),Ze.logarithmicDepthBuffer&&Se.setValue(ne,"logDepthBufFC",2/(Math.log(ft.far+1)/Math.LN2)),fi!==ft&&(fi=ft,$i=Oi=!0),(mt.isShaderMaterial||mt.isMeshPhongMaterial||mt.isMeshStandardMaterial||mt.envMap)&&(Ke=Se.map.cameraPosition,Ke!==void 0&&Ke.setValue(ne,Ai.setFromMatrixPosition(ft.matrixWorld))),(mt.isMeshPhongMaterial||mt.isMeshLambertMaterial||mt.isMeshBasicMaterial||mt.isMeshStandardMaterial||mt.isShaderMaterial||mt.skinning)&&Se.setValue(ne,"viewMatrix",ft.matrixWorldInverse)),mt.skinning&&(Se.setOptional(ne,Me,"bindMatrix"),Se.setOptional(ne,Me,"bindMatrixInverse"),ft=Me.skeleton))if(Ke=ft.bones,Ze.floatVertexTextures){if(ft.boneTexture===void 0){Ke=Math.sqrt(4*Ke.length),Ke=di.ceilPowerOfTwo(Ke),Ke=Math.max(Ke,4);var Tr=new Float32Array(Ke*Ke*4);Tr.set(ft.boneMatrices);var Nn=new I(Tr,Ke,Ke,1023,1015);Nn.needsUpdate=!0,ft.boneMatrices=Tr,ft.boneTexture=Nn,ft.boneTextureSize=Ke}Se.setValue(ne,"boneTexture",ft.boneTexture),Se.setValue(ne,"boneTextureSize",ft.boneTextureSize)}else Se.setOptional(ne,ft,"boneMatrices");return Oi&&(Se.setValue(ne,"toneMappingExposure",Yt.toneMappingExposure),Se.setValue(ne,"toneMappingWhitePoint",Yt.toneMappingWhitePoint),mt.lights&&(Oi=$i,ve.ambientLightColor.needsUpdate=Oi,ve.directionalLights.needsUpdate=Oi,ve.pointLights.needsUpdate=Oi,ve.spotLights.needsUpdate=Oi,ve.rectAreaLights.needsUpdate=Oi,ve.hemisphereLights.needsUpdate=Oi),Tt&&mt.fog&&(ve.fogColor.value=Tt.color,Tt.isFog?(ve.fogNear.value=Tt.near,ve.fogFar.value=Tt.far):Tt.isFogExp2&&(ve.fogDensity.value=Tt.density)),mt.isMeshBasicMaterial?H(ve,mt):mt.isMeshLambertMaterial?(H(ve,mt),mt.emissiveMap&&(ve.emissiveMap.value=mt.emissiveMap)):mt.isMeshPhongMaterial?(H(ve,mt),mt.isMeshToonMaterial?(q(ve,mt),mt.gradientMap&&(ve.gradientMap.value=mt.gradientMap)):q(ve,mt)):mt.isMeshStandardMaterial?(H(ve,mt),mt.isMeshPhysicalMaterial?($(ve,mt),ve.reflectivity.value=mt.reflectivity,ve.clearCoat.value=mt.clearCoat,ve.clearCoatRoughness.value=mt.clearCoatRoughness):$(ve,mt)):mt.isMeshMatcapMaterial?(H(ve,mt),mt.matcap&&(ve.matcap.value=mt.matcap),mt.bumpMap&&(ve.bumpMap.value=mt.bumpMap,ve.bumpScale.value=mt.bumpScale,mt.side===1&&(ve.bumpScale.value*=-1)),mt.normalMap&&(ve.normalMap.value=mt.normalMap,ve.normalScale.value.copy(mt.normalScale),mt.side===1&&ve.normalScale.value.negate()),mt.displacementMap&&(ve.displacementMap.value=mt.displacementMap,ve.displacementScale.value=mt.displacementScale,ve.displacementBias.value=mt.displacementBias)):mt.isMeshDepthMaterial?(H(ve,mt),mt.displacementMap&&(ve.displacementMap.value=mt.displacementMap,ve.displacementScale.value=mt.displacementScale,ve.displacementBias.value=mt.displacementBias)):mt.isMeshDistanceMaterial?(H(ve,mt),mt.displacementMap&&(ve.displacementMap.value=mt.displacementMap,ve.displacementScale.value=mt.displacementScale,ve.displacementBias.value=mt.displacementBias),ve.referencePosition.value.copy(mt.referencePosition),ve.nearDistance.value=mt.nearDistance,ve.farDistance.value=mt.farDistance):mt.isMeshNormalMaterial?(H(ve,mt),mt.bumpMap&&(ve.bumpMap.value=mt.bumpMap,ve.bumpScale.value=mt.bumpScale,mt.side===1&&(ve.bumpScale.value*=-1)),mt.normalMap&&(ve.normalMap.value=mt.normalMap,ve.normalScale.value.copy(mt.normalScale),mt.side===1&&ve.normalScale.value.negate()),mt.displacementMap&&(ve.displacementMap.value=mt.displacementMap,ve.displacementScale.value=mt.displacementScale,ve.displacementBias.value=mt.displacementBias)):mt.isLineBasicMaterial?(ve.diffuse.value=mt.color,ve.opacity.value=mt.opacity,mt.isLineDashedMaterial&&(ve.dashSize.value=mt.dashSize,ve.totalSize.value=mt.dashSize+mt.gapSize,ve.scale.value=mt.scale)):mt.isPointsMaterial?(ve.diffuse.value=mt.color,ve.opacity.value=mt.opacity,ve.size.value=mt.size*ti,ve.scale.value=.5*Ce,ve.map.value=mt.map,mt.map!==null&&(mt.map.matrixAutoUpdate===!0&&mt.map.updateMatrix(),ve.uvTransform.value.copy(mt.map.matrix))):mt.isSpriteMaterial?(ve.diffuse.value=mt.color,ve.opacity.value=mt.opacity,ve.rotation.value=mt.rotation,ve.map.value=mt.map,mt.map!==null&&(mt.map.matrixAutoUpdate===!0&&mt.map.updateMatrix(),ve.uvTransform.value.copy(mt.map.matrix))):mt.isShadowMaterial&&(ve.color.value=mt.color,ve.opacity.value=mt.opacity),ve.ltc_1!==void 0&&(ve.ltc_1.value=qe.LTC_1),ve.ltc_2!==void 0&&(ve.ltc_2.value=qe.LTC_2),ho.upload(ne,ze.uniformsList,ve,Yt)),mt.isShaderMaterial&&mt.uniformsNeedUpdate===!0&&(ho.upload(ne,ze.uniformsList,ve,Yt),mt.uniformsNeedUpdate=!1),mt.isSpriteMaterial&&Se.setValue(ne,"center",Me.center),Se.setValue(ne,"modelViewMatrix",Me.modelViewMatrix),Se.setValue(ne,"normalMatrix",Me.normalMatrix),Se.setValue(ne,"modelMatrix",Me.matrixWorld),Ve}function H(ft,Tt){if(ft.opacity.value=Tt.opacity,Tt.color&&(ft.diffuse.value=Tt.color),Tt.emissive&&ft.emissive.value.copy(Tt.emissive).multiplyScalar(Tt.emissiveIntensity),Tt.map&&(ft.map.value=Tt.map),Tt.alphaMap&&(ft.alphaMap.value=Tt.alphaMap),Tt.specularMap&&(ft.specularMap.value=Tt.specularMap),Tt.envMap&&(ft.envMap.value=Tt.envMap,ft.flipEnvMap.value=Tt.envMap&&Tt.envMap.isCubeTexture?-1:1,ft.reflectivity.value=Tt.reflectivity,ft.refractionRatio.value=Tt.refractionRatio,ft.maxMipLevel.value=Pn.get(Tt.envMap).__maxMipLevel),Tt.lightMap&&(ft.lightMap.value=Tt.lightMap,ft.lightMapIntensity.value=Tt.lightMapIntensity),Tt.aoMap&&(ft.aoMap.value=Tt.aoMap,ft.aoMapIntensity.value=Tt.aoMapIntensity),Tt.map)var mt=Tt.map;else Tt.specularMap?mt=Tt.specularMap:Tt.displacementMap?mt=Tt.displacementMap:Tt.normalMap?mt=Tt.normalMap:Tt.bumpMap?mt=Tt.bumpMap:Tt.roughnessMap?mt=Tt.roughnessMap:Tt.metalnessMap?mt=Tt.metalnessMap:Tt.alphaMap?mt=Tt.alphaMap:Tt.emissiveMap&&(mt=Tt.emissiveMap);mt!==void 0&&(mt.isWebGLRenderTarget&&(mt=mt.texture),mt.matrixAutoUpdate===!0&&mt.updateMatrix(),ft.uvTransform.value.copy(mt.matrix))}function q(ft,Tt){ft.specular.value=Tt.specular,ft.shininess.value=Math.max(Tt.shininess,1e-4),Tt.emissiveMap&&(ft.emissiveMap.value=Tt.emissiveMap),Tt.bumpMap&&(ft.bumpMap.value=Tt.bumpMap,ft.bumpScale.value=Tt.bumpScale,Tt.side===1&&(ft.bumpScale.value*=-1)),Tt.normalMap&&(ft.normalMap.value=Tt.normalMap,ft.normalScale.value.copy(Tt.normalScale),Tt.side===1&&ft.normalScale.value.negate()),Tt.displacementMap&&(ft.displacementMap.value=Tt.displacementMap,ft.displacementScale.value=Tt.displacementScale,ft.displacementBias.value=Tt.displacementBias)}function $(ft,Tt){ft.roughness.value=Tt.roughness,ft.metalness.value=Tt.metalness,Tt.roughnessMap&&(ft.roughnessMap.value=Tt.roughnessMap),Tt.metalnessMap&&(ft.metalnessMap.value=Tt.metalnessMap),Tt.emissiveMap&&(ft.emissiveMap.value=Tt.emissiveMap),Tt.bumpMap&&(ft.bumpMap.value=Tt.bumpMap,ft.bumpScale.value=Tt.bumpScale,Tt.side===1&&(ft.bumpScale.value*=-1)),Tt.normalMap&&(ft.normalMap.value=Tt.normalMap,ft.normalScale.value.copy(Tt.normalScale),Tt.side===1&&ft.normalScale.value.negate()),Tt.displacementMap&&(ft.displacementMap.value=Tt.displacementMap,ft.displacementScale.value=Tt.displacementScale,ft.displacementBias.value=Tt.displacementBias),Tt.envMap&&(ft.envMapIntensity.value=Tt.envMapIntensity)}console.log("THREE.WebGLRenderer","98"),t=t||{};var rt=t.canvas!==void 0?t.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),xt=t.context!==void 0?t.context:null,gt=t.alpha!==void 0?t.alpha:!1,Ct=t.depth!==void 0?t.depth:!0,wt=t.stencil!==void 0?t.stencil:!0,Vt=t.antialias!==void 0?t.antialias:!1,J=t.premultipliedAlpha!==void 0?t.premultipliedAlpha:!0,ot=t.preserveDrawingBuffer!==void 0?t.preserveDrawingBuffer:!1,zt=t.powerPreference!==void 0?t.powerPreference:"default",ee=null,$t=null;this.domElement=rt,this.context=null,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 Yt=this,Te=!1,me=null,De=null,be=null,ae=-1,We=e=null,Qe=!1,fi=null,Cn=null,_n=new _,qi=new _,Vi=null,on=0,An=rt.width,Ce=rt.height,ti=1,Ut=new _(0,0,An,Ce),Ye=new _(0,0,An,Ce),ei=!1,Wi=new E,Ae=new W,Xe=!1,ri=!1,Li=new c,Ai=new u;try{gt={alpha:gt,depth:Ct,stencil:wt,antialias:Vt,premultipliedAlpha:J,preserveDrawingBuffer:ot,powerPreference:zt},rt.addEventListener("webglcontextlost",n,!1),rt.addEventListener("webglcontextrestored",o,!1);var ne=xt||rt.getContext("webgl",gt)||rt.getContext("experimental-webgl",gt);if(ne===null)throw rt.getContext("webgl")!==null?Error("Error creating WebGL context with your selected attributes."):Error("Error creating WebGL context.");ne.getShaderPrecisionFormat===void 0&&(ne.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(ft){console.error("THREE.WebGLRenderer: "+ft.message)}var ii,Ze,li,xn,Pn,No,Oa,Kh,Ia,Gs,bl,Hs,hs,Qh,tu,er,In;i();var So=null;typeof navigator<"u"&&(So="xr"in navigator?new Le(Yt):new mi(Yt)),this.vr=So;var Gu=new ye(Yt,Ia,Ze.maxTextureSize);this.shadowMap=Gu,this.getContext=function(){return ne},this.getContextAttributes=function(){return ne.getContextAttributes()},this.forceContextLoss=function(){var ft=ii.get("WEBGL_lose_context");ft&&ft.loseContext()},this.forceContextRestore=function(){var ft=ii.get("WEBGL_lose_context");ft&&ft.restoreContext()},this.getPixelRatio=function(){return ti},this.setPixelRatio=function(ft){ft!==void 0&&(ti=ft,this.setSize(An,Ce,!1))},this.getSize=function(){return{width:An,height:Ce}},this.setSize=function(ft,Tt,mt){So.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(An=ft,Ce=Tt,rt.width=ft*ti,rt.height=Tt*ti,mt!==!1&&(rt.style.width=ft+"px",rt.style.height=Tt+"px"),this.setViewport(0,0,ft,Tt))},this.getDrawingBufferSize=function(){return{width:An*ti,height:Ce*ti}},this.setDrawingBufferSize=function(ft,Tt,mt){An=ft,Ce=Tt,ti=mt,rt.width=ft*mt,rt.height=Tt*mt,this.setViewport(0,0,ft,Tt)},this.getCurrentViewport=function(){return _n},this.setViewport=function(ft,Tt,mt,Me){Ut.set(ft,Ce-Tt-Me,mt,Me),li.viewport(_n.copy(Ut).multiplyScalar(ti))},this.setScissor=function(ft,Tt,mt,Me){Ye.set(ft,Ce-Tt-Me,mt,Me),li.scissor(qi.copy(Ye).multiplyScalar(ti))},this.setScissorTest=function(ft){li.setScissorTest(ei=ft)},this.getClearColor=function(){return hs.getClearColor()},this.setClearColor=function(){hs.setClearColor.apply(hs,arguments)},this.getClearAlpha=function(){return hs.getClearAlpha()},this.setClearAlpha=function(){hs.setClearAlpha.apply(hs,arguments)},this.clear=function(ft,Tt,mt){var Me=0;(ft===void 0||ft)&&(Me|=16384),(Tt===void 0||Tt)&&(Me|=256),(mt===void 0||mt)&&(Me|=1024),ne.clear(Me)},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(){rt.removeEventListener("webglcontextlost",n,!1),rt.removeEventListener("webglcontextrestored",o,!1),bl.dispose(),Hs.dispose(),Pn.dispose(),Ia.dispose(),So.dispose(),Fo.stop()},this.renderBufferImmediate=function(ft,Tt){li.initAttributes();var mt=Pn.get(ft);ft.hasPositions&&!mt.position&&(mt.position=ne.createBuffer()),ft.hasNormals&&!mt.normal&&(mt.normal=ne.createBuffer()),ft.hasUvs&&!mt.uv&&(mt.uv=ne.createBuffer()),ft.hasColors&&!mt.color&&(mt.color=ne.createBuffer()),Tt=Tt.getAttributes(),ft.hasPositions&&(ne.bindBuffer(34962,mt.position),ne.bufferData(34962,ft.positionArray,35048),li.enableAttribute(Tt.position),ne.vertexAttribPointer(Tt.position,3,5126,!1,0,0)),ft.hasNormals&&(ne.bindBuffer(34962,mt.normal),ne.bufferData(34962,ft.normalArray,35048),li.enableAttribute(Tt.normal),ne.vertexAttribPointer(Tt.normal,3,5126,!1,0,0)),ft.hasUvs&&(ne.bindBuffer(34962,mt.uv),ne.bufferData(34962,ft.uvArray,35048),li.enableAttribute(Tt.uv),ne.vertexAttribPointer(Tt.uv,2,5126,!1,0,0)),ft.hasColors&&(ne.bindBuffer(34962,mt.color),ne.bufferData(34962,ft.colorArray,35048),li.enableAttribute(Tt.color),ne.vertexAttribPointer(Tt.color,3,5126,!1,0,0)),li.disableUnusedAttributes(),ne.drawArrays(4,0,ft.count),ft.count=0},this.renderBufferDirect=function(ft,Tt,mt,Me,ze,Ve){var Se=ze.isMesh&&0>ze.normalMatrix.determinant();li.setMaterial(Me,Se);var Ke=B(ft,Tt,Me,ze),Oi=!1;(e!==mt.id||We!==Ke.id||Qe!==(Me.wireframe===!0))&&(e=mt.id,We=Ke.id,Qe=Me.wireframe===!0,Oi=!0),ze.morphTargetInfluences&&(Qh.update(ze,mt,Me,Ke),Oi=!0),Se=mt.index;var $i=mt.attributes.position;if(Tt=1,Me.wireframe===!0&&(Se=Kh.getWireframeAttribute(mt),Tt=2),ft=tu,Se!==null){var ve=Oa.get(Se);ft=er,ft.setIndex(ve)}if(Oi){if(mt&&mt.isInstancedBufferGeometry&!Ze.isWebGL2&&ii.get("ANGLE_instanced_arrays")===null)console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{li.initAttributes(),Oi=mt.attributes,Ke=Ke.getAttributes();var Tr=Me.defaultAttributeValues;for(ir in Ke){var Nn=Ke[ir];if(0<=Nn){var an=Oi[ir];if(an!==void 0){var pr=an.normalized,eu=an.itemSize,Eo=Oa.get(an);if(Eo!==void 0){var iu=Eo.buffer,dh=Eo.type;if(Eo=Eo.bytesPerElement,an.isInterleavedBufferAttribute){var za=an.data,Hu=za.stride;an=an.offset,za&&za.isInstancedInterleavedBuffer?(li.enableAttributeAndDivisor(Nn,za.meshPerAttribute),mt.maxInstancedCount===void 0&&(mt.maxInstancedCount=za.meshPerAttribute*za.count)):li.enableAttribute(Nn),ne.bindBuffer(34962,iu),ne.vertexAttribPointer(Nn,eu,dh,pr,Hu*Eo,an*Eo)}else an.isInstancedBufferAttribute?(li.enableAttributeAndDivisor(Nn,an.meshPerAttribute),mt.maxInstancedCount===void 0&&(mt.maxInstancedCount=an.meshPerAttribute*an.count)):li.enableAttribute(Nn),ne.bindBuffer(34962,iu),ne.vertexAttribPointer(Nn,eu,dh,pr,0,0)}}else if(Tr!==void 0&&(pr=Tr[ir],pr!==void 0))switch(pr.length){case 2:ne.vertexAttrib2fv(Nn,pr);break;case 3:ne.vertexAttrib3fv(Nn,pr);break;case 4:ne.vertexAttrib4fv(Nn,pr);break;default:ne.vertexAttrib1fv(Nn,pr)}}}li.disableUnusedAttributes()}Se!==null&&ne.bindBuffer(34963,ve.buffer)}ve=1/0,Se!==null?ve=Se.count:$i!==void 0&&(ve=$i.count),Se=mt.drawRange.start*Tt,$i=Ve!==null?Ve.start*Tt:0;var ir=Math.max(Se,$i);if(Ve=Math.max(0,Math.min(ve,Se+mt.drawRange.count*Tt,$i+(Ve!==null?Ve.count*Tt:1/0))-1-ir+1),Ve!==0){if(ze.isMesh)if(Me.wireframe===!0)li.setLineWidth(Me.wireframeLinewidth*(De===null?ti:1)),ft.setMode(1);else switch(ze.drawMode){case 0:ft.setMode(4);break;case 1:ft.setMode(5);break;case 2:ft.setMode(6)}else ze.isLine?(Me=Me.linewidth,Me===void 0&&(Me=1),li.setLineWidth(Me*(De===null?ti:1)),ze.isLineSegments?ft.setMode(1):ze.isLineLoop?ft.setMode(2):ft.setMode(3)):ze.isPoints?ft.setMode(0):ze.isSprite&&ft.setMode(4);mt&&mt.isInstancedBufferGeometry?0<mt.maxInstancedCount&&ft.renderInstances(mt,ir,Ve):ft.render(ir,Ve)}},this.compile=function(ft,Tt){$t=Hs.get(ft,Tt),$t.init(),ft.traverse(function(mt){mt.isLight&&($t.pushLight(mt),mt.castShadow&&$t.pushShadow(mt))}),$t.setupLights(Tt),ft.traverse(function(mt){if(mt.material)if(Array.isArray(mt.material))for(var Me=0;Me<mt.material.length;Me++)P(mt.material[Me],ft.fog,mt);else P(mt.material,ft.fog,mt)})};var Da=null,Fo=new T;Fo.setAnimationLoop(function(ft){So.isPresenting()||Da&&Da(ft)}),typeof window<"u"&&Fo.setContext(window),this.setAnimationLoop=function(ft){Da=ft,So.setAnimationLoop(ft),Fo.start()},this.render=function(ft,Tt,mt,Me){if(!Tt||!Tt.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!Te){We=e=null,Qe=!1,ae=-1,fi=null,ft.autoUpdate===!0&&ft.updateMatrixWorld(),Tt.parent===null&&Tt.updateMatrixWorld(),So.enabled&&(Tt=So.getCamera(Tt)),$t=Hs.get(ft,Tt),$t.init(),ft.onBeforeRender(Yt,ft,Tt,mt),Li.multiplyMatrices(Tt.projectionMatrix,Tt.matrixWorldInverse),Wi.setFromMatrix(Li),ri=this.localClippingEnabled,Xe=Ae.init(this.clippingPlanes,ri,Tt),ee=bl.get(ft,Tt),ee.init(),y(ft,Tt,Yt.sortObjects),Yt.sortObjects===!0&&ee.sort(),Xe&&Ae.beginShadows(),Gu.render($t.state.shadowsArray,ft,Tt),$t.setupLights(Tt),Xe&&Ae.endShadows(),this.info.autoReset&&this.info.reset(),mt===void 0&&(mt=null),this.setRenderTarget(mt),hs.render(ee,ft,Tt,Me),Me=ee.opaque;var ze=ee.transparent;if(ft.overrideMaterial){var Ve=ft.overrideMaterial;Me.length&&w(Me,ft,Tt,Ve),ze.length&&w(ze,ft,Tt,Ve)}else Me.length&&w(Me,ft,Tt),ze.length&&w(ze,ft,Tt);mt&&No.updateRenderTargetMipmap(mt),li.buffers.depth.setTest(!0),li.buffers.depth.setMask(!0),li.buffers.color.setMask(!0),li.setPolygonOffset(!1),ft.onAfterRender(Yt,ft,Tt),So.enabled&&So.submitFrame(),$t=ee=null}},this.allocTextureUnit=function(){var ft=on;return ft>=Ze.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+ft+" texture units while this GPU supports only "+Ze.maxTextures),on+=1,ft},this.setTexture2D=function(){var ft=!1;return function(Tt,mt){Tt&&Tt.isWebGLRenderTarget&&(ft||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),ft=!0),Tt=Tt.texture),No.setTexture2D(Tt,mt)}}(),this.setTexture3D=function(){return function(ft,Tt){No.setTexture3D(ft,Tt)}}(),this.setTexture=function(){var ft=!1;return function(Tt,mt){ft||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),ft=!0),No.setTexture2D(Tt,mt)}}(),this.setTextureCube=function(){var ft=!1;return function(Tt,mt){Tt&&Tt.isWebGLRenderTargetCube&&(ft||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),ft=!0),Tt=Tt.texture),Tt&&Tt.isCubeTexture||Array.isArray(Tt.image)&&Tt.image.length===6?No.setTextureCube(Tt,mt):No.setTextureCubeDynamic(Tt,mt)}}(),this.setFramebuffer=function(ft){me=ft},this.getRenderTarget=function(){return De},this.setRenderTarget=function(ft){(De=ft)&&Pn.get(ft).__webglFramebuffer===void 0&&No.setupRenderTarget(ft);var Tt=me,mt=!1;ft?(Tt=Pn.get(ft).__webglFramebuffer,ft.isWebGLRenderTargetCube&&(Tt=Tt[ft.activeCubeFace],mt=!0),_n.copy(ft.viewport),qi.copy(ft.scissor),Vi=ft.scissorTest):(_n.copy(Ut).multiplyScalar(ti),qi.copy(Ye).multiplyScalar(ti),Vi=ei),be!==Tt&&(ne.bindFramebuffer(36160,Tt),be=Tt),li.viewport(_n),li.scissor(qi),li.setScissorTest(Vi),mt&&(mt=Pn.get(ft.texture),ne.framebufferTexture2D(36160,36064,34069+ft.activeCubeFace,mt.__webglTexture,ft.activeMipMapLevel))},this.readRenderTargetPixels=function(ft,Tt,mt,Me,ze,Ve){if(ft&&ft.isWebGLRenderTarget){var Se=Pn.get(ft).__webglFramebuffer;if(Se){var Ke=!1;Se!==be&&(ne.bindFramebuffer(36160,Se),Ke=!0);try{var Oi=ft.texture,$i=Oi.format,ve=Oi.type;$i!==1023&&In.convert($i)!==ne.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):ve===1009||In.convert(ve)===ne.getParameter(35738)||ve===1015&&(Ze.isWebGL2||ii.get("OES_texture_float")||ii.get("WEBGL_color_buffer_float"))||ve===1016&&(Ze.isWebGL2?ii.get("EXT_color_buffer_float"):ii.get("EXT_color_buffer_half_float"))?ne.checkFramebufferStatus(36160)===36053?0<=Tt&&Tt<=ft.width-Me&&0<=mt&&mt<=ft.height-ze&&ne.readPixels(Tt,mt,Me,ze,In.convert($i),In.convert(ve),Ve):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{Ke&&ne.bindFramebuffer(36160,be)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")},this.copyFramebufferToTexture=function(ft,Tt,mt){var Me=Tt.image.width,ze=Tt.image.height,Ve=In.convert(Tt.format);this.setTexture2D(Tt,0),ne.copyTexImage2D(3553,mt||0,Ve,ft.x,ft.y,Me,ze,0)},this.copyTextureToTexture=function(ft,Tt,mt,Me){var ze=Tt.image.width,Ve=Tt.image.height,Se=In.convert(mt.format),Ke=In.convert(mt.type);this.setTexture2D(mt,0),Tt.isDataTexture?ne.texSubImage2D(3553,Me||0,ft.x,ft.y,ze,Ve,Se,Ke,Tt.image.data):ne.texSubImage2D(3553,Me||0,ft.x,ft.y,Se,Ke,Tt.image)}}function Re(t,e){this.name="",this.color=new L(t),this.density=e!==void 0?e:25e-5}function Sn(t,e,i){this.name="",this.color=new L(t),this.near=e!==void 0?e:1,this.far=i!==void 0?i:1e3}function Xn(){N.call(this),this.type="Scene",this.overrideMaterial=this.fog=this.background=null,this.autoUpdate=!0}function ki(t,e){this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.version=0}function Bi(t,e,i,n){this.data=t,this.itemSize=e,this.offset=i,this.normalized=n===!0}function Hi(t){Wt.call(this),this.type="SpriteMaterial",this.color=new L(16777215),this.map=null,this.rotation=0,this.sizeAttenuation=!0,this.lights=!1,this.transparent=!0,this.setValues(t)}function nn(t){if(N.call(this),this.type="Sprite",Ra===void 0){Ra=new Ft;var e=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);e=new ki(e,5),Ra.setIndex([0,1,2,0,2,3]),Ra.addAttribute("position",new Bi(e,3,0,!1)),Ra.addAttribute("uv",new Bi(e,2,3,!1))}this.geometry=Ra,this.material=t!==void 0?t:new Hi,this.center=new s(.5,.5)}function rn(){N.call(this),this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function un(t,e){if(t=t||[],this.bones=t.slice(0),this.boneMatrices=new Float32Array(16*this.bones.length),e===void 0)this.calculateInverses();else if(this.bones.length===e.length)this.boneInverses=e.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new c)}function cn(){N.call(this),this.type="Bone"}function Gi(t,e){pi.call(this,t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new c,this.bindMatrixInverse=new c,t=this.initBones(),t=new un(t),this.bind(t,this.matrixWorld),this.normalizeSkinWeights()}function Ni(t){Wt.call(this),this.type="LineBasicMaterial",this.color=new L(16777215),this.linewidth=1,this.linejoin=this.linecap="round",this.lights=!1,this.setValues(t)}function ji(t,e,i){i===1&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead."),N.call(this),this.type="Line",this.geometry=t!==void 0?t:new Ft,this.material=e!==void 0?e:new Ni({color:16777215*Math.random()})}function gi(t,e){ji.call(this,t,e),this.type="LineSegments"}function co(t,e){ji.call(this,t,e),this.type="LineLoop"}function Fn(t){Wt.call(this),this.type="PointsMaterial",this.color=new L(16777215),this.map=null,this.size=1,this.sizeAttenuation=!0,this.lights=this.morphTargets=!1,this.setValues(t)}function la(t,e){N.call(this),this.type="Points",this.geometry=t!==void 0?t:new Ft,this.material=e!==void 0?e:new Fn({color:16777215*Math.random()})}function zh(t,e,i,n,o,l,f,p,y){g.call(this,t,e,i,n,o,l,f,p,y),this.generateMipmaps=!1}function Yo(t,e,i,n,o,l,f,p,y,w,A,P){g.call(this,null,l,f,p,y,w,n,o,A,P),this.image={width:e,height:i},this.mipmaps=t,this.generateMipmaps=this.flipY=!1}function Ka(t,e,i,n,o,l,f,p,y){g.call(this,t,e,i,n,o,l,f,p,y),this.needsUpdate=!0}function Qa(t,e,i,n,o,l,f,p,y,w){if(w=w!==void 0?w:1026,w!==1026&&w!==1027)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");i===void 0&&w===1026&&(i=1012),i===void 0&&w===1027&&(i=1020),g.call(this,null,n,o,l,f,p,w,i,y),this.image={width:t,height:e},this.magFilter=f!==void 0?f:1003,this.minFilter=p!==void 0?p:1003,this.generateMipmaps=this.flipY=!1}function ha(t){Ft.call(this),this.type="WireframeGeometry";var e=[],i,n,o,l=[0,0],f={},p=["a","b","c"];if(t&&t.isGeometry){var y=t.faces,w=0;for(n=y.length;w<n;w++){var A=y[w];for(i=0;3>i;i++){var P=A[p[i]],B=A[p[(i+1)%3]];l[0]=Math.min(P,B),l[1]=Math.max(P,B),P=l[0]+","+l[1],f[P]===void 0&&(f[P]={index1:l[0],index2:l[1]})}}for(P in f)w=f[P],p=t.vertices[w.index1],e.push(p.x,p.y,p.z),p=t.vertices[w.index2],e.push(p.x,p.y,p.z)}else if(t&&t.isBufferGeometry)if(p=new u,t.index!==null){y=t.attributes.position,A=t.index;var H=t.groups;for(H.length===0&&(H=[{start:0,count:A.count,materialIndex:0}]),t=0,o=H.length;t<o;++t)for(w=H[t],i=w.start,n=w.count,w=i,n=i+n;w<n;w+=3)for(i=0;3>i;i++)P=A.getX(w+i),B=A.getX(w+(i+1)%3),l[0]=Math.min(P,B),l[1]=Math.max(P,B),P=l[0]+","+l[1],f[P]===void 0&&(f[P]={index1:l[0],index2:l[1]});for(P in f)w=f[P],p.fromBufferAttribute(y,w.index1),e.push(p.x,p.y,p.z),p.fromBufferAttribute(y,w.index2),e.push(p.x,p.y,p.z)}else for(y=t.attributes.position,w=0,n=y.count/3;w<n;w++)for(i=0;3>i;i++)f=3*w+i,p.fromBufferAttribute(y,f),e.push(p.x,p.y,p.z),f=3*w+(i+1)%3,p.fromBufferAttribute(y,f),e.push(p.x,p.y,p.z);this.addAttribute("position",new Et(e,3))}function tl(t,e,i){X.call(this),this.type="ParametricGeometry",this.parameters={func:t,slices:e,stacks:i},this.fromBufferGeometry(new ua(t,e,i)),this.mergeVertices()}function ua(t,e,i){Ft.call(this),this.type="ParametricBufferGeometry",this.parameters={func:t,slices:e,stacks:i};var n=[],o=[],l=[],f=[],p=new u,y=new u,w=new u,A=new u,P=new u,B,H;3>t.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var q=e+1;for(B=0;B<=i;B++){var $=B/i;for(H=0;H<=e;H++){var rt=H/e;t(rt,$,y),o.push(y.x,y.y,y.z),0<=rt-1e-5?(t(rt-1e-5,$,w),A.subVectors(y,w)):(t(rt+1e-5,$,w),A.subVectors(w,y)),0<=$-1e-5?(t(rt,$-1e-5,w),P.subVectors(y,w)):(t(rt,$+1e-5,w),P.subVectors(w,y)),p.crossVectors(A,P).normalize(),l.push(p.x,p.y,p.z),f.push(rt,$)}}for(B=0;B<i;B++)for(H=0;H<e;H++)t=B*q+H+1,p=(B+1)*q+H+1,y=(B+1)*q+H,n.push(B*q+H,t,y),n.push(t,p,y);this.setIndex(n),this.addAttribute("position",new Et(o,3)),this.addAttribute("normal",new Et(l,3)),this.addAttribute("uv",new Et(f,2))}function Xi(t,e,i,n){X.call(this),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:i,detail:n},this.fromBufferGeometry(new xi(t,e,i,n)),this.mergeVertices()}function xi(t,e,i,n){function o(w){p.push(w.x,w.y,w.z)}function l(w,A){w*=3,A.x=t[w+0],A.y=t[w+1],A.z=t[w+2]}function f(w,A,P,B){0>B&&w.x===1&&(y[A]=w.x-1),P.x===0&&P.z===0&&(y[A]=B/2/Math.PI+.5)}Ft.call(this),this.type="PolyhedronBufferGeometry",this.parameters={vertices:t,indices:e,radius:i,detail:n},i=i||1,n=n||0;var p=[],y=[];(function(w){for(var A=new u,P=new u,B=new u,H=0;H<e.length;H+=3){l(e[H+0],A),l(e[H+1],P),l(e[H+2],B);var q,$,rt=A,xt=P,gt=B,Ct=Math.pow(2,w),wt=[];for($=0;$<=Ct;$++){wt[$]=[];var Vt=rt.clone().lerp(gt,$/Ct),J=xt.clone().lerp(gt,$/Ct),ot=Ct-$;for(q=0;q<=ot;q++)wt[$][q]=q===0&&$===Ct?Vt:Vt.clone().lerp(J,q/ot)}for($=0;$<Ct;$++)for(q=0;q<2*(Ct-$)-1;q++)rt=Math.floor(q/2),q%2===0?(o(wt[$][rt+1]),o(wt[$+1][rt]),o(wt[$][rt])):(o(wt[$][rt+1]),o(wt[$+1][rt+1]),o(wt[$+1][rt]))}})(n),function(w){for(var A=new u,P=0;P<p.length;P+=3)A.x=p[P+0],A.y=p[P+1],A.z=p[P+2],A.normalize().multiplyScalar(w),p[P+0]=A.x,p[P+1]=A.y,p[P+2]=A.z}(i),function(){for(var w=new u,A=0;A<p.length;A+=3)w.x=p[A+0],w.y=p[A+1],w.z=p[A+2],y.push(Math.atan2(w.z,-w.x)/2/Math.PI+.5,1-(Math.atan2(-w.y,Math.sqrt(w.x*w.x+w.z*w.z))/Math.PI+.5));w=new u,A=new u;for(var P=new u,B=new u,H=new s,q=new s,$=new s,rt=0,xt=0;rt<p.length;rt+=9,xt+=6){w.set(p[rt+0],p[rt+1],p[rt+2]),A.set(p[rt+3],p[rt+4],p[rt+5]),P.set(p[rt+6],p[rt+7],p[rt+8]),H.set(y[xt+0],y[xt+1]),q.set(y[xt+2],y[xt+3]),$.set(y[xt+4],y[xt+5]),B.copy(w).add(A).add(P).divideScalar(3);var gt=Math.atan2(B.z,-B.x);f(H,xt+0,w,gt),f(q,xt+2,A,gt),f($,xt+4,P,gt)}for(w=0;w<y.length;w+=6)A=y[w+0],P=y[w+2],B=y[w+4],H=Math.min(A,P,B),.9<Math.max(A,P,B)&&.1>H&&(.2>A&&(y[w+0]+=1),.2>P&&(y[w+2]+=1),.2>B&&(y[w+4]+=1))}(),this.addAttribute("position",new Et(p,3)),this.addAttribute("normal",new Et(p.slice(),3)),this.addAttribute("uv",new Et(y,2)),n===0?this.computeVertexNormals():this.normalizeNormals()}function el(t,e){X.call(this),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new ca(t,e)),this.mergeVertices()}function ca(t,e){xi.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],t,e),this.type="TetrahedronBufferGeometry",this.parameters={radius:t,detail:e}}function il(t,e){X.call(this),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new _s(t,e)),this.mergeVertices()}function _s(t,e){xi.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],t,e),this.type="OctahedronBufferGeometry",this.parameters={radius:t,detail:e}}function nl(t,e){X.call(this),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new fa(t,e)),this.mergeVertices()}function fa(t,e){var i=(1+Math.sqrt(5))/2;xi.call(this,[-1,i,0,1,i,0,-1,-i,0,1,-i,0,0,-1,i,0,1,i,0,-1,-i,0,1,-i,i,0,-1,i,0,1,-i,0,-1,-i,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],t,e),this.type="IcosahedronBufferGeometry",this.parameters={radius:t,detail:e}}function da(t,e){X.call(this),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new pa(t,e)),this.mergeVertices()}function pa(t,e){var i=(1+Math.sqrt(5))/2,n=1/i;xi.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,-n,-i,0,-n,i,0,n,-i,0,n,i,-n,-i,0,-n,i,0,n,-i,0,n,i,0,-i,0,-n,i,0,-n,-i,0,n,i,0,n],[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],t,e),this.type="DodecahedronBufferGeometry",this.parameters={radius:t,detail:e}}function gn(t,e,i,n,o,l){X.call(this),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:i,radialSegments:n,closed:o},l!==void 0&&console.warn("THREE.TubeGeometry: taper has been removed."),t=new Zo(t,e,i,n,o),this.tangents=t.tangents,this.normals=t.normals,this.binormals=t.binormals,this.fromBufferGeometry(t),this.mergeVertices()}function Zo(t,e,i,n,o){function l(xt){A=t.getPointAt(xt/e,A);var gt=f.normals[xt];for(xt=f.binormals[xt],B=0;B<=n;B++){var Ct=B/n*Math.PI*2,wt=Math.sin(Ct);Ct=-Math.cos(Ct),y.x=Ct*gt.x+wt*xt.x,y.y=Ct*gt.y+wt*xt.y,y.z=Ct*gt.z+wt*xt.z,y.normalize(),q.push(y.x,y.y,y.z),p.x=A.x+i*y.x,p.y=A.y+i*y.y,p.z=A.z+i*y.z,H.push(p.x,p.y,p.z)}}Ft.call(this),this.type="TubeBufferGeometry",this.parameters={path:t,tubularSegments:e,radius:i,radialSegments:n,closed:o},e=e||64,i=i||1,n=n||8,o=o||!1;var f=t.computeFrenetFrames(e,o);this.tangents=f.tangents,this.normals=f.normals,this.binormals=f.binormals;var p=new u,y=new u,w=new s,A=new u,P,B,H=[],q=[],$=[],rt=[];for(P=0;P<e;P++)l(P);for(l(o===!1?e:0),P=0;P<=e;P++)for(B=0;B<=n;B++)w.x=P/e,w.y=B/n,$.push(w.x,w.y);(function(){for(B=1;B<=e;B++)for(P=1;P<=n;P++){var xt=(n+1)*B+(P-1),gt=(n+1)*B+P,Ct=(n+1)*(B-1)+P;rt.push((n+1)*(B-1)+(P-1),xt,Ct),rt.push(xt,gt,Ct)}})(),this.setIndex(rt),this.addAttribute("position",new Et(H,3)),this.addAttribute("normal",new Et(q,3)),this.addAttribute("uv",new Et($,2))}function Zr(t,e,i,n,o,l,f){X.call(this),this.type="TorusKnotGeometry",this.parameters={radius:t,tube:e,tubularSegments:i,radialSegments:n,p:o,q:l},f!==void 0&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead."),this.fromBufferGeometry(new xs(t,e,i,n,o,l)),this.mergeVertices()}function xs(t,e,i,n,o,l){function f(J,ot,zt,ee,$t){var Yt=Math.sin(J);ot=zt/ot*J,zt=Math.cos(ot),$t.x=ee*(2+zt)*.5*Math.cos(J),$t.y=ee*(2+zt)*Yt*.5,$t.z=ee*Math.sin(ot)*.5}Ft.call(this),this.type="TorusKnotBufferGeometry",this.parameters={radius:t,tube:e,tubularSegments:i,radialSegments:n,p:o,q:l},t=t||1,e=e||.4,i=Math.floor(i)||64,n=Math.floor(n)||8,o=o||2,l=l||3;var p=[],y=[],w=[],A=[],P,B=new u,H=new u,q=new u,$=new u,rt=new u,xt=new u,gt=new u;for(P=0;P<=i;++P){var Ct=P/i*o*Math.PI*2;for(f(Ct,o,l,t,q),f(Ct+.01,o,l,t,$),xt.subVectors($,q),gt.addVectors($,q),rt.crossVectors(xt,gt),gt.crossVectors(rt,xt),rt.normalize(),gt.normalize(),Ct=0;Ct<=n;++Ct){var wt=Ct/n*Math.PI*2,Vt=-e*Math.cos(wt);wt=e*Math.sin(wt),B.x=q.x+(Vt*gt.x+wt*rt.x),B.y=q.y+(Vt*gt.y+wt*rt.y),B.z=q.z+(Vt*gt.z+wt*rt.z),y.push(B.x,B.y,B.z),H.subVectors(B,q).normalize(),w.push(H.x,H.y,H.z),A.push(P/i),A.push(Ct/n)}}for(Ct=1;Ct<=i;Ct++)for(P=1;P<=n;P++)t=(n+1)*Ct+(P-1),e=(n+1)*Ct+P,o=(n+1)*(Ct-1)+P,p.push((n+1)*(Ct-1)+(P-1),t,o),p.push(t,e,o);this.setIndex(p),this.addAttribute("position",new Et(y,3)),this.addAttribute("normal",new Et(w,3)),this.addAttribute("uv",new Et(A,2))}function ws(t,e,i,n,o){X.call(this),this.type="TorusGeometry",this.parameters={radius:t,tube:e,radialSegments:i,tubularSegments:n,arc:o},this.fromBufferGeometry(new Un(t,e,i,n,o)),this.mergeVertices()}function Un(t,e,i,n,o){Ft.call(this),this.type="TorusBufferGeometry",this.parameters={radius:t,tube:e,radialSegments:i,tubularSegments:n,arc:o},t=t||1,e=e||.4,i=Math.floor(i)||8,n=Math.floor(n)||6,o=o||2*Math.PI;var l=[],f=[],p=[],y=[],w=new u,A=new u,P=new u,B,H;for(B=0;B<=i;B++)for(H=0;H<=n;H++){var q=H/n*o,$=B/i*Math.PI*2;A.x=(t+e*Math.cos($))*Math.cos(q),A.y=(t+e*Math.cos($))*Math.sin(q),A.z=e*Math.sin($),f.push(A.x,A.y,A.z),w.x=t*Math.cos(q),w.y=t*Math.sin(q),P.subVectors(A,w).normalize(),p.push(P.x,P.y,P.z),y.push(H/n),y.push(B/i)}for(B=1;B<=i;B++)for(H=1;H<=n;H++)t=(n+1)*(B-1)+H-1,e=(n+1)*(B-1)+H,o=(n+1)*B+H,l.push((n+1)*B+H-1,t,o),l.push(t,e,o);this.setIndex(l),this.addAttribute("position",new Et(f,3)),this.addAttribute("normal",new Et(p,3)),this.addAttribute("uv",new Et(y,2))}function kh(t,e,i,n,o){for(var l,f=0,p=e,y=i-n;p<i;p+=n)f+=(t[y]-t[p])*(t[p+1]+t[y+1]),y=p;if(o===0<f)for(o=e;o<i;o+=n)l=Jl(o,t[o],t[o+1],l);else for(o=i-n;o>=e;o-=n)l=Jl(o,t[o],t[o+1],l);return l&&Ts(l,l.next)&&(Yi(l),l=l.next),l}function ma(t,e){if(!t)return t;e||(e=t);do{var i=!1;if(t.steiner||!Ts(t,t.next)&&Ji(t.prev,t,t.next)!==0)t=t.next;else{if(Yi(t),t=e=t.prev,t===t.next)break;i=!0}}while(i||t!==e);return e}function ga(t,e,i,n,o,l,f){if(t){if(!f&&l){var p=t,y=p;do y.z===null&&(y.z=Yl(y.x,y.y,n,o,l)),y.prevZ=y.prev,y=y.nextZ=y.next;while(y!==p);y.prevZ.nextZ=null,y.prevZ=null,p=y;var w,A,P,B,H=1;do{y=p;var q=p=null;for(A=0;y;){A++;var $=y;for(w=P=0;w<H&&(P++,$=$.nextZ,$);w++);for(B=H;0<P||0<B&&$;)P!==0&&(B===0||!$||y.z<=$.z)?(w=y,y=y.nextZ,P--):(w=$,$=$.nextZ,B--),q?q.nextZ=w:p=w,w.prevZ=q,q=w;y=$}q.nextZ=null,H*=2}while(1<A)}for(p=t;t.prev!==t.next;){if(y=t.prev,$=t.next,l)t:{q=t,B=n;var rt=o,xt=l;if(A=q.prev,P=q,H=q.next,0<=Ji(A,P,H))q=!1;else{var gt=A.x>P.x?A.x>H.x?A.x:H.x:P.x>H.x?P.x:H.x,Ct=A.y>P.y?A.y>H.y?A.y:H.y:P.y>H.y?P.y:H.y;for(w=Yl(A.x<P.x?A.x<H.x?A.x:H.x:P.x<H.x?P.x:H.x,A.y<P.y?A.y<H.y?A.y:H.y:P.y<H.y?P.y:H.y,B,rt,xt),B=Yl(gt,Ct,B,rt,xt),rt=q.nextZ;rt&&rt.z<=B;){if(rt!==q.prev&&rt!==q.next&&Zl(A.x,A.y,P.x,P.y,H.x,H.y,rt.x,rt.y)&&0<=Ji(rt.prev,rt,rt.next)){q=!1;break t}rt=rt.nextZ}for(rt=q.prevZ;rt&&rt.z>=w;){if(rt!==q.prev&&rt!==q.next&&Zl(A.x,A.y,P.x,P.y,H.x,H.y,rt.x,rt.y)&&0<=Ji(rt.prev,rt,rt.next)){q=!1;break t}rt=rt.prevZ}q=!0}}else t:if(q=t,A=q.prev,P=q,H=q.next,0<=Ji(A,P,H))q=!1;else{for(w=q.next.next;w!==q.prev;){if(Zl(A.x,A.y,P.x,P.y,H.x,H.y,w.x,w.y)&&0<=Ji(w.prev,w,w.next)){q=!1;break t}w=w.next}q=!0}if(q)e.push(y.i/i),e.push(t.i/i),e.push($.i/i),Yi(t),p=t=$.next;else if(t=$,t===p){if(!f)ga(ma(t),e,i,n,o,l,1);else if(f===1){f=e,p=i,y=t;do $=y.prev,q=y.next.next,!Ts($,q)&&Bh($,y,y.next,q)&&Rr($,q)&&Rr(q,$)&&(f.push($.i/p),f.push(y.i/p),f.push(q.i/p),Yi(y),Yi(y.next),y=t=q),y=y.next;while(y!==t);t=y,ga(t,e,i,n,o,l,2)}else if(f===2)t:{f=t;do{for(p=f.next.next;p!==f.prev;){if(y=f.i!==p.i){if(y=f,$=p,q=y.next.i!==$.i&&y.prev.i!==$.i){e:{q=y;do{if(q.i!==y.i&&q.next.i!==y.i&&q.i!==$.i&&q.next.i!==$.i&&Bh(q,q.next,y,$)){q=!0;break e}q=q.next}while(q!==y);q=!1}q=!q}if(q=q&&Rr(y,$)&&Rr($,y)){q=y,A=!1,P=(y.x+$.x)/2,$=(y.y+$.y)/2;do q.y>$!=q.next.y>$&&q.next.y!==q.y&&P<(q.next.x-q.x)*($-q.y)/(q.next.y-q.y)+q.x&&(A=!A),q=q.next;while(q!==y);q=A}y=q}if(y){t=rl(f,p),f=ma(f,f.next),t=ma(t,t.next),ga(f,e,i,n,o,l),ga(t,e,i,n,o,l);break t}p=p.next}f=f.next}while(f!==t)}break}}}}function Su(t,e){return t.x-e.x}function Eu(t,e){var i=e,n=t.x,o=t.y,l=-1/0;do{if(o<=i.y&&o>=i.next.y&&i.next.y!==i.y){var f=i.x+(o-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(f<=n&&f>l){if(l=f,f===n){if(o===i.y)return i;if(o===i.next.y)return i.next}var p=i.x<i.next.x?i:i.next}}i=i.next}while(i!==e);if(!p)return null;if(n===l)return p.prev;e=p,f=p.x;var y=p.y,w=1/0;for(i=p.next;i!==e;){if(n>=i.x&&i.x>=f&&n!==i.x&&Zl(o<y?n:l,o,f,y,o<y?l:n,o,i.x,i.y)){var A=Math.abs(o-i.y)/(n-i.x);(A<w||A===w&&i.x>p.x)&&Rr(i,t)&&(p=i,w=A)}i=i.next}return p}function Yl(t,e,i,n,o){return t=32767*(t-i)*o,e=32767*(e-n)*o,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,(t|t<<1)&1431655765|((e|e<<1)&1431655765)<<1}function yr(t){var e=t,i=t;do e.x<i.x&&(i=e),e=e.next;while(e!==t);return i}function Zl(t,e,i,n,o,l,f,p){return 0<=(o-f)*(e-p)-(t-f)*(l-p)&&0<=(t-f)*(n-p)-(i-f)*(e-p)&&0<=(i-f)*(l-p)-(o-f)*(n-p)}function Ji(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function Ts(t,e){return t.x===e.x&&t.y===e.y}function Bh(t,e,i,n){return Ts(t,e)&&Ts(i,n)||Ts(t,n)&&Ts(i,e)?!0:0<Ji(t,e,i)!=0<Ji(t,e,n)&&0<Ji(i,n,t)!=0<Ji(i,n,e)}function Rr(t,e){return 0>Ji(t.prev,t,t.next)?0<=Ji(t,e,t.next)&&0<=Ji(t,t.prev,e):0>Ji(t,e,t.prev)||0>Ji(t,t.next,e)}function rl(t,e){var i=new fo(t.i,t.x,t.y),n=new fo(e.i,e.x,e.y),o=t.next,l=e.prev;return t.next=e,e.prev=t,i.next=o,o.prev=i,n.next=i,i.prev=n,l.next=n,n.prev=l,n}function Jl(t,e,i,n){return t=new fo(t,e,i),n?(t.next=n.next,t.prev=n,n.next.prev=t,n.next=t):(t.prev=t,t.next=t),t}function Yi(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function fo(t,e,i){this.i=t,this.x=e,this.y=i,this.nextZ=this.prevZ=this.z=this.next=this.prev=null,this.steiner=!1}function $l(t){var e=t.length;2<e&&t[e-1].equals(t[0])&&t.pop()}function bu(t,e){for(var i=0;i<e.length;i++)t.push(e[i].x),t.push(e[i].y)}function Po(t,e){X.call(this),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},this.fromBufferGeometry(new po(t,e)),this.mergeVertices()}function po(t,e){function i(y){function w(Xe,ri,Li){return ri||console.error("THREE.ExtrudeGeometry: vec does not exist"),ri.clone().multiplyScalar(Li).add(Xe)}function A(Xe,ri,Li){var Ai=Xe.x-ri.x,ne=Xe.y-ri.y,ii=Li.x-Xe.x,Ze=Li.y-Xe.y,li=Ai*Ai+ne*ne;if(Math.abs(Ai*Ze-ne*ii)>Number.EPSILON){var xn=Math.sqrt(li),Pn=Math.sqrt(ii*ii+Ze*Ze);if(li=ri.x-ne/xn,ri=ri.y+Ai/xn,Ze=((Li.x-Ze/Pn-li)*Ze-(Li.y+ii/Pn-ri)*ii)/(Ai*Ze-ne*ii),ii=li+Ai*Ze-Xe.x,Ai=ri+ne*Ze-Xe.y,ne=ii*ii+Ai*Ai,2>=ne)return new s(ii,Ai);ne=Math.sqrt(ne/2)}else Xe=!1,Ai>Number.EPSILON?ii>Number.EPSILON&&(Xe=!0):Ai<-Number.EPSILON?ii<-Number.EPSILON&&(Xe=!0):Math.sign(ne)===Math.sign(Ze)&&(Xe=!0),Xe?(ii=-ne,ne=Math.sqrt(li)):(ii=Ai,Ai=ne,ne=Math.sqrt(li/2));return new s(ii/ne,Ai/ne)}function P(Xe,ri){for(Ce=Xe.length;0<=--Ce;){var Li=Ce,Ai=Ce-1;0>Ai&&(Ai=Xe.length-1);var ne,ii=gt+2*ot;for(ne=0;ne<ii;ne++){var Ze=Vi*ne,li=Vi*(ne+1),xn=ri+Ai+Ze,Pn=ri+Ai+li;li=ri+Li+li,q(ri+Li+Ze),q(xn),q(li),q(xn),q(Pn),q(li),Ze=o.length/3,Ze=ee.generateSideWallUV(n,o,Ze-6,Ze-3,Ze-2,Ze-1),$(Ze[0]),$(Ze[1]),$(Ze[3]),$(Ze[1]),$(Ze[2]),$(Ze[3])}}}function B(Xe,ri,Li){rt.push(Xe),rt.push(ri),rt.push(Li)}function H(Xe,ri,Li){q(Xe),q(ri),q(Li),Xe=o.length/3,Xe=ee.generateTopUV(n,o,Xe-3,Xe-2,Xe-1),$(Xe[0]),$(Xe[1]),$(Xe[2])}function q(Xe){o.push(rt[3*Xe]),o.push(rt[3*Xe+1]),o.push(rt[3*Xe+2])}function $(Xe){l.push(Xe.x),l.push(Xe.y)}var rt=[],xt=e.curveSegments!==void 0?e.curveSegments:12,gt=e.steps!==void 0?e.steps:1,Ct=e.depth!==void 0?e.depth:100,wt=e.bevelEnabled!==void 0?e.bevelEnabled:!0,Vt=e.bevelThickness!==void 0?e.bevelThickness:6,J=e.bevelSize!==void 0?e.bevelSize:Vt-2,ot=e.bevelSegments!==void 0?e.bevelSegments:3,zt=e.extrudePath,ee=e.UVGenerator!==void 0?e.UVGenerator:Ml;e.amount!==void 0&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),Ct=e.amount);var $t=!1;if(zt){var Yt=zt.getSpacedPoints(gt);$t=!0,wt=!1;var Te=zt.computeFrenetFrames(gt,!1),me=new u,De=new u,be=new u}wt||(J=Vt=ot=0);var ae;xt=y.extractPoints(xt),y=xt.shape;var We=xt.holes;if(!To.isClockWise(y)){y=y.reverse();var Qe=0;for(ae=We.length;Qe<ae;Qe++){var fi=We[Qe];To.isClockWise(fi)&&(We[Qe]=fi.reverse())}}var Cn=To.triangulateShape(y,We),_n=y;for(Qe=0,ae=We.length;Qe<ae;Qe++)fi=We[Qe],y=y.concat(fi);var qi,Vi=y.length,on,An=Cn.length;xt=[];var Ce=0,ti=_n.length,Ut=ti-1;for(qi=Ce+1;Ce<ti;Ce++,Ut++,qi++)Ut===ti&&(Ut=0),qi===ti&&(qi=0),xt[Ce]=A(_n[Ce],_n[Ut],_n[qi]);zt=[];var Ye=xt.concat();for(Qe=0,ae=We.length;Qe<ae;Qe++){fi=We[Qe];var ei=[];for(Ce=0,ti=fi.length,Ut=ti-1,qi=Ce+1;Ce<ti;Ce++,Ut++,qi++)Ut===ti&&(Ut=0),qi===ti&&(qi=0),ei[Ce]=A(fi[Ce],fi[Ut],fi[qi]);zt.push(ei),Ye=Ye.concat(ei)}for(Ut=0;Ut<ot;Ut++){ti=Ut/ot;var Wi=Vt*Math.cos(ti*Math.PI/2);for(qi=J*Math.sin(ti*Math.PI/2),Ce=0,ti=_n.length;Ce<ti;Ce++){var Ae=w(_n[Ce],xt[Ce],qi);B(Ae.x,Ae.y,-Wi)}for(Qe=0,ae=We.length;Qe<ae;Qe++)for(fi=We[Qe],ei=zt[Qe],Ce=0,ti=fi.length;Ce<ti;Ce++)Ae=w(fi[Ce],ei[Ce],qi),B(Ae.x,Ae.y,-Wi)}for(qi=J,Ce=0;Ce<Vi;Ce++)Ae=wt?w(y[Ce],Ye[Ce],qi):y[Ce],$t?(De.copy(Te.normals[0]).multiplyScalar(Ae.x),me.copy(Te.binormals[0]).multiplyScalar(Ae.y),be.copy(Yt[0]).add(De).add(me),B(be.x,be.y,be.z)):B(Ae.x,Ae.y,0);for(ti=1;ti<=gt;ti++)for(Ce=0;Ce<Vi;Ce++)Ae=wt?w(y[Ce],Ye[Ce],qi):y[Ce],$t?(De.copy(Te.normals[ti]).multiplyScalar(Ae.x),me.copy(Te.binormals[ti]).multiplyScalar(Ae.y),be.copy(Yt[ti]).add(De).add(me),B(be.x,be.y,be.z)):B(Ae.x,Ae.y,Ct/gt*ti);for(Ut=ot-1;0<=Ut;Ut--){for(ti=Ut/ot,Wi=Vt*Math.cos(ti*Math.PI/2),qi=J*Math.sin(ti*Math.PI/2),Ce=0,ti=_n.length;Ce<ti;Ce++)Ae=w(_n[Ce],xt[Ce],qi),B(Ae.x,Ae.y,Ct+Wi);for(Qe=0,ae=We.length;Qe<ae;Qe++)for(fi=We[Qe],ei=zt[Qe],Ce=0,ti=fi.length;Ce<ti;Ce++)Ae=w(fi[Ce],ei[Ce],qi),$t?B(Ae.x,Ae.y+Yt[gt-1].y,Yt[gt-1].x+Wi):B(Ae.x,Ae.y,Ct+Wi)}(function(){var Xe=o.length/3;if(wt){var ri=0*Vi;for(Ce=0;Ce<An;Ce++)on=Cn[Ce],H(on[2]+ri,on[1]+ri,on[0]+ri);for(ri=Vi*(gt+2*ot),Ce=0;Ce<An;Ce++)on=Cn[Ce],H(on[0]+ri,on[1]+ri,on[2]+ri)}else{for(Ce=0;Ce<An;Ce++)on=Cn[Ce],H(on[2],on[1],on[0]);for(Ce=0;Ce<An;Ce++)on=Cn[Ce],H(on[0]+Vi*gt,on[1]+Vi*gt,on[2]+Vi*gt)}n.addGroup(Xe,o.length/3-Xe,0)})(),function(){var Xe=o.length/3,ri=0;for(P(_n,ri),ri+=_n.length,Qe=0,ae=We.length;Qe<ae;Qe++)fi=We[Qe],P(fi,ri),ri+=fi.length;n.addGroup(Xe,o.length/3-Xe,1)}()}Ft.call(this),this.type="ExtrudeBufferGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];for(var n=this,o=[],l=[],f=0,p=t.length;f<p;f++)i(t[f]);this.addAttribute("position",new Et(o,3)),this.addAttribute("uv",new Et(l,2)),this.computeVertexNormals()}function Cu(t,e,i){if(i.shapes=[],Array.isArray(t))for(var n=0,o=t.length;n<o;n++)i.shapes.push(t[n].uuid);else i.shapes.push(t.uuid);return e.extrudePath!==void 0&&(i.options.extrudePath=e.extrudePath.toJSON()),i}function ol(t,e){X.call(this),this.type="TextGeometry",this.parameters={text:t,parameters:e},this.fromBufferGeometry(new Ms(t,e)),this.mergeVertices()}function Ms(t,e){e=e||{};var i=e.font;if(!i||!i.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new X;t=i.generateShapes(t,e.size),e.depth=e.height!==void 0?e.height:50,e.bevelThickness===void 0&&(e.bevelThickness=10),e.bevelSize===void 0&&(e.bevelSize=8),e.bevelEnabled===void 0&&(e.bevelEnabled=!1),po.call(this,t,e),this.type="TextBufferGeometry"}function Jo(t,e,i,n,o,l,f){X.call(this),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:n,phiLength:o,thetaStart:l,thetaLength:f},this.fromBufferGeometry(new Or(t,e,i,n,o,l,f)),this.mergeVertices()}function Or(t,e,i,n,o,l,f){Ft.call(this),this.type="SphereBufferGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:n,phiLength:o,thetaStart:l,thetaLength:f},t=t||1,e=Math.max(3,Math.floor(e)||8),i=Math.max(2,Math.floor(i)||6),n=n!==void 0?n:0,o=o!==void 0?o:2*Math.PI,l=l!==void 0?l:0,f=f!==void 0?f:Math.PI;var p=l+f,y,w,A=0,P=[],B=new u,H=new u,q=[],$=[],rt=[],xt=[];for(w=0;w<=i;w++){var gt=[],Ct=w/i;for(y=0;y<=e;y++){var wt=y/e;B.x=-t*Math.cos(n+wt*o)*Math.sin(l+Ct*f),B.y=t*Math.cos(l+Ct*f),B.z=t*Math.sin(n+wt*o)*Math.sin(l+Ct*f),$.push(B.x,B.y,B.z),H.set(B.x,B.y,B.z).normalize(),rt.push(H.x,H.y,H.z),xt.push(wt,1-Ct),gt.push(A++)}P.push(gt)}for(w=0;w<i;w++)for(y=0;y<e;y++)t=P[w][y+1],n=P[w][y],o=P[w+1][y],f=P[w+1][y+1],(w!==0||0<l)&&q.push(t,n,f),(w!==i-1||p<Math.PI)&&q.push(n,o,f);this.setIndex(q),this.addAttribute("position",new Et($,3)),this.addAttribute("normal",new Et(rt,3)),this.addAttribute("uv",new Et(xt,2))}function sl(t,e,i,n,o,l){X.call(this),this.type="RingGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:i,phiSegments:n,thetaStart:o,thetaLength:l},this.fromBufferGeometry(new Ss(t,e,i,n,o,l)),this.mergeVertices()}function Ss(t,e,i,n,o,l){Ft.call(this),this.type="RingBufferGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:i,phiSegments:n,thetaStart:o,thetaLength:l},t=t||.5,e=e||1,o=o!==void 0?o:0,l=l!==void 0?l:2*Math.PI,i=i!==void 0?Math.max(3,i):8,n=n!==void 0?Math.max(1,n):1;var f=[],p=[],y=[],w=[],A=t,P=(e-t)/n,B=new u,H=new s,q,$;for(q=0;q<=n;q++){for($=0;$<=i;$++)t=o+$/i*l,B.x=A*Math.cos(t),B.y=A*Math.sin(t),p.push(B.x,B.y,B.z),y.push(0,0,1),H.x=(B.x/e+1)/2,H.y=(B.y/e+1)/2,w.push(H.x,H.y);A+=P}for(q=0;q<n;q++)for(e=q*(i+1),$=0;$<i;$++)t=$+e,o=t+i+1,l=t+i+2,A=t+1,f.push(t,o,A),f.push(o,l,A);this.setIndex(f),this.addAttribute("position",new Et(p,3)),this.addAttribute("normal",new Et(y,3)),this.addAttribute("uv",new Et(w,2))}function va(t,e,i,n){X.call(this),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:i,phiLength:n},this.fromBufferGeometry(new $o(t,e,i,n)),this.mergeVertices()}function $o(t,e,i,n){Ft.call(this),this.type="LatheBufferGeometry",this.parameters={points:t,segments:e,phiStart:i,phiLength:n},e=Math.floor(e)||12,i=i||0,n=n||2*Math.PI,n=di.clamp(n,0,2*Math.PI);var o=[],l=[],f=[],p=1/e,y=new u,w=new s,A;for(A=0;A<=e;A++){var P=i+A*p*n,B=Math.sin(P),H=Math.cos(P);for(P=0;P<=t.length-1;P++)y.x=t[P].x*B,y.y=t[P].y,y.z=t[P].x*H,l.push(y.x,y.y,y.z),w.x=A/e,w.y=P/(t.length-1),f.push(w.x,w.y)}for(A=0;A<e;A++)for(P=0;P<t.length-1;P++)i=P+A*t.length,p=i+t.length,y=i+t.length+1,w=i+1,o.push(i,p,w),o.push(p,y,w);if(this.setIndex(o),this.addAttribute("position",new Et(l,3)),this.addAttribute("uv",new Et(f,2)),this.computeVertexNormals(),n===2*Math.PI)for(n=this.attributes.normal.array,o=new u,l=new u,f=new u,i=e*t.length*3,P=A=0;A<t.length;A++,P+=3)o.x=n[P+0],o.y=n[P+1],o.z=n[P+2],l.x=n[i+P+0],l.y=n[i+P+1],l.z=n[i+P+2],f.addVectors(o,l).normalize(),n[P+0]=n[i+P+0]=f.x,n[P+1]=n[i+P+1]=f.y,n[P+2]=n[i+P+2]=f.z}function Lo(t,e){X.call(this),this.type="ShapeGeometry",typeof e=="object"&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),e=e.curveSegments),this.parameters={shapes:t,curveSegments:e},this.fromBufferGeometry(new Ko(t,e)),this.mergeVertices()}function Ko(t,e){function i(A){var P,B=o.length/3;A=A.extractPoints(e);var H=A.shape,q=A.holes;if(To.isClockWise(H)===!1)for(H=H.reverse(),A=0,P=q.length;A<P;A++){var $=q[A];To.isClockWise($)===!0&&(q[A]=$.reverse())}var rt=To.triangulateShape(H,q);for(A=0,P=q.length;A<P;A++)$=q[A],H=H.concat($);for(A=0,P=H.length;A<P;A++)$=H[A],o.push($.x,$.y,0),l.push(0,0,1),f.push($.x,$.y);for(A=0,P=rt.length;A<P;A++)H=rt[A],n.push(H[0]+B,H[1]+B,H[2]+B),y+=3}Ft.call(this),this.type="ShapeBufferGeometry",this.parameters={shapes:t,curveSegments:e},e=e||12;var n=[],o=[],l=[],f=[],p=0,y=0;if(Array.isArray(t)===!1)i(t);else for(var w=0;w<t.length;w++)i(t[w]),this.addGroup(p,y,w),p+=y,y=0;this.setIndex(n),this.addAttribute("position",new Et(o,3)),this.addAttribute("normal",new Et(l,3)),this.addAttribute("uv",new Et(f,2))}function Au(t,e){if(e.shapes=[],Array.isArray(t))for(var i=0,n=t.length;i<n;i++)e.shapes.push(t[i].uuid);else e.shapes.push(t.uuid);return e}function Qo(t,e){Ft.call(this),this.type="EdgesGeometry",this.parameters={thresholdAngle:e};var i=[];e=Math.cos(di.DEG2RAD*(e!==void 0?e:1));var n=[0,0],o={},l=["a","b","c"];if(t.isBufferGeometry){var f=new X;f.fromBufferGeometry(t)}else f=t.clone();f.mergeVertices(),f.computeFaceNormals(),t=f.vertices,f=f.faces;for(var p=0,y=f.length;p<y;p++)for(var w=f[p],A=0;3>A;A++){var P=w[l[A]],B=w[l[(A+1)%3]];n[0]=Math.min(P,B),n[1]=Math.max(P,B),P=n[0]+","+n[1],o[P]===void 0?o[P]={index1:n[0],index2:n[1],face1:p,face2:void 0}:o[P].face2=p}for(P in o)n=o[P],(n.face2===void 0||f[n.face1].normal.dot(f[n.face2].normal)<=e)&&(l=t[n.index1],i.push(l.x,l.y,l.z),l=t[n.index2],i.push(l.x,l.y,l.z));this.addAttribute("position",new Et(i,3))}function Ro(t,e,i,n,o,l,f,p){X.call(this),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:n,heightSegments:o,openEnded:l,thetaStart:f,thetaLength:p},this.fromBufferGeometry(new Oo(t,e,i,n,o,l,f,p)),this.mergeVertices()}function Oo(t,e,i,n,o,l,f,p){function y(gt){var Ct,wt=new s,Vt=new u,J=0,ot=gt===!0?t:e,zt=gt===!0?1:-1,ee=q;for(Ct=1;Ct<=n;Ct++)P.push(0,rt*zt,0),B.push(0,zt,0),H.push(.5,.5),q++;var $t=q;for(Ct=0;Ct<=n;Ct++){var Yt=Ct/n*p+f,Te=Math.cos(Yt);Yt=Math.sin(Yt),Vt.x=ot*Yt,Vt.y=rt*zt,Vt.z=ot*Te,P.push(Vt.x,Vt.y,Vt.z),B.push(0,zt,0),wt.x=.5*Te+.5,wt.y=.5*Yt*zt+.5,H.push(wt.x,wt.y),q++}for(Ct=0;Ct<n;Ct++)wt=ee+Ct,Vt=$t+Ct,gt===!0?A.push(Vt,Vt+1,wt):A.push(Vt+1,Vt,wt),J+=3;w.addGroup(xt,J,gt===!0?1:2),xt+=J}Ft.call(this),this.type="CylinderBufferGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:n,heightSegments:o,openEnded:l,thetaStart:f,thetaLength:p};var w=this;t=t!==void 0?t:1,e=e!==void 0?e:1,i=i||1,n=Math.floor(n)||8,o=Math.floor(o)||1,l=l!==void 0?l:!1,f=f!==void 0?f:0,p=p!==void 0?p:2*Math.PI;var A=[],P=[],B=[],H=[],q=0,$=[],rt=i/2,xt=0;(function(){var gt,Ct,wt=new u,Vt=new u,J=0,ot=(e-t)/i;for(Ct=0;Ct<=o;Ct++){var zt=[],ee=Ct/o,$t=ee*(e-t)+t;for(gt=0;gt<=n;gt++){var Yt=gt/n,Te=Yt*p+f,me=Math.sin(Te);Te=Math.cos(Te),Vt.x=$t*me,Vt.y=-ee*i+rt,Vt.z=$t*Te,P.push(Vt.x,Vt.y,Vt.z),wt.set(me,ot,Te).normalize(),B.push(wt.x,wt.y,wt.z),H.push(Yt,1-ee),zt.push(q++)}$.push(zt)}for(gt=0;gt<n;gt++)for(Ct=0;Ct<o;Ct++)wt=$[Ct+1][gt],Vt=$[Ct+1][gt+1],ot=$[Ct][gt+1],A.push($[Ct][gt],wt,ot),A.push(wt,Vt,ot),J+=6;w.addGroup(xt,J,0),xt+=J})(),l===!1&&(0<t&&y(!0),0<e&&y(!1)),this.setIndex(A),this.addAttribute("position",new Et(P,3)),this.addAttribute("normal",new Et(B,3)),this.addAttribute("uv",new Et(H,2))}function ya(t,e,i,n,o,l,f){Ro.call(this,0,t,e,i,n,o,l,f),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:i,heightSegments:n,openEnded:o,thetaStart:l,thetaLength:f}}function Gn(t,e,i,n,o,l,f){Oo.call(this,0,t,e,i,n,o,l,f),this.type="ConeBufferGeometry",this.parameters={radius:t,height:e,radialSegments:i,heightSegments:n,openEnded:o,thetaStart:l,thetaLength:f}}function Es(t,e,i,n){X.call(this),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:i,thetaLength:n},this.fromBufferGeometry(new mo(t,e,i,n)),this.mergeVertices()}function mo(t,e,i,n){Ft.call(this),this.type="CircleBufferGeometry",this.parameters={radius:t,segments:e,thetaStart:i,thetaLength:n},t=t||1,e=e!==void 0?Math.max(3,e):8,i=i!==void 0?i:0,n=n!==void 0?n:2*Math.PI;var o=[],l=[],f=[],p=[],y,w=new u,A=new s;l.push(0,0,0),f.push(0,0,1),p.push(.5,.5);var P=0;for(y=3;P<=e;P++,y+=3){var B=i+P/e*n;w.x=t*Math.cos(B),w.y=t*Math.sin(B),l.push(w.x,w.y,w.z),f.push(0,0,1),A.x=(l[y]/t+1)/2,A.y=(l[y+1]/t+1)/2,p.push(A.x,A.y)}for(y=1;y<=e;y++)o.push(y,y+1,0);this.setIndex(o),this.addAttribute("position",new Et(l,3)),this.addAttribute("normal",new Et(f,3)),this.addAttribute("uv",new Et(p,2))}function ts(t){Wt.call(this),this.type="ShadowMaterial",this.color=new L(0),this.transparent=!0,this.setValues(t)}function bs(t){$e.call(this,t),this.type="RawShaderMaterial"}function go(t){Wt.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new L(16777215),this.metalness=this.roughness=.5,this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new L(0),this.emissiveIntensity=1,this.bumpMap=this.emissiveMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new s(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(t)}function Cs(t){go.call(this),this.defines={PHYSICAL:""},this.type="MeshPhysicalMaterial",this.reflectivity=.5,this.clearCoatRoughness=this.clearCoat=0,this.setValues(t)}function Jr(t){Wt.call(this),this.type="MeshPhongMaterial",this.color=new L(16777215),this.specular=new L(1118481),this.shininess=30,this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new L(0),this.emissiveIntensity=1,this.bumpMap=this.emissiveMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new s(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(t)}function As(t){Jr.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.gradientMap=null,this.setValues(t)}function Ps(t){Wt.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new s(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(t)}function Ir(t){Wt.call(this),this.type="MeshLambertMaterial",this.color=new L(16777215),this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new L(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(t)}function Ls(t){if(Wt.call(this),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new L(16777215),this.bumpMap=this.map=this.matcap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new s(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(t),this.matcap===null){t=document.createElement("canvas"),t.width=1,t.height=1;var e=t.getContext("2d");e.fillStyle="#fff",e.fillRect(0,0,1,1),this.matcap=new THREE.CanvasTexture(t)}}function Rs(t){Ni.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}function $n(t,e,i,n){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=n!==void 0?n:new e.constructor(i),this.sampleValues=e,this.valueSize=i}function al(t,e,i,n){$n.call(this,t,e,i,n),this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function Dr(t,e,i,n){$n.call(this,t,e,i,n)}function Os(t,e,i,n){$n.call(this,t,e,i,n)}function Hn(t,e,i,n){if(t===void 0)throw Error("THREE.KeyframeTrack: track name is undefined");if(e===void 0||e.length===0)throw Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=Yn.convertArray(e,this.TimeBufferType),this.values=Yn.convertArray(i,this.ValueBufferType),this.setInterpolation(n||this.DefaultInterpolation)}function Kl(t,e,i){Hn.call(this,t,e,i)}function Ql(t,e,i,n){Hn.call(this,t,e,i,n)}function $r(t,e,i,n){Hn.call(this,t,e,i,n)}function ar(t,e,i,n){$n.call(this,t,e,i,n)}function _a(t,e,i,n){Hn.call(this,t,e,i,n)}function th(t,e,i,n){Hn.call(this,t,e,i,n)}function xa(t,e,i,n){Hn.call(this,t,e,i,n)}function _r(t,e,i){this.name=t,this.tracks=i,this.duration=e!==void 0?e:-1,this.uuid=di.generateUUID(),0>this.duration&&this.resetDuration()}function jc(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return $r;case"vector":case"vector2":case"vector3":case"vector4":return xa;case"color":return Ql;case"quaternion":return _a;case"bool":case"boolean":return Kl;case"string":return th}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+t)}function Xc(t){if(t.type===void 0)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var e=jc(t.type);if(t.times===void 0){var i=[],n=[];Yn.flattenJSON(t.keys,i,n,"value"),t.times=i,t.values=n}return e.parse!==void 0?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}function es(t,e,i){var n=this,o=!1,l=0,f=0,p=void 0;this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(y){f++,o===!1&&n.onStart!==void 0&&n.onStart(y,l,f),o=!0},this.itemEnd=function(y){l++,n.onProgress!==void 0&&n.onProgress(y,l,f),l===f&&(o=!1,n.onLoad!==void 0)&&n.onLoad()},this.itemError=function(y){n.onError!==void 0&&n.onError(y)},this.resolveURL=function(y){return p?p(y):y},this.setURLModifier=function(y){return p=y,this}}function Lt(t){this.manager=t!==void 0?t:tr}function Qt(t){this.manager=t!==void 0?t:tr}function Zt(t){this.manager=t!==void 0?t:tr,this._parser=null}function Ue(t){this.manager=t!==void 0?t:tr,this._parser=null}function ai(t){this.manager=t!==void 0?t:tr}function Fi(t){this.manager=t!==void 0?t:tr}function fn(t){this.manager=t!==void 0?t:tr}function Ee(){this.type="Curve",this.arcLengthDivisions=200}function Kn(t,e,i,n,o,l,f,p){Ee.call(this),this.type="EllipseCurve",this.aX=t||0,this.aY=e||0,this.xRadius=i||1,this.yRadius=n||1,this.aStartAngle=o||0,this.aEndAngle=l||2*Math.PI,this.aClockwise=f||!1,this.aRotation=p||0}function wa(t,e,i,n,o,l){Kn.call(this,t,e,i,i,n,o,l),this.type="ArcCurve"}function lr(){var t=0,e=0,i=0,n=0;return{initCatmullRom:function(o,l,f,p,y){o=y*(f-o),p=y*(p-l),t=l,e=o,i=-3*l+3*f-2*o-p,n=2*l-2*f+o+p},initNonuniformCatmullRom:function(o,l,f,p,y,w,A){o=((l-o)/y-(f-o)/(y+w)+(f-l)/w)*w,p=((f-l)/w-(p-l)/(w+A)+(p-f)/A)*w,t=l,e=o,i=-3*l+3*f-2*o-p,n=2*l-2*f+o+p},calc:function(o){var l=o*o;return t+e*o+i*l+n*l*o}}}function On(t,e,i,n){Ee.call(this),this.type="CatmullRomCurve3",this.points=t||[],this.closed=e||!1,this.curveType=i||"centripetal",this.tension=n||.5}function Pu(t,e,i,n,o){e=.5*(n-e),o=.5*(o-i);var l=t*t;return(2*i-2*n+e+o)*t*l+(-3*i+3*n-2*e-o)*l+e*t+i}function vo(t,e,i,n){var o=1-t;return o*o*e+2*(1-t)*t*i+t*t*n}function is(t,e,i,n,o){var l=1-t,f=1-t;return l*l*l*e+3*f*f*t*i+3*(1-t)*t*t*n+t*t*t*o}function hr(t,e,i,n){Ee.call(this),this.type="CubicBezierCurve",this.v0=t||new s,this.v1=e||new s,this.v2=i||new s,this.v3=n||new s}function Ti(t,e,i,n){Ee.call(this),this.type="CubicBezierCurve3",this.v0=t||new u,this.v1=e||new u,this.v2=i||new u,this.v3=n||new u}function ur(t,e){Ee.call(this),this.type="LineCurve",this.v1=t||new s,this.v2=e||new s}function zr(t,e){Ee.call(this),this.type="LineCurve3",this.v1=t||new u,this.v2=e||new u}function cr(t,e,i){Ee.call(this),this.type="QuadraticBezierCurve",this.v0=t||new s,this.v1=e||new s,this.v2=i||new s}function yo(t,e,i){Ee.call(this),this.type="QuadraticBezierCurve3",this.v0=t||new u,this.v1=e||new u,this.v2=i||new u}function Kr(t){Ee.call(this),this.type="SplineCurve",this.points=t||[]}function Io(){Ee.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function fr(t){Io.call(this),this.type="Path",this.currentPoint=new s,t&&this.setFromPoints(t)}function Qn(t){fr.call(this,t),this.uuid=di.generateUUID(),this.type="Shape",this.holes=[]}function tn(t,e){N.call(this),this.type="Light",this.color=new L(t),this.intensity=e!==void 0?e:1,this.receiveShadow=void 0}function ll(t,e,i){tn.call(this,t,i),this.type="HemisphereLight",this.castShadow=void 0,this.position.copy(N.DefaultUp),this.updateMatrix(),this.groundColor=new L(e)}function _o(t){this.camera=t,this.bias=0,this.radius=1,this.mapSize=new s(512,512),this.map=null,this.matrix=new c}function hl(){_o.call(this,new _e(50,1,.5,500))}function ul(t,e,i,n,o,l){tn.call(this,t,e),this.type="SpotLight",this.position.copy(N.DefaultUp),this.updateMatrix(),this.target=new N,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(f){this.intensity=f/Math.PI}}),this.distance=i!==void 0?i:0,this.angle=n!==void 0?n:Math.PI/3,this.penumbra=o!==void 0?o:0,this.decay=l!==void 0?l:1,this.shadow=new hl}function Is(t,e,i,n){tn.call(this,t,e),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(o){this.intensity=o/(4*Math.PI)}}),this.distance=i!==void 0?i:0,this.decay=n!==void 0?n:1,this.shadow=new _o(new _e(90,1,.5,500))}function Ta(t,e,i,n,o,l){Be.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t!==void 0?t:-1,this.right=e!==void 0?e:1,this.top=i!==void 0?i:1,this.bottom=n!==void 0?n:-1,this.near=o!==void 0?o:.1,this.far=l!==void 0?l:2e3,this.updateProjectionMatrix()}function ns(){_o.call(this,new Ta(-5,5,5,-5,.5,500))}function xo(t,e){tn.call(this,t,e),this.type="DirectionalLight",this.position.copy(N.DefaultUp),this.updateMatrix(),this.target=new N,this.shadow=new ns}function Ds(t,e){tn.call(this,t,e),this.type="AmbientLight",this.castShadow=void 0}function eh(t,e,i,n){tn.call(this,t,e),this.type="RectAreaLight",this.width=i!==void 0?i:10,this.height=n!==void 0?n:10}function ih(t){this.manager=t!==void 0?t:tr,this.textures={}}function Nh(t){this.manager=t!==void 0?t:tr}function Do(){}function zs(t){typeof t=="boolean"&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),t=void 0),this.manager=t!==void 0?t:tr,this.withCredentials=!1}function cl(t){this.manager=t!==void 0?t:tr,this.resourcePath=""}function Fh(t){typeof createImageBitmap>"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.manager=t!==void 0?t:tr,this.options=void 0}function nh(){this.type="ShapePath",this.color=new L,this.subPaths=[],this.currentPath=null}function Uh(t){this.type="Font",this.data=t}function Lu(t){this.manager=t!==void 0?t:tr}function vn(t){this.manager=t!==void 0?t:tr}function Vn(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new _e,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new _e,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1}function fl(t,e,i,n){N.call(this),this.type="CubeCamera";var o=new _e(90,1,t,e);o.up.set(0,-1,0),o.lookAt(new u(1,0,0)),this.add(o);var l=new _e(90,1,t,e);l.up.set(0,-1,0),l.lookAt(new u(-1,0,0)),this.add(l);var f=new _e(90,1,t,e);f.up.set(0,0,1),f.lookAt(new u(0,1,0)),this.add(f);var p=new _e(90,1,t,e);p.up.set(0,0,-1),p.lookAt(new u(0,-1,0)),this.add(p);var y=new _e(90,1,t,e);y.up.set(0,-1,0),y.lookAt(new u(0,0,1)),this.add(y);var w=new _e(90,1,t,e);w.up.set(0,-1,0),w.lookAt(new u(0,0,-1)),this.add(w),n=n||{format:1022,magFilter:1006,minFilter:1006},this.renderTarget=new b(i,i,n),this.renderTarget.texture.name="CubeCamera",this.update=function(A,P){this.parent===null&&this.updateMatrixWorld();var B=this.renderTarget,H=B.texture.generateMipmaps;B.texture.generateMipmaps=!1,B.activeCubeFace=0,A.render(P,o,B),B.activeCubeFace=1,A.render(P,l,B),B.activeCubeFace=2,A.render(P,f,B),B.activeCubeFace=3,A.render(P,p,B),B.activeCubeFace=4,A.render(P,y,B),B.texture.generateMipmaps=H,B.activeCubeFace=5,A.render(P,w,B),A.setRenderTarget(null)},this.clear=function(A,P,B,H){for(var q=this.renderTarget,$=0;6>$;$++)q.activeCubeFace=$,A.setRenderTarget(q),A.clear(P,B,H);A.setRenderTarget(null)}}function Gh(t){this.autoStart=t!==void 0?t:!0,this.elapsedTime=this.oldTime=this.startTime=0,this.running=!1}function rh(){N.call(this),this.type="AudioListener",this.context=$h.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0}function Ma(t){N.call(this),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.loop=!1,this.offset=this.startTime=0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType="empty",this.filters=[]}function dl(t){Ma.call(this,t),this.panner=this.context.createPanner(),this.panner.connect(this.gain)}function ks(t,e){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e!==void 0?e:2048,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}function pl(t,e,i){switch(this.binding=t,this.valueSize=i,t=Float64Array,e){case"quaternion":e=this._slerp;break;case"string":case"bool":t=Array,e=this._select;break;default:e=this._lerp}this.buffer=new t(4*i),this._mixBufferRegion=e,this.referenceCount=this.useCount=this.cumulativeWeight=0}function Bs(t,e,i){i=i||En.parseTrackName(e),this._targetGroup=t,this._bindings=t.subscribe_(e,i)}function En(t,e,i){this.path=e,this.parsedPath=i||En.parseTrackName(e),this.node=En.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}function Sa(){this.uuid=di.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var t={};this._indicesByUUID=t;for(var e=0,i=arguments.length;e!==i;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var n=this;this.stats={objects:{get total(){return n._objects.length},get inUse(){return this.total-n.nCachedObjects_}},get bindingsPerObject(){return n._bindings.length}}}function ml(t,e,i){this._mixer=t,this._clip=e,this._localRoot=i||null,t=e.tracks,e=t.length,i=Array(e);for(var n={endingStart:2400,endingEnd:2400},o=0;o!==e;++o){var l=t[o].createInterpolant(null);i[o]=l,l.settings=n}this._interpolantSettings=n,this._interpolants=i,this._propertyBindings=Array(e),this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function rs(t){this._root=t,this._initMemoryManager(),this.time=this._accuIndex=0,this.timeScale=1}function oh(t,e){typeof t=="string"&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=e),this.value=t}function Hh(){Ft.call(this),this.type="InstancedBufferGeometry",this.maxInstancedCount=void 0}function Vh(t,e,i){ki.call(this,t,e),this.meshPerAttribute=i||1}function Wh(t,e,i,n){typeof i=="number"&&(n=i,i=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),K.call(this,t,e,i),this.meshPerAttribute=n||1}function Ru(t,e,i,n){this.ray=new Si(t,e),this.near=i||0,this.far=n||1/0,this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function gl(t,e){return t.distance-e.distance}function Ns(t,e,i,n){if(t.visible!==!1&&(t.raycast(e,i),n===!0)){t=t.children,n=0;for(var o=t.length;n<o;n++)Ns(t[n],e,i,!0)}}function jh(t,e,i){return this.radius=t!==void 0?t:1,this.phi=e!==void 0?e:0,this.theta=i!==void 0?i:0,this}function it(t,e,i){return this.radius=t!==void 0?t:1,this.theta=e!==void 0?e:0,this.y=i!==void 0?i:0,this}function os(t,e){this.min=t!==void 0?t:new s(1/0,1/0),this.max=e!==void 0?e:new s(-1/0,-1/0)}function Ea(t,e){this.start=t!==void 0?t:new u,this.end=e!==void 0?e:new u}function qn(t){N.call(this),this.material=t,this.render=function(){}}function _i(t,e,i,n){this.object=t,this.size=e!==void 0?e:1,t=i!==void 0?i:16711680,n=n!==void 0?n:1,e=0,(i=this.object.geometry)&&i.isGeometry?e=3*i.faces.length:i&&i.isBufferGeometry&&(e=i.attributes.normal.count),i=new Ft,e=new Et(6*e,3),i.addAttribute("position",e),gi.call(this,i,new Ni({color:t,linewidth:n})),this.matrixAutoUpdate=!1,this.update()}function ba(t,e){N.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,t=new Ft,e=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var i=0,n=1;32>i;i++,n++){var o=i/32*Math.PI*2,l=n/32*Math.PI*2;e.push(Math.cos(o),Math.sin(o),1,Math.cos(l),Math.sin(l),1)}t.addAttribute("position",new Et(e,3)),e=new Ni({fog:!1}),this.cone=new gi(t,e),this.add(this.cone),this.update()}function Ou(t){var e=[];t&&t.isBone&&e.push(t);for(var i=0;i<t.children.length;i++)e.push.apply(e,Ou(t.children[i]));return e}function Ca(t){for(var e=Ou(t),i=new Ft,n=[],o=[],l=new L(0,0,1),f=new L(0,1,0),p=0;p<e.length;p++){var y=e[p];y.parent&&y.parent.isBone&&(n.push(0,0,0),n.push(0,0,0),o.push(l.r,l.g,l.b),o.push(f.r,f.g,f.b))}i.addAttribute("position",new Et(n,3)),i.addAttribute("color",new Et(o,3)),n=new Ni({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0}),gi.call(this,i,n),this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}function kr(t,e,i){this.light=t,this.light.updateMatrixWorld(),this.color=i,t=new Or(e,4,2),e=new Ge({wireframe:!0,fog:!1}),pi.call(this,t,e),this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}function Aa(t,e){N.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,t=new Ni({fog:!1}),e=new Ft,e.addAttribute("position",new K(new Float32Array(15),3)),this.line=new ji(e,t),this.add(this.line),this.update()}function Pa(t,e,i){N.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,t=new _s(e),t.rotateY(.5*Math.PI),this.material=new Ge({wireframe:!0,fog:!1}),this.color===void 0&&(this.material.vertexColors=2),e=t.getAttribute("position"),e=new Float32Array(3*e.count),t.addAttribute("color",new K(e,3)),this.add(new pi(t,this.material)),this.update()}function vl(t,e,i,n){t=t||10,e=e||10,i=new L(i!==void 0?i:4473924),n=new L(n!==void 0?n:8947848);var o=e/2,l=t/e,f=t/2;t=[];for(var p=[],y=0,w=0,A=-f;y<=e;y++,A+=l){t.push(-f,0,A,f,0,A),t.push(A,0,-f,A,0,f);var P=y===o?i:n;P.toArray(p,w),w+=3,P.toArray(p,w),w+=3,P.toArray(p,w),w+=3,P.toArray(p,w),w+=3}e=new Ft,e.addAttribute("position",new Et(t,3)),e.addAttribute("color",new Et(p,3)),i=new Ni({vertexColors:2}),gi.call(this,e,i)}function sh(t,e,i,n,o,l){t=t||10,e=e||16,i=i||8,n=n||64,o=new L(o!==void 0?o:4473924),l=new L(l!==void 0?l:8947848);var f=[],p=[],y;for(y=0;y<=e;y++){var w=y/e*2*Math.PI,A=Math.sin(w)*t;w=Math.cos(w)*t,f.push(0,0,0),f.push(A,0,w);var P=y&1?o:l;p.push(P.r,P.g,P.b),p.push(P.r,P.g,P.b)}for(y=0;y<=i;y++){P=y&1?o:l;var B=t-t/i*y;for(e=0;e<n;e++)w=e/n*2*Math.PI,A=Math.sin(w)*B,w=Math.cos(w)*B,f.push(A,0,w),p.push(P.r,P.g,P.b),w=(e+1)/n*2*Math.PI,A=Math.sin(w)*B,w=Math.cos(w)*B,f.push(A,0,w),p.push(P.r,P.g,P.b)}t=new Ft,t.addAttribute("position",new Et(f,3)),t.addAttribute("color",new Et(p,3)),f=new Ni({vertexColors:2}),gi.call(this,t,f)}function yl(t,e,i,n){this.object=t,this.size=e!==void 0?e:1,t=i!==void 0?i:16776960,n=n!==void 0?n:1,e=0,(i=this.object.geometry)&&i.isGeometry?e=i.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead."),i=new Ft,e=new Et(6*e,3),i.addAttribute("position",e),gi.call(this,i,new Ni({color:t,linewidth:n})),this.matrixAutoUpdate=!1,this.update()}function dr(t,e,i){N.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,e===void 0&&(e=1),t=new Ft,t.addAttribute("position",new Et([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3)),e=new Ni({fog:!1}),this.lightPlane=new ji(t,e),this.add(this.lightPlane),t=new Ft,t.addAttribute("position",new Et([0,0,0,0,0,1],3)),this.targetLine=new ji(t,e),this.add(this.targetLine),this.update()}function _l(t){function e(H,q,$){i(H,$),i(q,$)}function i(H,q){l.push(0,0,0),f.push(q.r,q.g,q.b),p[H]===void 0&&(p[H]=[]),p[H].push(l.length/3-1)}var n=new Ft,o=new Ni({color:16777215,vertexColors:1}),l=[],f=[],p={},y=new L(16755200),w=new L(16711680),A=new L(43775),P=new L(16777215),B=new L(3355443);e("n1","n2",y),e("n2","n4",y),e("n4","n3",y),e("n3","n1",y),e("f1","f2",y),e("f2","f4",y),e("f4","f3",y),e("f3","f1",y),e("n1","f1",y),e("n2","f2",y),e("n3","f3",y),e("n4","f4",y),e("p","n1",w),e("p","n2",w),e("p","n3",w),e("p","n4",w),e("u1","u2",A),e("u2","u3",A),e("u3","u1",A),e("c","t",P),e("p","c",B),e("cn1","cn2",B),e("cn3","cn4",B),e("cf1","cf2",B),e("cf3","cf4",B),n.addAttribute("position",new Et(l,3)),n.addAttribute("color",new Et(f,3)),gi.call(this,n,o),this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=p,this.update()}function zo(t,e){this.object=t,e===void 0&&(e=16776960),t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var i=new Float32Array(24),n=new Ft;n.setIndex(new K(t,1)),n.addAttribute("position",new K(i,3)),gi.call(this,n,new Ni({color:e})),this.matrixAutoUpdate=!1,this.update()}function xl(t,e){this.type="Box3Helper",this.box=t,t=e!==void 0?e:16776960,e=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var i=new Ft;i.setIndex(new K(e,1)),i.addAttribute("position",new Et([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),gi.call(this,i,new Ni({color:t})),this.geometry.computeBoundingSphere()}function wl(t,e,i){this.type="PlaneHelper",this.plane=t,this.size=e===void 0?1:e,t=i!==void 0?i:16776960,e=new Ft,e.addAttribute("position",new Et([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,0,1,0,0,0],3)),e.computeBoundingSphere(),ji.call(this,e,new Ni({color:t})),e=new Ft,e.addAttribute("position",new Et([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),e.computeBoundingSphere(),this.add(new pi(e,new Ge({color:t,opacity:.2,transparent:!0,depthWrite:!1})))}function ko(t,e,i,n,o,l){N.call(this),t===void 0&&(t=new THREE.Vector3(0,0,1)),e===void 0&&(e=new THREE.Vector3(0,0,0)),i===void 0&&(i=1),n===void 0&&(n=16776960),o===void 0&&(o=.2*i),l===void 0&&(l=.2*o),fh===void 0&&(fh=new Ft,fh.addAttribute("position",new Et([0,0,0,0,1,0],3)),El=new Oo(0,.5,1,5,1),El.translate(0,-.5,0)),this.position.copy(e),this.line=new ji(fh,new Ni({color:n})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new pi(El,new Ge({color:n})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,o,l)}function xr(t){t=t||1;var e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t];t=new Ft,t.addAttribute("position",new Et(e,3)),t.addAttribute("color",new Et([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),e=new Ni({vertexColors:2}),gi.call(this,t,e)}function Iu(t){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),On.call(this,t),this.type="catmullrom",this.closed=!0}function Du(t){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),On.call(this,t),this.type="catmullrom"}function Xh(t){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),On.call(this,t),this.type="catmullrom"}Number.EPSILON===void 0&&(Number.EPSILON=Math.pow(2,-52)),Number.isInteger===void 0&&(Number.isInteger=function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t}),Math.sign===void 0&&(Math.sign=function(t){return 0>t?-1:0<t?1:+t}),!("name"in Function.prototype)&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),Object.assign===void 0&&function(){Object.assign=function(t){if(t==null)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var n=arguments[i];if(n!=null)for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}}(),Object.assign(a.prototype,{addEventListener:function(t,e){this._listeners===void 0&&(this._listeners={});var i=this._listeners;i[t]===void 0&&(i[t]=[]),i[t].indexOf(e)===-1&&i[t].push(e)},hasEventListener:function(t,e){if(this._listeners===void 0)return!1;var i=this._listeners;return i[t]!==void 0&&i[t].indexOf(e)!==-1},removeEventListener:function(t,e){this._listeners!==void 0&&(t=this._listeners[t],t!==void 0&&(e=t.indexOf(e),e!==-1&&t.splice(e,1)))},dispatchEvent:function(t){if(this._listeners!==void 0){var e=this._listeners[t.type];if(e!==void 0){t.target=this,e=e.slice(0);for(var i=0,n=e.length;i<n;i++)e[i].call(this,t)}}}});var di={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){for(var t=[],e=0;256>e;e++)t[e]=(16>e?"0":"")+e.toString(16);return function(){var i=4294967295*Math.random()|0,n=4294967295*Math.random()|0,o=4294967295*Math.random()|0,l=4294967295*Math.random()|0;return(t[i&255]+t[i>>8&255]+t[i>>16&255]+t[i>>24&255]+"-"+t[n&255]+t[n>>8&255]+"-"+t[n>>16&15|64]+t[n>>24&255]+"-"+t[o&63|128]+t[o>>8&255]+"-"+t[o>>16&255]+t[o>>24&255]+t[l&255]+t[l>>8&255]+t[l>>16&255]+t[l>>24&255]).toUpperCase()}}(),clamp:function(t,e,i){return Math.max(e,Math.min(i,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,i,n,o){return n+(t-e)*(o-n)/(i-e)},lerp:function(t,e,i){return(1-i)*t+i*e},smoothstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e),t*t*(3-2*t))},smootherstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e),t*t*t*(t*(6*t-15)+10))},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*di.DEG2RAD},radToDeg:function(t){return t*di.RAD2DEG},isPowerOfTwo:function(t){return(t&t-1)===0&&t!==0},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}};Object.defineProperties(s.prototype,{width:{get:function(){return this.x},set:function(t){this.x=t}},height:{get:function(){return this.y},set:function(t){this.y=t}}}),Object.assign(s.prototype,{isVector2:!0,set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return e!==void 0?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return e!==void 0?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},applyMatrix3:function(t){var e=this.x,i=this.y;return t=t.elements,this.x=t[0]*e+t[3]*i+t[6],this.y=t[1]*e+t[4]*i+t[7],this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:function(){var t=new s,e=new s;return function(i,n){return t.set(i,i),e.set(n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var t=Math.atan2(this.y,this.x);return 0>t&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x;return t=this.y-t.y,e*e+t*t},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromBufferAttribute:function(t,e,i){return i!==void 0&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this},rotateAround:function(t,e){var i=Math.cos(e);e=Math.sin(e);var n=this.x-t.x,o=this.y-t.y;return this.x=n*i-o*e+t.x,this.y=n*e+o*i+t.y,this}}),Object.assign(c.prototype,{isMatrix4:!0,set:function(t,e,i,n,o,l,f,p,y,w,A,P,B,H,q,$){var rt=this.elements;return rt[0]=t,rt[4]=e,rt[8]=i,rt[12]=n,rt[1]=o,rt[5]=l,rt[9]=f,rt[13]=p,rt[2]=y,rt[6]=w,rt[10]=A,rt[14]=P,rt[3]=B,rt[7]=H,rt[11]=q,rt[15]=$,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return new c().fromArray(this.elements)},copy:function(t){var e=this.elements;return t=t.elements,e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],this},copyPosition:function(t){var e=this.elements;return t=t.elements,e[12]=t[12],e[13]=t[13],e[14]=t[14],this},extractBasis:function(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this},extractRotation:function(){var t=new u;return function(e){var i=this.elements,n=e.elements,o=1/t.setFromMatrixColumn(e,0).length(),l=1/t.setFromMatrixColumn(e,1).length();return e=1/t.setFromMatrixColumn(e,2).length(),i[0]=n[0]*o,i[1]=n[1]*o,i[2]=n[2]*o,i[3]=0,i[4]=n[4]*l,i[5]=n[5]*l,i[6]=n[6]*l,i[7]=0,i[8]=n[8]*e,i[9]=n[9]*e,i[10]=n[10]*e,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,this}}(),makeRotationFromEuler:function(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var e=this.elements,i=t.x,n=t.y,o=t.z,l=Math.cos(i);i=Math.sin(i);var f=Math.cos(n);n=Math.sin(n);var p=Math.cos(o);if(o=Math.sin(o),t.order==="XYZ"){t=l*p;var y=l*o,w=i*p,A=i*o;e[0]=f*p,e[4]=-f*o,e[8]=n,e[1]=y+w*n,e[5]=t-A*n,e[9]=-i*f,e[2]=A-t*n,e[6]=w+y*n,e[10]=l*f}else t.order==="YXZ"?(t=f*p,y=f*o,w=n*p,A=n*o,e[0]=t+A*i,e[4]=w*i-y,e[8]=l*n,e[1]=l*o,e[5]=l*p,e[9]=-i,e[2]=y*i-w,e[6]=A+t*i,e[10]=l*f):t.order==="ZXY"?(t=f*p,y=f*o,w=n*p,A=n*o,e[0]=t-A*i,e[4]=-l*o,e[8]=w+y*i,e[1]=y+w*i,e[5]=l*p,e[9]=A-t*i,e[2]=-l*n,e[6]=i,e[10]=l*f):t.order==="ZYX"?(t=l*p,y=l*o,w=i*p,A=i*o,e[0]=f*p,e[4]=w*n-y,e[8]=t*n+A,e[1]=f*o,e[5]=A*n+t,e[9]=y*n-w,e[2]=-n,e[6]=i*f,e[10]=l*f):t.order==="YZX"?(t=l*f,y=l*n,w=i*f,A=i*n,e[0]=f*p,e[4]=A-t*o,e[8]=w*o+y,e[1]=o,e[5]=l*p,e[9]=-i*p,e[2]=-n*p,e[6]=y*o+w,e[10]=t-A*o):t.order==="XZY"&&(t=l*f,y=l*n,w=i*f,A=i*n,e[0]=f*p,e[4]=-o,e[8]=n*p,e[1]=t*o+A,e[5]=l*p,e[9]=y*o-w,e[2]=w*o-y,e[6]=i*p,e[10]=A*o+t);return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(){var t=new u(0,0,0),e=new u(1,1,1);return function(i){return this.compose(t,i,e)}}(),lookAt:function(){var t=new u,e=new u,i=new u;return function(n,o,l){var f=this.elements;return i.subVectors(n,o),i.lengthSq()===0&&(i.z=1),i.normalize(),t.crossVectors(l,i),t.lengthSq()===0&&(Math.abs(l.z)===1?i.x+=1e-4:i.z+=1e-4,i.normalize(),t.crossVectors(l,i)),t.normalize(),e.crossVectors(i,t),f[0]=t.x,f[4]=e.x,f[8]=i.x,f[1]=t.y,f[5]=e.y,f[9]=i.y,f[2]=t.z,f[6]=e.z,f[10]=i.z,this}}(),multiply:function(t,e){return e!==void 0?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements;e=this.elements,t=i[0];var o=i[4],l=i[8],f=i[12],p=i[1],y=i[5],w=i[9],A=i[13],P=i[2],B=i[6],H=i[10],q=i[14],$=i[3],rt=i[7],xt=i[11];i=i[15];var gt=n[0],Ct=n[4],wt=n[8],Vt=n[12],J=n[1],ot=n[5],zt=n[9],ee=n[13],$t=n[2],Yt=n[6],Te=n[10],me=n[14],De=n[3],be=n[7],ae=n[11];return n=n[15],e[0]=t*gt+o*J+l*$t+f*De,e[4]=t*Ct+o*ot+l*Yt+f*be,e[8]=t*wt+o*zt+l*Te+f*ae,e[12]=t*Vt+o*ee+l*me+f*n,e[1]=p*gt+y*J+w*$t+A*De,e[5]=p*Ct+y*ot+w*Yt+A*be,e[9]=p*wt+y*zt+w*Te+A*ae,e[13]=p*Vt+y*ee+w*me+A*n,e[2]=P*gt+B*J+H*$t+q*De,e[6]=P*Ct+B*ot+H*Yt+q*be,e[10]=P*wt+B*zt+H*Te+q*ae,e[14]=P*Vt+B*ee+H*me+q*n,e[3]=$*gt+rt*J+xt*$t+i*De,e[7]=$*Ct+rt*ot+xt*Yt+i*be,e[11]=$*wt+rt*zt+xt*Te+i*ae,e[15]=$*Vt+rt*ee+xt*me+i*n,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},applyToBufferAttribute:function(){var t=new u;return function(e){for(var i=0,n=e.count;i<n;i++)t.x=e.getX(i),t.y=e.getY(i),t.z=e.getZ(i),t.applyMatrix4(this),e.setXYZ(i,t.x,t.y,t.z);return e}}(),determinant:function(){var t=this.elements,e=t[0],i=t[4],n=t[8],o=t[12],l=t[1],f=t[5],p=t[9],y=t[13],w=t[2],A=t[6],P=t[10],B=t[14];return t[3]*(+o*p*A-n*y*A-o*f*P+i*y*P+n*f*B-i*p*B)+t[7]*(+e*p*B-e*y*P+o*l*P-n*l*B+n*y*w-o*p*w)+t[11]*(+e*y*A-e*f*B-o*l*A+i*l*B+o*f*w-i*y*w)+t[15]*(-n*f*w-e*p*A+e*f*P+n*l*A-i*l*P+i*p*w)},transpose:function(){var t=this.elements,e=t[1];return t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this},setPosition:function(t){var e=this.elements;return e[12]=t.x,e[13]=t.y,e[14]=t.z,this},getInverse:function(t,e){var i=this.elements,n=t.elements;t=n[0];var o=n[1],l=n[2],f=n[3],p=n[4],y=n[5],w=n[6],A=n[7],P=n[8],B=n[9],H=n[10],q=n[11],$=n[12],rt=n[13],xt=n[14];n=n[15];var gt=B*xt*A-rt*H*A+rt*w*q-y*xt*q-B*w*n+y*H*n,Ct=$*H*A-P*xt*A-$*w*q+p*xt*q+P*w*n-p*H*n,wt=P*rt*A-$*B*A+$*y*q-p*rt*q-P*y*n+p*B*n,Vt=$*B*w-P*rt*w-$*y*H+p*rt*H+P*y*xt-p*B*xt,J=t*gt+o*Ct+l*wt+f*Vt;if(J===0){if(e===!0)throw Error("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");return console.warn("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0"),this.identity()}return e=1/J,i[0]=gt*e,i[1]=(rt*H*f-B*xt*f-rt*l*q+o*xt*q+B*l*n-o*H*n)*e,i[2]=(y*xt*f-rt*w*f+rt*l*A-o*xt*A-y*l*n+o*w*n)*e,i[3]=(B*w*f-y*H*f-B*l*A+o*H*A+y*l*q-o*w*q)*e,i[4]=Ct*e,i[5]=(P*xt*f-$*H*f+$*l*q-t*xt*q-P*l*n+t*H*n)*e,i[6]=($*w*f-p*xt*f-$*l*A+t*xt*A+p*l*n-t*w*n)*e,i[7]=(p*H*f-P*w*f+P*l*A-t*H*A-p*l*q+t*w*q)*e,i[8]=wt*e,i[9]=($*B*f-P*rt*f-$*o*q+t*rt*q+P*o*n-t*B*n)*e,i[10]=(p*rt*f-$*y*f+$*o*A-t*rt*A-p*o*n+t*y*n)*e,i[11]=(P*y*f-p*B*f-P*o*A+t*B*A+p*o*q-t*y*q)*e,i[12]=Vt*e,i[13]=(P*rt*l-$*B*l+$*o*H-t*rt*H-P*o*xt+t*B*xt)*e,i[14]=($*y*l-p*rt*l-$*o*w+t*rt*w+p*o*xt-t*y*xt)*e,i[15]=(p*B*l-P*y*l+P*o*w-t*B*w-p*o*H+t*y*H)*e,this},scale:function(t){var e=this.elements,i=t.x,n=t.y;return t=t.z,e[0]*=i,e[4]*=n,e[8]*=t,e[1]*=i,e[5]*=n,e[9]*=t,e[2]*=i,e[6]*=n,e[10]*=t,e[3]*=i,e[7]*=n,e[11]*=t,this},getMaxScaleOnAxis:function(){var t=this.elements;return Math.sqrt(Math.max(t[0]*t[0]+t[1]*t[1]+t[2]*t[2],t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t[8]*t[8]+t[9]*t[9]+t[10]*t[10]))},makeTranslation:function(t,e,i){return this.set(1,0,0,t,0,1,0,e,0,0,1,i,0,0,0,1),this},makeRotationX:function(t){var e=Math.cos(t);return t=Math.sin(t),this.set(1,0,0,0,0,e,-t,0,0,t,e,0,0,0,0,1),this},makeRotationY:function(t){var e=Math.cos(t);return t=Math.sin(t),this.set(e,0,t,0,0,1,0,0,-t,0,e,0,0,0,0,1),this},makeRotationZ:function(t){var e=Math.cos(t);return t=Math.sin(t),this.set(e,-t,0,0,t,e,0,0,0,0,1,0,0,0,0,1),this},makeRotationAxis:function(t,e){var i=Math.cos(e);e=Math.sin(e);var n=1-i,o=t.x,l=t.y;t=t.z;var f=n*o,p=n*l;return this.set(f*o+i,f*l-e*t,f*t+e*l,0,f*l+e*t,p*l+i,p*t-e*o,0,f*t-e*l,p*t+e*o,n*t*t+i,0,0,0,0,1),this},makeScale:function(t,e,i){return this.set(t,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this},makeShear:function(t,e,i){return this.set(1,e,i,0,t,1,i,0,t,e,1,0,0,0,0,1),this},compose:function(t,e,i){var n=this.elements,o=e._x,l=e._y,f=e._z,p=e._w,y=o+o,w=l+l,A=f+f;e=o*y;var P=o*w;o*=A;var B=l*w;l*=A,f*=A,y*=p,w*=p,p*=A,A=i.x;var H=i.y;return i=i.z,n[0]=(1-(B+f))*A,n[1]=(P+p)*A,n[2]=(o-w)*A,n[3]=0,n[4]=(P-p)*H,n[5]=(1-(e+f))*H,n[6]=(l+y)*H,n[7]=0,n[8]=(o+w)*i,n[9]=(l-y)*i,n[10]=(1-(e+B))*i,n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,this},decompose:function(){var t=new u,e=new c;return function(i,n,o){var l=this.elements,f=t.set(l[0],l[1],l[2]).length(),p=t.set(l[4],l[5],l[6]).length(),y=t.set(l[8],l[9],l[10]).length();0>this.determinant()&&(f=-f),i.x=l[12],i.y=l[13],i.z=l[14],e.copy(this),i=1/f,l=1/p;var w=1/y;return e.elements[0]*=i,e.elements[1]*=i,e.elements[2]*=i,e.elements[4]*=l,e.elements[5]*=l,e.elements[6]*=l,e.elements[8]*=w,e.elements[9]*=w,e.elements[10]*=w,n.setFromRotationMatrix(e),o.x=f,o.y=p,o.z=y,this}}(),makePerspective:function(t,e,i,n,o,l){l===void 0&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var f=this.elements;return f[0]=2*o/(e-t),f[4]=0,f[8]=(e+t)/(e-t),f[12]=0,f[1]=0,f[5]=2*o/(i-n),f[9]=(i+n)/(i-n),f[13]=0,f[2]=0,f[6]=0,f[10]=-(l+o)/(l-o),f[14]=-2*l*o/(l-o),f[3]=0,f[7]=0,f[11]=-1,f[15]=0,this},makeOrthographic:function(t,e,i,n,o,l){var f=this.elements,p=1/(e-t),y=1/(i-n),w=1/(l-o);return f[0]=2*p,f[4]=0,f[8]=0,f[12]=-((e+t)*p),f[1]=0,f[5]=2*y,f[9]=0,f[13]=-((i+n)*y),f[2]=0,f[6]=0,f[10]=-2*w,f[14]=-((l+o)*w),f[3]=0,f[7]=0,f[11]=0,f[15]=1,this},equals:function(t){var e=this.elements;t=t.elements;for(var i=0;16>i;i++)if(e[i]!==t[i])return!1;return!0},fromArray:function(t,e){e===void 0&&(e=0);for(var i=0;16>i;i++)this.elements[i]=t[i+e];return this},toArray:function(t,e){t===void 0&&(t=[]),e===void 0&&(e=0);var i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t[e+9]=i[9],t[e+10]=i[10],t[e+11]=i[11],t[e+12]=i[12],t[e+13]=i[13],t[e+14]=i[14],t[e+15]=i[15],t}}),Object.assign(d,{slerp:function(t,e,i,n){return i.copy(t).slerp(e,n)},slerpFlat:function(t,e,i,n,o,l,f){var p=i[n+0],y=i[n+1],w=i[n+2];i=i[n+3],n=o[l+0];var A=o[l+1],P=o[l+2];if(o=o[l+3],i!==o||p!==n||y!==A||w!==P){l=1-f;var B=p*n+y*A+w*P+i*o,H=0<=B?1:-1,q=1-B*B;q>Number.EPSILON&&(q=Math.sqrt(q),B=Math.atan2(q,B*H),l=Math.sin(l*B)/q,f=Math.sin(f*B)/q),H*=f,p=p*l+n*H,y=y*l+A*H,w=w*l+P*H,i=i*l+o*H,l===1-f&&(f=1/Math.sqrt(p*p+y*y+w*w+i*i),p*=f,y*=f,w*=f,i*=f)}t[e]=p,t[e+1]=y,t[e+2]=w,t[e+3]=i}}),Object.defineProperties(d.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},w:{get:function(){return this._w},set:function(t){this._w=t,this.onChangeCallback()}}}),Object.assign(d.prototype,{isQuaternion:!0,set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._w=n,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this.onChangeCallback(),this},setFromEuler:function(t,e){if(!t||!t.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var i=t._x,n=t._y,o=t._z;t=t.order;var l=Math.cos,f=Math.sin,p=l(i/2),y=l(n/2);return l=l(o/2),i=f(i/2),n=f(n/2),o=f(o/2),t==="XYZ"?(this._x=i*y*l+p*n*o,this._y=p*n*l-i*y*o,this._z=p*y*o+i*n*l,this._w=p*y*l-i*n*o):t==="YXZ"?(this._x=i*y*l+p*n*o,this._y=p*n*l-i*y*o,this._z=p*y*o-i*n*l,this._w=p*y*l+i*n*o):t==="ZXY"?(this._x=i*y*l-p*n*o,this._y=p*n*l+i*y*o,this._z=p*y*o+i*n*l,this._w=p*y*l-i*n*o):t==="ZYX"?(this._x=i*y*l-p*n*o,this._y=p*n*l+i*y*o,this._z=p*y*o-i*n*l,this._w=p*y*l+i*n*o):t==="YZX"?(this._x=i*y*l+p*n*o,this._y=p*n*l+i*y*o,this._z=p*y*o-i*n*l,this._w=p*y*l-i*n*o):t==="XZY"&&(this._x=i*y*l-p*n*o,this._y=p*n*l-i*y*o,this._z=p*y*o+i*n*l,this._w=p*y*l+i*n*o),e!==!1&&this.onChangeCallback(),this},setFromAxisAngle:function(t,e){e/=2;var i=Math.sin(e);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(e),this.onChangeCallback(),this},setFromRotationMatrix:function(t){var e=t.elements,i=e[0];t=e[4];var n=e[8],o=e[1],l=e[5],f=e[9],p=e[2],y=e[6];e=e[10];var w=i+l+e;return 0<w?(i=.5/Math.sqrt(w+1),this._w=.25/i,this._x=(y-f)*i,this._y=(n-p)*i,this._z=(o-t)*i):i>l&&i>e?(i=2*Math.sqrt(1+i-l-e),this._w=(y-f)/i,this._x=.25*i,this._y=(t+o)/i,this._z=(n+p)/i):l>e?(i=2*Math.sqrt(1+l-i-e),this._w=(n-p)/i,this._x=(t+o)/i,this._y=.25*i,this._z=(f+y)/i):(i=2*Math.sqrt(1+e-i-l),this._w=(o-t)/i,this._x=(n+p)/i,this._y=(f+y)/i,this._z=.25*i),this.onChangeCallback(),this},setFromUnitVectors:function(){var t=new u,e;return function(i,n){return t===void 0&&(t=new u),e=i.dot(n)+1,1e-6>e?(e=0,Math.abs(i.x)>Math.abs(i.z)?t.set(-i.y,i.x,0):t.set(0,-i.z,i.y)):t.crossVectors(i,n),this._x=t.x,this._y=t.y,this._z=t.z,this._w=e,this.normalize()}}(),angleTo:function(t){return 2*Math.acos(Math.abs(di.clamp(this.dot(t),-1,1)))},rotateTowards:function(t,e){var i=this.angleTo(t);return i===0?this:(this.slerp(t,Math.min(1,e/i)),this)},inverse:function(){return this.conjugate()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var t=this.length();return t===0?(this._z=this._y=this._x=0,this._w=1):(t=1/t,this._x*=t,this._y*=t,this._z*=t,this._w*=t),this.onChangeCallback(),this},multiply:function(t,e){return e!==void 0?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var i=t._x,n=t._y,o=t._z;t=t._w;var l=e._x,f=e._y,p=e._z;return e=e._w,this._x=i*e+t*l+n*p-o*f,this._y=n*e+t*f+o*l-i*p,this._z=o*e+t*p+i*f-n*l,this._w=t*e-i*l-n*f-o*p,this.onChangeCallback(),this},slerp:function(t,e){if(e===0)return this;if(e===1)return this.copy(t);var i=this._x,n=this._y,o=this._z,l=this._w,f=l*t._w+i*t._x+n*t._y+o*t._z;if(0>f?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,f=-f):this.copy(t),1<=f)return this._w=l,this._x=i,this._y=n,this._z=o,this;if(t=1-f*f,t<=Number.EPSILON)return f=1-e,this._w=f*l+e*this._w,this._x=f*i+e*this._x,this._y=f*n+e*this._y,this._z=f*o+e*this._z,this.normalize();t=Math.sqrt(t);var p=Math.atan2(t,f);return f=Math.sin((1-e)*p)/t,e=Math.sin(e*p)/t,this._w=l*f+this._w*e,this._x=i*f+this._x*e,this._y=n*f+this._y*e,this._z=o*f+this._z*e,this.onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return e===void 0&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this.onChangeCallback(),this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(u.prototype,{isVector3:!0,set:function(t,e,i){return this.x=t,this.y=e,this.z=i,this},setScalar:function(t){return this.z=this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return e!==void 0?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return e!==void 0?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return e!==void 0?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(){var t=new d;return function(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(t.setFromEuler(e))}}(),applyAxisAngle:function(){var t=new d;return function(e,i){return this.applyQuaternion(t.setFromAxisAngle(e,i))}}(),applyMatrix3:function(t){var e=this.x,i=this.y,n=this.z;return t=t.elements,this.x=t[0]*e+t[3]*i+t[6]*n,this.y=t[1]*e+t[4]*i+t[7]*n,this.z=t[2]*e+t[5]*i+t[8]*n,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z;t=t.elements;var o=1/(t[3]*e+t[7]*i+t[11]*n+t[15]);return this.x=(t[0]*e+t[4]*i+t[8]*n+t[12])*o,this.y=(t[1]*e+t[5]*i+t[9]*n+t[13])*o,this.z=(t[2]*e+t[6]*i+t[10]*n+t[14])*o,this},applyQuaternion:function(t){var e=this.x,i=this.y,n=this.z,o=t.x,l=t.y,f=t.z;t=t.w;var p=t*e+l*n-f*i,y=t*i+f*e-o*n,w=t*n+o*i-l*e;return e=-o*e-l*i-f*n,this.x=p*t+e*-o+y*-f-w*-l,this.y=y*t+e*-l+w*-o-p*-f,this.z=w*t+e*-f+p*-l-y*-o,this},project:function(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)},unproject:function(){var t=new c;return function(e){return this.applyMatrix4(t.getInverse(e.projectionMatrix)).applyMatrix4(e.matrixWorld)}}(),transformDirection:function(t){var e=this.x,i=this.y,n=this.z;return t=t.elements,this.x=t[0]*e+t[4]*i+t[8]*n,this.y=t[1]*e+t[5]*i+t[9]*n,this.z=t[2]*e+t[6]*i+t[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(){var t=new u,e=new u;return function(i,n){return t.set(i,i,i),e.set(n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},cross:function(t,e){return e!==void 0?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)},crossVectors:function(t,e){var i=t.x,n=t.y;t=t.z;var o=e.x,l=e.y;return e=e.z,this.x=n*e-t*l,this.y=t*o-i*e,this.z=i*l-n*o,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(){var t=new u;return function(e){return t.copy(this).projectOnVector(e),this.sub(t)}}(),reflect:function(){var t=new u;return function(e){return this.sub(t.copy(e).multiplyScalar(2*this.dot(e)))}}(),angleTo:function(t){return t=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq()),Math.acos(di.clamp(t,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return t=this.z-t.z,e*e+i*i+t*t},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)},setFromSphericalCoords:function(t,e,i){var n=Math.sin(e)*t;return this.x=n*Math.sin(i),this.y=Math.cos(e)*t,this.z=n*Math.cos(i),this},setFromCylindrical:function(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)},setFromCylindricalCoords:function(t,e,i){return this.x=t*Math.sin(e),this.y=i,this.z=t*Math.cos(e),this},setFromMatrixPosition:function(t){return t=t.elements,this.x=t[12],this.y=t[13],this.z=t[14],this},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length();return t=this.setFromMatrixColumn(t,2).length(),this.x=e,this.y=i,this.z=t,this},setFromMatrixColumn:function(t,e){return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromBufferAttribute:function(t,e,i){return i!==void 0&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}}),Object.assign(m.prototype,{isMatrix3:!0,set:function(t,e,i,n,o,l,f,p,y){var w=this.elements;return w[0]=t,w[1]=n,w[2]=f,w[3]=e,w[4]=o,w[5]=p,w[6]=i,w[7]=l,w[8]=y,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return new this.constructor().fromArray(this.elements)},copy:function(t){var e=this.elements;return t=t.elements,e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],this},setFromMatrix4:function(t){return t=t.elements,this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this},applyToBufferAttribute:function(){var t=new u;return function(e){for(var i=0,n=e.count;i<n;i++)t.x=e.getX(i),t.y=e.getY(i),t.z=e.getZ(i),t.applyMatrix3(this),e.setXYZ(i,t.x,t.y,t.z);return e}}(),multiply:function(t){return this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements;e=this.elements,t=i[0];var o=i[3],l=i[6],f=i[1],p=i[4],y=i[7],w=i[2],A=i[5];i=i[8];var P=n[0],B=n[3],H=n[6],q=n[1],$=n[4],rt=n[7],xt=n[2],gt=n[5];return n=n[8],e[0]=t*P+o*q+l*xt,e[3]=t*B+o*$+l*gt,e[6]=t*H+o*rt+l*n,e[1]=f*P+p*q+y*xt,e[4]=f*B+p*$+y*gt,e[7]=f*H+p*rt+y*n,e[2]=w*P+A*q+i*xt,e[5]=w*B+A*$+i*gt,e[8]=w*H+A*rt+i*n,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this},determinant:function(){var t=this.elements,e=t[0],i=t[1],n=t[2],o=t[3],l=t[4],f=t[5],p=t[6],y=t[7];return t=t[8],e*l*t-e*f*y-i*o*t+i*f*p+n*o*y-n*l*p},getInverse:function(t,e){t&&t.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");var i=t.elements;t=this.elements;var n=i[0],o=i[1],l=i[2],f=i[3],p=i[4],y=i[5],w=i[6],A=i[7];i=i[8];var P=i*p-y*A,B=y*w-i*f,H=A*f-p*w,q=n*P+o*B+l*H;if(q===0){if(e===!0)throw Error("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");return console.warn("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0"),this.identity()}return e=1/q,t[0]=P*e,t[1]=(l*A-i*o)*e,t[2]=(y*o-l*p)*e,t[3]=B*e,t[4]=(i*n-l*w)*e,t[5]=(l*f-y*n)*e,t[6]=H*e,t[7]=(o*w-A*n)*e,t[8]=(p*n-o*f)*e,this},transpose:function(){var t=this.elements,e=t[1];return t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this},getNormalMatrix:function(t){return this.setFromMatrix4(t).getInverse(this).transpose()},transposeIntoArray:function(t){var e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this},setUvTransform:function(t,e,i,n,o,l,f){var p=Math.cos(o);o=Math.sin(o),this.set(i*p,i*o,-i*(p*l+o*f)+l+t,-n*o,n*p,-n*(-o*l+p*f)+f+e,0,0,1)},scale:function(t,e){var i=this.elements;return i[0]*=t,i[3]*=t,i[6]*=t,i[1]*=e,i[4]*=e,i[7]*=e,this},rotate:function(t){var e=Math.cos(t);t=Math.sin(t);var i=this.elements,n=i[0],o=i[3],l=i[6],f=i[1],p=i[4],y=i[7];return i[0]=e*n+t*f,i[3]=e*o+t*p,i[6]=e*l+t*y,i[1]=-t*n+e*f,i[4]=-t*o+e*p,i[7]=-t*l+e*y,this},translate:function(t,e){var i=this.elements;return i[0]+=t*i[2],i[3]+=t*i[5],i[6]+=t*i[8],i[1]+=e*i[2],i[4]+=e*i[5],i[7]+=e*i[8],this},equals:function(t){var e=this.elements;t=t.elements;for(var i=0;9>i;i++)if(e[i]!==t[i])return!1;return!0},fromArray:function(t,e){e===void 0&&(e=0);for(var i=0;9>i;i++)this.elements[i]=t[i+e];return this},toArray:function(t,e){t===void 0&&(t=[]),e===void 0&&(e=0);var i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t}});var ss={getDataURL:function(t){if(typeof HTMLCanvasElement>"u")return t.src;if(t instanceof HTMLCanvasElement)var e=t;else{e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),e.width=t.width,e.height=t.height;var i=e.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height)}return 2048<e.width||2048<e.height?e.toDataURL("image/jpeg",.6):e.toDataURL("image/png")}},Fs=0;g.DEFAULT_IMAGE=void 0,g.DEFAULT_MAPPING=300,g.prototype=Object.assign(Object.create(a.prototype),{constructor:g,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){var e=t===void 0||typeof t=="string";if(!e&&t.textures[this.uuid]!==void 0)return t.textures[this.uuid];var i={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(this.image!==void 0){var n=this.image;if(n.uuid===void 0&&(n.uuid=di.generateUUID()),!e&&t.images[n.uuid]===void 0){if(Array.isArray(n))for(var o=[],l=0,f=n.length;l<f;l++)o.push(ss.getDataURL(n[l]));else o=ss.getDataURL(n);t.images[n.uuid]={uuid:n.uuid,url:o}}i.image=n.uuid}return e||(t.textures[this.uuid]=i),i},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(t){if(this.mapping!==300)return t;if(t.applyMatrix3(this.matrix),0>t.x||1<t.x)switch(this.wrapS){case 1e3:t.x-=Math.floor(t.x);break;case 1001:t.x=0>t.x?0:1;break;case 1002:t.x=Math.abs(Math.floor(t.x)%2)===1?Math.ceil(t.x)-t.x:t.x-Math.floor(t.x)}if(0>t.y||1<t.y)switch(this.wrapT){case 1e3:t.y-=Math.floor(t.y);break;case 1001:t.y=0>t.y?0:1;break;case 1002:t.y=Math.abs(Math.floor(t.y)%2)===1?Math.ceil(t.y)-t.y:t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}}),Object.defineProperty(g.prototype,"needsUpdate",{set:function(t){t===!0&&this.version++}}),Object.assign(_.prototype,{isVector4:!0,set:function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},setScalar:function(t){return this.w=this.z=this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this},add:function(t,e){return e!==void 0?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this},sub:function(t,e){return e!==void 0?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,o=this.w;return t=t.elements,this.x=t[0]*e+t[4]*i+t[8]*n+t[12]*o,this.y=t[1]*e+t[5]*i+t[9]*n+t[13]*o,this.z=t[2]*e+t[6]*i+t[10]*n+t[14]*o,this.w=t[3]*e+t[7]*i+t[11]*n+t[15]*o,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var e=Math.sqrt(1-t.w*t.w);return 1e-4>e?(this.x=1,this.z=this.y=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this},setAxisAngleFromRotationMatrix:function(t){t=t.elements;var e=t[0],i=t[4],n=t[8],o=t[1],l=t[5],f=t[9],p=t[2],y=t[6],w=t[10];return .01>Math.abs(i-o)&&.01>Math.abs(n-p)&&.01>Math.abs(f-y)?.1>Math.abs(i+o)&&.1>Math.abs(n+p)&&.1>Math.abs(f+y)&&.1>Math.abs(e+l+w-3)?(this.set(1,0,0,0),this):(t=Math.PI,e=(e+1)/2,l=(l+1)/2,w=(w+1)/2,i=(i+o)/4,n=(n+p)/4,f=(f+y)/4,e>l&&e>w?.01>e?(y=0,i=p=.707106781):(y=Math.sqrt(e),p=i/y,i=n/y):l>w?.01>l?(y=.707106781,p=0,i=.707106781):(p=Math.sqrt(l),y=i/p,i=f/p):.01>w?(p=y=.707106781,i=0):(i=Math.sqrt(w),y=n/i,p=f/i),this.set(y,p,i,t),this):(t=Math.sqrt((y-f)*(y-f)+(n-p)*(n-p)+(o-i)*(o-i)),.001>Math.abs(t)&&(t=1),this.x=(y-f)/t,this.y=(n-p)/t,this.z=(o-i)/t,this.w=Math.acos((e+l+w-1)/2),this)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(){var t,e;return function(i,n){return t===void 0&&(t=new _,e=new _),t.set(i,i,i,i),e.set(n,n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z),this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t},fromBufferAttribute:function(t,e,i){return i!==void 0&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}}),S.prototype=Object.assign(Object.create(a.prototype),{constructor:S,isWebGLRenderTarget:!0,setSize:function(t,e){(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),b.prototype=Object.create(S.prototype),b.prototype.constructor=b,b.prototype.isWebGLRenderTargetCube=!0,I.prototype=Object.create(g.prototype),I.prototype.constructor=I,I.prototype.isDataTexture=!0,Object.assign(k.prototype,{isBox3:!0,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromArray:function(t){for(var e=1/0,i=1/0,n=1/0,o=-1/0,l=-1/0,f=-1/0,p=0,y=t.length;p<y;p+=3){var w=t[p],A=t[p+1],P=t[p+2];w<e&&(e=w),A<i&&(i=A),P<n&&(n=P),w>o&&(o=w),A>l&&(l=A),P>f&&(f=P)}return this.min.set(e,i,n),this.max.set(o,l,f),this},setFromBufferAttribute:function(t){for(var e=1/0,i=1/0,n=1/0,o=-1/0,l=-1/0,f=-1/0,p=0,y=t.count;p<y;p++){var w=t.getX(p),A=t.getY(p),P=t.getZ(p);w<e&&(e=w),A<i&&(i=A),P<n&&(n=P),w>o&&(o=w),A>l&&(l=A),P>f&&(f=P)}return this.min.set(e,i,n),this.max.set(o,l,f),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;e<i;e++)this.expandByPoint(t[e]);return this},setFromCenterAndSize:function(){var t=new u;return function(e,i){return i=t.copy(i).multiplyScalar(.5),this.min.copy(e).sub(i),this.max.copy(e).add(i),this}}(),setFromObject:function(t){return this.makeEmpty(),this.expandByObject(t)},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.min.copy(t.min),this.max.copy(t.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(t){return t===void 0&&(console.warn("THREE.Box3: .getCenter() target is now required"),t=new u),this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(t){return t===void 0&&(console.warn("THREE.Box3: .getSize() target is now required"),t=new u),this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)},expandByPoint:function(t){return this.min.min(t),this.max.max(t),this},expandByVector:function(t){return this.min.sub(t),this.max.add(t),this},expandByScalar:function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},expandByObject:function(){function t(l){var f=l.geometry;if(f!==void 0){if(f.isGeometry)for(f=f.vertices,i=0,n=f.length;i<n;i++)o.copy(f[i]),o.applyMatrix4(l.matrixWorld),e.expandByPoint(o);else if(f.isBufferGeometry&&(f=f.attributes.position,f!==void 0))for(i=0,n=f.count;i<n;i++)o.fromBufferAttribute(f,i).applyMatrix4(l.matrixWorld),e.expandByPoint(o)}}var e,i,n,o=new u;return function(l){return e=this,l.updateMatrixWorld(!0),l.traverse(t),this}}(),containsPoint:function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){return e===void 0&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new u),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)},intersectsSphere:function(){var t=new u;return function(e){return this.clampPoint(e.center,t),t.distanceToSquared(e.center)<=e.radius*e.radius}}(),intersectsPlane:function(t){if(0<t.normal.x)var e=t.normal.x*this.min.x,i=t.normal.x*this.max.x;else e=t.normal.x*this.max.x,i=t.normal.x*this.min.x;return 0<t.normal.y?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),0<t.normal.z?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=-t.constant&&i>=-t.constant},intersectsTriangle:function(){function t(P){var B,H=0;for(B=P.length-3;H<=B;H+=3){p.fromArray(P,H);var q=w.x*Math.abs(p.x)+w.y*Math.abs(p.y)+w.z*Math.abs(p.z),$=e.dot(p),rt=i.dot(p),xt=n.dot(p);if(Math.max(-Math.max($,rt,xt),Math.min($,rt,xt))>q)return!1}return!0}var e=new u,i=new u,n=new u,o=new u,l=new u,f=new u,p=new u,y=new u,w=new u,A=new u;return function(P){return this.isEmpty()||(this.getCenter(y),w.subVectors(this.max,y),e.subVectors(P.a,y),i.subVectors(P.b,y),n.subVectors(P.c,y),o.subVectors(i,e),l.subVectors(n,i),f.subVectors(e,n),P=[0,-o.z,o.y,0,-l.z,l.y,0,-f.z,f.y,o.z,0,-o.x,l.z,0,-l.x,f.z,0,-f.x,-o.y,o.x,0,-l.y,l.x,0,-f.y,f.x,0],!t(P))||(P=[1,0,0,0,1,0,0,0,1],!t(P))?!1:(A.crossVectors(o,l),P=[A.x,A.y,A.z],t(P))}}(),clampPoint:function(t,e){return e===void 0&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new u),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new u;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),getBoundingSphere:function(){var t=new u;return function(e){return e===void 0&&(console.warn("THREE.Box3: .getBoundingSphere() target is now required"),e=new D),this.getCenter(e.center),e.radius=.5*this.getSize(t).length(),e}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(){var t=[new u,new u,new u,new u,new u,new u,new u,new u];return function(e){return this.isEmpty()?this:(t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(t),this)}}(),translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),Object.assign(D.prototype,{set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(){var t=new k;return function(e,i){var n=this.center;i!==void 0?n.copy(i):t.setFromPoints(e).getCenter(n);for(var o=i=0,l=e.length;o<l;o++)i=Math.max(i,n.distanceToSquared(e[o]));return this.radius=Math.sqrt(i),this}}(),clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.center.copy(t.center),this.radius=t.radius,this},empty:function(){return 0>=this.radius},containsPoint:function(t){return t.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(t){return t.distanceTo(this.center)-this.radius},intersectsSphere:function(t){var e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e},intersectsBox:function(t){return t.intersectsSphere(this)},intersectsPlane:function(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius},clampPoint:function(t,e){var i=this.center.distanceToSquared(t);return e===void 0&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),e=new u),e.copy(t),i>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e},getBoundingBox:function(t){return t===void 0&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new k),t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius*=t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}}),Object.assign(F.prototype,{set:function(t,e){return this.normal.copy(t),this.constant=e,this},setComponents:function(t,e,i,n){return this.normal.set(t,e,i),this.constant=n,this},setFromNormalAndCoplanarPoint:function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},setFromCoplanarPoints:function(){var t=new u,e=new u;return function(i,n,o){return n=t.subVectors(o,n).cross(e.subVectors(i,n)).normalize(),this.setFromNormalAndCoplanarPoint(n,i),this}}(),clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},normalize:function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(t){return this.normal.dot(t)+this.constant},distanceToSphere:function(t){return this.distanceToPoint(t.center)-t.radius},projectPoint:function(t,e){return e===void 0&&(console.warn("THREE.Plane: .projectPoint() target is now required"),e=new u),e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)},intersectLine:function(){var t=new u;return function(e,i){i===void 0&&(console.warn("THREE.Plane: .intersectLine() target is now required"),i=new u);var n=e.delta(t),o=this.normal.dot(n);if(o===0){if(this.distanceToPoint(e.start)===0)return i.copy(e.start)}else if(o=-(e.start.dot(this.normal)+this.constant)/o,!(0>o||1<o))return i.copy(n).multiplyScalar(o).add(e.start)}}(),intersectsLine:function(t){var e=this.distanceToPoint(t.start);return t=this.distanceToPoint(t.end),0>e&&0<t||0>t&&0<e},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){return t===void 0&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new u),t.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var t=new u,e=new m;return function(i,n){return n=n||e.getNormalMatrix(i),i=this.coplanarPoint(t).applyMatrix4(i),n=this.normal.applyMatrix3(n).normalize(),this.constant=-i.dot(n),this}}(),translate:function(t){return this.constant-=t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}}),Object.assign(E.prototype,{set:function(t,e,i,n,o,l){var f=this.planes;return f[0].copy(t),f[1].copy(e),f[2].copy(i),f[3].copy(n),f[4].copy(o),f[5].copy(l),this},clone:function(){return new this.constructor().copy(this)},copy:function(t){for(var e=this.planes,i=0;6>i;i++)e[i].copy(t.planes[i]);return this},setFromMatrix:function(t){var e=this.planes,i=t.elements;t=i[0];var n=i[1],o=i[2],l=i[3],f=i[4],p=i[5],y=i[6],w=i[7],A=i[8],P=i[9],B=i[10],H=i[11],q=i[12],$=i[13],rt=i[14];return i=i[15],e[0].setComponents(l-t,w-f,H-A,i-q).normalize(),e[1].setComponents(l+t,w+f,H+A,i+q).normalize(),e[2].setComponents(l+n,w+p,H+P,i+$).normalize(),e[3].setComponents(l-n,w-p,H-P,i-$).normalize(),e[4].setComponents(l-o,w-y,H-B,i-rt).normalize(),e[5].setComponents(l+o,w+y,H+B,i+rt).normalize(),this},intersectsObject:function(){var t=new D;return function(e){var i=e.geometry;return i.boundingSphere===null&&i.computeBoundingSphere(),t.copy(i.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new D;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){var e=this.planes,i=t.center;t=-t.radius;for(var n=0;6>n;n++)if(e[n].distanceToPoint(i)<t)return!1;return!0},intersectsBox:function(){var t=new u;return function(e){for(var i=this.planes,n=0;6>n;n++){var o=i[n];if(t.x=0<o.normal.x?e.max.x:e.min.x,t.y=0<o.normal.y?e.max.y:e.min.y,t.z=0<o.normal.z?e.max.z:e.min.z,0>o.distanceToPoint(t))return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,i=0;6>i;i++)if(0>e[i].distanceToPoint(t))return!1;return!0}});var Ci={alphamap_fragment:`#ifdef USE_ALPHAMAP
|
|
285
|
+
`+e),A=e+A,w=sa(p,35633,y+w),A=sa(p,35632,A),p.attachShader(gt,w),p.attachShader(gt,A),n.index0AttributeName!==void 0?p.bindAttribLocation(gt,0,n.index0AttributeName):l.morphTargets===!0&&p.bindAttribLocation(gt,0,"position"),p.linkProgram(gt),l=p.getProgramInfoLog(gt).trim(),f=p.getShaderInfoLog(w).trim(),P=p.getShaderInfoLog(A).trim(),H=B=!0,p.getProgramParameter(gt,35714)===!1?(B=!1,console.error("THREE.WebGLProgram: shader error: ",p.getError(),"35715",p.getProgramParameter(gt,35715),"gl.getProgramInfoLog",l,f,P)):l!==""?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",l):(f===""||P==="")&&(H=!1),H&&(this.diagnostics={runnable:B,material:n,programLog:l,vertexShader:{log:f,prefix:y},fragmentShader:{log:P,prefix:e}}),p.deleteShader(w),p.deleteShader(A);var Ct;this.getUniforms=function(){return Ct===void 0&&(Ct=new ho(p,gt,t)),Ct};var wt;return this.getAttributes=function(){if(wt===void 0){for(var Vt={},J=p.getProgramParameter(gt,35721),ot=0;ot<J;ot++){var zt=p.getActiveAttrib(gt,ot).name;Vt[zt]=p.getAttribLocation(gt,zt)}wt=Vt}return wt},this.destroy=function(){p.deleteProgram(gt),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms()."),this.getUniforms()}},attributes:{get:function(){return console.warn("THREE.WebGLProgram: .attributes is now .getAttributes()."),this.getAttributes()}}}),this.name=o.name,this.id=Bo++,this.code=i,this.usedTimes=1,this.program=gt,this.vertexShader=w,this.fragmentShader=A,this}function lt(t,e,i){function n(p,y){if(p)p.isTexture?w=p.encoding:p.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),w=p.texture.encoding);else var w=3e3;return w===3e3&&y&&(w=3007),w}var o=[],l={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},f="precision supportsVertexTextures map mapEncoding matcapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering".split(" ");this.getParameters=function(p,y,w,A,P,B,H){var q=l[p.type];if(H.isSkinnedMesh){var $=H.skeleton.bones;if(i.floatVertexTextures)$=1024;else{var rt=Math.min(Math.floor((i.maxVertexUniforms-20)/4),$.length);rt<$.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+$.length+" bones. This GPU supports "+rt+"."),$=0):$=rt}}else $=0;rt=i.precision,p.precision!==null&&(rt=i.getMaxPrecision(p.precision),rt!==p.precision&&console.warn("THREE.WebGLProgram.getParameters:",p.precision,"not supported, using",rt,"instead."));var xt=t.getRenderTarget();return{shaderID:q,precision:rt,supportsVertexTextures:i.vertexTextures,outputEncoding:n(xt?xt.texture:null,t.gammaOutput),map:!!p.map,mapEncoding:n(p.map,t.gammaInput),matcap:!!p.matcap,matcapEncoding:n(p.matcap,t.gammaInput),envMap:!!p.envMap,envMapMode:p.envMap&&p.envMap.mapping,envMapEncoding:n(p.envMap,t.gammaInput),envMapCubeUV:!!p.envMap&&(p.envMap.mapping===306||p.envMap.mapping===307),lightMap:!!p.lightMap,aoMap:!!p.aoMap,emissiveMap:!!p.emissiveMap,emissiveMapEncoding:n(p.emissiveMap,t.gammaInput),bumpMap:!!p.bumpMap,normalMap:!!p.normalMap,objectSpaceNormalMap:p.normalMapType===1,displacementMap:!!p.displacementMap,roughnessMap:!!p.roughnessMap,metalnessMap:!!p.metalnessMap,specularMap:!!p.specularMap,alphaMap:!!p.alphaMap,gradientMap:!!p.gradientMap,combine:p.combine,vertexColors:p.vertexColors,fog:!!A,useFog:p.fog,fogExp:A&&A.isFogExp2,flatShading:p.flatShading,sizeAttenuation:p.sizeAttenuation,logarithmicDepthBuffer:i.logarithmicDepthBuffer,skinning:p.skinning&&0<$,maxBones:$,useVertexTexture:i.floatVertexTextures,morphTargets:p.morphTargets,morphNormals:p.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:y.directional.length,numPointLights:y.point.length,numSpotLights:y.spot.length,numRectAreaLights:y.rectArea.length,numHemiLights:y.hemi.length,numClippingPlanes:P,numClipIntersection:B,dithering:p.dithering,shadowMapEnabled:t.shadowMap.enabled&&H.receiveShadow&&0<w.length,shadowMapType:t.shadowMap.type,toneMapping:t.toneMapping,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:p.premultipliedAlpha,alphaTest:p.alphaTest,doubleSided:p.side===2,flipSided:p.side===1,depthPacking:p.depthPacking!==void 0?p.depthPacking:!1}},this.getProgramCode=function(p,y){var w=[];if(y.shaderID?w.push(y.shaderID):(w.push(p.fragmentShader),w.push(p.vertexShader)),p.defines!==void 0)for(var A in p.defines)w.push(A),w.push(p.defines[A]);for(A=0;A<f.length;A++)w.push(y[f[A]]);return w.push(p.onBeforeCompile.toString()),w.push(t.gammaOutput),w.push(t.gammaFactor),w.join()},this.acquireProgram=function(p,y,w,A){for(var P,B=0,H=o.length;B<H;B++){var q=o[B];if(q.code===A){P=q,++P.usedTimes;break}}return P===void 0&&(P=new et(t,e,A,p,y,w,i),o.push(P)),P},this.releaseProgram=function(p){if(--p.usedTimes===0){var y=o.indexOf(p);o[y]=o[o.length-1],o.pop(),p.destroy()}},this.programs=o}function at(){var t=new WeakMap;return{get:function(e){var i=t.get(e);return i===void 0&&(i={},t.set(e,i)),i},remove:function(e){t.delete(e)},update:function(e,i,n){t.get(e)[i]=n},dispose:function(){t=new WeakMap}}}function j(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program&&e.program&&t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function St(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function ht(){var t=[],e=0,i=[],n=[];return{opaque:i,transparent:n,init:function(){e=0,i.length=0,n.length=0},push:function(o,l,f,p,y){var w=t[e];w===void 0?(w={id:o.id,object:o,geometry:l,material:f,program:f.program,renderOrder:o.renderOrder,z:p,group:y},t[e]=w):(w.id=o.id,w.object=o,w.geometry=l,w.material=f,w.program=f.program,w.renderOrder=o.renderOrder,w.z=p,w.group=y),(f.transparent===!0?n:i).push(w),e++},sort:function(){1<i.length&&i.sort(j),1<n.length&&n.sort(St)}}}function Ot(){var t={};return{get:function(e,i){return e=e.id+","+i.id,i=t[e],i===void 0&&(i=new ht,t[e]=i),i},dispose:function(){t={}}}}function Ht(){var t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];switch(e.type){case"DirectionalLight":var i={direction:new u,color:new L,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new s};break;case"SpotLight":i={position:new u,direction:new u,color:new L,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new s};break;case"PointLight":i={position:new u,color:new L,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new s,shadowCameraNear:1,shadowCameraFar:1e3};break;case"HemisphereLight":i={direction:new u,skyColor:new L,groundColor:new L};break;case"RectAreaLight":i={color:new L,position:new u,halfWidth:new u,halfHeight:new u}}return t[e.id]=i}}}function kt(){var t=new Ht,e={id:Jh++,hash:{stateID:-1,directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,shadowsLength:-1},ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},i=new u,n=new c,o=new c;return{setup:function(l,f,p){var y=0,w=0,A=0,P=0,B=0,H=0,q=0,$=0;p=p.matrixWorldInverse;for(var rt=0,xt=l.length;rt<xt;rt++){var gt=l[rt],Ct=gt.color,wt=gt.intensity,Vt=gt.distance,J=gt.shadow&>.shadow.map?gt.shadow.map.texture:null;if(gt.isAmbientLight)y+=Ct.r*wt,w+=Ct.g*wt,A+=Ct.b*wt;else if(gt.isDirectionalLight){var ot=t.get(gt);ot.color.copy(gt.color).multiplyScalar(gt.intensity),ot.direction.setFromMatrixPosition(gt.matrixWorld),i.setFromMatrixPosition(gt.target.matrixWorld),ot.direction.sub(i),ot.direction.transformDirection(p),(ot.shadow=gt.castShadow)&&(Ct=gt.shadow,ot.shadowBias=Ct.bias,ot.shadowRadius=Ct.radius,ot.shadowMapSize=Ct.mapSize),e.directionalShadowMap[P]=J,e.directionalShadowMatrix[P]=gt.shadow.matrix,e.directional[P]=ot,P++}else gt.isSpotLight?(ot=t.get(gt),ot.position.setFromMatrixPosition(gt.matrixWorld),ot.position.applyMatrix4(p),ot.color.copy(Ct).multiplyScalar(wt),ot.distance=Vt,ot.direction.setFromMatrixPosition(gt.matrixWorld),i.setFromMatrixPosition(gt.target.matrixWorld),ot.direction.sub(i),ot.direction.transformDirection(p),ot.coneCos=Math.cos(gt.angle),ot.penumbraCos=Math.cos(gt.angle*(1-gt.penumbra)),ot.decay=gt.decay,(ot.shadow=gt.castShadow)&&(Ct=gt.shadow,ot.shadowBias=Ct.bias,ot.shadowRadius=Ct.radius,ot.shadowMapSize=Ct.mapSize),e.spotShadowMap[H]=J,e.spotShadowMatrix[H]=gt.shadow.matrix,e.spot[H]=ot,H++):gt.isRectAreaLight?(ot=t.get(gt),ot.color.copy(Ct).multiplyScalar(wt),ot.position.setFromMatrixPosition(gt.matrixWorld),ot.position.applyMatrix4(p),o.identity(),n.copy(gt.matrixWorld),n.premultiply(p),o.extractRotation(n),ot.halfWidth.set(.5*gt.width,0,0),ot.halfHeight.set(0,.5*gt.height,0),ot.halfWidth.applyMatrix4(o),ot.halfHeight.applyMatrix4(o),e.rectArea[q]=ot,q++):gt.isPointLight?(ot=t.get(gt),ot.position.setFromMatrixPosition(gt.matrixWorld),ot.position.applyMatrix4(p),ot.color.copy(gt.color).multiplyScalar(gt.intensity),ot.distance=gt.distance,ot.decay=gt.decay,(ot.shadow=gt.castShadow)&&(Ct=gt.shadow,ot.shadowBias=Ct.bias,ot.shadowRadius=Ct.radius,ot.shadowMapSize=Ct.mapSize,ot.shadowCameraNear=Ct.camera.near,ot.shadowCameraFar=Ct.camera.far),e.pointShadowMap[B]=J,e.pointShadowMatrix[B]=gt.shadow.matrix,e.point[B]=ot,B++):gt.isHemisphereLight&&(ot=t.get(gt),ot.direction.setFromMatrixPosition(gt.matrixWorld),ot.direction.transformDirection(p),ot.direction.normalize(),ot.skyColor.copy(gt.color).multiplyScalar(wt),ot.groundColor.copy(gt.groundColor).multiplyScalar(wt),e.hemi[$]=ot,$++)}e.ambient[0]=y,e.ambient[1]=w,e.ambient[2]=A,e.directional.length=P,e.spot.length=H,e.rectArea.length=q,e.point.length=B,e.hemi.length=$,e.hash.stateID=e.id,e.hash.directionalLength=P,e.hash.pointLength=B,e.hash.spotLength=H,e.hash.rectAreaLength=q,e.hash.hemiLength=$,e.hash.shadowsLength=f.length},state:e}}function Mt(){var t=new kt,e=[],i=[];return{init:function(){e.length=0,i.length=0},state:{lightsArray:e,shadowsArray:i,lights:t},setupLights:function(n){t.setup(e,i,n)},pushLight:function(n){e.push(n)},pushShadow:function(n){i.push(n)}}}function he(){var t={};return{get:function(e,i){if(t[e.id]===void 0){var n=new Mt;t[e.id]={},t[e.id][i.id]=n}else t[e.id][i.id]===void 0?(n=new Mt,t[e.id][i.id]=n):n=t[e.id][i.id];return n},dispose:function(){t={}}}}function se(t){Wt.call(this),this.type="MeshDepthMaterial",this.depthPacking=3200,this.morphTargets=this.skinning=!1,this.displacementMap=this.alphaMap=this.map=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.lights=this.fog=!1,this.setValues(t)}function te(t){Wt.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new u,this.nearDistance=1,this.farDistance=1e3,this.morphTargets=this.skinning=!1,this.displacementMap=this.alphaMap=this.map=null,this.displacementScale=1,this.displacementBias=0,this.lights=this.fog=!1,this.setValues(t)}function ye(t,e,i){function n(J,ot,zt,ee,$t,Yt){var Te=J.geometry,me=P,De=J.customDepthMaterial;return zt&&(me=B,De=J.customDistanceMaterial),De?me=De:(De=!1,ot.morphTargets&&(Te&&Te.isBufferGeometry?De=Te.morphAttributes&&Te.morphAttributes.position&&0<Te.morphAttributes.position.length:Te&&Te.isGeometry&&(De=Te.morphTargets&&0<Te.morphTargets.length)),J.isSkinnedMesh&&ot.skinning===!1&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",J),J=J.isSkinnedMesh&&ot.skinning,Te=0,De&&(Te|=1),J&&(Te|=2),me=me[Te]),t.localClippingEnabled&&ot.clipShadows===!0&&ot.clippingPlanes.length!==0&&(Te=me.uuid,De=ot.uuid,J=H[Te],J===void 0&&(J={},H[Te]=J),Te=J[De],Te===void 0&&(Te=me.clone(),J[De]=Te),me=Te),me.visible=ot.visible,me.wireframe=ot.wireframe,me.side=ot.shadowSide!=null?ot.shadowSide:q[ot.side],me.clipShadows=ot.clipShadows,me.clippingPlanes=ot.clippingPlanes,me.clipIntersection=ot.clipIntersection,me.wireframeLinewidth=ot.wireframeLinewidth,me.linewidth=ot.linewidth,zt&&me.isMeshDistanceMaterial&&(me.referencePosition.copy(ee),me.nearDistance=$t,me.farDistance=Yt),me}function o(J,ot,zt,ee){if(J.visible!==!1){if(J.layers.test(ot.layers)&&(J.isMesh||J.isLine||J.isPoints)&&J.castShadow&&(!J.frustumCulled||l.intersectsObject(J))){J.modelViewMatrix.multiplyMatrices(zt.matrixWorldInverse,J.matrixWorld);var $t=e.update(J),Yt=J.material;if(Array.isArray(Yt))for(var Te=$t.groups,me=0,De=Te.length;me<De;me++){var be=Te[me],ae=Yt[be.materialIndex];ae&&ae.visible&&(ae=n(J,ae,ee,A,zt.near,zt.far),t.renderBufferDirect(zt,null,$t,ae,J,be))}else Yt.visible&&(ae=n(J,Yt,ee,A,zt.near,zt.far),t.renderBufferDirect(zt,null,$t,ae,J,null))}for(J=J.children,$t=0,Yt=J.length;$t<Yt;$t++)o(J[$t],ot,zt,ee)}}var l=new E,f=new c,p=new s,y=new s(i,i),w=new u,A=new u,P=Array(4),B=Array(4),H={},q={0:1,1:0,2:2},$=[new u(1,0,0),new u(-1,0,0),new u(0,0,1),new u(0,0,-1),new u(0,1,0),new u(0,-1,0)],rt=[new u(0,1,0),new u(0,1,0),new u(0,1,0),new u(0,1,0),new u(0,0,1),new u(0,0,-1)],xt=[new _,new _,new _,new _,new _,new _];for(i=0;i!==4;++i){var gt=(i&1)!==0,Ct=(i&2)!==0,wt=new se({depthPacking:3201,morphTargets:gt,skinning:Ct});P[i]=wt,gt=new te({morphTargets:gt,skinning:Ct}),B[i]=gt}var Vt=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(J,ot,zt){if(Vt.enabled!==!1&&(Vt.autoUpdate!==!1||Vt.needsUpdate!==!1)&&J.length!==0){var ee=t.state;ee.disable(3042),ee.buffers.color.setClear(1,1,1,1),ee.buffers.depth.setTest(!0),ee.setScissorTest(!1);for(var $t,Yt=0,Te=J.length;Yt<Te;Yt++){var me=J[Yt];$t=me.shadow;var De=me&&me.isPointLight;if($t===void 0)console.warn("THREE.WebGLShadowMap:",me,"has no shadow.");else{var be=$t.camera;if(p.copy($t.mapSize),p.min(y),De){var ae=p.x,We=p.y;xt[0].set(2*ae,We,ae,We),xt[1].set(0,We,ae,We),xt[2].set(3*ae,We,ae,We),xt[3].set(ae,We,ae,We),xt[4].set(3*ae,0,ae,We),xt[5].set(ae,0,ae,We),p.x*=4,p.y*=2}for($t.map===null&&($t.map=new S(p.x,p.y,{minFilter:1003,magFilter:1003,format:1023}),$t.map.texture.name=me.name+".shadowMap",be.updateProjectionMatrix()),$t.isSpotLightShadow&&$t.update(me),ae=$t.map,We=$t.matrix,A.setFromMatrixPosition(me.matrixWorld),be.position.copy(A),De?($t=6,We.makeTranslation(-A.x,-A.y,-A.z)):($t=1,w.setFromMatrixPosition(me.target.matrixWorld),be.lookAt(w),be.updateMatrixWorld(),We.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),We.multiply(be.projectionMatrix),We.multiply(be.matrixWorldInverse)),t.setRenderTarget(ae),t.clear(),me=0;me<$t;me++)De&&(w.copy(be.position),w.add($[me]),be.up.copy(rt[me]),be.lookAt(w),be.updateMatrixWorld(),ee.viewport(xt[me])),f.multiplyMatrices(be.projectionMatrix,be.matrixWorldInverse),l.setFromMatrix(f),o(ot,zt,be,De)}}Vt.needsUpdate=!1}}}function ue(t,e,i,n){function o(Ut,Ye,ei){var Wi=new Uint8Array(4),Ae=t.createTexture();for(t.bindTexture(Ut,Ae),t.texParameteri(Ut,10241,9728),t.texParameteri(Ut,10240,9728),Ut=0;Ut<ei;Ut++)t.texImage2D(Ye+Ut,0,6408,1,1,0,6408,5121,Wi);return Ae}function l(Ut,Ye){xt[Ut]=1,gt[Ut]===0&&(t.enableVertexAttribArray(Ut),gt[Ut]=1),Ct[Ut]!==Ye&&((n.isWebGL2?t:e.get("ANGLE_instanced_arrays"))[n.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](Ut,Ye),Ct[Ut]=Ye)}function f(Ut){wt[Ut]!==!0&&(t.enable(Ut),wt[Ut]=!0)}function p(Ut){wt[Ut]!==!1&&(t.disable(Ut),wt[Ut]=!1)}function y(Ut,Ye,ei,Wi,Ae,Xe,ri,Li){if(Ut===0)ot&&(p(3042),ot=!1);else if(ot||(f(3042),ot=!0),Ut!==5){if(Ut!==zt||Li!==be){if((ee!==100||Te!==100)&&(t.blendEquation(32774),Te=ee=100),Li)switch(Ut){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",Ut)}else switch(Ut){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",Ut)}De=me=Yt=$t=null,zt=Ut,be=Li}}else Ae=Ae||Ye,Xe=Xe||ei,ri=ri||Wi,(Ye!==ee||Ae!==Te)&&(t.blendEquationSeparate(i.convert(Ye),i.convert(Ae)),ee=Ye,Te=Ae),(ei!==$t||Wi!==Yt||Xe!==me||ri!==De)&&(t.blendFuncSeparate(i.convert(ei),i.convert(Wi),i.convert(Xe),i.convert(ri)),$t=ei,Yt=Wi,me=Xe,De=ri),zt=Ut,be=null}function w(Ut){ae!==Ut&&(Ut?t.frontFace(2304):t.frontFace(2305),ae=Ut)}function A(Ut){Ut!==0?(f(2884),Ut!==We&&(Ut===1?t.cullFace(1029):Ut===2?t.cullFace(1028):t.cullFace(1032))):p(2884),We=Ut}function P(Ut,Ye,ei){Ut?(f(32823),(fi!==Ye||Cn!==ei)&&(t.polygonOffset(Ye,ei),fi=Ye,Cn=ei)):p(32823)}function B(Ut){Ut===void 0&&(Ut=33984+_n-1),Vi!==Ut&&(t.activeTexture(Ut),Vi=Ut)}var H=new function(){var Ut=!1,Ye=new _,ei=null,Wi=new _(0,0,0,0);return{setMask:function(Ae){ei===Ae||Ut||(t.colorMask(Ae,Ae,Ae,Ae),ei=Ae)},setLocked:function(Ae){Ut=Ae},setClear:function(Ae,Xe,ri,Li,Ai){Ai===!0&&(Ae*=Li,Xe*=Li,ri*=Li),Ye.set(Ae,Xe,ri,Li),Wi.equals(Ye)===!1&&(t.clearColor(Ae,Xe,ri,Li),Wi.copy(Ye))},reset:function(){Ut=!1,ei=null,Wi.set(-1,0,0,0)}}},q=new function(){var Ut=!1,Ye=null,ei=null,Wi=null;return{setTest:function(Ae){Ae?f(2929):p(2929)},setMask:function(Ae){Ye===Ae||Ut||(t.depthMask(Ae),Ye=Ae)},setFunc:function(Ae){if(ei!==Ae){if(Ae)switch(Ae){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);ei=Ae}},setLocked:function(Ae){Ut=Ae},setClear:function(Ae){Wi!==Ae&&(t.clearDepth(Ae),Wi=Ae)},reset:function(){Ut=!1,Wi=ei=Ye=null}}},$=new function(){var Ut=!1,Ye=null,ei=null,Wi=null,Ae=null,Xe=null,ri=null,Li=null,Ai=null;return{setTest:function(ne){ne?f(2960):p(2960)},setMask:function(ne){Ye===ne||Ut||(t.stencilMask(ne),Ye=ne)},setFunc:function(ne,ii,Ze){(ei!==ne||Wi!==ii||Ae!==Ze)&&(t.stencilFunc(ne,ii,Ze),ei=ne,Wi=ii,Ae=Ze)},setOp:function(ne,ii,Ze){(Xe!==ne||ri!==ii||Li!==Ze)&&(t.stencilOp(ne,ii,Ze),Xe=ne,ri=ii,Li=Ze)},setLocked:function(ne){Ut=ne},setClear:function(ne){Ai!==ne&&(t.clearStencil(ne),Ai=ne)},reset:function(){Ut=!1,Ai=Li=ri=Xe=Ae=Wi=ei=Ye=null}}},rt=t.getParameter(34921),xt=new Uint8Array(rt),gt=new Uint8Array(rt),Ct=new Uint8Array(rt),wt={},Vt=null,J=null,ot=null,zt=null,ee=null,$t=null,Yt=null,Te=null,me=null,De=null,be=!1,ae=null,We=null,Qe=null,fi=null,Cn=null,_n=t.getParameter(35661),qi=!1;rt=0,rt=t.getParameter(7938),rt.indexOf("WebGL")!==-1?(rt=parseFloat(/^WebGL ([0-9])/.exec(rt)[1]),qi=1<=rt):rt.indexOf("OpenGL ES")!==-1&&(rt=parseFloat(/^OpenGL ES ([0-9])/.exec(rt)[1]),qi=2<=rt);var Vi=null,on={},An=new _,Ce=new _,ti={};return ti[3553]=o(3553,3553,1),ti[34067]=o(34067,34069,6),H.setClear(0,0,0,1),q.setClear(1),$.setClear(0),f(2929),q.setFunc(3),w(!1),A(1),f(2884),y(0),{buffers:{color:H,depth:q,stencil:$},initAttributes:function(){for(var Ut=0,Ye=xt.length;Ut<Ye;Ut++)xt[Ut]=0},enableAttribute:function(Ut){l(Ut,0)},enableAttributeAndDivisor:l,disableUnusedAttributes:function(){for(var Ut=0,Ye=gt.length;Ut!==Ye;++Ut)gt[Ut]!==xt[Ut]&&(t.disableVertexAttribArray(Ut),gt[Ut]=0)},enable:f,disable:p,getCompressedTextureFormats:function(){if(Vt===null&&(Vt=[],e.get("WEBGL_compressed_texture_pvrtc")||e.get("WEBGL_compressed_texture_s3tc")||e.get("WEBGL_compressed_texture_etc1")||e.get("WEBGL_compressed_texture_astc")))for(var Ut=t.getParameter(34467),Ye=0;Ye<Ut.length;Ye++)Vt.push(Ut[Ye]);return Vt},useProgram:function(Ut){return J!==Ut?(t.useProgram(Ut),J=Ut,!0):!1},setBlending:y,setMaterial:function(Ut,Ye){Ut.side===2?p(2884):f(2884);var ei=Ut.side===1;Ye&&(ei=!ei),w(ei),Ut.blending===1&&Ut.transparent===!1?y(0):y(Ut.blending,Ut.blendEquation,Ut.blendSrc,Ut.blendDst,Ut.blendEquationAlpha,Ut.blendSrcAlpha,Ut.blendDstAlpha,Ut.premultipliedAlpha),q.setFunc(Ut.depthFunc),q.setTest(Ut.depthTest),q.setMask(Ut.depthWrite),H.setMask(Ut.colorWrite),P(Ut.polygonOffset,Ut.polygonOffsetFactor,Ut.polygonOffsetUnits)},setFlipSided:w,setCullFace:A,setLineWidth:function(Ut){Ut!==Qe&&(qi&&t.lineWidth(Ut),Qe=Ut)},setPolygonOffset:P,setScissorTest:function(Ut){Ut?f(3089):p(3089)},activeTexture:B,bindTexture:function(Ut,Ye){Vi===null&&B();var ei=on[Vi];ei===void 0&&(ei={type:void 0,texture:void 0},on[Vi]=ei),(ei.type!==Ut||ei.texture!==Ye)&&(t.bindTexture(Ut,Ye||ti[Ut]),ei.type=Ut,ei.texture=Ye)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(Ut){console.error("THREE.WebGLState:",Ut)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(Ut){console.error("THREE.WebGLState:",Ut)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(Ut){console.error("THREE.WebGLState:",Ut)}},scissor:function(Ut){An.equals(Ut)===!1&&(t.scissor(Ut.x,Ut.y,Ut.z,Ut.w),An.copy(Ut))},viewport:function(Ut){Ce.equals(Ut)===!1&&(t.viewport(Ut.x,Ut.y,Ut.z,Ut.w),Ce.copy(Ut))},reset:function(){for(var Ut=0;Ut<gt.length;Ut++)gt[Ut]===1&&(t.disableVertexAttribArray(Ut),gt[Ut]=0);wt={},Vi=Vt=null,on={},We=ae=zt=J=null,H.reset(),q.reset(),$.reset()}}}function je(t,e,i,n,o,l,f){function p(J,ot){if(J.width>ot||J.height>ot){if("data"in J){console.warn("THREE.WebGLRenderer: image in DataTexture is too big ("+J.width+"x"+J.height+").");return}ot/=Math.max(J.width,J.height);var zt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");return zt.width=Math.floor(J.width*ot),zt.height=Math.floor(J.height*ot),zt.getContext("2d").drawImage(J,0,0,J.width,J.height,0,0,zt.width,zt.height),console.warn("THREE.WebGLRenderer: image is too big ("+J.width+"x"+J.height+"). Resized to "+zt.width+"x"+zt.height),zt}return J}function y(J){return di.isPowerOfTwo(J.width)&&di.isPowerOfTwo(J.height)}function w(J,ot){return J.generateMipmaps&&ot&&J.minFilter!==1003&&J.minFilter!==1006}function A(J,ot,zt,ee){t.generateMipmap(J),n.get(ot).__maxMipLevel=Math.log(Math.max(zt,ee))*Math.LOG2E}function P(J,ot){if(!o.isWebGL2)return J;if(J===6403){if(ot===5126)return 33326;if(ot===5131)return 33325;if(ot===5121)return 33321}if(J===6407){if(ot===5126)return 34837;if(ot===5131)return 34843;if(ot===5121)return 32849}if(J===6408){if(ot===5126)return 34836;if(ot===5131)return 34842;if(ot===5121)return 32856}return J}function B(J){return J===1003||J===1004||J===1005?9728:9729}function H(J){J=J.target,J.removeEventListener("dispose",H);t:{var ot=n.get(J);if(J.image&&ot.__image__webglTextureCube)t.deleteTexture(ot.__image__webglTextureCube);else{if(ot.__webglInit===void 0)break t;t.deleteTexture(ot.__webglTexture)}n.remove(J)}J.isVideoTexture&&delete wt[J.id],f.memory.textures--}function q(J){J=J.target,J.removeEventListener("dispose",q);var ot=n.get(J),zt=n.get(J.texture);if(J){if(zt.__webglTexture!==void 0&&t.deleteTexture(zt.__webglTexture),J.depthTexture&&J.depthTexture.dispose(),J.isWebGLRenderTargetCube)for(zt=0;6>zt;zt++)t.deleteFramebuffer(ot.__webglFramebuffer[zt]),ot.__webglDepthbuffer&&t.deleteRenderbuffer(ot.__webglDepthbuffer[zt]);else t.deleteFramebuffer(ot.__webglFramebuffer),ot.__webglDepthbuffer&&t.deleteRenderbuffer(ot.__webglDepthbuffer);n.remove(J.texture),n.remove(J)}f.memory.textures--}function $(J,ot){var zt=n.get(J);if(J.isVideoTexture){var ee=J.id,$t=f.render.frame;wt[ee]!==$t&&(wt[ee]=$t,J.update())}if(0<J.version&&zt.__version!==J.version)if(ee=J.image,ee===void 0)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else if(ee.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{xt(zt,J,ot);return}i.activeTexture(33984+ot),i.bindTexture(3553,zt.__webglTexture)}function rt(J,ot,zt){zt?(t.texParameteri(J,10242,l.convert(ot.wrapS)),t.texParameteri(J,10243,l.convert(ot.wrapT)),t.texParameteri(J,10240,l.convert(ot.magFilter)),t.texParameteri(J,10241,l.convert(ot.minFilter))):(t.texParameteri(J,10242,33071),t.texParameteri(J,10243,33071),ot.wrapS===1001&&ot.wrapT===1001||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(J,10240,B(ot.magFilter)),t.texParameteri(J,10241,B(ot.minFilter)),ot.minFilter!==1003&&ot.minFilter!==1006&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!(zt=e.get("EXT_texture_filter_anisotropic"))||ot.type===1015&&e.get("OES_texture_float_linear")===null||ot.type===1016&&(o.isWebGL2||e.get("OES_texture_half_float_linear"))===null||!(1<ot.anisotropy||n.get(ot).__currentAnisotropy)||(t.texParameterf(J,zt.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(ot.anisotropy,o.getMaxAnisotropy())),n.get(ot).__currentAnisotropy=ot.anisotropy)}function xt(J,ot,zt){var ee=ot.isDataTexture3D?32879:3553;J.__webglInit===void 0&&(J.__webglInit=!0,ot.addEventListener("dispose",H),J.__webglTexture=t.createTexture(),f.memory.textures++),i.activeTexture(33984+zt),i.bindTexture(ee,J.__webglTexture),t.pixelStorei(37440,ot.flipY),t.pixelStorei(37441,ot.premultiplyAlpha),t.pixelStorei(3317,ot.unpackAlignment),zt=p(ot.image,o.maxTextureSize);var $t=o.isWebGL2?!1:ot.wrapS!==1001||ot.wrapT!==1001||ot.minFilter!==1003&&ot.minFilter!==1006;$t&&y(zt)===!1&&(zt instanceof HTMLImageElement||zt instanceof HTMLCanvasElement||zt instanceof ImageBitmap)&&(Vt===void 0&&(Vt=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),Vt.width=di.floorPowerOfTwo(zt.width),Vt.height=di.floorPowerOfTwo(zt.height),Vt.getContext("2d").drawImage(zt,0,0,Vt.width,Vt.height),console.warn("THREE.WebGLRenderer: image is not power of two ("+zt.width+"x"+zt.height+"). Resized to "+Vt.width+"x"+Vt.height),zt=Vt),$t=y(zt);var Yt=l.convert(ot.format),Te=l.convert(ot.type),me=P(Yt,Te);rt(ee,ot,$t);var De=ot.mipmaps;if(ot.isDepthTexture){if(me=6402,ot.type===1015){if(!o.isWebGL2)throw Error("Float Depth Texture only supported in WebGL2.0");me=36012}else o.isWebGL2&&(me=33189);ot.format===1026&&me===6402&&ot.type!==1012&&ot.type!==1014&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),ot.type=1012,Te=l.convert(ot.type)),ot.format===1027&&(me=34041,ot.type!==1020&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),ot.type=1020,Te=l.convert(ot.type))),i.texImage2D(3553,0,me,zt.width,zt.height,0,Yt,Te,null)}else if(ot.isDataTexture)if(0<De.length&&$t){for(var be=0,ae=De.length;be<ae;be++)ee=De[be],i.texImage2D(3553,be,me,ee.width,ee.height,0,Yt,Te,ee.data);ot.generateMipmaps=!1,J.__maxMipLevel=De.length-1}else i.texImage2D(3553,0,me,zt.width,zt.height,0,Yt,Te,zt.data),J.__maxMipLevel=0;else if(ot.isCompressedTexture){for(be=0,ae=De.length;be<ae;be++)ee=De[be],ot.format!==1023&&ot.format!==1022?-1<i.getCompressedTextureFormats().indexOf(Yt)?i.compressedTexImage2D(3553,be,me,ee.width,ee.height,0,ee.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):i.texImage2D(3553,be,me,ee.width,ee.height,0,Yt,Te,ee.data);J.__maxMipLevel=De.length-1}else if(ot.isDataTexture3D)i.texImage3D(32879,0,me,zt.width,zt.height,zt.depth,0,Yt,Te,zt.data),J.__maxMipLevel=0;else if(0<De.length&&$t){for(be=0,ae=De.length;be<ae;be++)ee=De[be],i.texImage2D(3553,be,me,Yt,Te,ee);ot.generateMipmaps=!1,J.__maxMipLevel=De.length-1}else i.texImage2D(3553,0,me,Yt,Te,zt),J.__maxMipLevel=0;w(ot,$t)&&A(3553,ot,zt.width,zt.height),J.__version=ot.version,ot.onUpdate&&ot.onUpdate(ot)}function gt(J,ot,zt,ee){var $t=l.convert(ot.texture.format),Yt=l.convert(ot.texture.type),Te=P($t,Yt);i.texImage2D(ee,0,Te,ot.width,ot.height,0,$t,Yt,null),t.bindFramebuffer(36160,J),t.framebufferTexture2D(36160,zt,ee,n.get(ot.texture).__webglTexture,0),t.bindFramebuffer(36160,null)}function Ct(J,ot){t.bindRenderbuffer(36161,J),ot.depthBuffer&&!ot.stencilBuffer?(t.renderbufferStorage(36161,33189,ot.width,ot.height),t.framebufferRenderbuffer(36160,36096,36161,J)):ot.depthBuffer&&ot.stencilBuffer?(t.renderbufferStorage(36161,34041,ot.width,ot.height),t.framebufferRenderbuffer(36160,33306,36161,J)):t.renderbufferStorage(36161,32854,ot.width,ot.height),t.bindRenderbuffer(36161,null)}var wt={},Vt;this.setTexture2D=$,this.setTexture3D=function(J,ot){var zt=n.get(J);0<J.version&&zt.__version!==J.version?xt(zt,J,ot):(i.activeTexture(33984+ot),i.bindTexture(32879,zt.__webglTexture))},this.setTextureCube=function(J,ot){var zt=n.get(J);if(J.image.length===6)if(0<J.version&&zt.__version!==J.version){zt.__image__webglTextureCube||(J.addEventListener("dispose",H),zt.__image__webglTextureCube=t.createTexture(),f.memory.textures++),i.activeTexture(33984+ot),i.bindTexture(34067,zt.__image__webglTextureCube),t.pixelStorei(37440,J.flipY),ot=J&&J.isCompressedTexture;for(var ee=J.image[0]&&J.image[0].isDataTexture,$t=[],Yt=0;6>Yt;Yt++)$t[Yt]=ot||ee?ee?J.image[Yt].image:J.image[Yt]:p(J.image[Yt],o.maxCubemapSize);var Te=$t[0],me=y(Te),De=l.convert(J.format),be=l.convert(J.type),ae=P(De,be);for(rt(34067,J,me),Yt=0;6>Yt;Yt++)if(ot)for(var We,Qe=$t[Yt].mipmaps,fi=0,Cn=Qe.length;fi<Cn;fi++)We=Qe[fi],J.format!==1023&&J.format!==1022?-1<i.getCompressedTextureFormats().indexOf(De)?i.compressedTexImage2D(34069+Yt,fi,ae,We.width,We.height,0,We.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):i.texImage2D(34069+Yt,fi,ae,We.width,We.height,0,De,be,We.data);else ee?i.texImage2D(34069+Yt,0,ae,$t[Yt].width,$t[Yt].height,0,De,be,$t[Yt].data):i.texImage2D(34069+Yt,0,ae,De,be,$t[Yt]);zt.__maxMipLevel=ot?Qe.length-1:0,w(J,me)&&A(34067,J,Te.width,Te.height),zt.__version=J.version,J.onUpdate&&J.onUpdate(J)}else i.activeTexture(33984+ot),i.bindTexture(34067,zt.__image__webglTextureCube)},this.setTextureCubeDynamic=function(J,ot){i.activeTexture(33984+ot),i.bindTexture(34067,n.get(J).__webglTexture)},this.setupRenderTarget=function(J){var ot=n.get(J),zt=n.get(J.texture);J.addEventListener("dispose",q),zt.__webglTexture=t.createTexture(),f.memory.textures++;var ee=J.isWebGLRenderTargetCube===!0,$t=y(J);if(ee){ot.__webglFramebuffer=[];for(var Yt=0;6>Yt;Yt++)ot.__webglFramebuffer[Yt]=t.createFramebuffer()}else ot.__webglFramebuffer=t.createFramebuffer();if(ee){for(i.bindTexture(34067,zt.__webglTexture),rt(34067,J.texture,$t),Yt=0;6>Yt;Yt++)gt(ot.__webglFramebuffer[Yt],J,36064,34069+Yt);w(J.texture,$t)&&A(34067,J.texture,J.width,J.height),i.bindTexture(34067,null)}else i.bindTexture(3553,zt.__webglTexture),rt(3553,J.texture,$t),gt(ot.__webglFramebuffer,J,36064,3553),w(J.texture,$t)&&A(3553,J.texture,J.width,J.height),i.bindTexture(3553,null);if(J.depthBuffer){if(ot=n.get(J),zt=J.isWebGLRenderTargetCube===!0,J.depthTexture){if(zt)throw Error("target.depthTexture not supported in Cube render targets");if(J&&J.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,ot.__webglFramebuffer),!J.depthTexture||!J.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");if(n.get(J.depthTexture).__webglTexture&&J.depthTexture.image.width===J.width&&J.depthTexture.image.height===J.height||(J.depthTexture.image.width=J.width,J.depthTexture.image.height=J.height,J.depthTexture.needsUpdate=!0),$(J.depthTexture,0),ot=n.get(J.depthTexture).__webglTexture,J.depthTexture.format===1026)t.framebufferTexture2D(36160,36096,3553,ot,0);else if(J.depthTexture.format===1027)t.framebufferTexture2D(36160,33306,3553,ot,0);else throw Error("Unknown depthTexture format")}else if(zt)for(ot.__webglDepthbuffer=[],zt=0;6>zt;zt++)t.bindFramebuffer(36160,ot.__webglFramebuffer[zt]),ot.__webglDepthbuffer[zt]=t.createRenderbuffer(),Ct(ot.__webglDepthbuffer[zt],J);else t.bindFramebuffer(36160,ot.__webglFramebuffer),ot.__webglDepthbuffer=t.createRenderbuffer(),Ct(ot.__webglDepthbuffer,J);t.bindFramebuffer(36160,null)}},this.updateRenderTargetMipmap=function(J){var ot=J.texture,zt=y(J);if(w(ot,zt)){zt=J.isWebGLRenderTargetCube?34067:3553;var ee=n.get(ot).__webglTexture;i.bindTexture(zt,ee),A(zt,ot,J.width,J.height),i.bindTexture(zt,null)}}}function He(t,e,i){return{convert:function(n){if(n===1e3)return 10497;if(n===1001)return 33071;if(n===1002)return 33648;if(n===1003)return 9728;if(n===1004)return 9984;if(n===1005)return 9986;if(n===1006)return 9729;if(n===1007)return 9985;if(n===1008)return 9987;if(n===1009)return 5121;if(n===1017)return 32819;if(n===1018)return 32820;if(n===1019)return 33635;if(n===1010)return 5120;if(n===1011)return 5122;if(n===1012)return 5123;if(n===1013)return 5124;if(n===1014)return 5125;if(n===1015)return 5126;if(n===1016){if(i.isWebGL2)return 5131;var o=e.get("OES_texture_half_float");if(o!==null)return o.HALF_FLOAT_OES}if(n===1021)return 6406;if(n===1022)return 6407;if(n===1023)return 6408;if(n===1024)return 6409;if(n===1025)return 6410;if(n===1026)return 6402;if(n===1027)return 34041;if(n===1028)return 6403;if(n===100)return 32774;if(n===101)return 32778;if(n===102)return 32779;if(n===200)return 0;if(n===201)return 1;if(n===202)return 768;if(n===203)return 769;if(n===204)return 770;if(n===205)return 771;if(n===206)return 772;if(n===207)return 773;if(n===208)return 774;if(n===209)return 775;if(n===210)return 776;if((n===33776||n===33777||n===33778||n===33779)&&(o=e.get("WEBGL_compressed_texture_s3tc"),o!==null)){if(n===33776)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===33777)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===33778)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===33779)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}if((n===35840||n===35841||n===35842||n===35843)&&(o=e.get("WEBGL_compressed_texture_pvrtc"),o!==null)){if(n===35840)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===35841)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===35842)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===35843)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===36196&&(o=e.get("WEBGL_compressed_texture_etc1"),o!==null))return o.COMPRESSED_RGB_ETC1_WEBGL;if((n===37808||n===37809||n===37810||n===37811||n===37812||n===37813||n===37814||n===37815||n===37816||n===37817||n===37818||n===37819||n===37820||n===37821)&&(o=e.get("WEBGL_compressed_texture_astc"),o!==null))return n;if(n===103||n===104){if(i.isWebGL2){if(n===103)return 32775;if(n===104)return 32776}if(o=e.get("EXT_blend_minmax"),o!==null){if(n===103)return o.MIN_EXT;if(n===104)return o.MAX_EXT}}if(n===1020){if(i.isWebGL2)return 34042;if(o=e.get("WEBGL_depth_texture"),o!==null)return o.UNSIGNED_INT_24_8_WEBGL}return 0}}}function ci(){N.call(this),this.type="Group"}function Be(){N.call(this),this.type="Camera",this.matrixWorldInverse=new c,this.projectionMatrix=new c,this.projectionMatrixInverse=new c}function _e(t,e,i,n){Be.call(this),this.type="PerspectiveCamera",this.fov=t!==void 0?t:50,this.zoom=1,this.near=i!==void 0?i:.1,this.far=n!==void 0?n:2e3,this.focus=10,this.aspect=e!==void 0?e:1,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}function Fe(t){_e.call(this),this.cameras=t||[]}function fe(t,e,i){as.setFromMatrixPosition(e.matrixWorld),wr.setFromMatrixPosition(i.matrixWorld);var n=as.distanceTo(wr),o=e.projectionMatrix.elements,l=i.projectionMatrix.elements,f=o[14]/(o[10]-1);i=o[14]/(o[10]+1);var p=(o[9]+1)/o[5],y=(o[9]-1)/o[5],w=(o[8]-1)/o[0],A=(l[8]+1)/l[0];o=f*w,l=f*A,A=n/(-w+A),w=A*-w,e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(w),t.translateZ(A),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.getInverse(t.matrixWorld),e=f+A,f=i+A,t.projectionMatrix.makePerspective(o-w,l+(n-w),p*i/f*e,y*i/f*e,e,f)}function mi(t){function e(){return o!==null&&o.isPresenting===!0}function i(){if(e()){var J=o.getEyeParameters("left"),ot=J.renderWidth*A;J=J.renderHeight*A,Ct=t.getPixelRatio(),gt=t.getSize(),t.setDrawingBufferSize(2*ot,J,1),Vt.start()}else n.enabled&&t.setDrawingBufferSize(gt.width,gt.height,Ct),Vt.stop()}var n=this,o=null,l=null,f=null,p=[],y=new c,w=new c,A=1,P="stage";typeof window<"u"&&"VRFrameData"in window&&(l=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",i,!1));var B=new c,H=new d,q=new u,$=new _e;$.bounds=new _(0,0,.5,1),$.layers.enable(1);var rt=new _e;rt.bounds=new _(.5,0,.5,1),rt.layers.enable(2);var xt=new Fe([$,rt]);xt.layers.enable(1),xt.layers.enable(2);var gt,Ct,wt=[];this.enabled=!1,this.getController=function(J){var ot=p[J];return ot===void 0&&(ot=new ci,ot.matrixAutoUpdate=!1,ot.visible=!1,p[J]=ot),ot},this.getDevice=function(){return o},this.setDevice=function(J){J!==void 0&&(o=J),Vt.setContext(J)},this.setFramebufferScaleFactor=function(J){A=J},this.setFrameOfReferenceType=function(J){P=J},this.setPoseTarget=function(J){J!==void 0&&(f=J)},this.getCamera=function(J){var ot=P==="stage"?1.6:0;if(o===null)return J.position.set(0,ot,0),J;if(o.depthNear=J.near,o.depthFar=J.far,o.getFrameData(l),P==="stage"){var zt=o.stageParameters;zt?y.fromArray(zt.sittingToStandingTransform):y.makeTranslation(0,ot,0)}if(ot=l.pose,zt=f!==null?f:J,zt.matrix.copy(y),zt.matrix.decompose(zt.position,zt.quaternion,zt.scale),ot.orientation!==null&&(H.fromArray(ot.orientation),zt.quaternion.multiply(H)),ot.position!==null&&(H.setFromRotationMatrix(y),q.fromArray(ot.position),q.applyQuaternion(H),zt.position.add(q)),zt.updateMatrixWorld(),o.isPresenting===!1)return J;$.near=J.near,rt.near=J.near,$.far=J.far,rt.far=J.far,$.matrixWorldInverse.fromArray(l.leftViewMatrix),rt.matrixWorldInverse.fromArray(l.rightViewMatrix),w.getInverse(y),P==="stage"&&($.matrixWorldInverse.multiply(w),rt.matrixWorldInverse.multiply(w)),J=zt.parent,J!==null&&(B.getInverse(J.matrixWorld),$.matrixWorldInverse.multiply(B),rt.matrixWorldInverse.multiply(B)),$.matrixWorld.getInverse($.matrixWorldInverse),rt.matrixWorld.getInverse(rt.matrixWorldInverse),$.projectionMatrix.fromArray(l.leftProjectionMatrix),rt.projectionMatrix.fromArray(l.rightProjectionMatrix),fe(xt,$,rt),J=o.getLayers(),J.length&&(J=J[0],J.leftBounds!==null&&J.leftBounds.length===4&&$.bounds.fromArray(J.leftBounds),J.rightBounds!==null&&J.rightBounds.length===4&&rt.bounds.fromArray(J.rightBounds));t:for(J=0;J<p.length;J++){ot=p[J];e:{zt=J;for(var ee=navigator.getGamepads&&navigator.getGamepads(),$t=0,Yt=0,Te=ee.length;$t<Te;$t++){var me=ee[$t];if(me&&(me.id==="Daydream Controller"||me.id==="Gear VR Controller"||me.id==="Oculus Go Controller"||me.id==="OpenVR Gamepad"||me.id.startsWith("Oculus Touch")||me.id.startsWith("Spatial Controller"))){if(Yt===zt){zt=me;break e}Yt++}}zt=void 0}if(zt!==void 0&&zt.pose!==void 0){if(zt.pose===null)break t;ee=zt.pose,ee.hasPosition===!1&&ot.position.set(.2,-.6,-.05),ee.position!==null&&ot.position.fromArray(ee.position),ee.orientation!==null&&ot.quaternion.fromArray(ee.orientation),ot.matrix.compose(ot.position,ot.quaternion,ot.scale),ot.matrix.premultiply(y),ot.matrix.decompose(ot.position,ot.quaternion,ot.scale),ot.matrixWorldNeedsUpdate=!0,ot.visible=!0,ee=zt.id==="Daydream Controller"?0:1,wt[J]!==zt.buttons[ee].pressed&&(wt[J]=zt.buttons[ee].pressed,wt[J]===!0?ot.dispatchEvent({type:"selectstart"}):(ot.dispatchEvent({type:"selectend"}),ot.dispatchEvent({type:"select"})))}else ot.visible=!1}return xt},this.getStandingMatrix=function(){return y},this.isPresenting=e;var Vt=new T;this.setAnimationLoop=function(J){Vt.setAnimationLoop(J)},this.submitFrame=function(){e()&&o.submitFrame()},this.dispose=function(){typeof window<"u"&&window.removeEventListener("vrdisplaypresentchange",i)}}function Le(t){function e(){return p!==null&&w!==null}function i(Ct){var wt=B[H.indexOf(Ct.inputSource)];wt&&wt.dispatchEvent({type:Ct.type})}function n(){t.setFramebuffer(null),gt.stop()}function o(Ct,wt){wt===null?Ct.matrixWorld.copy(Ct.matrix):Ct.matrixWorld.multiplyMatrices(wt.matrixWorld,Ct.matrix),Ct.matrixWorldInverse.getInverse(Ct.matrixWorld)}var l=t.context,f=null,p=null,y=1,w=null,A="stage",P=null,B=[],H=[],q=new _e;q.layers.enable(1),q.viewport=new _;var $=new _e;$.layers.enable(2),$.viewport=new _;var rt=new Fe([q,$]);rt.layers.enable(1),rt.layers.enable(2),this.enabled=!1,this.getController=function(Ct){var wt=B[Ct];return wt===void 0&&(wt=new ci,wt.matrixAutoUpdate=!1,wt.visible=!1,B[Ct]=wt),wt},this.getDevice=function(){return f},this.setDevice=function(Ct){Ct!==void 0&&(f=Ct),Ct instanceof XRDevice&&l.setCompatibleXRDevice(Ct)},this.setFramebufferScaleFactor=function(Ct){y=Ct},this.setFrameOfReferenceType=function(Ct){A=Ct},this.setSession=function(Ct){p=Ct,p!==null&&(p.addEventListener("select",i),p.addEventListener("selectstart",i),p.addEventListener("selectend",i),p.addEventListener("end",n),p.baseLayer=new XRWebGLLayer(p,l,{framebufferScaleFactor:y}),p.requestFrameOfReference(A).then(function(wt){w=wt,t.setFramebuffer(p.baseLayer.framebuffer),gt.setContext(p),gt.start()}),H=p.getInputSources(),p.addEventListener("inputsourceschange",function(){H=p.getInputSources(),console.log(H);for(var wt=0;wt<B.length;wt++)B[wt].userData.inputSource=H[wt]}))},this.getCamera=function(Ct){if(e()){var wt=Ct.parent,Vt=rt.cameras;o(rt,wt);for(var J=0;J<Vt.length;J++)o(Vt[J],wt);for(Ct.matrixWorld.copy(rt.matrixWorld),Ct=Ct.children,J=0,wt=Ct.length;J<wt;J++)Ct[J].updateMatrixWorld(!0);return fe(rt,q,$),rt}return Ct},this.isPresenting=e;var xt=null,gt=new T;gt.setAnimationLoop(function(Ct,wt){if(P=wt.getDevicePose(w),P!==null)for(var Vt=p.baseLayer,J=wt.views,ot=0;ot<J.length;ot++){var zt=J[ot],ee=Vt.getViewport(zt),$t=P.getViewMatrix(zt),Yt=rt.cameras[ot];Yt.matrix.fromArray($t).getInverse(Yt.matrix),Yt.projectionMatrix.fromArray(zt.projectionMatrix),Yt.viewport.set(ee.x,ee.y,ee.width,ee.height),ot===0&&rt.matrix.copy(Yt.matrix)}for(ot=0;ot<B.length;ot++){if(Vt=B[ot],(J=H[ot])&&(J=wt.getInputPose(J,w),J!==null)){"targetRay"in J?Vt.matrix.elements=J.targetRay.transformMatrix:"pointerMatrix"in J&&(Vt.matrix.elements=J.pointerMatrix),Vt.matrix.decompose(Vt.position,Vt.rotation,Vt.scale),Vt.visible=!0;continue}Vt.visible=!1}xt&&xt(Ct)}),this.setAnimationLoop=function(Ct){xt=Ct},this.dispose=function(){},this.getStandingMatrix=function(){return console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed."),new THREE.Matrix4},this.submitFrame=function(){}}function xe(t){var e;function i(){ii=new Jt(ne),Ze=new Qi(ne,ii,t),Ze.isWebGL2||(ii.get("WEBGL_depth_texture"),ii.get("OES_texture_float"),ii.get("OES_texture_half_float"),ii.get("OES_texture_half_float_linear"),ii.get("OES_standard_derivatives"),ii.get("OES_element_index_uint"),ii.get("ANGLE_instanced_arrays")),ii.get("OES_texture_float_linear"),In=new He(ne,ii,Ze),li=new ue(ne,ii,In,Ze),li.scissor(qi.copy(Ye).multiplyScalar(ti)),li.viewport(_n.copy(Ut).multiplyScalar(ti)),xn=new pt,Pn=new at,No=new je(ne,ii,li,Pn,Ze,In,xn),Oa=new M(ne),Kh=new jt(ne,Oa,xn),Ia=new Kt(Kh,xn),Qh=new ie(ne),Gs=new lt(Yt,ii,Ze),bl=new Ot,Hs=new he,hs=new Di(Yt,li,Ia,J),tu=new mn(ne,ii,xn,Ze),er=new dt(ne,ii,xn,Ze),xn.programs=Gs.programs,Yt.context=ne,Yt.capabilities=Ze,Yt.extensions=ii,Yt.properties=Pn,Yt.renderLists=bl,Yt.state=li,Yt.info=xn}function n(ft){ft.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),Te=!0}function o(){console.log("THREE.WebGLRenderer: Context Restored."),Te=!1,i()}function l(ft){ft=ft.target,ft.removeEventListener("dispose",l),f(ft),Pn.remove(ft)}function f(ft){var Tt=Pn.get(ft).program;ft.program=void 0,Tt!==void 0&&Gs.releaseProgram(Tt)}function p(ft,Tt){ft.render(function(mt){Yt.renderBufferImmediate(mt,Tt)})}function y(ft,Tt,mt){if(ft.visible!==!1){if(ft.layers.test(Tt.layers)){if(ft.isLight)$t.pushLight(ft),ft.castShadow&&$t.pushShadow(ft);else if(ft.isSprite){if(!ft.frustumCulled||Wi.intersectsSprite(ft)){mt&&Ai.setFromMatrixPosition(ft.matrixWorld).applyMatrix4(Li);var Me=Ia.update(ft),ze=ft.material;ee.push(ft,Me,ze,Ai.z,null)}}else if(ft.isImmediateRenderObject)mt&&Ai.setFromMatrixPosition(ft.matrixWorld).applyMatrix4(Li),ee.push(ft,null,ft.material,Ai.z,null);else if((ft.isMesh||ft.isLine||ft.isPoints)&&(ft.isSkinnedMesh&&ft.skeleton.update(),!ft.frustumCulled||Wi.intersectsObject(ft)))if(mt&&Ai.setFromMatrixPosition(ft.matrixWorld).applyMatrix4(Li),Me=Ia.update(ft),ze=ft.material,Array.isArray(ze))for(var Ve=Me.groups,Se=0,Ke=Ve.length;Se<Ke;Se++){var Oi=Ve[Se],$i=ze[Oi.materialIndex];$i&&$i.visible&&ee.push(ft,Me,$i,Ai.z,Oi)}else ze.visible&&ee.push(ft,Me,ze,Ai.z,null)}for(ft=ft.children,Se=0,Ke=ft.length;Se<Ke;Se++)y(ft[Se],Tt,mt)}}function w(ft,Tt,mt,Me){for(var ze=0,Ve=ft.length;ze<Ve;ze++){var Se=ft[ze],Ke=Se.object,Oi=Se.geometry,$i=Me===void 0?Se.material:Me;if(Se=Se.group,mt.isArrayCamera){Cn=mt;for(var ve=mt.cameras,Tr=0,Nn=ve.length;Tr<Nn;Tr++){var an=ve[Tr];if(Ke.layers.test(an.layers)){if("viewport"in an)li.viewport(_n.copy(an.viewport));else{var pr=an.bounds;li.viewport(_n.set(pr.x*An,pr.y*Ce,pr.z*An,pr.w*Ce).multiplyScalar(ti))}$t.setupLights(an),A(Ke,Tt,an,Oi,$i,Se)}}}else Cn=null,A(Ke,Tt,mt,Oi,$i,Se)}}function A(ft,Tt,mt,Me,ze,Ve){if(ft.onBeforeRender(Yt,Tt,mt,Me,ze,Ve),$t=Hs.get(Tt,Cn||mt),ft.modelViewMatrix.multiplyMatrices(mt.matrixWorldInverse,ft.matrixWorld),ft.normalMatrix.getNormalMatrix(ft.modelViewMatrix),ft.isImmediateRenderObject){li.setMaterial(ze);var Se=B(mt,Tt.fog,ze,ft);We=e=null,Qe=!1,p(ft,Se)}else Yt.renderBufferDirect(mt,Tt.fog,Me,ze,ft,Ve);ft.onAfterRender(Yt,Tt,mt,Me,ze,Ve),$t=Hs.get(Tt,Cn||mt)}function P(ft,Tt,mt){var Me=Pn.get(ft),ze=$t.state.lights,Ve=Me.lightsHash,Se=ze.state.hash;mt=Gs.getParameters(ft,ze.state,$t.state.shadowsArray,Tt,Ae.numPlanes,Ae.numIntersection,mt);var Ke=Gs.getProgramCode(ft,mt),Oi=Me.program,$i=!0;if(Oi===void 0)ft.addEventListener("dispose",l);else if(Oi.code!==Ke)f(ft);else{if(Ve.stateID!==Se.stateID||Ve.directionalLength!==Se.directionalLength||Ve.pointLength!==Se.pointLength||Ve.spotLength!==Se.spotLength||Ve.rectAreaLength!==Se.rectAreaLength||Ve.hemiLength!==Se.hemiLength||Ve.shadowsLength!==Se.shadowsLength)Ve.stateID=Se.stateID,Ve.directionalLength=Se.directionalLength,Ve.pointLength=Se.pointLength,Ve.spotLength=Se.spotLength,Ve.rectAreaLength=Se.rectAreaLength,Ve.hemiLength=Se.hemiLength,Ve.shadowsLength=Se.shadowsLength;else if(mt.shaderID!==void 0)return;$i=!1}if($i&&(mt.shaderID?(Ke=wo[mt.shaderID],Me.shader={name:ft.type,uniforms:Bn.clone(Ke.uniforms),vertexShader:Ke.vertexShader,fragmentShader:Ke.fragmentShader}):Me.shader={name:ft.type,uniforms:ft.uniforms,vertexShader:ft.vertexShader,fragmentShader:ft.fragmentShader},ft.onBeforeCompile(Me.shader,Yt),Ke=Gs.getProgramCode(ft,mt),Oi=Gs.acquireProgram(ft,Me.shader,mt,Ke),Me.program=Oi,ft.program=Oi),mt=Oi.getAttributes(),ft.morphTargets)for(Ke=ft.numSupportedMorphTargets=0;Ke<Yt.maxMorphTargets;Ke++)0<=mt["morphTarget"+Ke]&&ft.numSupportedMorphTargets++;if(ft.morphNormals)for(Ke=ft.numSupportedMorphNormals=0;Ke<Yt.maxMorphNormals;Ke++)0<=mt["morphNormal"+Ke]&&ft.numSupportedMorphNormals++;mt=Me.shader.uniforms,(!ft.isShaderMaterial&&!ft.isRawShaderMaterial||ft.clipping===!0)&&(Me.numClippingPlanes=Ae.numPlanes,Me.numIntersection=Ae.numIntersection,mt.clippingPlanes=Ae.uniform),Me.fog=Tt,Ve===void 0&&(Me.lightsHash=Ve={}),Ve.stateID=Se.stateID,Ve.directionalLength=Se.directionalLength,Ve.pointLength=Se.pointLength,Ve.spotLength=Se.spotLength,Ve.rectAreaLength=Se.rectAreaLength,Ve.hemiLength=Se.hemiLength,Ve.shadowsLength=Se.shadowsLength,ft.lights&&(mt.ambientLightColor.value=ze.state.ambient,mt.directionalLights.value=ze.state.directional,mt.spotLights.value=ze.state.spot,mt.rectAreaLights.value=ze.state.rectArea,mt.pointLights.value=ze.state.point,mt.hemisphereLights.value=ze.state.hemi,mt.directionalShadowMap.value=ze.state.directionalShadowMap,mt.directionalShadowMatrix.value=ze.state.directionalShadowMatrix,mt.spotShadowMap.value=ze.state.spotShadowMap,mt.spotShadowMatrix.value=ze.state.spotShadowMatrix,mt.pointShadowMap.value=ze.state.pointShadowMap,mt.pointShadowMatrix.value=ze.state.pointShadowMatrix),ft=Me.program.getUniforms(),ft=ho.seqWithValue(ft.seq,mt),Me.uniformsList=ft}function B(ft,Tt,mt,Me){on=0;var ze=Pn.get(mt),Ve=ze.lightsHash,Se=$t.state.lights.state.hash;Xe&&(ri||ft!==fi)&&Ae.setState(mt.clippingPlanes,mt.clipIntersection,mt.clipShadows,ft,ze,ft===fi&&mt.id===ae),mt.needsUpdate===!1&&(ze.program===void 0||mt.fog&&ze.fog!==Tt?mt.needsUpdate=!0:(!mt.lights||Ve.stateID===Se.stateID&&Ve.directionalLength===Se.directionalLength&&Ve.pointLength===Se.pointLength&&Ve.spotLength===Se.spotLength&&Ve.rectAreaLength===Se.rectAreaLength&&Ve.hemiLength===Se.hemiLength&&Ve.shadowsLength===Se.shadowsLength)&&(ze.numClippingPlanes===void 0||ze.numClippingPlanes===Ae.numPlanes&&ze.numIntersection===Ae.numIntersection)||(mt.needsUpdate=!0)),mt.needsUpdate&&(P(mt,Tt,Me),mt.needsUpdate=!1);var Ke=!1,Oi=!1,$i=!1;Ve=ze.program,Se=Ve.getUniforms();var ve=ze.shader.uniforms;if(li.useProgram(Ve.program)&&($i=Oi=Ke=!0),mt.id!==ae&&(ae=mt.id,Oi=!0),(Ke||fi!==ft)&&(Se.setValue(ne,"projectionMatrix",ft.projectionMatrix),Ze.logarithmicDepthBuffer&&Se.setValue(ne,"logDepthBufFC",2/(Math.log(ft.far+1)/Math.LN2)),fi!==ft&&(fi=ft,$i=Oi=!0),(mt.isShaderMaterial||mt.isMeshPhongMaterial||mt.isMeshStandardMaterial||mt.envMap)&&(Ke=Se.map.cameraPosition,Ke!==void 0&&Ke.setValue(ne,Ai.setFromMatrixPosition(ft.matrixWorld))),(mt.isMeshPhongMaterial||mt.isMeshLambertMaterial||mt.isMeshBasicMaterial||mt.isMeshStandardMaterial||mt.isShaderMaterial||mt.skinning)&&Se.setValue(ne,"viewMatrix",ft.matrixWorldInverse)),mt.skinning&&(Se.setOptional(ne,Me,"bindMatrix"),Se.setOptional(ne,Me,"bindMatrixInverse"),ft=Me.skeleton))if(Ke=ft.bones,Ze.floatVertexTextures){if(ft.boneTexture===void 0){Ke=Math.sqrt(4*Ke.length),Ke=di.ceilPowerOfTwo(Ke),Ke=Math.max(Ke,4);var Tr=new Float32Array(Ke*Ke*4);Tr.set(ft.boneMatrices);var Nn=new I(Tr,Ke,Ke,1023,1015);Nn.needsUpdate=!0,ft.boneMatrices=Tr,ft.boneTexture=Nn,ft.boneTextureSize=Ke}Se.setValue(ne,"boneTexture",ft.boneTexture),Se.setValue(ne,"boneTextureSize",ft.boneTextureSize)}else Se.setOptional(ne,ft,"boneMatrices");return Oi&&(Se.setValue(ne,"toneMappingExposure",Yt.toneMappingExposure),Se.setValue(ne,"toneMappingWhitePoint",Yt.toneMappingWhitePoint),mt.lights&&(Oi=$i,ve.ambientLightColor.needsUpdate=Oi,ve.directionalLights.needsUpdate=Oi,ve.pointLights.needsUpdate=Oi,ve.spotLights.needsUpdate=Oi,ve.rectAreaLights.needsUpdate=Oi,ve.hemisphereLights.needsUpdate=Oi),Tt&&mt.fog&&(ve.fogColor.value=Tt.color,Tt.isFog?(ve.fogNear.value=Tt.near,ve.fogFar.value=Tt.far):Tt.isFogExp2&&(ve.fogDensity.value=Tt.density)),mt.isMeshBasicMaterial?H(ve,mt):mt.isMeshLambertMaterial?(H(ve,mt),mt.emissiveMap&&(ve.emissiveMap.value=mt.emissiveMap)):mt.isMeshPhongMaterial?(H(ve,mt),mt.isMeshToonMaterial?(q(ve,mt),mt.gradientMap&&(ve.gradientMap.value=mt.gradientMap)):q(ve,mt)):mt.isMeshStandardMaterial?(H(ve,mt),mt.isMeshPhysicalMaterial?($(ve,mt),ve.reflectivity.value=mt.reflectivity,ve.clearCoat.value=mt.clearCoat,ve.clearCoatRoughness.value=mt.clearCoatRoughness):$(ve,mt)):mt.isMeshMatcapMaterial?(H(ve,mt),mt.matcap&&(ve.matcap.value=mt.matcap),mt.bumpMap&&(ve.bumpMap.value=mt.bumpMap,ve.bumpScale.value=mt.bumpScale,mt.side===1&&(ve.bumpScale.value*=-1)),mt.normalMap&&(ve.normalMap.value=mt.normalMap,ve.normalScale.value.copy(mt.normalScale),mt.side===1&&ve.normalScale.value.negate()),mt.displacementMap&&(ve.displacementMap.value=mt.displacementMap,ve.displacementScale.value=mt.displacementScale,ve.displacementBias.value=mt.displacementBias)):mt.isMeshDepthMaterial?(H(ve,mt),mt.displacementMap&&(ve.displacementMap.value=mt.displacementMap,ve.displacementScale.value=mt.displacementScale,ve.displacementBias.value=mt.displacementBias)):mt.isMeshDistanceMaterial?(H(ve,mt),mt.displacementMap&&(ve.displacementMap.value=mt.displacementMap,ve.displacementScale.value=mt.displacementScale,ve.displacementBias.value=mt.displacementBias),ve.referencePosition.value.copy(mt.referencePosition),ve.nearDistance.value=mt.nearDistance,ve.farDistance.value=mt.farDistance):mt.isMeshNormalMaterial?(H(ve,mt),mt.bumpMap&&(ve.bumpMap.value=mt.bumpMap,ve.bumpScale.value=mt.bumpScale,mt.side===1&&(ve.bumpScale.value*=-1)),mt.normalMap&&(ve.normalMap.value=mt.normalMap,ve.normalScale.value.copy(mt.normalScale),mt.side===1&&ve.normalScale.value.negate()),mt.displacementMap&&(ve.displacementMap.value=mt.displacementMap,ve.displacementScale.value=mt.displacementScale,ve.displacementBias.value=mt.displacementBias)):mt.isLineBasicMaterial?(ve.diffuse.value=mt.color,ve.opacity.value=mt.opacity,mt.isLineDashedMaterial&&(ve.dashSize.value=mt.dashSize,ve.totalSize.value=mt.dashSize+mt.gapSize,ve.scale.value=mt.scale)):mt.isPointsMaterial?(ve.diffuse.value=mt.color,ve.opacity.value=mt.opacity,ve.size.value=mt.size*ti,ve.scale.value=.5*Ce,ve.map.value=mt.map,mt.map!==null&&(mt.map.matrixAutoUpdate===!0&&mt.map.updateMatrix(),ve.uvTransform.value.copy(mt.map.matrix))):mt.isSpriteMaterial?(ve.diffuse.value=mt.color,ve.opacity.value=mt.opacity,ve.rotation.value=mt.rotation,ve.map.value=mt.map,mt.map!==null&&(mt.map.matrixAutoUpdate===!0&&mt.map.updateMatrix(),ve.uvTransform.value.copy(mt.map.matrix))):mt.isShadowMaterial&&(ve.color.value=mt.color,ve.opacity.value=mt.opacity),ve.ltc_1!==void 0&&(ve.ltc_1.value=qe.LTC_1),ve.ltc_2!==void 0&&(ve.ltc_2.value=qe.LTC_2),ho.upload(ne,ze.uniformsList,ve,Yt)),mt.isShaderMaterial&&mt.uniformsNeedUpdate===!0&&(ho.upload(ne,ze.uniformsList,ve,Yt),mt.uniformsNeedUpdate=!1),mt.isSpriteMaterial&&Se.setValue(ne,"center",Me.center),Se.setValue(ne,"modelViewMatrix",Me.modelViewMatrix),Se.setValue(ne,"normalMatrix",Me.normalMatrix),Se.setValue(ne,"modelMatrix",Me.matrixWorld),Ve}function H(ft,Tt){if(ft.opacity.value=Tt.opacity,Tt.color&&(ft.diffuse.value=Tt.color),Tt.emissive&&ft.emissive.value.copy(Tt.emissive).multiplyScalar(Tt.emissiveIntensity),Tt.map&&(ft.map.value=Tt.map),Tt.alphaMap&&(ft.alphaMap.value=Tt.alphaMap),Tt.specularMap&&(ft.specularMap.value=Tt.specularMap),Tt.envMap&&(ft.envMap.value=Tt.envMap,ft.flipEnvMap.value=Tt.envMap&&Tt.envMap.isCubeTexture?-1:1,ft.reflectivity.value=Tt.reflectivity,ft.refractionRatio.value=Tt.refractionRatio,ft.maxMipLevel.value=Pn.get(Tt.envMap).__maxMipLevel),Tt.lightMap&&(ft.lightMap.value=Tt.lightMap,ft.lightMapIntensity.value=Tt.lightMapIntensity),Tt.aoMap&&(ft.aoMap.value=Tt.aoMap,ft.aoMapIntensity.value=Tt.aoMapIntensity),Tt.map)var mt=Tt.map;else Tt.specularMap?mt=Tt.specularMap:Tt.displacementMap?mt=Tt.displacementMap:Tt.normalMap?mt=Tt.normalMap:Tt.bumpMap?mt=Tt.bumpMap:Tt.roughnessMap?mt=Tt.roughnessMap:Tt.metalnessMap?mt=Tt.metalnessMap:Tt.alphaMap?mt=Tt.alphaMap:Tt.emissiveMap&&(mt=Tt.emissiveMap);mt!==void 0&&(mt.isWebGLRenderTarget&&(mt=mt.texture),mt.matrixAutoUpdate===!0&&mt.updateMatrix(),ft.uvTransform.value.copy(mt.matrix))}function q(ft,Tt){ft.specular.value=Tt.specular,ft.shininess.value=Math.max(Tt.shininess,1e-4),Tt.emissiveMap&&(ft.emissiveMap.value=Tt.emissiveMap),Tt.bumpMap&&(ft.bumpMap.value=Tt.bumpMap,ft.bumpScale.value=Tt.bumpScale,Tt.side===1&&(ft.bumpScale.value*=-1)),Tt.normalMap&&(ft.normalMap.value=Tt.normalMap,ft.normalScale.value.copy(Tt.normalScale),Tt.side===1&&ft.normalScale.value.negate()),Tt.displacementMap&&(ft.displacementMap.value=Tt.displacementMap,ft.displacementScale.value=Tt.displacementScale,ft.displacementBias.value=Tt.displacementBias)}function $(ft,Tt){ft.roughness.value=Tt.roughness,ft.metalness.value=Tt.metalness,Tt.roughnessMap&&(ft.roughnessMap.value=Tt.roughnessMap),Tt.metalnessMap&&(ft.metalnessMap.value=Tt.metalnessMap),Tt.emissiveMap&&(ft.emissiveMap.value=Tt.emissiveMap),Tt.bumpMap&&(ft.bumpMap.value=Tt.bumpMap,ft.bumpScale.value=Tt.bumpScale,Tt.side===1&&(ft.bumpScale.value*=-1)),Tt.normalMap&&(ft.normalMap.value=Tt.normalMap,ft.normalScale.value.copy(Tt.normalScale),Tt.side===1&&ft.normalScale.value.negate()),Tt.displacementMap&&(ft.displacementMap.value=Tt.displacementMap,ft.displacementScale.value=Tt.displacementScale,ft.displacementBias.value=Tt.displacementBias),Tt.envMap&&(ft.envMapIntensity.value=Tt.envMapIntensity)}t=t||{};var rt=t.canvas!==void 0?t.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),xt=t.context!==void 0?t.context:null,gt=t.alpha!==void 0?t.alpha:!1,Ct=t.depth!==void 0?t.depth:!0,wt=t.stencil!==void 0?t.stencil:!0,Vt=t.antialias!==void 0?t.antialias:!1,J=t.premultipliedAlpha!==void 0?t.premultipliedAlpha:!0,ot=t.preserveDrawingBuffer!==void 0?t.preserveDrawingBuffer:!1,zt=t.powerPreference!==void 0?t.powerPreference:"default",ee=null,$t=null;this.domElement=rt,this.context=null,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 Yt=this,Te=!1,me=null,De=null,be=null,ae=-1,We=e=null,Qe=!1,fi=null,Cn=null,_n=new _,qi=new _,Vi=null,on=0,An=rt.width,Ce=rt.height,ti=1,Ut=new _(0,0,An,Ce),Ye=new _(0,0,An,Ce),ei=!1,Wi=new E,Ae=new W,Xe=!1,ri=!1,Li=new c,Ai=new u;try{gt={alpha:gt,depth:Ct,stencil:wt,antialias:Vt,premultipliedAlpha:J,preserveDrawingBuffer:ot,powerPreference:zt},rt.addEventListener("webglcontextlost",n,!1),rt.addEventListener("webglcontextrestored",o,!1);var ne=xt||rt.getContext("webgl",gt)||rt.getContext("experimental-webgl",gt);if(ne===null)throw rt.getContext("webgl")!==null?Error("Error creating WebGL context with your selected attributes."):Error("Error creating WebGL context.");ne.getShaderPrecisionFormat===void 0&&(ne.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(ft){console.error("THREE.WebGLRenderer: "+ft.message)}var ii,Ze,li,xn,Pn,No,Oa,Kh,Ia,Gs,bl,Hs,hs,Qh,tu,er,In;i();var So=null;typeof navigator<"u"&&(So="xr"in navigator?new Le(Yt):new mi(Yt)),this.vr=So;var Gu=new ye(Yt,Ia,Ze.maxTextureSize);this.shadowMap=Gu,this.getContext=function(){return ne},this.getContextAttributes=function(){return ne.getContextAttributes()},this.forceContextLoss=function(){var ft=ii.get("WEBGL_lose_context");ft&&ft.loseContext()},this.forceContextRestore=function(){var ft=ii.get("WEBGL_lose_context");ft&&ft.restoreContext()},this.getPixelRatio=function(){return ti},this.setPixelRatio=function(ft){ft!==void 0&&(ti=ft,this.setSize(An,Ce,!1))},this.getSize=function(){return{width:An,height:Ce}},this.setSize=function(ft,Tt,mt){So.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(An=ft,Ce=Tt,rt.width=ft*ti,rt.height=Tt*ti,mt!==!1&&(rt.style.width=ft+"px",rt.style.height=Tt+"px"),this.setViewport(0,0,ft,Tt))},this.getDrawingBufferSize=function(){return{width:An*ti,height:Ce*ti}},this.setDrawingBufferSize=function(ft,Tt,mt){An=ft,Ce=Tt,ti=mt,rt.width=ft*mt,rt.height=Tt*mt,this.setViewport(0,0,ft,Tt)},this.getCurrentViewport=function(){return _n},this.setViewport=function(ft,Tt,mt,Me){Ut.set(ft,Ce-Tt-Me,mt,Me),li.viewport(_n.copy(Ut).multiplyScalar(ti))},this.setScissor=function(ft,Tt,mt,Me){Ye.set(ft,Ce-Tt-Me,mt,Me),li.scissor(qi.copy(Ye).multiplyScalar(ti))},this.setScissorTest=function(ft){li.setScissorTest(ei=ft)},this.getClearColor=function(){return hs.getClearColor()},this.setClearColor=function(){hs.setClearColor.apply(hs,arguments)},this.getClearAlpha=function(){return hs.getClearAlpha()},this.setClearAlpha=function(){hs.setClearAlpha.apply(hs,arguments)},this.clear=function(ft,Tt,mt){var Me=0;(ft===void 0||ft)&&(Me|=16384),(Tt===void 0||Tt)&&(Me|=256),(mt===void 0||mt)&&(Me|=1024),ne.clear(Me)},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(){rt.removeEventListener("webglcontextlost",n,!1),rt.removeEventListener("webglcontextrestored",o,!1),bl.dispose(),Hs.dispose(),Pn.dispose(),Ia.dispose(),So.dispose(),Fo.stop()},this.renderBufferImmediate=function(ft,Tt){li.initAttributes();var mt=Pn.get(ft);ft.hasPositions&&!mt.position&&(mt.position=ne.createBuffer()),ft.hasNormals&&!mt.normal&&(mt.normal=ne.createBuffer()),ft.hasUvs&&!mt.uv&&(mt.uv=ne.createBuffer()),ft.hasColors&&!mt.color&&(mt.color=ne.createBuffer()),Tt=Tt.getAttributes(),ft.hasPositions&&(ne.bindBuffer(34962,mt.position),ne.bufferData(34962,ft.positionArray,35048),li.enableAttribute(Tt.position),ne.vertexAttribPointer(Tt.position,3,5126,!1,0,0)),ft.hasNormals&&(ne.bindBuffer(34962,mt.normal),ne.bufferData(34962,ft.normalArray,35048),li.enableAttribute(Tt.normal),ne.vertexAttribPointer(Tt.normal,3,5126,!1,0,0)),ft.hasUvs&&(ne.bindBuffer(34962,mt.uv),ne.bufferData(34962,ft.uvArray,35048),li.enableAttribute(Tt.uv),ne.vertexAttribPointer(Tt.uv,2,5126,!1,0,0)),ft.hasColors&&(ne.bindBuffer(34962,mt.color),ne.bufferData(34962,ft.colorArray,35048),li.enableAttribute(Tt.color),ne.vertexAttribPointer(Tt.color,3,5126,!1,0,0)),li.disableUnusedAttributes(),ne.drawArrays(4,0,ft.count),ft.count=0},this.renderBufferDirect=function(ft,Tt,mt,Me,ze,Ve){var Se=ze.isMesh&&0>ze.normalMatrix.determinant();li.setMaterial(Me,Se);var Ke=B(ft,Tt,Me,ze),Oi=!1;(e!==mt.id||We!==Ke.id||Qe!==(Me.wireframe===!0))&&(e=mt.id,We=Ke.id,Qe=Me.wireframe===!0,Oi=!0),ze.morphTargetInfluences&&(Qh.update(ze,mt,Me,Ke),Oi=!0),Se=mt.index;var $i=mt.attributes.position;if(Tt=1,Me.wireframe===!0&&(Se=Kh.getWireframeAttribute(mt),Tt=2),ft=tu,Se!==null){var ve=Oa.get(Se);ft=er,ft.setIndex(ve)}if(Oi){if(mt&&mt.isInstancedBufferGeometry&!Ze.isWebGL2&&ii.get("ANGLE_instanced_arrays")===null)console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{li.initAttributes(),Oi=mt.attributes,Ke=Ke.getAttributes();var Tr=Me.defaultAttributeValues;for(ir in Ke){var Nn=Ke[ir];if(0<=Nn){var an=Oi[ir];if(an!==void 0){var pr=an.normalized,eu=an.itemSize,Eo=Oa.get(an);if(Eo!==void 0){var iu=Eo.buffer,dh=Eo.type;if(Eo=Eo.bytesPerElement,an.isInterleavedBufferAttribute){var za=an.data,Hu=za.stride;an=an.offset,za&&za.isInstancedInterleavedBuffer?(li.enableAttributeAndDivisor(Nn,za.meshPerAttribute),mt.maxInstancedCount===void 0&&(mt.maxInstancedCount=za.meshPerAttribute*za.count)):li.enableAttribute(Nn),ne.bindBuffer(34962,iu),ne.vertexAttribPointer(Nn,eu,dh,pr,Hu*Eo,an*Eo)}else an.isInstancedBufferAttribute?(li.enableAttributeAndDivisor(Nn,an.meshPerAttribute),mt.maxInstancedCount===void 0&&(mt.maxInstancedCount=an.meshPerAttribute*an.count)):li.enableAttribute(Nn),ne.bindBuffer(34962,iu),ne.vertexAttribPointer(Nn,eu,dh,pr,0,0)}}else if(Tr!==void 0&&(pr=Tr[ir],pr!==void 0))switch(pr.length){case 2:ne.vertexAttrib2fv(Nn,pr);break;case 3:ne.vertexAttrib3fv(Nn,pr);break;case 4:ne.vertexAttrib4fv(Nn,pr);break;default:ne.vertexAttrib1fv(Nn,pr)}}}li.disableUnusedAttributes()}Se!==null&&ne.bindBuffer(34963,ve.buffer)}ve=1/0,Se!==null?ve=Se.count:$i!==void 0&&(ve=$i.count),Se=mt.drawRange.start*Tt,$i=Ve!==null?Ve.start*Tt:0;var ir=Math.max(Se,$i);if(Ve=Math.max(0,Math.min(ve,Se+mt.drawRange.count*Tt,$i+(Ve!==null?Ve.count*Tt:1/0))-1-ir+1),Ve!==0){if(ze.isMesh)if(Me.wireframe===!0)li.setLineWidth(Me.wireframeLinewidth*(De===null?ti:1)),ft.setMode(1);else switch(ze.drawMode){case 0:ft.setMode(4);break;case 1:ft.setMode(5);break;case 2:ft.setMode(6)}else ze.isLine?(Me=Me.linewidth,Me===void 0&&(Me=1),li.setLineWidth(Me*(De===null?ti:1)),ze.isLineSegments?ft.setMode(1):ze.isLineLoop?ft.setMode(2):ft.setMode(3)):ze.isPoints?ft.setMode(0):ze.isSprite&&ft.setMode(4);mt&&mt.isInstancedBufferGeometry?0<mt.maxInstancedCount&&ft.renderInstances(mt,ir,Ve):ft.render(ir,Ve)}},this.compile=function(ft,Tt){$t=Hs.get(ft,Tt),$t.init(),ft.traverse(function(mt){mt.isLight&&($t.pushLight(mt),mt.castShadow&&$t.pushShadow(mt))}),$t.setupLights(Tt),ft.traverse(function(mt){if(mt.material)if(Array.isArray(mt.material))for(var Me=0;Me<mt.material.length;Me++)P(mt.material[Me],ft.fog,mt);else P(mt.material,ft.fog,mt)})};var Da=null,Fo=new T;Fo.setAnimationLoop(function(ft){So.isPresenting()||Da&&Da(ft)}),typeof window<"u"&&Fo.setContext(window),this.setAnimationLoop=function(ft){Da=ft,So.setAnimationLoop(ft),Fo.start()},this.render=function(ft,Tt,mt,Me){if(!Tt||!Tt.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!Te){We=e=null,Qe=!1,ae=-1,fi=null,ft.autoUpdate===!0&&ft.updateMatrixWorld(),Tt.parent===null&&Tt.updateMatrixWorld(),So.enabled&&(Tt=So.getCamera(Tt)),$t=Hs.get(ft,Tt),$t.init(),ft.onBeforeRender(Yt,ft,Tt,mt),Li.multiplyMatrices(Tt.projectionMatrix,Tt.matrixWorldInverse),Wi.setFromMatrix(Li),ri=this.localClippingEnabled,Xe=Ae.init(this.clippingPlanes,ri,Tt),ee=bl.get(ft,Tt),ee.init(),y(ft,Tt,Yt.sortObjects),Yt.sortObjects===!0&&ee.sort(),Xe&&Ae.beginShadows(),Gu.render($t.state.shadowsArray,ft,Tt),$t.setupLights(Tt),Xe&&Ae.endShadows(),this.info.autoReset&&this.info.reset(),mt===void 0&&(mt=null),this.setRenderTarget(mt),hs.render(ee,ft,Tt,Me),Me=ee.opaque;var ze=ee.transparent;if(ft.overrideMaterial){var Ve=ft.overrideMaterial;Me.length&&w(Me,ft,Tt,Ve),ze.length&&w(ze,ft,Tt,Ve)}else Me.length&&w(Me,ft,Tt),ze.length&&w(ze,ft,Tt);mt&&No.updateRenderTargetMipmap(mt),li.buffers.depth.setTest(!0),li.buffers.depth.setMask(!0),li.buffers.color.setMask(!0),li.setPolygonOffset(!1),ft.onAfterRender(Yt,ft,Tt),So.enabled&&So.submitFrame(),$t=ee=null}},this.allocTextureUnit=function(){var ft=on;return ft>=Ze.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+ft+" texture units while this GPU supports only "+Ze.maxTextures),on+=1,ft},this.setTexture2D=function(){var ft=!1;return function(Tt,mt){Tt&&Tt.isWebGLRenderTarget&&(ft||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),ft=!0),Tt=Tt.texture),No.setTexture2D(Tt,mt)}}(),this.setTexture3D=function(){return function(ft,Tt){No.setTexture3D(ft,Tt)}}(),this.setTexture=function(){var ft=!1;return function(Tt,mt){ft||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),ft=!0),No.setTexture2D(Tt,mt)}}(),this.setTextureCube=function(){var ft=!1;return function(Tt,mt){Tt&&Tt.isWebGLRenderTargetCube&&(ft||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),ft=!0),Tt=Tt.texture),Tt&&Tt.isCubeTexture||Array.isArray(Tt.image)&&Tt.image.length===6?No.setTextureCube(Tt,mt):No.setTextureCubeDynamic(Tt,mt)}}(),this.setFramebuffer=function(ft){me=ft},this.getRenderTarget=function(){return De},this.setRenderTarget=function(ft){(De=ft)&&Pn.get(ft).__webglFramebuffer===void 0&&No.setupRenderTarget(ft);var Tt=me,mt=!1;ft?(Tt=Pn.get(ft).__webglFramebuffer,ft.isWebGLRenderTargetCube&&(Tt=Tt[ft.activeCubeFace],mt=!0),_n.copy(ft.viewport),qi.copy(ft.scissor),Vi=ft.scissorTest):(_n.copy(Ut).multiplyScalar(ti),qi.copy(Ye).multiplyScalar(ti),Vi=ei),be!==Tt&&(ne.bindFramebuffer(36160,Tt),be=Tt),li.viewport(_n),li.scissor(qi),li.setScissorTest(Vi),mt&&(mt=Pn.get(ft.texture),ne.framebufferTexture2D(36160,36064,34069+ft.activeCubeFace,mt.__webglTexture,ft.activeMipMapLevel))},this.readRenderTargetPixels=function(ft,Tt,mt,Me,ze,Ve){if(ft&&ft.isWebGLRenderTarget){var Se=Pn.get(ft).__webglFramebuffer;if(Se){var Ke=!1;Se!==be&&(ne.bindFramebuffer(36160,Se),Ke=!0);try{var Oi=ft.texture,$i=Oi.format,ve=Oi.type;$i!==1023&&In.convert($i)!==ne.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):ve===1009||In.convert(ve)===ne.getParameter(35738)||ve===1015&&(Ze.isWebGL2||ii.get("OES_texture_float")||ii.get("WEBGL_color_buffer_float"))||ve===1016&&(Ze.isWebGL2?ii.get("EXT_color_buffer_float"):ii.get("EXT_color_buffer_half_float"))?ne.checkFramebufferStatus(36160)===36053?0<=Tt&&Tt<=ft.width-Me&&0<=mt&&mt<=ft.height-ze&&ne.readPixels(Tt,mt,Me,ze,In.convert($i),In.convert(ve),Ve):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{Ke&&ne.bindFramebuffer(36160,be)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")},this.copyFramebufferToTexture=function(ft,Tt,mt){var Me=Tt.image.width,ze=Tt.image.height,Ve=In.convert(Tt.format);this.setTexture2D(Tt,0),ne.copyTexImage2D(3553,mt||0,Ve,ft.x,ft.y,Me,ze,0)},this.copyTextureToTexture=function(ft,Tt,mt,Me){var ze=Tt.image.width,Ve=Tt.image.height,Se=In.convert(mt.format),Ke=In.convert(mt.type);this.setTexture2D(mt,0),Tt.isDataTexture?ne.texSubImage2D(3553,Me||0,ft.x,ft.y,ze,Ve,Se,Ke,Tt.image.data):ne.texSubImage2D(3553,Me||0,ft.x,ft.y,Se,Ke,Tt.image)}}function Re(t,e){this.name="",this.color=new L(t),this.density=e!==void 0?e:25e-5}function Sn(t,e,i){this.name="",this.color=new L(t),this.near=e!==void 0?e:1,this.far=i!==void 0?i:1e3}function Xn(){N.call(this),this.type="Scene",this.overrideMaterial=this.fog=this.background=null,this.autoUpdate=!0}function ki(t,e){this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.version=0}function Bi(t,e,i,n){this.data=t,this.itemSize=e,this.offset=i,this.normalized=n===!0}function Hi(t){Wt.call(this),this.type="SpriteMaterial",this.color=new L(16777215),this.map=null,this.rotation=0,this.sizeAttenuation=!0,this.lights=!1,this.transparent=!0,this.setValues(t)}function nn(t){if(N.call(this),this.type="Sprite",Ra===void 0){Ra=new Ft;var e=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);e=new ki(e,5),Ra.setIndex([0,1,2,0,2,3]),Ra.addAttribute("position",new Bi(e,3,0,!1)),Ra.addAttribute("uv",new Bi(e,2,3,!1))}this.geometry=Ra,this.material=t!==void 0?t:new Hi,this.center=new s(.5,.5)}function rn(){N.call(this),this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function un(t,e){if(t=t||[],this.bones=t.slice(0),this.boneMatrices=new Float32Array(16*this.bones.length),e===void 0)this.calculateInverses();else if(this.bones.length===e.length)this.boneInverses=e.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new c)}function cn(){N.call(this),this.type="Bone"}function Gi(t,e){pi.call(this,t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new c,this.bindMatrixInverse=new c,t=this.initBones(),t=new un(t),this.bind(t,this.matrixWorld),this.normalizeSkinWeights()}function Ni(t){Wt.call(this),this.type="LineBasicMaterial",this.color=new L(16777215),this.linewidth=1,this.linejoin=this.linecap="round",this.lights=!1,this.setValues(t)}function ji(t,e,i){i===1&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead."),N.call(this),this.type="Line",this.geometry=t!==void 0?t:new Ft,this.material=e!==void 0?e:new Ni({color:16777215*Math.random()})}function gi(t,e){ji.call(this,t,e),this.type="LineSegments"}function co(t,e){ji.call(this,t,e),this.type="LineLoop"}function Fn(t){Wt.call(this),this.type="PointsMaterial",this.color=new L(16777215),this.map=null,this.size=1,this.sizeAttenuation=!0,this.lights=this.morphTargets=!1,this.setValues(t)}function la(t,e){N.call(this),this.type="Points",this.geometry=t!==void 0?t:new Ft,this.material=e!==void 0?e:new Fn({color:16777215*Math.random()})}function zh(t,e,i,n,o,l,f,p,y){g.call(this,t,e,i,n,o,l,f,p,y),this.generateMipmaps=!1}function Yo(t,e,i,n,o,l,f,p,y,w,A,P){g.call(this,null,l,f,p,y,w,n,o,A,P),this.image={width:e,height:i},this.mipmaps=t,this.generateMipmaps=this.flipY=!1}function Ka(t,e,i,n,o,l,f,p,y){g.call(this,t,e,i,n,o,l,f,p,y),this.needsUpdate=!0}function Qa(t,e,i,n,o,l,f,p,y,w){if(w=w!==void 0?w:1026,w!==1026&&w!==1027)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");i===void 0&&w===1026&&(i=1012),i===void 0&&w===1027&&(i=1020),g.call(this,null,n,o,l,f,p,w,i,y),this.image={width:t,height:e},this.magFilter=f!==void 0?f:1003,this.minFilter=p!==void 0?p:1003,this.generateMipmaps=this.flipY=!1}function ha(t){Ft.call(this),this.type="WireframeGeometry";var e=[],i,n,o,l=[0,0],f={},p=["a","b","c"];if(t&&t.isGeometry){var y=t.faces,w=0;for(n=y.length;w<n;w++){var A=y[w];for(i=0;3>i;i++){var P=A[p[i]],B=A[p[(i+1)%3]];l[0]=Math.min(P,B),l[1]=Math.max(P,B),P=l[0]+","+l[1],f[P]===void 0&&(f[P]={index1:l[0],index2:l[1]})}}for(P in f)w=f[P],p=t.vertices[w.index1],e.push(p.x,p.y,p.z),p=t.vertices[w.index2],e.push(p.x,p.y,p.z)}else if(t&&t.isBufferGeometry)if(p=new u,t.index!==null){y=t.attributes.position,A=t.index;var H=t.groups;for(H.length===0&&(H=[{start:0,count:A.count,materialIndex:0}]),t=0,o=H.length;t<o;++t)for(w=H[t],i=w.start,n=w.count,w=i,n=i+n;w<n;w+=3)for(i=0;3>i;i++)P=A.getX(w+i),B=A.getX(w+(i+1)%3),l[0]=Math.min(P,B),l[1]=Math.max(P,B),P=l[0]+","+l[1],f[P]===void 0&&(f[P]={index1:l[0],index2:l[1]});for(P in f)w=f[P],p.fromBufferAttribute(y,w.index1),e.push(p.x,p.y,p.z),p.fromBufferAttribute(y,w.index2),e.push(p.x,p.y,p.z)}else for(y=t.attributes.position,w=0,n=y.count/3;w<n;w++)for(i=0;3>i;i++)f=3*w+i,p.fromBufferAttribute(y,f),e.push(p.x,p.y,p.z),f=3*w+(i+1)%3,p.fromBufferAttribute(y,f),e.push(p.x,p.y,p.z);this.addAttribute("position",new Et(e,3))}function tl(t,e,i){X.call(this),this.type="ParametricGeometry",this.parameters={func:t,slices:e,stacks:i},this.fromBufferGeometry(new ua(t,e,i)),this.mergeVertices()}function ua(t,e,i){Ft.call(this),this.type="ParametricBufferGeometry",this.parameters={func:t,slices:e,stacks:i};var n=[],o=[],l=[],f=[],p=new u,y=new u,w=new u,A=new u,P=new u,B,H;3>t.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var q=e+1;for(B=0;B<=i;B++){var $=B/i;for(H=0;H<=e;H++){var rt=H/e;t(rt,$,y),o.push(y.x,y.y,y.z),0<=rt-1e-5?(t(rt-1e-5,$,w),A.subVectors(y,w)):(t(rt+1e-5,$,w),A.subVectors(w,y)),0<=$-1e-5?(t(rt,$-1e-5,w),P.subVectors(y,w)):(t(rt,$+1e-5,w),P.subVectors(w,y)),p.crossVectors(A,P).normalize(),l.push(p.x,p.y,p.z),f.push(rt,$)}}for(B=0;B<i;B++)for(H=0;H<e;H++)t=B*q+H+1,p=(B+1)*q+H+1,y=(B+1)*q+H,n.push(B*q+H,t,y),n.push(t,p,y);this.setIndex(n),this.addAttribute("position",new Et(o,3)),this.addAttribute("normal",new Et(l,3)),this.addAttribute("uv",new Et(f,2))}function Xi(t,e,i,n){X.call(this),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:i,detail:n},this.fromBufferGeometry(new xi(t,e,i,n)),this.mergeVertices()}function xi(t,e,i,n){function o(w){p.push(w.x,w.y,w.z)}function l(w,A){w*=3,A.x=t[w+0],A.y=t[w+1],A.z=t[w+2]}function f(w,A,P,B){0>B&&w.x===1&&(y[A]=w.x-1),P.x===0&&P.z===0&&(y[A]=B/2/Math.PI+.5)}Ft.call(this),this.type="PolyhedronBufferGeometry",this.parameters={vertices:t,indices:e,radius:i,detail:n},i=i||1,n=n||0;var p=[],y=[];(function(w){for(var A=new u,P=new u,B=new u,H=0;H<e.length;H+=3){l(e[H+0],A),l(e[H+1],P),l(e[H+2],B);var q,$,rt=A,xt=P,gt=B,Ct=Math.pow(2,w),wt=[];for($=0;$<=Ct;$++){wt[$]=[];var Vt=rt.clone().lerp(gt,$/Ct),J=xt.clone().lerp(gt,$/Ct),ot=Ct-$;for(q=0;q<=ot;q++)wt[$][q]=q===0&&$===Ct?Vt:Vt.clone().lerp(J,q/ot)}for($=0;$<Ct;$++)for(q=0;q<2*(Ct-$)-1;q++)rt=Math.floor(q/2),q%2===0?(o(wt[$][rt+1]),o(wt[$+1][rt]),o(wt[$][rt])):(o(wt[$][rt+1]),o(wt[$+1][rt+1]),o(wt[$+1][rt]))}})(n),function(w){for(var A=new u,P=0;P<p.length;P+=3)A.x=p[P+0],A.y=p[P+1],A.z=p[P+2],A.normalize().multiplyScalar(w),p[P+0]=A.x,p[P+1]=A.y,p[P+2]=A.z}(i),function(){for(var w=new u,A=0;A<p.length;A+=3)w.x=p[A+0],w.y=p[A+1],w.z=p[A+2],y.push(Math.atan2(w.z,-w.x)/2/Math.PI+.5,1-(Math.atan2(-w.y,Math.sqrt(w.x*w.x+w.z*w.z))/Math.PI+.5));w=new u,A=new u;for(var P=new u,B=new u,H=new s,q=new s,$=new s,rt=0,xt=0;rt<p.length;rt+=9,xt+=6){w.set(p[rt+0],p[rt+1],p[rt+2]),A.set(p[rt+3],p[rt+4],p[rt+5]),P.set(p[rt+6],p[rt+7],p[rt+8]),H.set(y[xt+0],y[xt+1]),q.set(y[xt+2],y[xt+3]),$.set(y[xt+4],y[xt+5]),B.copy(w).add(A).add(P).divideScalar(3);var gt=Math.atan2(B.z,-B.x);f(H,xt+0,w,gt),f(q,xt+2,A,gt),f($,xt+4,P,gt)}for(w=0;w<y.length;w+=6)A=y[w+0],P=y[w+2],B=y[w+4],H=Math.min(A,P,B),.9<Math.max(A,P,B)&&.1>H&&(.2>A&&(y[w+0]+=1),.2>P&&(y[w+2]+=1),.2>B&&(y[w+4]+=1))}(),this.addAttribute("position",new Et(p,3)),this.addAttribute("normal",new Et(p.slice(),3)),this.addAttribute("uv",new Et(y,2)),n===0?this.computeVertexNormals():this.normalizeNormals()}function el(t,e){X.call(this),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new ca(t,e)),this.mergeVertices()}function ca(t,e){xi.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],t,e),this.type="TetrahedronBufferGeometry",this.parameters={radius:t,detail:e}}function il(t,e){X.call(this),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new _s(t,e)),this.mergeVertices()}function _s(t,e){xi.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],t,e),this.type="OctahedronBufferGeometry",this.parameters={radius:t,detail:e}}function nl(t,e){X.call(this),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new fa(t,e)),this.mergeVertices()}function fa(t,e){var i=(1+Math.sqrt(5))/2;xi.call(this,[-1,i,0,1,i,0,-1,-i,0,1,-i,0,0,-1,i,0,1,i,0,-1,-i,0,1,-i,i,0,-1,i,0,1,-i,0,-1,-i,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],t,e),this.type="IcosahedronBufferGeometry",this.parameters={radius:t,detail:e}}function da(t,e){X.call(this),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new pa(t,e)),this.mergeVertices()}function pa(t,e){var i=(1+Math.sqrt(5))/2,n=1/i;xi.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,-n,-i,0,-n,i,0,n,-i,0,n,i,-n,-i,0,-n,i,0,n,-i,0,n,i,0,-i,0,-n,i,0,-n,-i,0,n,i,0,n],[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],t,e),this.type="DodecahedronBufferGeometry",this.parameters={radius:t,detail:e}}function gn(t,e,i,n,o,l){X.call(this),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:i,radialSegments:n,closed:o},l!==void 0&&console.warn("THREE.TubeGeometry: taper has been removed."),t=new Zo(t,e,i,n,o),this.tangents=t.tangents,this.normals=t.normals,this.binormals=t.binormals,this.fromBufferGeometry(t),this.mergeVertices()}function Zo(t,e,i,n,o){function l(xt){A=t.getPointAt(xt/e,A);var gt=f.normals[xt];for(xt=f.binormals[xt],B=0;B<=n;B++){var Ct=B/n*Math.PI*2,wt=Math.sin(Ct);Ct=-Math.cos(Ct),y.x=Ct*gt.x+wt*xt.x,y.y=Ct*gt.y+wt*xt.y,y.z=Ct*gt.z+wt*xt.z,y.normalize(),q.push(y.x,y.y,y.z),p.x=A.x+i*y.x,p.y=A.y+i*y.y,p.z=A.z+i*y.z,H.push(p.x,p.y,p.z)}}Ft.call(this),this.type="TubeBufferGeometry",this.parameters={path:t,tubularSegments:e,radius:i,radialSegments:n,closed:o},e=e||64,i=i||1,n=n||8,o=o||!1;var f=t.computeFrenetFrames(e,o);this.tangents=f.tangents,this.normals=f.normals,this.binormals=f.binormals;var p=new u,y=new u,w=new s,A=new u,P,B,H=[],q=[],$=[],rt=[];for(P=0;P<e;P++)l(P);for(l(o===!1?e:0),P=0;P<=e;P++)for(B=0;B<=n;B++)w.x=P/e,w.y=B/n,$.push(w.x,w.y);(function(){for(B=1;B<=e;B++)for(P=1;P<=n;P++){var xt=(n+1)*B+(P-1),gt=(n+1)*B+P,Ct=(n+1)*(B-1)+P;rt.push((n+1)*(B-1)+(P-1),xt,Ct),rt.push(xt,gt,Ct)}})(),this.setIndex(rt),this.addAttribute("position",new Et(H,3)),this.addAttribute("normal",new Et(q,3)),this.addAttribute("uv",new Et($,2))}function Zr(t,e,i,n,o,l,f){X.call(this),this.type="TorusKnotGeometry",this.parameters={radius:t,tube:e,tubularSegments:i,radialSegments:n,p:o,q:l},f!==void 0&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead."),this.fromBufferGeometry(new xs(t,e,i,n,o,l)),this.mergeVertices()}function xs(t,e,i,n,o,l){function f(J,ot,zt,ee,$t){var Yt=Math.sin(J);ot=zt/ot*J,zt=Math.cos(ot),$t.x=ee*(2+zt)*.5*Math.cos(J),$t.y=ee*(2+zt)*Yt*.5,$t.z=ee*Math.sin(ot)*.5}Ft.call(this),this.type="TorusKnotBufferGeometry",this.parameters={radius:t,tube:e,tubularSegments:i,radialSegments:n,p:o,q:l},t=t||1,e=e||.4,i=Math.floor(i)||64,n=Math.floor(n)||8,o=o||2,l=l||3;var p=[],y=[],w=[],A=[],P,B=new u,H=new u,q=new u,$=new u,rt=new u,xt=new u,gt=new u;for(P=0;P<=i;++P){var Ct=P/i*o*Math.PI*2;for(f(Ct,o,l,t,q),f(Ct+.01,o,l,t,$),xt.subVectors($,q),gt.addVectors($,q),rt.crossVectors(xt,gt),gt.crossVectors(rt,xt),rt.normalize(),gt.normalize(),Ct=0;Ct<=n;++Ct){var wt=Ct/n*Math.PI*2,Vt=-e*Math.cos(wt);wt=e*Math.sin(wt),B.x=q.x+(Vt*gt.x+wt*rt.x),B.y=q.y+(Vt*gt.y+wt*rt.y),B.z=q.z+(Vt*gt.z+wt*rt.z),y.push(B.x,B.y,B.z),H.subVectors(B,q).normalize(),w.push(H.x,H.y,H.z),A.push(P/i),A.push(Ct/n)}}for(Ct=1;Ct<=i;Ct++)for(P=1;P<=n;P++)t=(n+1)*Ct+(P-1),e=(n+1)*Ct+P,o=(n+1)*(Ct-1)+P,p.push((n+1)*(Ct-1)+(P-1),t,o),p.push(t,e,o);this.setIndex(p),this.addAttribute("position",new Et(y,3)),this.addAttribute("normal",new Et(w,3)),this.addAttribute("uv",new Et(A,2))}function ws(t,e,i,n,o){X.call(this),this.type="TorusGeometry",this.parameters={radius:t,tube:e,radialSegments:i,tubularSegments:n,arc:o},this.fromBufferGeometry(new Un(t,e,i,n,o)),this.mergeVertices()}function Un(t,e,i,n,o){Ft.call(this),this.type="TorusBufferGeometry",this.parameters={radius:t,tube:e,radialSegments:i,tubularSegments:n,arc:o},t=t||1,e=e||.4,i=Math.floor(i)||8,n=Math.floor(n)||6,o=o||2*Math.PI;var l=[],f=[],p=[],y=[],w=new u,A=new u,P=new u,B,H;for(B=0;B<=i;B++)for(H=0;H<=n;H++){var q=H/n*o,$=B/i*Math.PI*2;A.x=(t+e*Math.cos($))*Math.cos(q),A.y=(t+e*Math.cos($))*Math.sin(q),A.z=e*Math.sin($),f.push(A.x,A.y,A.z),w.x=t*Math.cos(q),w.y=t*Math.sin(q),P.subVectors(A,w).normalize(),p.push(P.x,P.y,P.z),y.push(H/n),y.push(B/i)}for(B=1;B<=i;B++)for(H=1;H<=n;H++)t=(n+1)*(B-1)+H-1,e=(n+1)*(B-1)+H,o=(n+1)*B+H,l.push((n+1)*B+H-1,t,o),l.push(t,e,o);this.setIndex(l),this.addAttribute("position",new Et(f,3)),this.addAttribute("normal",new Et(p,3)),this.addAttribute("uv",new Et(y,2))}function kh(t,e,i,n,o){for(var l,f=0,p=e,y=i-n;p<i;p+=n)f+=(t[y]-t[p])*(t[p+1]+t[y+1]),y=p;if(o===0<f)for(o=e;o<i;o+=n)l=Jl(o,t[o],t[o+1],l);else for(o=i-n;o>=e;o-=n)l=Jl(o,t[o],t[o+1],l);return l&&Ts(l,l.next)&&(Yi(l),l=l.next),l}function ma(t,e){if(!t)return t;e||(e=t);do{var i=!1;if(t.steiner||!Ts(t,t.next)&&Ji(t.prev,t,t.next)!==0)t=t.next;else{if(Yi(t),t=e=t.prev,t===t.next)break;i=!0}}while(i||t!==e);return e}function ga(t,e,i,n,o,l,f){if(t){if(!f&&l){var p=t,y=p;do y.z===null&&(y.z=Yl(y.x,y.y,n,o,l)),y.prevZ=y.prev,y=y.nextZ=y.next;while(y!==p);y.prevZ.nextZ=null,y.prevZ=null,p=y;var w,A,P,B,H=1;do{y=p;var q=p=null;for(A=0;y;){A++;var $=y;for(w=P=0;w<H&&(P++,$=$.nextZ,$);w++);for(B=H;0<P||0<B&&$;)P!==0&&(B===0||!$||y.z<=$.z)?(w=y,y=y.nextZ,P--):(w=$,$=$.nextZ,B--),q?q.nextZ=w:p=w,w.prevZ=q,q=w;y=$}q.nextZ=null,H*=2}while(1<A)}for(p=t;t.prev!==t.next;){if(y=t.prev,$=t.next,l)t:{q=t,B=n;var rt=o,xt=l;if(A=q.prev,P=q,H=q.next,0<=Ji(A,P,H))q=!1;else{var gt=A.x>P.x?A.x>H.x?A.x:H.x:P.x>H.x?P.x:H.x,Ct=A.y>P.y?A.y>H.y?A.y:H.y:P.y>H.y?P.y:H.y;for(w=Yl(A.x<P.x?A.x<H.x?A.x:H.x:P.x<H.x?P.x:H.x,A.y<P.y?A.y<H.y?A.y:H.y:P.y<H.y?P.y:H.y,B,rt,xt),B=Yl(gt,Ct,B,rt,xt),rt=q.nextZ;rt&&rt.z<=B;){if(rt!==q.prev&&rt!==q.next&&Zl(A.x,A.y,P.x,P.y,H.x,H.y,rt.x,rt.y)&&0<=Ji(rt.prev,rt,rt.next)){q=!1;break t}rt=rt.nextZ}for(rt=q.prevZ;rt&&rt.z>=w;){if(rt!==q.prev&&rt!==q.next&&Zl(A.x,A.y,P.x,P.y,H.x,H.y,rt.x,rt.y)&&0<=Ji(rt.prev,rt,rt.next)){q=!1;break t}rt=rt.prevZ}q=!0}}else t:if(q=t,A=q.prev,P=q,H=q.next,0<=Ji(A,P,H))q=!1;else{for(w=q.next.next;w!==q.prev;){if(Zl(A.x,A.y,P.x,P.y,H.x,H.y,w.x,w.y)&&0<=Ji(w.prev,w,w.next)){q=!1;break t}w=w.next}q=!0}if(q)e.push(y.i/i),e.push(t.i/i),e.push($.i/i),Yi(t),p=t=$.next;else if(t=$,t===p){if(!f)ga(ma(t),e,i,n,o,l,1);else if(f===1){f=e,p=i,y=t;do $=y.prev,q=y.next.next,!Ts($,q)&&Bh($,y,y.next,q)&&Rr($,q)&&Rr(q,$)&&(f.push($.i/p),f.push(y.i/p),f.push(q.i/p),Yi(y),Yi(y.next),y=t=q),y=y.next;while(y!==t);t=y,ga(t,e,i,n,o,l,2)}else if(f===2)t:{f=t;do{for(p=f.next.next;p!==f.prev;){if(y=f.i!==p.i){if(y=f,$=p,q=y.next.i!==$.i&&y.prev.i!==$.i){e:{q=y;do{if(q.i!==y.i&&q.next.i!==y.i&&q.i!==$.i&&q.next.i!==$.i&&Bh(q,q.next,y,$)){q=!0;break e}q=q.next}while(q!==y);q=!1}q=!q}if(q=q&&Rr(y,$)&&Rr($,y)){q=y,A=!1,P=(y.x+$.x)/2,$=(y.y+$.y)/2;do q.y>$!=q.next.y>$&&q.next.y!==q.y&&P<(q.next.x-q.x)*($-q.y)/(q.next.y-q.y)+q.x&&(A=!A),q=q.next;while(q!==y);q=A}y=q}if(y){t=rl(f,p),f=ma(f,f.next),t=ma(t,t.next),ga(f,e,i,n,o,l),ga(t,e,i,n,o,l);break t}p=p.next}f=f.next}while(f!==t)}break}}}}function Su(t,e){return t.x-e.x}function Eu(t,e){var i=e,n=t.x,o=t.y,l=-1/0;do{if(o<=i.y&&o>=i.next.y&&i.next.y!==i.y){var f=i.x+(o-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(f<=n&&f>l){if(l=f,f===n){if(o===i.y)return i;if(o===i.next.y)return i.next}var p=i.x<i.next.x?i:i.next}}i=i.next}while(i!==e);if(!p)return null;if(n===l)return p.prev;e=p,f=p.x;var y=p.y,w=1/0;for(i=p.next;i!==e;){if(n>=i.x&&i.x>=f&&n!==i.x&&Zl(o<y?n:l,o,f,y,o<y?l:n,o,i.x,i.y)){var A=Math.abs(o-i.y)/(n-i.x);(A<w||A===w&&i.x>p.x)&&Rr(i,t)&&(p=i,w=A)}i=i.next}return p}function Yl(t,e,i,n,o){return t=32767*(t-i)*o,e=32767*(e-n)*o,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,(t|t<<1)&1431655765|((e|e<<1)&1431655765)<<1}function yr(t){var e=t,i=t;do e.x<i.x&&(i=e),e=e.next;while(e!==t);return i}function Zl(t,e,i,n,o,l,f,p){return 0<=(o-f)*(e-p)-(t-f)*(l-p)&&0<=(t-f)*(n-p)-(i-f)*(e-p)&&0<=(i-f)*(l-p)-(o-f)*(n-p)}function Ji(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function Ts(t,e){return t.x===e.x&&t.y===e.y}function Bh(t,e,i,n){return Ts(t,e)&&Ts(i,n)||Ts(t,n)&&Ts(i,e)?!0:0<Ji(t,e,i)!=0<Ji(t,e,n)&&0<Ji(i,n,t)!=0<Ji(i,n,e)}function Rr(t,e){return 0>Ji(t.prev,t,t.next)?0<=Ji(t,e,t.next)&&0<=Ji(t,t.prev,e):0>Ji(t,e,t.prev)||0>Ji(t,t.next,e)}function rl(t,e){var i=new fo(t.i,t.x,t.y),n=new fo(e.i,e.x,e.y),o=t.next,l=e.prev;return t.next=e,e.prev=t,i.next=o,o.prev=i,n.next=i,i.prev=n,l.next=n,n.prev=l,n}function Jl(t,e,i,n){return t=new fo(t,e,i),n?(t.next=n.next,t.prev=n,n.next.prev=t,n.next=t):(t.prev=t,t.next=t),t}function Yi(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function fo(t,e,i){this.i=t,this.x=e,this.y=i,this.nextZ=this.prevZ=this.z=this.next=this.prev=null,this.steiner=!1}function $l(t){var e=t.length;2<e&&t[e-1].equals(t[0])&&t.pop()}function bu(t,e){for(var i=0;i<e.length;i++)t.push(e[i].x),t.push(e[i].y)}function Po(t,e){X.call(this),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},this.fromBufferGeometry(new po(t,e)),this.mergeVertices()}function po(t,e){function i(y){function w(Xe,ri,Li){return ri||console.error("THREE.ExtrudeGeometry: vec does not exist"),ri.clone().multiplyScalar(Li).add(Xe)}function A(Xe,ri,Li){var Ai=Xe.x-ri.x,ne=Xe.y-ri.y,ii=Li.x-Xe.x,Ze=Li.y-Xe.y,li=Ai*Ai+ne*ne;if(Math.abs(Ai*Ze-ne*ii)>Number.EPSILON){var xn=Math.sqrt(li),Pn=Math.sqrt(ii*ii+Ze*Ze);if(li=ri.x-ne/xn,ri=ri.y+Ai/xn,Ze=((Li.x-Ze/Pn-li)*Ze-(Li.y+ii/Pn-ri)*ii)/(Ai*Ze-ne*ii),ii=li+Ai*Ze-Xe.x,Ai=ri+ne*Ze-Xe.y,ne=ii*ii+Ai*Ai,2>=ne)return new s(ii,Ai);ne=Math.sqrt(ne/2)}else Xe=!1,Ai>Number.EPSILON?ii>Number.EPSILON&&(Xe=!0):Ai<-Number.EPSILON?ii<-Number.EPSILON&&(Xe=!0):Math.sign(ne)===Math.sign(Ze)&&(Xe=!0),Xe?(ii=-ne,ne=Math.sqrt(li)):(ii=Ai,Ai=ne,ne=Math.sqrt(li/2));return new s(ii/ne,Ai/ne)}function P(Xe,ri){for(Ce=Xe.length;0<=--Ce;){var Li=Ce,Ai=Ce-1;0>Ai&&(Ai=Xe.length-1);var ne,ii=gt+2*ot;for(ne=0;ne<ii;ne++){var Ze=Vi*ne,li=Vi*(ne+1),xn=ri+Ai+Ze,Pn=ri+Ai+li;li=ri+Li+li,q(ri+Li+Ze),q(xn),q(li),q(xn),q(Pn),q(li),Ze=o.length/3,Ze=ee.generateSideWallUV(n,o,Ze-6,Ze-3,Ze-2,Ze-1),$(Ze[0]),$(Ze[1]),$(Ze[3]),$(Ze[1]),$(Ze[2]),$(Ze[3])}}}function B(Xe,ri,Li){rt.push(Xe),rt.push(ri),rt.push(Li)}function H(Xe,ri,Li){q(Xe),q(ri),q(Li),Xe=o.length/3,Xe=ee.generateTopUV(n,o,Xe-3,Xe-2,Xe-1),$(Xe[0]),$(Xe[1]),$(Xe[2])}function q(Xe){o.push(rt[3*Xe]),o.push(rt[3*Xe+1]),o.push(rt[3*Xe+2])}function $(Xe){l.push(Xe.x),l.push(Xe.y)}var rt=[],xt=e.curveSegments!==void 0?e.curveSegments:12,gt=e.steps!==void 0?e.steps:1,Ct=e.depth!==void 0?e.depth:100,wt=e.bevelEnabled!==void 0?e.bevelEnabled:!0,Vt=e.bevelThickness!==void 0?e.bevelThickness:6,J=e.bevelSize!==void 0?e.bevelSize:Vt-2,ot=e.bevelSegments!==void 0?e.bevelSegments:3,zt=e.extrudePath,ee=e.UVGenerator!==void 0?e.UVGenerator:Ml;e.amount!==void 0&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),Ct=e.amount);var $t=!1;if(zt){var Yt=zt.getSpacedPoints(gt);$t=!0,wt=!1;var Te=zt.computeFrenetFrames(gt,!1),me=new u,De=new u,be=new u}wt||(J=Vt=ot=0);var ae;xt=y.extractPoints(xt),y=xt.shape;var We=xt.holes;if(!To.isClockWise(y)){y=y.reverse();var Qe=0;for(ae=We.length;Qe<ae;Qe++){var fi=We[Qe];To.isClockWise(fi)&&(We[Qe]=fi.reverse())}}var Cn=To.triangulateShape(y,We),_n=y;for(Qe=0,ae=We.length;Qe<ae;Qe++)fi=We[Qe],y=y.concat(fi);var qi,Vi=y.length,on,An=Cn.length;xt=[];var Ce=0,ti=_n.length,Ut=ti-1;for(qi=Ce+1;Ce<ti;Ce++,Ut++,qi++)Ut===ti&&(Ut=0),qi===ti&&(qi=0),xt[Ce]=A(_n[Ce],_n[Ut],_n[qi]);zt=[];var Ye=xt.concat();for(Qe=0,ae=We.length;Qe<ae;Qe++){fi=We[Qe];var ei=[];for(Ce=0,ti=fi.length,Ut=ti-1,qi=Ce+1;Ce<ti;Ce++,Ut++,qi++)Ut===ti&&(Ut=0),qi===ti&&(qi=0),ei[Ce]=A(fi[Ce],fi[Ut],fi[qi]);zt.push(ei),Ye=Ye.concat(ei)}for(Ut=0;Ut<ot;Ut++){ti=Ut/ot;var Wi=Vt*Math.cos(ti*Math.PI/2);for(qi=J*Math.sin(ti*Math.PI/2),Ce=0,ti=_n.length;Ce<ti;Ce++){var Ae=w(_n[Ce],xt[Ce],qi);B(Ae.x,Ae.y,-Wi)}for(Qe=0,ae=We.length;Qe<ae;Qe++)for(fi=We[Qe],ei=zt[Qe],Ce=0,ti=fi.length;Ce<ti;Ce++)Ae=w(fi[Ce],ei[Ce],qi),B(Ae.x,Ae.y,-Wi)}for(qi=J,Ce=0;Ce<Vi;Ce++)Ae=wt?w(y[Ce],Ye[Ce],qi):y[Ce],$t?(De.copy(Te.normals[0]).multiplyScalar(Ae.x),me.copy(Te.binormals[0]).multiplyScalar(Ae.y),be.copy(Yt[0]).add(De).add(me),B(be.x,be.y,be.z)):B(Ae.x,Ae.y,0);for(ti=1;ti<=gt;ti++)for(Ce=0;Ce<Vi;Ce++)Ae=wt?w(y[Ce],Ye[Ce],qi):y[Ce],$t?(De.copy(Te.normals[ti]).multiplyScalar(Ae.x),me.copy(Te.binormals[ti]).multiplyScalar(Ae.y),be.copy(Yt[ti]).add(De).add(me),B(be.x,be.y,be.z)):B(Ae.x,Ae.y,Ct/gt*ti);for(Ut=ot-1;0<=Ut;Ut--){for(ti=Ut/ot,Wi=Vt*Math.cos(ti*Math.PI/2),qi=J*Math.sin(ti*Math.PI/2),Ce=0,ti=_n.length;Ce<ti;Ce++)Ae=w(_n[Ce],xt[Ce],qi),B(Ae.x,Ae.y,Ct+Wi);for(Qe=0,ae=We.length;Qe<ae;Qe++)for(fi=We[Qe],ei=zt[Qe],Ce=0,ti=fi.length;Ce<ti;Ce++)Ae=w(fi[Ce],ei[Ce],qi),$t?B(Ae.x,Ae.y+Yt[gt-1].y,Yt[gt-1].x+Wi):B(Ae.x,Ae.y,Ct+Wi)}(function(){var Xe=o.length/3;if(wt){var ri=0*Vi;for(Ce=0;Ce<An;Ce++)on=Cn[Ce],H(on[2]+ri,on[1]+ri,on[0]+ri);for(ri=Vi*(gt+2*ot),Ce=0;Ce<An;Ce++)on=Cn[Ce],H(on[0]+ri,on[1]+ri,on[2]+ri)}else{for(Ce=0;Ce<An;Ce++)on=Cn[Ce],H(on[2],on[1],on[0]);for(Ce=0;Ce<An;Ce++)on=Cn[Ce],H(on[0]+Vi*gt,on[1]+Vi*gt,on[2]+Vi*gt)}n.addGroup(Xe,o.length/3-Xe,0)})(),function(){var Xe=o.length/3,ri=0;for(P(_n,ri),ri+=_n.length,Qe=0,ae=We.length;Qe<ae;Qe++)fi=We[Qe],P(fi,ri),ri+=fi.length;n.addGroup(Xe,o.length/3-Xe,1)}()}Ft.call(this),this.type="ExtrudeBufferGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];for(var n=this,o=[],l=[],f=0,p=t.length;f<p;f++)i(t[f]);this.addAttribute("position",new Et(o,3)),this.addAttribute("uv",new Et(l,2)),this.computeVertexNormals()}function Cu(t,e,i){if(i.shapes=[],Array.isArray(t))for(var n=0,o=t.length;n<o;n++)i.shapes.push(t[n].uuid);else i.shapes.push(t.uuid);return e.extrudePath!==void 0&&(i.options.extrudePath=e.extrudePath.toJSON()),i}function ol(t,e){X.call(this),this.type="TextGeometry",this.parameters={text:t,parameters:e},this.fromBufferGeometry(new Ms(t,e)),this.mergeVertices()}function Ms(t,e){e=e||{};var i=e.font;if(!i||!i.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new X;t=i.generateShapes(t,e.size),e.depth=e.height!==void 0?e.height:50,e.bevelThickness===void 0&&(e.bevelThickness=10),e.bevelSize===void 0&&(e.bevelSize=8),e.bevelEnabled===void 0&&(e.bevelEnabled=!1),po.call(this,t,e),this.type="TextBufferGeometry"}function Jo(t,e,i,n,o,l,f){X.call(this),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:n,phiLength:o,thetaStart:l,thetaLength:f},this.fromBufferGeometry(new Or(t,e,i,n,o,l,f)),this.mergeVertices()}function Or(t,e,i,n,o,l,f){Ft.call(this),this.type="SphereBufferGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:n,phiLength:o,thetaStart:l,thetaLength:f},t=t||1,e=Math.max(3,Math.floor(e)||8),i=Math.max(2,Math.floor(i)||6),n=n!==void 0?n:0,o=o!==void 0?o:2*Math.PI,l=l!==void 0?l:0,f=f!==void 0?f:Math.PI;var p=l+f,y,w,A=0,P=[],B=new u,H=new u,q=[],$=[],rt=[],xt=[];for(w=0;w<=i;w++){var gt=[],Ct=w/i;for(y=0;y<=e;y++){var wt=y/e;B.x=-t*Math.cos(n+wt*o)*Math.sin(l+Ct*f),B.y=t*Math.cos(l+Ct*f),B.z=t*Math.sin(n+wt*o)*Math.sin(l+Ct*f),$.push(B.x,B.y,B.z),H.set(B.x,B.y,B.z).normalize(),rt.push(H.x,H.y,H.z),xt.push(wt,1-Ct),gt.push(A++)}P.push(gt)}for(w=0;w<i;w++)for(y=0;y<e;y++)t=P[w][y+1],n=P[w][y],o=P[w+1][y],f=P[w+1][y+1],(w!==0||0<l)&&q.push(t,n,f),(w!==i-1||p<Math.PI)&&q.push(n,o,f);this.setIndex(q),this.addAttribute("position",new Et($,3)),this.addAttribute("normal",new Et(rt,3)),this.addAttribute("uv",new Et(xt,2))}function sl(t,e,i,n,o,l){X.call(this),this.type="RingGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:i,phiSegments:n,thetaStart:o,thetaLength:l},this.fromBufferGeometry(new Ss(t,e,i,n,o,l)),this.mergeVertices()}function Ss(t,e,i,n,o,l){Ft.call(this),this.type="RingBufferGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:i,phiSegments:n,thetaStart:o,thetaLength:l},t=t||.5,e=e||1,o=o!==void 0?o:0,l=l!==void 0?l:2*Math.PI,i=i!==void 0?Math.max(3,i):8,n=n!==void 0?Math.max(1,n):1;var f=[],p=[],y=[],w=[],A=t,P=(e-t)/n,B=new u,H=new s,q,$;for(q=0;q<=n;q++){for($=0;$<=i;$++)t=o+$/i*l,B.x=A*Math.cos(t),B.y=A*Math.sin(t),p.push(B.x,B.y,B.z),y.push(0,0,1),H.x=(B.x/e+1)/2,H.y=(B.y/e+1)/2,w.push(H.x,H.y);A+=P}for(q=0;q<n;q++)for(e=q*(i+1),$=0;$<i;$++)t=$+e,o=t+i+1,l=t+i+2,A=t+1,f.push(t,o,A),f.push(o,l,A);this.setIndex(f),this.addAttribute("position",new Et(p,3)),this.addAttribute("normal",new Et(y,3)),this.addAttribute("uv",new Et(w,2))}function va(t,e,i,n){X.call(this),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:i,phiLength:n},this.fromBufferGeometry(new $o(t,e,i,n)),this.mergeVertices()}function $o(t,e,i,n){Ft.call(this),this.type="LatheBufferGeometry",this.parameters={points:t,segments:e,phiStart:i,phiLength:n},e=Math.floor(e)||12,i=i||0,n=n||2*Math.PI,n=di.clamp(n,0,2*Math.PI);var o=[],l=[],f=[],p=1/e,y=new u,w=new s,A;for(A=0;A<=e;A++){var P=i+A*p*n,B=Math.sin(P),H=Math.cos(P);for(P=0;P<=t.length-1;P++)y.x=t[P].x*B,y.y=t[P].y,y.z=t[P].x*H,l.push(y.x,y.y,y.z),w.x=A/e,w.y=P/(t.length-1),f.push(w.x,w.y)}for(A=0;A<e;A++)for(P=0;P<t.length-1;P++)i=P+A*t.length,p=i+t.length,y=i+t.length+1,w=i+1,o.push(i,p,w),o.push(p,y,w);if(this.setIndex(o),this.addAttribute("position",new Et(l,3)),this.addAttribute("uv",new Et(f,2)),this.computeVertexNormals(),n===2*Math.PI)for(n=this.attributes.normal.array,o=new u,l=new u,f=new u,i=e*t.length*3,P=A=0;A<t.length;A++,P+=3)o.x=n[P+0],o.y=n[P+1],o.z=n[P+2],l.x=n[i+P+0],l.y=n[i+P+1],l.z=n[i+P+2],f.addVectors(o,l).normalize(),n[P+0]=n[i+P+0]=f.x,n[P+1]=n[i+P+1]=f.y,n[P+2]=n[i+P+2]=f.z}function Lo(t,e){X.call(this),this.type="ShapeGeometry",typeof e=="object"&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),e=e.curveSegments),this.parameters={shapes:t,curveSegments:e},this.fromBufferGeometry(new Ko(t,e)),this.mergeVertices()}function Ko(t,e){function i(A){var P,B=o.length/3;A=A.extractPoints(e);var H=A.shape,q=A.holes;if(To.isClockWise(H)===!1)for(H=H.reverse(),A=0,P=q.length;A<P;A++){var $=q[A];To.isClockWise($)===!0&&(q[A]=$.reverse())}var rt=To.triangulateShape(H,q);for(A=0,P=q.length;A<P;A++)$=q[A],H=H.concat($);for(A=0,P=H.length;A<P;A++)$=H[A],o.push($.x,$.y,0),l.push(0,0,1),f.push($.x,$.y);for(A=0,P=rt.length;A<P;A++)H=rt[A],n.push(H[0]+B,H[1]+B,H[2]+B),y+=3}Ft.call(this),this.type="ShapeBufferGeometry",this.parameters={shapes:t,curveSegments:e},e=e||12;var n=[],o=[],l=[],f=[],p=0,y=0;if(Array.isArray(t)===!1)i(t);else for(var w=0;w<t.length;w++)i(t[w]),this.addGroup(p,y,w),p+=y,y=0;this.setIndex(n),this.addAttribute("position",new Et(o,3)),this.addAttribute("normal",new Et(l,3)),this.addAttribute("uv",new Et(f,2))}function Au(t,e){if(e.shapes=[],Array.isArray(t))for(var i=0,n=t.length;i<n;i++)e.shapes.push(t[i].uuid);else e.shapes.push(t.uuid);return e}function Qo(t,e){Ft.call(this),this.type="EdgesGeometry",this.parameters={thresholdAngle:e};var i=[];e=Math.cos(di.DEG2RAD*(e!==void 0?e:1));var n=[0,0],o={},l=["a","b","c"];if(t.isBufferGeometry){var f=new X;f.fromBufferGeometry(t)}else f=t.clone();f.mergeVertices(),f.computeFaceNormals(),t=f.vertices,f=f.faces;for(var p=0,y=f.length;p<y;p++)for(var w=f[p],A=0;3>A;A++){var P=w[l[A]],B=w[l[(A+1)%3]];n[0]=Math.min(P,B),n[1]=Math.max(P,B),P=n[0]+","+n[1],o[P]===void 0?o[P]={index1:n[0],index2:n[1],face1:p,face2:void 0}:o[P].face2=p}for(P in o)n=o[P],(n.face2===void 0||f[n.face1].normal.dot(f[n.face2].normal)<=e)&&(l=t[n.index1],i.push(l.x,l.y,l.z),l=t[n.index2],i.push(l.x,l.y,l.z));this.addAttribute("position",new Et(i,3))}function Ro(t,e,i,n,o,l,f,p){X.call(this),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:n,heightSegments:o,openEnded:l,thetaStart:f,thetaLength:p},this.fromBufferGeometry(new Oo(t,e,i,n,o,l,f,p)),this.mergeVertices()}function Oo(t,e,i,n,o,l,f,p){function y(gt){var Ct,wt=new s,Vt=new u,J=0,ot=gt===!0?t:e,zt=gt===!0?1:-1,ee=q;for(Ct=1;Ct<=n;Ct++)P.push(0,rt*zt,0),B.push(0,zt,0),H.push(.5,.5),q++;var $t=q;for(Ct=0;Ct<=n;Ct++){var Yt=Ct/n*p+f,Te=Math.cos(Yt);Yt=Math.sin(Yt),Vt.x=ot*Yt,Vt.y=rt*zt,Vt.z=ot*Te,P.push(Vt.x,Vt.y,Vt.z),B.push(0,zt,0),wt.x=.5*Te+.5,wt.y=.5*Yt*zt+.5,H.push(wt.x,wt.y),q++}for(Ct=0;Ct<n;Ct++)wt=ee+Ct,Vt=$t+Ct,gt===!0?A.push(Vt,Vt+1,wt):A.push(Vt+1,Vt,wt),J+=3;w.addGroup(xt,J,gt===!0?1:2),xt+=J}Ft.call(this),this.type="CylinderBufferGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:n,heightSegments:o,openEnded:l,thetaStart:f,thetaLength:p};var w=this;t=t!==void 0?t:1,e=e!==void 0?e:1,i=i||1,n=Math.floor(n)||8,o=Math.floor(o)||1,l=l!==void 0?l:!1,f=f!==void 0?f:0,p=p!==void 0?p:2*Math.PI;var A=[],P=[],B=[],H=[],q=0,$=[],rt=i/2,xt=0;(function(){var gt,Ct,wt=new u,Vt=new u,J=0,ot=(e-t)/i;for(Ct=0;Ct<=o;Ct++){var zt=[],ee=Ct/o,$t=ee*(e-t)+t;for(gt=0;gt<=n;gt++){var Yt=gt/n,Te=Yt*p+f,me=Math.sin(Te);Te=Math.cos(Te),Vt.x=$t*me,Vt.y=-ee*i+rt,Vt.z=$t*Te,P.push(Vt.x,Vt.y,Vt.z),wt.set(me,ot,Te).normalize(),B.push(wt.x,wt.y,wt.z),H.push(Yt,1-ee),zt.push(q++)}$.push(zt)}for(gt=0;gt<n;gt++)for(Ct=0;Ct<o;Ct++)wt=$[Ct+1][gt],Vt=$[Ct+1][gt+1],ot=$[Ct][gt+1],A.push($[Ct][gt],wt,ot),A.push(wt,Vt,ot),J+=6;w.addGroup(xt,J,0),xt+=J})(),l===!1&&(0<t&&y(!0),0<e&&y(!1)),this.setIndex(A),this.addAttribute("position",new Et(P,3)),this.addAttribute("normal",new Et(B,3)),this.addAttribute("uv",new Et(H,2))}function ya(t,e,i,n,o,l,f){Ro.call(this,0,t,e,i,n,o,l,f),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:i,heightSegments:n,openEnded:o,thetaStart:l,thetaLength:f}}function Gn(t,e,i,n,o,l,f){Oo.call(this,0,t,e,i,n,o,l,f),this.type="ConeBufferGeometry",this.parameters={radius:t,height:e,radialSegments:i,heightSegments:n,openEnded:o,thetaStart:l,thetaLength:f}}function Es(t,e,i,n){X.call(this),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:i,thetaLength:n},this.fromBufferGeometry(new mo(t,e,i,n)),this.mergeVertices()}function mo(t,e,i,n){Ft.call(this),this.type="CircleBufferGeometry",this.parameters={radius:t,segments:e,thetaStart:i,thetaLength:n},t=t||1,e=e!==void 0?Math.max(3,e):8,i=i!==void 0?i:0,n=n!==void 0?n:2*Math.PI;var o=[],l=[],f=[],p=[],y,w=new u,A=new s;l.push(0,0,0),f.push(0,0,1),p.push(.5,.5);var P=0;for(y=3;P<=e;P++,y+=3){var B=i+P/e*n;w.x=t*Math.cos(B),w.y=t*Math.sin(B),l.push(w.x,w.y,w.z),f.push(0,0,1),A.x=(l[y]/t+1)/2,A.y=(l[y+1]/t+1)/2,p.push(A.x,A.y)}for(y=1;y<=e;y++)o.push(y,y+1,0);this.setIndex(o),this.addAttribute("position",new Et(l,3)),this.addAttribute("normal",new Et(f,3)),this.addAttribute("uv",new Et(p,2))}function ts(t){Wt.call(this),this.type="ShadowMaterial",this.color=new L(0),this.transparent=!0,this.setValues(t)}function bs(t){$e.call(this,t),this.type="RawShaderMaterial"}function go(t){Wt.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new L(16777215),this.metalness=this.roughness=.5,this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new L(0),this.emissiveIntensity=1,this.bumpMap=this.emissiveMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new s(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(t)}function Cs(t){go.call(this),this.defines={PHYSICAL:""},this.type="MeshPhysicalMaterial",this.reflectivity=.5,this.clearCoatRoughness=this.clearCoat=0,this.setValues(t)}function Jr(t){Wt.call(this),this.type="MeshPhongMaterial",this.color=new L(16777215),this.specular=new L(1118481),this.shininess=30,this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new L(0),this.emissiveIntensity=1,this.bumpMap=this.emissiveMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new s(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(t)}function As(t){Jr.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.gradientMap=null,this.setValues(t)}function Ps(t){Wt.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new s(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(t)}function Ir(t){Wt.call(this),this.type="MeshLambertMaterial",this.color=new L(16777215),this.lightMap=this.map=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new L(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(t)}function Ls(t){if(Wt.call(this),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new L(16777215),this.bumpMap=this.map=this.matcap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new s(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(t),this.matcap===null){t=document.createElement("canvas"),t.width=1,t.height=1;var e=t.getContext("2d");e.fillStyle="#fff",e.fillRect(0,0,1,1),this.matcap=new THREE.CanvasTexture(t)}}function Rs(t){Ni.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}function $n(t,e,i,n){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=n!==void 0?n:new e.constructor(i),this.sampleValues=e,this.valueSize=i}function al(t,e,i,n){$n.call(this,t,e,i,n),this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function Dr(t,e,i,n){$n.call(this,t,e,i,n)}function Os(t,e,i,n){$n.call(this,t,e,i,n)}function Hn(t,e,i,n){if(t===void 0)throw Error("THREE.KeyframeTrack: track name is undefined");if(e===void 0||e.length===0)throw Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=Yn.convertArray(e,this.TimeBufferType),this.values=Yn.convertArray(i,this.ValueBufferType),this.setInterpolation(n||this.DefaultInterpolation)}function Kl(t,e,i){Hn.call(this,t,e,i)}function Ql(t,e,i,n){Hn.call(this,t,e,i,n)}function $r(t,e,i,n){Hn.call(this,t,e,i,n)}function ar(t,e,i,n){$n.call(this,t,e,i,n)}function _a(t,e,i,n){Hn.call(this,t,e,i,n)}function th(t,e,i,n){Hn.call(this,t,e,i,n)}function xa(t,e,i,n){Hn.call(this,t,e,i,n)}function _r(t,e,i){this.name=t,this.tracks=i,this.duration=e!==void 0?e:-1,this.uuid=di.generateUUID(),0>this.duration&&this.resetDuration()}function jc(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return $r;case"vector":case"vector2":case"vector3":case"vector4":return xa;case"color":return Ql;case"quaternion":return _a;case"bool":case"boolean":return Kl;case"string":return th}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+t)}function Xc(t){if(t.type===void 0)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var e=jc(t.type);if(t.times===void 0){var i=[],n=[];Yn.flattenJSON(t.keys,i,n,"value"),t.times=i,t.values=n}return e.parse!==void 0?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}function es(t,e,i){var n=this,o=!1,l=0,f=0,p=void 0;this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(y){f++,o===!1&&n.onStart!==void 0&&n.onStart(y,l,f),o=!0},this.itemEnd=function(y){l++,n.onProgress!==void 0&&n.onProgress(y,l,f),l===f&&(o=!1,n.onLoad!==void 0)&&n.onLoad()},this.itemError=function(y){n.onError!==void 0&&n.onError(y)},this.resolveURL=function(y){return p?p(y):y},this.setURLModifier=function(y){return p=y,this}}function Lt(t){this.manager=t!==void 0?t:tr}function Qt(t){this.manager=t!==void 0?t:tr}function Zt(t){this.manager=t!==void 0?t:tr,this._parser=null}function Ue(t){this.manager=t!==void 0?t:tr,this._parser=null}function ai(t){this.manager=t!==void 0?t:tr}function Fi(t){this.manager=t!==void 0?t:tr}function fn(t){this.manager=t!==void 0?t:tr}function Ee(){this.type="Curve",this.arcLengthDivisions=200}function Kn(t,e,i,n,o,l,f,p){Ee.call(this),this.type="EllipseCurve",this.aX=t||0,this.aY=e||0,this.xRadius=i||1,this.yRadius=n||1,this.aStartAngle=o||0,this.aEndAngle=l||2*Math.PI,this.aClockwise=f||!1,this.aRotation=p||0}function wa(t,e,i,n,o,l){Kn.call(this,t,e,i,i,n,o,l),this.type="ArcCurve"}function lr(){var t=0,e=0,i=0,n=0;return{initCatmullRom:function(o,l,f,p,y){o=y*(f-o),p=y*(p-l),t=l,e=o,i=-3*l+3*f-2*o-p,n=2*l-2*f+o+p},initNonuniformCatmullRom:function(o,l,f,p,y,w,A){o=((l-o)/y-(f-o)/(y+w)+(f-l)/w)*w,p=((f-l)/w-(p-l)/(w+A)+(p-f)/A)*w,t=l,e=o,i=-3*l+3*f-2*o-p,n=2*l-2*f+o+p},calc:function(o){var l=o*o;return t+e*o+i*l+n*l*o}}}function On(t,e,i,n){Ee.call(this),this.type="CatmullRomCurve3",this.points=t||[],this.closed=e||!1,this.curveType=i||"centripetal",this.tension=n||.5}function Pu(t,e,i,n,o){e=.5*(n-e),o=.5*(o-i);var l=t*t;return(2*i-2*n+e+o)*t*l+(-3*i+3*n-2*e-o)*l+e*t+i}function vo(t,e,i,n){var o=1-t;return o*o*e+2*(1-t)*t*i+t*t*n}function is(t,e,i,n,o){var l=1-t,f=1-t;return l*l*l*e+3*f*f*t*i+3*(1-t)*t*t*n+t*t*t*o}function hr(t,e,i,n){Ee.call(this),this.type="CubicBezierCurve",this.v0=t||new s,this.v1=e||new s,this.v2=i||new s,this.v3=n||new s}function Ti(t,e,i,n){Ee.call(this),this.type="CubicBezierCurve3",this.v0=t||new u,this.v1=e||new u,this.v2=i||new u,this.v3=n||new u}function ur(t,e){Ee.call(this),this.type="LineCurve",this.v1=t||new s,this.v2=e||new s}function zr(t,e){Ee.call(this),this.type="LineCurve3",this.v1=t||new u,this.v2=e||new u}function cr(t,e,i){Ee.call(this),this.type="QuadraticBezierCurve",this.v0=t||new s,this.v1=e||new s,this.v2=i||new s}function yo(t,e,i){Ee.call(this),this.type="QuadraticBezierCurve3",this.v0=t||new u,this.v1=e||new u,this.v2=i||new u}function Kr(t){Ee.call(this),this.type="SplineCurve",this.points=t||[]}function Io(){Ee.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function fr(t){Io.call(this),this.type="Path",this.currentPoint=new s,t&&this.setFromPoints(t)}function Qn(t){fr.call(this,t),this.uuid=di.generateUUID(),this.type="Shape",this.holes=[]}function tn(t,e){N.call(this),this.type="Light",this.color=new L(t),this.intensity=e!==void 0?e:1,this.receiveShadow=void 0}function ll(t,e,i){tn.call(this,t,i),this.type="HemisphereLight",this.castShadow=void 0,this.position.copy(N.DefaultUp),this.updateMatrix(),this.groundColor=new L(e)}function _o(t){this.camera=t,this.bias=0,this.radius=1,this.mapSize=new s(512,512),this.map=null,this.matrix=new c}function hl(){_o.call(this,new _e(50,1,.5,500))}function ul(t,e,i,n,o,l){tn.call(this,t,e),this.type="SpotLight",this.position.copy(N.DefaultUp),this.updateMatrix(),this.target=new N,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(f){this.intensity=f/Math.PI}}),this.distance=i!==void 0?i:0,this.angle=n!==void 0?n:Math.PI/3,this.penumbra=o!==void 0?o:0,this.decay=l!==void 0?l:1,this.shadow=new hl}function Is(t,e,i,n){tn.call(this,t,e),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(o){this.intensity=o/(4*Math.PI)}}),this.distance=i!==void 0?i:0,this.decay=n!==void 0?n:1,this.shadow=new _o(new _e(90,1,.5,500))}function Ta(t,e,i,n,o,l){Be.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t!==void 0?t:-1,this.right=e!==void 0?e:1,this.top=i!==void 0?i:1,this.bottom=n!==void 0?n:-1,this.near=o!==void 0?o:.1,this.far=l!==void 0?l:2e3,this.updateProjectionMatrix()}function ns(){_o.call(this,new Ta(-5,5,5,-5,.5,500))}function xo(t,e){tn.call(this,t,e),this.type="DirectionalLight",this.position.copy(N.DefaultUp),this.updateMatrix(),this.target=new N,this.shadow=new ns}function Ds(t,e){tn.call(this,t,e),this.type="AmbientLight",this.castShadow=void 0}function eh(t,e,i,n){tn.call(this,t,e),this.type="RectAreaLight",this.width=i!==void 0?i:10,this.height=n!==void 0?n:10}function ih(t){this.manager=t!==void 0?t:tr,this.textures={}}function Nh(t){this.manager=t!==void 0?t:tr}function Do(){}function zs(t){typeof t=="boolean"&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),t=void 0),this.manager=t!==void 0?t:tr,this.withCredentials=!1}function cl(t){this.manager=t!==void 0?t:tr,this.resourcePath=""}function Fh(t){typeof createImageBitmap>"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.manager=t!==void 0?t:tr,this.options=void 0}function nh(){this.type="ShapePath",this.color=new L,this.subPaths=[],this.currentPath=null}function Uh(t){this.type="Font",this.data=t}function Lu(t){this.manager=t!==void 0?t:tr}function vn(t){this.manager=t!==void 0?t:tr}function Vn(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new _e,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new _e,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1}function fl(t,e,i,n){N.call(this),this.type="CubeCamera";var o=new _e(90,1,t,e);o.up.set(0,-1,0),o.lookAt(new u(1,0,0)),this.add(o);var l=new _e(90,1,t,e);l.up.set(0,-1,0),l.lookAt(new u(-1,0,0)),this.add(l);var f=new _e(90,1,t,e);f.up.set(0,0,1),f.lookAt(new u(0,1,0)),this.add(f);var p=new _e(90,1,t,e);p.up.set(0,0,-1),p.lookAt(new u(0,-1,0)),this.add(p);var y=new _e(90,1,t,e);y.up.set(0,-1,0),y.lookAt(new u(0,0,1)),this.add(y);var w=new _e(90,1,t,e);w.up.set(0,-1,0),w.lookAt(new u(0,0,-1)),this.add(w),n=n||{format:1022,magFilter:1006,minFilter:1006},this.renderTarget=new b(i,i,n),this.renderTarget.texture.name="CubeCamera",this.update=function(A,P){this.parent===null&&this.updateMatrixWorld();var B=this.renderTarget,H=B.texture.generateMipmaps;B.texture.generateMipmaps=!1,B.activeCubeFace=0,A.render(P,o,B),B.activeCubeFace=1,A.render(P,l,B),B.activeCubeFace=2,A.render(P,f,B),B.activeCubeFace=3,A.render(P,p,B),B.activeCubeFace=4,A.render(P,y,B),B.texture.generateMipmaps=H,B.activeCubeFace=5,A.render(P,w,B),A.setRenderTarget(null)},this.clear=function(A,P,B,H){for(var q=this.renderTarget,$=0;6>$;$++)q.activeCubeFace=$,A.setRenderTarget(q),A.clear(P,B,H);A.setRenderTarget(null)}}function Gh(t){this.autoStart=t!==void 0?t:!0,this.elapsedTime=this.oldTime=this.startTime=0,this.running=!1}function rh(){N.call(this),this.type="AudioListener",this.context=$h.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0}function Ma(t){N.call(this),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.loop=!1,this.offset=this.startTime=0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType="empty",this.filters=[]}function dl(t){Ma.call(this,t),this.panner=this.context.createPanner(),this.panner.connect(this.gain)}function ks(t,e){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e!==void 0?e:2048,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}function pl(t,e,i){switch(this.binding=t,this.valueSize=i,t=Float64Array,e){case"quaternion":e=this._slerp;break;case"string":case"bool":t=Array,e=this._select;break;default:e=this._lerp}this.buffer=new t(4*i),this._mixBufferRegion=e,this.referenceCount=this.useCount=this.cumulativeWeight=0}function Bs(t,e,i){i=i||En.parseTrackName(e),this._targetGroup=t,this._bindings=t.subscribe_(e,i)}function En(t,e,i){this.path=e,this.parsedPath=i||En.parseTrackName(e),this.node=En.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}function Sa(){this.uuid=di.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var t={};this._indicesByUUID=t;for(var e=0,i=arguments.length;e!==i;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var n=this;this.stats={objects:{get total(){return n._objects.length},get inUse(){return this.total-n.nCachedObjects_}},get bindingsPerObject(){return n._bindings.length}}}function ml(t,e,i){this._mixer=t,this._clip=e,this._localRoot=i||null,t=e.tracks,e=t.length,i=Array(e);for(var n={endingStart:2400,endingEnd:2400},o=0;o!==e;++o){var l=t[o].createInterpolant(null);i[o]=l,l.settings=n}this._interpolantSettings=n,this._interpolants=i,this._propertyBindings=Array(e),this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function rs(t){this._root=t,this._initMemoryManager(),this.time=this._accuIndex=0,this.timeScale=1}function oh(t,e){typeof t=="string"&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=e),this.value=t}function Hh(){Ft.call(this),this.type="InstancedBufferGeometry",this.maxInstancedCount=void 0}function Vh(t,e,i){ki.call(this,t,e),this.meshPerAttribute=i||1}function Wh(t,e,i,n){typeof i=="number"&&(n=i,i=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),K.call(this,t,e,i),this.meshPerAttribute=n||1}function Ru(t,e,i,n){this.ray=new Si(t,e),this.near=i||0,this.far=n||1/0,this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function gl(t,e){return t.distance-e.distance}function Ns(t,e,i,n){if(t.visible!==!1&&(t.raycast(e,i),n===!0)){t=t.children,n=0;for(var o=t.length;n<o;n++)Ns(t[n],e,i,!0)}}function jh(t,e,i){return this.radius=t!==void 0?t:1,this.phi=e!==void 0?e:0,this.theta=i!==void 0?i:0,this}function it(t,e,i){return this.radius=t!==void 0?t:1,this.theta=e!==void 0?e:0,this.y=i!==void 0?i:0,this}function os(t,e){this.min=t!==void 0?t:new s(1/0,1/0),this.max=e!==void 0?e:new s(-1/0,-1/0)}function Ea(t,e){this.start=t!==void 0?t:new u,this.end=e!==void 0?e:new u}function qn(t){N.call(this),this.material=t,this.render=function(){}}function _i(t,e,i,n){this.object=t,this.size=e!==void 0?e:1,t=i!==void 0?i:16711680,n=n!==void 0?n:1,e=0,(i=this.object.geometry)&&i.isGeometry?e=3*i.faces.length:i&&i.isBufferGeometry&&(e=i.attributes.normal.count),i=new Ft,e=new Et(6*e,3),i.addAttribute("position",e),gi.call(this,i,new Ni({color:t,linewidth:n})),this.matrixAutoUpdate=!1,this.update()}function ba(t,e){N.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,t=new Ft,e=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var i=0,n=1;32>i;i++,n++){var o=i/32*Math.PI*2,l=n/32*Math.PI*2;e.push(Math.cos(o),Math.sin(o),1,Math.cos(l),Math.sin(l),1)}t.addAttribute("position",new Et(e,3)),e=new Ni({fog:!1}),this.cone=new gi(t,e),this.add(this.cone),this.update()}function Ou(t){var e=[];t&&t.isBone&&e.push(t);for(var i=0;i<t.children.length;i++)e.push.apply(e,Ou(t.children[i]));return e}function Ca(t){for(var e=Ou(t),i=new Ft,n=[],o=[],l=new L(0,0,1),f=new L(0,1,0),p=0;p<e.length;p++){var y=e[p];y.parent&&y.parent.isBone&&(n.push(0,0,0),n.push(0,0,0),o.push(l.r,l.g,l.b),o.push(f.r,f.g,f.b))}i.addAttribute("position",new Et(n,3)),i.addAttribute("color",new Et(o,3)),n=new Ni({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0}),gi.call(this,i,n),this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}function kr(t,e,i){this.light=t,this.light.updateMatrixWorld(),this.color=i,t=new Or(e,4,2),e=new Ge({wireframe:!0,fog:!1}),pi.call(this,t,e),this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}function Aa(t,e){N.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e,t=new Ni({fog:!1}),e=new Ft,e.addAttribute("position",new K(new Float32Array(15),3)),this.line=new ji(e,t),this.add(this.line),this.update()}function Pa(t,e,i){N.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,t=new _s(e),t.rotateY(.5*Math.PI),this.material=new Ge({wireframe:!0,fog:!1}),this.color===void 0&&(this.material.vertexColors=2),e=t.getAttribute("position"),e=new Float32Array(3*e.count),t.addAttribute("color",new K(e,3)),this.add(new pi(t,this.material)),this.update()}function vl(t,e,i,n){t=t||10,e=e||10,i=new L(i!==void 0?i:4473924),n=new L(n!==void 0?n:8947848);var o=e/2,l=t/e,f=t/2;t=[];for(var p=[],y=0,w=0,A=-f;y<=e;y++,A+=l){t.push(-f,0,A,f,0,A),t.push(A,0,-f,A,0,f);var P=y===o?i:n;P.toArray(p,w),w+=3,P.toArray(p,w),w+=3,P.toArray(p,w),w+=3,P.toArray(p,w),w+=3}e=new Ft,e.addAttribute("position",new Et(t,3)),e.addAttribute("color",new Et(p,3)),i=new Ni({vertexColors:2}),gi.call(this,e,i)}function sh(t,e,i,n,o,l){t=t||10,e=e||16,i=i||8,n=n||64,o=new L(o!==void 0?o:4473924),l=new L(l!==void 0?l:8947848);var f=[],p=[],y;for(y=0;y<=e;y++){var w=y/e*2*Math.PI,A=Math.sin(w)*t;w=Math.cos(w)*t,f.push(0,0,0),f.push(A,0,w);var P=y&1?o:l;p.push(P.r,P.g,P.b),p.push(P.r,P.g,P.b)}for(y=0;y<=i;y++){P=y&1?o:l;var B=t-t/i*y;for(e=0;e<n;e++)w=e/n*2*Math.PI,A=Math.sin(w)*B,w=Math.cos(w)*B,f.push(A,0,w),p.push(P.r,P.g,P.b),w=(e+1)/n*2*Math.PI,A=Math.sin(w)*B,w=Math.cos(w)*B,f.push(A,0,w),p.push(P.r,P.g,P.b)}t=new Ft,t.addAttribute("position",new Et(f,3)),t.addAttribute("color",new Et(p,3)),f=new Ni({vertexColors:2}),gi.call(this,t,f)}function yl(t,e,i,n){this.object=t,this.size=e!==void 0?e:1,t=i!==void 0?i:16776960,n=n!==void 0?n:1,e=0,(i=this.object.geometry)&&i.isGeometry?e=i.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead."),i=new Ft,e=new Et(6*e,3),i.addAttribute("position",e),gi.call(this,i,new Ni({color:t,linewidth:n})),this.matrixAutoUpdate=!1,this.update()}function dr(t,e,i){N.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,e===void 0&&(e=1),t=new Ft,t.addAttribute("position",new Et([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3)),e=new Ni({fog:!1}),this.lightPlane=new ji(t,e),this.add(this.lightPlane),t=new Ft,t.addAttribute("position",new Et([0,0,0,0,0,1],3)),this.targetLine=new ji(t,e),this.add(this.targetLine),this.update()}function _l(t){function e(H,q,$){i(H,$),i(q,$)}function i(H,q){l.push(0,0,0),f.push(q.r,q.g,q.b),p[H]===void 0&&(p[H]=[]),p[H].push(l.length/3-1)}var n=new Ft,o=new Ni({color:16777215,vertexColors:1}),l=[],f=[],p={},y=new L(16755200),w=new L(16711680),A=new L(43775),P=new L(16777215),B=new L(3355443);e("n1","n2",y),e("n2","n4",y),e("n4","n3",y),e("n3","n1",y),e("f1","f2",y),e("f2","f4",y),e("f4","f3",y),e("f3","f1",y),e("n1","f1",y),e("n2","f2",y),e("n3","f3",y),e("n4","f4",y),e("p","n1",w),e("p","n2",w),e("p","n3",w),e("p","n4",w),e("u1","u2",A),e("u2","u3",A),e("u3","u1",A),e("c","t",P),e("p","c",B),e("cn1","cn2",B),e("cn3","cn4",B),e("cf1","cf2",B),e("cf3","cf4",B),n.addAttribute("position",new Et(l,3)),n.addAttribute("color",new Et(f,3)),gi.call(this,n,o),this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=p,this.update()}function zo(t,e){this.object=t,e===void 0&&(e=16776960),t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var i=new Float32Array(24),n=new Ft;n.setIndex(new K(t,1)),n.addAttribute("position",new K(i,3)),gi.call(this,n,new Ni({color:e})),this.matrixAutoUpdate=!1,this.update()}function xl(t,e){this.type="Box3Helper",this.box=t,t=e!==void 0?e:16776960,e=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var i=new Ft;i.setIndex(new K(e,1)),i.addAttribute("position",new Et([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),gi.call(this,i,new Ni({color:t})),this.geometry.computeBoundingSphere()}function wl(t,e,i){this.type="PlaneHelper",this.plane=t,this.size=e===void 0?1:e,t=i!==void 0?i:16776960,e=new Ft,e.addAttribute("position",new Et([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,0,1,0,0,0],3)),e.computeBoundingSphere(),ji.call(this,e,new Ni({color:t})),e=new Ft,e.addAttribute("position",new Et([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),e.computeBoundingSphere(),this.add(new pi(e,new Ge({color:t,opacity:.2,transparent:!0,depthWrite:!1})))}function ko(t,e,i,n,o,l){N.call(this),t===void 0&&(t=new THREE.Vector3(0,0,1)),e===void 0&&(e=new THREE.Vector3(0,0,0)),i===void 0&&(i=1),n===void 0&&(n=16776960),o===void 0&&(o=.2*i),l===void 0&&(l=.2*o),fh===void 0&&(fh=new Ft,fh.addAttribute("position",new Et([0,0,0,0,1,0],3)),El=new Oo(0,.5,1,5,1),El.translate(0,-.5,0)),this.position.copy(e),this.line=new ji(fh,new Ni({color:n})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new pi(El,new Ge({color:n})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,o,l)}function xr(t){t=t||1;var e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t];t=new Ft,t.addAttribute("position",new Et(e,3)),t.addAttribute("color",new Et([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),e=new Ni({vertexColors:2}),gi.call(this,t,e)}function Iu(t){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),On.call(this,t),this.type="catmullrom",this.closed=!0}function Du(t){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead."),On.call(this,t),this.type="catmullrom"}function Xh(t){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),On.call(this,t),this.type="catmullrom"}Number.EPSILON===void 0&&(Number.EPSILON=Math.pow(2,-52)),Number.isInteger===void 0&&(Number.isInteger=function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t}),Math.sign===void 0&&(Math.sign=function(t){return 0>t?-1:0<t?1:+t}),!("name"in Function.prototype)&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),Object.assign===void 0&&function(){Object.assign=function(t){if(t==null)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var n=arguments[i];if(n!=null)for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}}(),Object.assign(a.prototype,{addEventListener:function(t,e){this._listeners===void 0&&(this._listeners={});var i=this._listeners;i[t]===void 0&&(i[t]=[]),i[t].indexOf(e)===-1&&i[t].push(e)},hasEventListener:function(t,e){if(this._listeners===void 0)return!1;var i=this._listeners;return i[t]!==void 0&&i[t].indexOf(e)!==-1},removeEventListener:function(t,e){this._listeners!==void 0&&(t=this._listeners[t],t!==void 0&&(e=t.indexOf(e),e!==-1&&t.splice(e,1)))},dispatchEvent:function(t){if(this._listeners!==void 0){var e=this._listeners[t.type];if(e!==void 0){t.target=this,e=e.slice(0);for(var i=0,n=e.length;i<n;i++)e[i].call(this,t)}}}});var di={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){for(var t=[],e=0;256>e;e++)t[e]=(16>e?"0":"")+e.toString(16);return function(){var i=4294967295*Math.random()|0,n=4294967295*Math.random()|0,o=4294967295*Math.random()|0,l=4294967295*Math.random()|0;return(t[i&255]+t[i>>8&255]+t[i>>16&255]+t[i>>24&255]+"-"+t[n&255]+t[n>>8&255]+"-"+t[n>>16&15|64]+t[n>>24&255]+"-"+t[o&63|128]+t[o>>8&255]+"-"+t[o>>16&255]+t[o>>24&255]+t[l&255]+t[l>>8&255]+t[l>>16&255]+t[l>>24&255]).toUpperCase()}}(),clamp:function(t,e,i){return Math.max(e,Math.min(i,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,i,n,o){return n+(t-e)*(o-n)/(i-e)},lerp:function(t,e,i){return(1-i)*t+i*e},smoothstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e),t*t*(3-2*t))},smootherstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e),t*t*t*(t*(6*t-15)+10))},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*di.DEG2RAD},radToDeg:function(t){return t*di.RAD2DEG},isPowerOfTwo:function(t){return(t&t-1)===0&&t!==0},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}};Object.defineProperties(s.prototype,{width:{get:function(){return this.x},set:function(t){this.x=t}},height:{get:function(){return this.y},set:function(t){this.y=t}}}),Object.assign(s.prototype,{isVector2:!0,set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return e!==void 0?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return e!==void 0?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},applyMatrix3:function(t){var e=this.x,i=this.y;return t=t.elements,this.x=t[0]*e+t[3]*i+t[6],this.y=t[1]*e+t[4]*i+t[7],this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:function(){var t=new s,e=new s;return function(i,n){return t.set(i,i),e.set(n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var t=Math.atan2(this.y,this.x);return 0>t&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x;return t=this.y-t.y,e*e+t*t},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromBufferAttribute:function(t,e,i){return i!==void 0&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this},rotateAround:function(t,e){var i=Math.cos(e);e=Math.sin(e);var n=this.x-t.x,o=this.y-t.y;return this.x=n*i-o*e+t.x,this.y=n*e+o*i+t.y,this}}),Object.assign(c.prototype,{isMatrix4:!0,set:function(t,e,i,n,o,l,f,p,y,w,A,P,B,H,q,$){var rt=this.elements;return rt[0]=t,rt[4]=e,rt[8]=i,rt[12]=n,rt[1]=o,rt[5]=l,rt[9]=f,rt[13]=p,rt[2]=y,rt[6]=w,rt[10]=A,rt[14]=P,rt[3]=B,rt[7]=H,rt[11]=q,rt[15]=$,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return new c().fromArray(this.elements)},copy:function(t){var e=this.elements;return t=t.elements,e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],this},copyPosition:function(t){var e=this.elements;return t=t.elements,e[12]=t[12],e[13]=t[13],e[14]=t[14],this},extractBasis:function(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this},extractRotation:function(){var t=new u;return function(e){var i=this.elements,n=e.elements,o=1/t.setFromMatrixColumn(e,0).length(),l=1/t.setFromMatrixColumn(e,1).length();return e=1/t.setFromMatrixColumn(e,2).length(),i[0]=n[0]*o,i[1]=n[1]*o,i[2]=n[2]*o,i[3]=0,i[4]=n[4]*l,i[5]=n[5]*l,i[6]=n[6]*l,i[7]=0,i[8]=n[8]*e,i[9]=n[9]*e,i[10]=n[10]*e,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,this}}(),makeRotationFromEuler:function(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var e=this.elements,i=t.x,n=t.y,o=t.z,l=Math.cos(i);i=Math.sin(i);var f=Math.cos(n);n=Math.sin(n);var p=Math.cos(o);if(o=Math.sin(o),t.order==="XYZ"){t=l*p;var y=l*o,w=i*p,A=i*o;e[0]=f*p,e[4]=-f*o,e[8]=n,e[1]=y+w*n,e[5]=t-A*n,e[9]=-i*f,e[2]=A-t*n,e[6]=w+y*n,e[10]=l*f}else t.order==="YXZ"?(t=f*p,y=f*o,w=n*p,A=n*o,e[0]=t+A*i,e[4]=w*i-y,e[8]=l*n,e[1]=l*o,e[5]=l*p,e[9]=-i,e[2]=y*i-w,e[6]=A+t*i,e[10]=l*f):t.order==="ZXY"?(t=f*p,y=f*o,w=n*p,A=n*o,e[0]=t-A*i,e[4]=-l*o,e[8]=w+y*i,e[1]=y+w*i,e[5]=l*p,e[9]=A-t*i,e[2]=-l*n,e[6]=i,e[10]=l*f):t.order==="ZYX"?(t=l*p,y=l*o,w=i*p,A=i*o,e[0]=f*p,e[4]=w*n-y,e[8]=t*n+A,e[1]=f*o,e[5]=A*n+t,e[9]=y*n-w,e[2]=-n,e[6]=i*f,e[10]=l*f):t.order==="YZX"?(t=l*f,y=l*n,w=i*f,A=i*n,e[0]=f*p,e[4]=A-t*o,e[8]=w*o+y,e[1]=o,e[5]=l*p,e[9]=-i*p,e[2]=-n*p,e[6]=y*o+w,e[10]=t-A*o):t.order==="XZY"&&(t=l*f,y=l*n,w=i*f,A=i*n,e[0]=f*p,e[4]=-o,e[8]=n*p,e[1]=t*o+A,e[5]=l*p,e[9]=y*o-w,e[2]=w*o-y,e[6]=i*p,e[10]=A*o+t);return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(){var t=new u(0,0,0),e=new u(1,1,1);return function(i){return this.compose(t,i,e)}}(),lookAt:function(){var t=new u,e=new u,i=new u;return function(n,o,l){var f=this.elements;return i.subVectors(n,o),i.lengthSq()===0&&(i.z=1),i.normalize(),t.crossVectors(l,i),t.lengthSq()===0&&(Math.abs(l.z)===1?i.x+=1e-4:i.z+=1e-4,i.normalize(),t.crossVectors(l,i)),t.normalize(),e.crossVectors(i,t),f[0]=t.x,f[4]=e.x,f[8]=i.x,f[1]=t.y,f[5]=e.y,f[9]=i.y,f[2]=t.z,f[6]=e.z,f[10]=i.z,this}}(),multiply:function(t,e){return e!==void 0?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements;e=this.elements,t=i[0];var o=i[4],l=i[8],f=i[12],p=i[1],y=i[5],w=i[9],A=i[13],P=i[2],B=i[6],H=i[10],q=i[14],$=i[3],rt=i[7],xt=i[11];i=i[15];var gt=n[0],Ct=n[4],wt=n[8],Vt=n[12],J=n[1],ot=n[5],zt=n[9],ee=n[13],$t=n[2],Yt=n[6],Te=n[10],me=n[14],De=n[3],be=n[7],ae=n[11];return n=n[15],e[0]=t*gt+o*J+l*$t+f*De,e[4]=t*Ct+o*ot+l*Yt+f*be,e[8]=t*wt+o*zt+l*Te+f*ae,e[12]=t*Vt+o*ee+l*me+f*n,e[1]=p*gt+y*J+w*$t+A*De,e[5]=p*Ct+y*ot+w*Yt+A*be,e[9]=p*wt+y*zt+w*Te+A*ae,e[13]=p*Vt+y*ee+w*me+A*n,e[2]=P*gt+B*J+H*$t+q*De,e[6]=P*Ct+B*ot+H*Yt+q*be,e[10]=P*wt+B*zt+H*Te+q*ae,e[14]=P*Vt+B*ee+H*me+q*n,e[3]=$*gt+rt*J+xt*$t+i*De,e[7]=$*Ct+rt*ot+xt*Yt+i*be,e[11]=$*wt+rt*zt+xt*Te+i*ae,e[15]=$*Vt+rt*ee+xt*me+i*n,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},applyToBufferAttribute:function(){var t=new u;return function(e){for(var i=0,n=e.count;i<n;i++)t.x=e.getX(i),t.y=e.getY(i),t.z=e.getZ(i),t.applyMatrix4(this),e.setXYZ(i,t.x,t.y,t.z);return e}}(),determinant:function(){var t=this.elements,e=t[0],i=t[4],n=t[8],o=t[12],l=t[1],f=t[5],p=t[9],y=t[13],w=t[2],A=t[6],P=t[10],B=t[14];return t[3]*(+o*p*A-n*y*A-o*f*P+i*y*P+n*f*B-i*p*B)+t[7]*(+e*p*B-e*y*P+o*l*P-n*l*B+n*y*w-o*p*w)+t[11]*(+e*y*A-e*f*B-o*l*A+i*l*B+o*f*w-i*y*w)+t[15]*(-n*f*w-e*p*A+e*f*P+n*l*A-i*l*P+i*p*w)},transpose:function(){var t=this.elements,e=t[1];return t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this},setPosition:function(t){var e=this.elements;return e[12]=t.x,e[13]=t.y,e[14]=t.z,this},getInverse:function(t,e){var i=this.elements,n=t.elements;t=n[0];var o=n[1],l=n[2],f=n[3],p=n[4],y=n[5],w=n[6],A=n[7],P=n[8],B=n[9],H=n[10],q=n[11],$=n[12],rt=n[13],xt=n[14];n=n[15];var gt=B*xt*A-rt*H*A+rt*w*q-y*xt*q-B*w*n+y*H*n,Ct=$*H*A-P*xt*A-$*w*q+p*xt*q+P*w*n-p*H*n,wt=P*rt*A-$*B*A+$*y*q-p*rt*q-P*y*n+p*B*n,Vt=$*B*w-P*rt*w-$*y*H+p*rt*H+P*y*xt-p*B*xt,J=t*gt+o*Ct+l*wt+f*Vt;if(J===0){if(e===!0)throw Error("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");return console.warn("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0"),this.identity()}return e=1/J,i[0]=gt*e,i[1]=(rt*H*f-B*xt*f-rt*l*q+o*xt*q+B*l*n-o*H*n)*e,i[2]=(y*xt*f-rt*w*f+rt*l*A-o*xt*A-y*l*n+o*w*n)*e,i[3]=(B*w*f-y*H*f-B*l*A+o*H*A+y*l*q-o*w*q)*e,i[4]=Ct*e,i[5]=(P*xt*f-$*H*f+$*l*q-t*xt*q-P*l*n+t*H*n)*e,i[6]=($*w*f-p*xt*f-$*l*A+t*xt*A+p*l*n-t*w*n)*e,i[7]=(p*H*f-P*w*f+P*l*A-t*H*A-p*l*q+t*w*q)*e,i[8]=wt*e,i[9]=($*B*f-P*rt*f-$*o*q+t*rt*q+P*o*n-t*B*n)*e,i[10]=(p*rt*f-$*y*f+$*o*A-t*rt*A-p*o*n+t*y*n)*e,i[11]=(P*y*f-p*B*f-P*o*A+t*B*A+p*o*q-t*y*q)*e,i[12]=Vt*e,i[13]=(P*rt*l-$*B*l+$*o*H-t*rt*H-P*o*xt+t*B*xt)*e,i[14]=($*y*l-p*rt*l-$*o*w+t*rt*w+p*o*xt-t*y*xt)*e,i[15]=(p*B*l-P*y*l+P*o*w-t*B*w-p*o*H+t*y*H)*e,this},scale:function(t){var e=this.elements,i=t.x,n=t.y;return t=t.z,e[0]*=i,e[4]*=n,e[8]*=t,e[1]*=i,e[5]*=n,e[9]*=t,e[2]*=i,e[6]*=n,e[10]*=t,e[3]*=i,e[7]*=n,e[11]*=t,this},getMaxScaleOnAxis:function(){var t=this.elements;return Math.sqrt(Math.max(t[0]*t[0]+t[1]*t[1]+t[2]*t[2],t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t[8]*t[8]+t[9]*t[9]+t[10]*t[10]))},makeTranslation:function(t,e,i){return this.set(1,0,0,t,0,1,0,e,0,0,1,i,0,0,0,1),this},makeRotationX:function(t){var e=Math.cos(t);return t=Math.sin(t),this.set(1,0,0,0,0,e,-t,0,0,t,e,0,0,0,0,1),this},makeRotationY:function(t){var e=Math.cos(t);return t=Math.sin(t),this.set(e,0,t,0,0,1,0,0,-t,0,e,0,0,0,0,1),this},makeRotationZ:function(t){var e=Math.cos(t);return t=Math.sin(t),this.set(e,-t,0,0,t,e,0,0,0,0,1,0,0,0,0,1),this},makeRotationAxis:function(t,e){var i=Math.cos(e);e=Math.sin(e);var n=1-i,o=t.x,l=t.y;t=t.z;var f=n*o,p=n*l;return this.set(f*o+i,f*l-e*t,f*t+e*l,0,f*l+e*t,p*l+i,p*t-e*o,0,f*t-e*l,p*t+e*o,n*t*t+i,0,0,0,0,1),this},makeScale:function(t,e,i){return this.set(t,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this},makeShear:function(t,e,i){return this.set(1,e,i,0,t,1,i,0,t,e,1,0,0,0,0,1),this},compose:function(t,e,i){var n=this.elements,o=e._x,l=e._y,f=e._z,p=e._w,y=o+o,w=l+l,A=f+f;e=o*y;var P=o*w;o*=A;var B=l*w;l*=A,f*=A,y*=p,w*=p,p*=A,A=i.x;var H=i.y;return i=i.z,n[0]=(1-(B+f))*A,n[1]=(P+p)*A,n[2]=(o-w)*A,n[3]=0,n[4]=(P-p)*H,n[5]=(1-(e+f))*H,n[6]=(l+y)*H,n[7]=0,n[8]=(o+w)*i,n[9]=(l-y)*i,n[10]=(1-(e+B))*i,n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,this},decompose:function(){var t=new u,e=new c;return function(i,n,o){var l=this.elements,f=t.set(l[0],l[1],l[2]).length(),p=t.set(l[4],l[5],l[6]).length(),y=t.set(l[8],l[9],l[10]).length();0>this.determinant()&&(f=-f),i.x=l[12],i.y=l[13],i.z=l[14],e.copy(this),i=1/f,l=1/p;var w=1/y;return e.elements[0]*=i,e.elements[1]*=i,e.elements[2]*=i,e.elements[4]*=l,e.elements[5]*=l,e.elements[6]*=l,e.elements[8]*=w,e.elements[9]*=w,e.elements[10]*=w,n.setFromRotationMatrix(e),o.x=f,o.y=p,o.z=y,this}}(),makePerspective:function(t,e,i,n,o,l){l===void 0&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var f=this.elements;return f[0]=2*o/(e-t),f[4]=0,f[8]=(e+t)/(e-t),f[12]=0,f[1]=0,f[5]=2*o/(i-n),f[9]=(i+n)/(i-n),f[13]=0,f[2]=0,f[6]=0,f[10]=-(l+o)/(l-o),f[14]=-2*l*o/(l-o),f[3]=0,f[7]=0,f[11]=-1,f[15]=0,this},makeOrthographic:function(t,e,i,n,o,l){var f=this.elements,p=1/(e-t),y=1/(i-n),w=1/(l-o);return f[0]=2*p,f[4]=0,f[8]=0,f[12]=-((e+t)*p),f[1]=0,f[5]=2*y,f[9]=0,f[13]=-((i+n)*y),f[2]=0,f[6]=0,f[10]=-2*w,f[14]=-((l+o)*w),f[3]=0,f[7]=0,f[11]=0,f[15]=1,this},equals:function(t){var e=this.elements;t=t.elements;for(var i=0;16>i;i++)if(e[i]!==t[i])return!1;return!0},fromArray:function(t,e){e===void 0&&(e=0);for(var i=0;16>i;i++)this.elements[i]=t[i+e];return this},toArray:function(t,e){t===void 0&&(t=[]),e===void 0&&(e=0);var i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t[e+9]=i[9],t[e+10]=i[10],t[e+11]=i[11],t[e+12]=i[12],t[e+13]=i[13],t[e+14]=i[14],t[e+15]=i[15],t}}),Object.assign(d,{slerp:function(t,e,i,n){return i.copy(t).slerp(e,n)},slerpFlat:function(t,e,i,n,o,l,f){var p=i[n+0],y=i[n+1],w=i[n+2];i=i[n+3],n=o[l+0];var A=o[l+1],P=o[l+2];if(o=o[l+3],i!==o||p!==n||y!==A||w!==P){l=1-f;var B=p*n+y*A+w*P+i*o,H=0<=B?1:-1,q=1-B*B;q>Number.EPSILON&&(q=Math.sqrt(q),B=Math.atan2(q,B*H),l=Math.sin(l*B)/q,f=Math.sin(f*B)/q),H*=f,p=p*l+n*H,y=y*l+A*H,w=w*l+P*H,i=i*l+o*H,l===1-f&&(f=1/Math.sqrt(p*p+y*y+w*w+i*i),p*=f,y*=f,w*=f,i*=f)}t[e]=p,t[e+1]=y,t[e+2]=w,t[e+3]=i}}),Object.defineProperties(d.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},w:{get:function(){return this._w},set:function(t){this._w=t,this.onChangeCallback()}}}),Object.assign(d.prototype,{isQuaternion:!0,set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._w=n,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this.onChangeCallback(),this},setFromEuler:function(t,e){if(!t||!t.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var i=t._x,n=t._y,o=t._z;t=t.order;var l=Math.cos,f=Math.sin,p=l(i/2),y=l(n/2);return l=l(o/2),i=f(i/2),n=f(n/2),o=f(o/2),t==="XYZ"?(this._x=i*y*l+p*n*o,this._y=p*n*l-i*y*o,this._z=p*y*o+i*n*l,this._w=p*y*l-i*n*o):t==="YXZ"?(this._x=i*y*l+p*n*o,this._y=p*n*l-i*y*o,this._z=p*y*o-i*n*l,this._w=p*y*l+i*n*o):t==="ZXY"?(this._x=i*y*l-p*n*o,this._y=p*n*l+i*y*o,this._z=p*y*o+i*n*l,this._w=p*y*l-i*n*o):t==="ZYX"?(this._x=i*y*l-p*n*o,this._y=p*n*l+i*y*o,this._z=p*y*o-i*n*l,this._w=p*y*l+i*n*o):t==="YZX"?(this._x=i*y*l+p*n*o,this._y=p*n*l+i*y*o,this._z=p*y*o-i*n*l,this._w=p*y*l-i*n*o):t==="XZY"&&(this._x=i*y*l-p*n*o,this._y=p*n*l-i*y*o,this._z=p*y*o+i*n*l,this._w=p*y*l+i*n*o),e!==!1&&this.onChangeCallback(),this},setFromAxisAngle:function(t,e){e/=2;var i=Math.sin(e);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(e),this.onChangeCallback(),this},setFromRotationMatrix:function(t){var e=t.elements,i=e[0];t=e[4];var n=e[8],o=e[1],l=e[5],f=e[9],p=e[2],y=e[6];e=e[10];var w=i+l+e;return 0<w?(i=.5/Math.sqrt(w+1),this._w=.25/i,this._x=(y-f)*i,this._y=(n-p)*i,this._z=(o-t)*i):i>l&&i>e?(i=2*Math.sqrt(1+i-l-e),this._w=(y-f)/i,this._x=.25*i,this._y=(t+o)/i,this._z=(n+p)/i):l>e?(i=2*Math.sqrt(1+l-i-e),this._w=(n-p)/i,this._x=(t+o)/i,this._y=.25*i,this._z=(f+y)/i):(i=2*Math.sqrt(1+e-i-l),this._w=(o-t)/i,this._x=(n+p)/i,this._y=(f+y)/i,this._z=.25*i),this.onChangeCallback(),this},setFromUnitVectors:function(){var t=new u,e;return function(i,n){return t===void 0&&(t=new u),e=i.dot(n)+1,1e-6>e?(e=0,Math.abs(i.x)>Math.abs(i.z)?t.set(-i.y,i.x,0):t.set(0,-i.z,i.y)):t.crossVectors(i,n),this._x=t.x,this._y=t.y,this._z=t.z,this._w=e,this.normalize()}}(),angleTo:function(t){return 2*Math.acos(Math.abs(di.clamp(this.dot(t),-1,1)))},rotateTowards:function(t,e){var i=this.angleTo(t);return i===0?this:(this.slerp(t,Math.min(1,e/i)),this)},inverse:function(){return this.conjugate()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var t=this.length();return t===0?(this._z=this._y=this._x=0,this._w=1):(t=1/t,this._x*=t,this._y*=t,this._z*=t,this._w*=t),this.onChangeCallback(),this},multiply:function(t,e){return e!==void 0?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var i=t._x,n=t._y,o=t._z;t=t._w;var l=e._x,f=e._y,p=e._z;return e=e._w,this._x=i*e+t*l+n*p-o*f,this._y=n*e+t*f+o*l-i*p,this._z=o*e+t*p+i*f-n*l,this._w=t*e-i*l-n*f-o*p,this.onChangeCallback(),this},slerp:function(t,e){if(e===0)return this;if(e===1)return this.copy(t);var i=this._x,n=this._y,o=this._z,l=this._w,f=l*t._w+i*t._x+n*t._y+o*t._z;if(0>f?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,f=-f):this.copy(t),1<=f)return this._w=l,this._x=i,this._y=n,this._z=o,this;if(t=1-f*f,t<=Number.EPSILON)return f=1-e,this._w=f*l+e*this._w,this._x=f*i+e*this._x,this._y=f*n+e*this._y,this._z=f*o+e*this._z,this.normalize();t=Math.sqrt(t);var p=Math.atan2(t,f);return f=Math.sin((1-e)*p)/t,e=Math.sin(e*p)/t,this._w=l*f+this._w*e,this._x=i*f+this._x*e,this._y=n*f+this._y*e,this._z=o*f+this._z*e,this.onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return e===void 0&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this.onChangeCallback(),this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(u.prototype,{isVector3:!0,set:function(t,e,i){return this.x=t,this.y=e,this.z=i,this},setScalar:function(t){return this.z=this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return e!==void 0?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return e!==void 0?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return e!==void 0?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(){var t=new d;return function(e){return e&&e.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(t.setFromEuler(e))}}(),applyAxisAngle:function(){var t=new d;return function(e,i){return this.applyQuaternion(t.setFromAxisAngle(e,i))}}(),applyMatrix3:function(t){var e=this.x,i=this.y,n=this.z;return t=t.elements,this.x=t[0]*e+t[3]*i+t[6]*n,this.y=t[1]*e+t[4]*i+t[7]*n,this.z=t[2]*e+t[5]*i+t[8]*n,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z;t=t.elements;var o=1/(t[3]*e+t[7]*i+t[11]*n+t[15]);return this.x=(t[0]*e+t[4]*i+t[8]*n+t[12])*o,this.y=(t[1]*e+t[5]*i+t[9]*n+t[13])*o,this.z=(t[2]*e+t[6]*i+t[10]*n+t[14])*o,this},applyQuaternion:function(t){var e=this.x,i=this.y,n=this.z,o=t.x,l=t.y,f=t.z;t=t.w;var p=t*e+l*n-f*i,y=t*i+f*e-o*n,w=t*n+o*i-l*e;return e=-o*e-l*i-f*n,this.x=p*t+e*-o+y*-f-w*-l,this.y=y*t+e*-l+w*-o-p*-f,this.z=w*t+e*-f+p*-l-y*-o,this},project:function(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)},unproject:function(){var t=new c;return function(e){return this.applyMatrix4(t.getInverse(e.projectionMatrix)).applyMatrix4(e.matrixWorld)}}(),transformDirection:function(t){var e=this.x,i=this.y,n=this.z;return t=t.elements,this.x=t[0]*e+t[4]*i+t[8]*n,this.y=t[1]*e+t[5]*i+t[9]*n,this.z=t[2]*e+t[6]*i+t[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(){var t=new u,e=new u;return function(i,n){return t.set(i,i,i),e.set(n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},cross:function(t,e){return e!==void 0?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)},crossVectors:function(t,e){var i=t.x,n=t.y;t=t.z;var o=e.x,l=e.y;return e=e.z,this.x=n*e-t*l,this.y=t*o-i*e,this.z=i*l-n*o,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(){var t=new u;return function(e){return t.copy(this).projectOnVector(e),this.sub(t)}}(),reflect:function(){var t=new u;return function(e){return this.sub(t.copy(e).multiplyScalar(2*this.dot(e)))}}(),angleTo:function(t){return t=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq()),Math.acos(di.clamp(t,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return t=this.z-t.z,e*e+i*i+t*t},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)},setFromSphericalCoords:function(t,e,i){var n=Math.sin(e)*t;return this.x=n*Math.sin(i),this.y=Math.cos(e)*t,this.z=n*Math.cos(i),this},setFromCylindrical:function(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)},setFromCylindricalCoords:function(t,e,i){return this.x=t*Math.sin(e),this.y=i,this.z=t*Math.cos(e),this},setFromMatrixPosition:function(t){return t=t.elements,this.x=t[12],this.y=t[13],this.z=t[14],this},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length();return t=this.setFromMatrixColumn(t,2).length(),this.x=e,this.y=i,this.z=t,this},setFromMatrixColumn:function(t,e){return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromBufferAttribute:function(t,e,i){return i!==void 0&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}}),Object.assign(m.prototype,{isMatrix3:!0,set:function(t,e,i,n,o,l,f,p,y){var w=this.elements;return w[0]=t,w[1]=n,w[2]=f,w[3]=e,w[4]=o,w[5]=p,w[6]=i,w[7]=l,w[8]=y,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return new this.constructor().fromArray(this.elements)},copy:function(t){var e=this.elements;return t=t.elements,e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],this},setFromMatrix4:function(t){return t=t.elements,this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this},applyToBufferAttribute:function(){var t=new u;return function(e){for(var i=0,n=e.count;i<n;i++)t.x=e.getX(i),t.y=e.getY(i),t.z=e.getZ(i),t.applyMatrix3(this),e.setXYZ(i,t.x,t.y,t.z);return e}}(),multiply:function(t){return this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements;e=this.elements,t=i[0];var o=i[3],l=i[6],f=i[1],p=i[4],y=i[7],w=i[2],A=i[5];i=i[8];var P=n[0],B=n[3],H=n[6],q=n[1],$=n[4],rt=n[7],xt=n[2],gt=n[5];return n=n[8],e[0]=t*P+o*q+l*xt,e[3]=t*B+o*$+l*gt,e[6]=t*H+o*rt+l*n,e[1]=f*P+p*q+y*xt,e[4]=f*B+p*$+y*gt,e[7]=f*H+p*rt+y*n,e[2]=w*P+A*q+i*xt,e[5]=w*B+A*$+i*gt,e[8]=w*H+A*rt+i*n,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this},determinant:function(){var t=this.elements,e=t[0],i=t[1],n=t[2],o=t[3],l=t[4],f=t[5],p=t[6],y=t[7];return t=t[8],e*l*t-e*f*y-i*o*t+i*f*p+n*o*y-n*l*p},getInverse:function(t,e){t&&t.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");var i=t.elements;t=this.elements;var n=i[0],o=i[1],l=i[2],f=i[3],p=i[4],y=i[5],w=i[6],A=i[7];i=i[8];var P=i*p-y*A,B=y*w-i*f,H=A*f-p*w,q=n*P+o*B+l*H;if(q===0){if(e===!0)throw Error("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");return console.warn("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0"),this.identity()}return e=1/q,t[0]=P*e,t[1]=(l*A-i*o)*e,t[2]=(y*o-l*p)*e,t[3]=B*e,t[4]=(i*n-l*w)*e,t[5]=(l*f-y*n)*e,t[6]=H*e,t[7]=(o*w-A*n)*e,t[8]=(p*n-o*f)*e,this},transpose:function(){var t=this.elements,e=t[1];return t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this},getNormalMatrix:function(t){return this.setFromMatrix4(t).getInverse(this).transpose()},transposeIntoArray:function(t){var e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this},setUvTransform:function(t,e,i,n,o,l,f){var p=Math.cos(o);o=Math.sin(o),this.set(i*p,i*o,-i*(p*l+o*f)+l+t,-n*o,n*p,-n*(-o*l+p*f)+f+e,0,0,1)},scale:function(t,e){var i=this.elements;return i[0]*=t,i[3]*=t,i[6]*=t,i[1]*=e,i[4]*=e,i[7]*=e,this},rotate:function(t){var e=Math.cos(t);t=Math.sin(t);var i=this.elements,n=i[0],o=i[3],l=i[6],f=i[1],p=i[4],y=i[7];return i[0]=e*n+t*f,i[3]=e*o+t*p,i[6]=e*l+t*y,i[1]=-t*n+e*f,i[4]=-t*o+e*p,i[7]=-t*l+e*y,this},translate:function(t,e){var i=this.elements;return i[0]+=t*i[2],i[3]+=t*i[5],i[6]+=t*i[8],i[1]+=e*i[2],i[4]+=e*i[5],i[7]+=e*i[8],this},equals:function(t){var e=this.elements;t=t.elements;for(var i=0;9>i;i++)if(e[i]!==t[i])return!1;return!0},fromArray:function(t,e){e===void 0&&(e=0);for(var i=0;9>i;i++)this.elements[i]=t[i+e];return this},toArray:function(t,e){t===void 0&&(t=[]),e===void 0&&(e=0);var i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t}});var ss={getDataURL:function(t){if(typeof HTMLCanvasElement>"u")return t.src;if(t instanceof HTMLCanvasElement)var e=t;else{e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),e.width=t.width,e.height=t.height;var i=e.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height)}return 2048<e.width||2048<e.height?e.toDataURL("image/jpeg",.6):e.toDataURL("image/png")}},Fs=0;g.DEFAULT_IMAGE=void 0,g.DEFAULT_MAPPING=300,g.prototype=Object.assign(Object.create(a.prototype),{constructor:g,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){var e=t===void 0||typeof t=="string";if(!e&&t.textures[this.uuid]!==void 0)return t.textures[this.uuid];var i={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(this.image!==void 0){var n=this.image;if(n.uuid===void 0&&(n.uuid=di.generateUUID()),!e&&t.images[n.uuid]===void 0){if(Array.isArray(n))for(var o=[],l=0,f=n.length;l<f;l++)o.push(ss.getDataURL(n[l]));else o=ss.getDataURL(n);t.images[n.uuid]={uuid:n.uuid,url:o}}i.image=n.uuid}return e||(t.textures[this.uuid]=i),i},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(t){if(this.mapping!==300)return t;if(t.applyMatrix3(this.matrix),0>t.x||1<t.x)switch(this.wrapS){case 1e3:t.x-=Math.floor(t.x);break;case 1001:t.x=0>t.x?0:1;break;case 1002:t.x=Math.abs(Math.floor(t.x)%2)===1?Math.ceil(t.x)-t.x:t.x-Math.floor(t.x)}if(0>t.y||1<t.y)switch(this.wrapT){case 1e3:t.y-=Math.floor(t.y);break;case 1001:t.y=0>t.y?0:1;break;case 1002:t.y=Math.abs(Math.floor(t.y)%2)===1?Math.ceil(t.y)-t.y:t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}}),Object.defineProperty(g.prototype,"needsUpdate",{set:function(t){t===!0&&this.version++}}),Object.assign(_.prototype,{isVector4:!0,set:function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},setScalar:function(t){return this.w=this.z=this.y=this.x=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this},add:function(t,e){return e!==void 0?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this},sub:function(t,e){return e!==void 0?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,o=this.w;return t=t.elements,this.x=t[0]*e+t[4]*i+t[8]*n+t[12]*o,this.y=t[1]*e+t[5]*i+t[9]*n+t[13]*o,this.z=t[2]*e+t[6]*i+t[10]*n+t[14]*o,this.w=t[3]*e+t[7]*i+t[11]*n+t[15]*o,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var e=Math.sqrt(1-t.w*t.w);return 1e-4>e?(this.x=1,this.z=this.y=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this},setAxisAngleFromRotationMatrix:function(t){t=t.elements;var e=t[0],i=t[4],n=t[8],o=t[1],l=t[5],f=t[9],p=t[2],y=t[6],w=t[10];return .01>Math.abs(i-o)&&.01>Math.abs(n-p)&&.01>Math.abs(f-y)?.1>Math.abs(i+o)&&.1>Math.abs(n+p)&&.1>Math.abs(f+y)&&.1>Math.abs(e+l+w-3)?(this.set(1,0,0,0),this):(t=Math.PI,e=(e+1)/2,l=(l+1)/2,w=(w+1)/2,i=(i+o)/4,n=(n+p)/4,f=(f+y)/4,e>l&&e>w?.01>e?(y=0,i=p=.707106781):(y=Math.sqrt(e),p=i/y,i=n/y):l>w?.01>l?(y=.707106781,p=0,i=.707106781):(p=Math.sqrt(l),y=i/p,i=f/p):.01>w?(p=y=.707106781,i=0):(i=Math.sqrt(w),y=n/i,p=f/i),this.set(y,p,i,t),this):(t=Math.sqrt((y-f)*(y-f)+(n-p)*(n-p)+(o-i)*(o-i)),.001>Math.abs(t)&&(t=1),this.x=(y-f)/t,this.y=(n-p)/t,this.z=(o-i)/t,this.w=Math.acos((e+l+w-1)/2),this)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(){var t,e;return function(i,n){return t===void 0&&(t=new _,e=new _),t.set(i,i,i,i),e.set(n,n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x),this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y),this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z),this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,e){return e===void 0&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t},fromBufferAttribute:function(t,e,i){return i!==void 0&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}}),S.prototype=Object.assign(Object.create(a.prototype),{constructor:S,isWebGLRenderTarget:!0,setSize:function(t,e){(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),b.prototype=Object.create(S.prototype),b.prototype.constructor=b,b.prototype.isWebGLRenderTargetCube=!0,I.prototype=Object.create(g.prototype),I.prototype.constructor=I,I.prototype.isDataTexture=!0,Object.assign(k.prototype,{isBox3:!0,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromArray:function(t){for(var e=1/0,i=1/0,n=1/0,o=-1/0,l=-1/0,f=-1/0,p=0,y=t.length;p<y;p+=3){var w=t[p],A=t[p+1],P=t[p+2];w<e&&(e=w),A<i&&(i=A),P<n&&(n=P),w>o&&(o=w),A>l&&(l=A),P>f&&(f=P)}return this.min.set(e,i,n),this.max.set(o,l,f),this},setFromBufferAttribute:function(t){for(var e=1/0,i=1/0,n=1/0,o=-1/0,l=-1/0,f=-1/0,p=0,y=t.count;p<y;p++){var w=t.getX(p),A=t.getY(p),P=t.getZ(p);w<e&&(e=w),A<i&&(i=A),P<n&&(n=P),w>o&&(o=w),A>l&&(l=A),P>f&&(f=P)}return this.min.set(e,i,n),this.max.set(o,l,f),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;e<i;e++)this.expandByPoint(t[e]);return this},setFromCenterAndSize:function(){var t=new u;return function(e,i){return i=t.copy(i).multiplyScalar(.5),this.min.copy(e).sub(i),this.max.copy(e).add(i),this}}(),setFromObject:function(t){return this.makeEmpty(),this.expandByObject(t)},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.min.copy(t.min),this.max.copy(t.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(t){return t===void 0&&(console.warn("THREE.Box3: .getCenter() target is now required"),t=new u),this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(t){return t===void 0&&(console.warn("THREE.Box3: .getSize() target is now required"),t=new u),this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)},expandByPoint:function(t){return this.min.min(t),this.max.max(t),this},expandByVector:function(t){return this.min.sub(t),this.max.add(t),this},expandByScalar:function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},expandByObject:function(){function t(l){var f=l.geometry;if(f!==void 0){if(f.isGeometry)for(f=f.vertices,i=0,n=f.length;i<n;i++)o.copy(f[i]),o.applyMatrix4(l.matrixWorld),e.expandByPoint(o);else if(f.isBufferGeometry&&(f=f.attributes.position,f!==void 0))for(i=0,n=f.count;i<n;i++)o.fromBufferAttribute(f,i).applyMatrix4(l.matrixWorld),e.expandByPoint(o)}}var e,i,n,o=new u;return function(l){return e=this,l.updateMatrixWorld(!0),l.traverse(t),this}}(),containsPoint:function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){return e===void 0&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new u),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)},intersectsSphere:function(){var t=new u;return function(e){return this.clampPoint(e.center,t),t.distanceToSquared(e.center)<=e.radius*e.radius}}(),intersectsPlane:function(t){if(0<t.normal.x)var e=t.normal.x*this.min.x,i=t.normal.x*this.max.x;else e=t.normal.x*this.max.x,i=t.normal.x*this.min.x;return 0<t.normal.y?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),0<t.normal.z?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=-t.constant&&i>=-t.constant},intersectsTriangle:function(){function t(P){var B,H=0;for(B=P.length-3;H<=B;H+=3){p.fromArray(P,H);var q=w.x*Math.abs(p.x)+w.y*Math.abs(p.y)+w.z*Math.abs(p.z),$=e.dot(p),rt=i.dot(p),xt=n.dot(p);if(Math.max(-Math.max($,rt,xt),Math.min($,rt,xt))>q)return!1}return!0}var e=new u,i=new u,n=new u,o=new u,l=new u,f=new u,p=new u,y=new u,w=new u,A=new u;return function(P){return this.isEmpty()||(this.getCenter(y),w.subVectors(this.max,y),e.subVectors(P.a,y),i.subVectors(P.b,y),n.subVectors(P.c,y),o.subVectors(i,e),l.subVectors(n,i),f.subVectors(e,n),P=[0,-o.z,o.y,0,-l.z,l.y,0,-f.z,f.y,o.z,0,-o.x,l.z,0,-l.x,f.z,0,-f.x,-o.y,o.x,0,-l.y,l.x,0,-f.y,f.x,0],!t(P))||(P=[1,0,0,0,1,0,0,0,1],!t(P))?!1:(A.crossVectors(o,l),P=[A.x,A.y,A.z],t(P))}}(),clampPoint:function(t,e){return e===void 0&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new u),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new u;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),getBoundingSphere:function(){var t=new u;return function(e){return e===void 0&&(console.warn("THREE.Box3: .getBoundingSphere() target is now required"),e=new D),this.getCenter(e.center),e.radius=.5*this.getSize(t).length(),e}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(){var t=[new u,new u,new u,new u,new u,new u,new u,new u];return function(e){return this.isEmpty()?this:(t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(t),this)}}(),translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),Object.assign(D.prototype,{set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(){var t=new k;return function(e,i){var n=this.center;i!==void 0?n.copy(i):t.setFromPoints(e).getCenter(n);for(var o=i=0,l=e.length;o<l;o++)i=Math.max(i,n.distanceToSquared(e[o]));return this.radius=Math.sqrt(i),this}}(),clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.center.copy(t.center),this.radius=t.radius,this},empty:function(){return 0>=this.radius},containsPoint:function(t){return t.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(t){return t.distanceTo(this.center)-this.radius},intersectsSphere:function(t){var e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e},intersectsBox:function(t){return t.intersectsSphere(this)},intersectsPlane:function(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius},clampPoint:function(t,e){var i=this.center.distanceToSquared(t);return e===void 0&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),e=new u),e.copy(t),i>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e},getBoundingBox:function(t){return t===void 0&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new k),t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius*=t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}}),Object.assign(F.prototype,{set:function(t,e){return this.normal.copy(t),this.constant=e,this},setComponents:function(t,e,i,n){return this.normal.set(t,e,i),this.constant=n,this},setFromNormalAndCoplanarPoint:function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},setFromCoplanarPoints:function(){var t=new u,e=new u;return function(i,n,o){return n=t.subVectors(o,n).cross(e.subVectors(i,n)).normalize(),this.setFromNormalAndCoplanarPoint(n,i),this}}(),clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},normalize:function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(t){return this.normal.dot(t)+this.constant},distanceToSphere:function(t){return this.distanceToPoint(t.center)-t.radius},projectPoint:function(t,e){return e===void 0&&(console.warn("THREE.Plane: .projectPoint() target is now required"),e=new u),e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)},intersectLine:function(){var t=new u;return function(e,i){i===void 0&&(console.warn("THREE.Plane: .intersectLine() target is now required"),i=new u);var n=e.delta(t),o=this.normal.dot(n);if(o===0){if(this.distanceToPoint(e.start)===0)return i.copy(e.start)}else if(o=-(e.start.dot(this.normal)+this.constant)/o,!(0>o||1<o))return i.copy(n).multiplyScalar(o).add(e.start)}}(),intersectsLine:function(t){var e=this.distanceToPoint(t.start);return t=this.distanceToPoint(t.end),0>e&&0<t||0>t&&0<e},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){return t===void 0&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new u),t.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var t=new u,e=new m;return function(i,n){return n=n||e.getNormalMatrix(i),i=this.coplanarPoint(t).applyMatrix4(i),n=this.normal.applyMatrix3(n).normalize(),this.constant=-i.dot(n),this}}(),translate:function(t){return this.constant-=t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}}),Object.assign(E.prototype,{set:function(t,e,i,n,o,l){var f=this.planes;return f[0].copy(t),f[1].copy(e),f[2].copy(i),f[3].copy(n),f[4].copy(o),f[5].copy(l),this},clone:function(){return new this.constructor().copy(this)},copy:function(t){for(var e=this.planes,i=0;6>i;i++)e[i].copy(t.planes[i]);return this},setFromMatrix:function(t){var e=this.planes,i=t.elements;t=i[0];var n=i[1],o=i[2],l=i[3],f=i[4],p=i[5],y=i[6],w=i[7],A=i[8],P=i[9],B=i[10],H=i[11],q=i[12],$=i[13],rt=i[14];return i=i[15],e[0].setComponents(l-t,w-f,H-A,i-q).normalize(),e[1].setComponents(l+t,w+f,H+A,i+q).normalize(),e[2].setComponents(l+n,w+p,H+P,i+$).normalize(),e[3].setComponents(l-n,w-p,H-P,i-$).normalize(),e[4].setComponents(l-o,w-y,H-B,i-rt).normalize(),e[5].setComponents(l+o,w+y,H+B,i+rt).normalize(),this},intersectsObject:function(){var t=new D;return function(e){var i=e.geometry;return i.boundingSphere===null&&i.computeBoundingSphere(),t.copy(i.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new D;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){var e=this.planes,i=t.center;t=-t.radius;for(var n=0;6>n;n++)if(e[n].distanceToPoint(i)<t)return!1;return!0},intersectsBox:function(){var t=new u;return function(e){for(var i=this.planes,n=0;6>n;n++){var o=i[n];if(t.x=0<o.normal.x?e.max.x:e.min.x,t.y=0<o.normal.y?e.max.y:e.min.y,t.z=0<o.normal.z?e.max.z:e.min.z,0>o.distanceToPoint(t))return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,i=0;6>i;i++)if(0>e[i].distanceToPoint(t))return!1;return!0}});var Ci={alphamap_fragment:`#ifdef USE_ALPHAMAP
|
|
286
286
|
diffuseColor.a *= texture2D( alphaMap, vUv ).g;
|
|
287
287
|
#endif
|
|
288
288
|
`,alphamap_pars_fragment:`#ifdef USE_ALPHAMAP
|
|
@@ -2570,7 +2570,7 @@ void main() {
|
|
|
2570
2570
|
`},Bn={merge:function(t){for(var e={},i=0;i<t.length;i++){var n=this.clone(t[i]),o;for(o in n)e[o]=n[o]}return e},clone:function(t){var e={},i;for(i in t){e[i]={};for(var n in t[i]){var o=t[i][n];o&&(o.isColor||o.isMatrix3||o.isMatrix4||o.isVector2||o.isVector3||o.isVector4||o.isTexture)?e[i][n]=o.clone():Array.isArray(o)?e[i][n]=o.slice():e[i][n]=o}}return e}},Qr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Object.assign(L.prototype,{isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):typeof t=="number"?this.setHex(t):typeof t=="string"&&this.setStyle(t),this},setScalar:function(t){return this.b=this.g=this.r=t,this},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,this},setRGB:function(t,e,i){return this.r=t,this.g=e,this.b=i,this},setHSL:function(){function t(e,i,n){return 0>n&&(n+=1),1<n&&--n,n<1/6?e+6*(i-e)*n:.5>n?i:n<2/3?e+6*(i-e)*(2/3-n):e}return function(e,i,n){return e=di.euclideanModulo(e,1),i=di.clamp(i,0,1),n=di.clamp(n,0,1),i===0?this.r=this.g=this.b=n:(i=.5>=n?n*(1+i):n+i-n*i,n=2*n-i,this.r=t(n,i,e+1/3),this.g=t(n,i,e),this.b=t(n,i,e-1/3)),this}}(),setStyle:function(t){function e(f){f!==void 0&&1>parseFloat(f)&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}var i;if(i=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(t)){var n=i[2];switch(i[1]){case"rgb":case"rgba":if(i=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n))return this.r=Math.min(255,parseInt(i[1],10))/255,this.g=Math.min(255,parseInt(i[2],10))/255,this.b=Math.min(255,parseInt(i[3],10))/255,e(i[5]),this;if(i=/^(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n))return this.r=Math.min(100,parseInt(i[1],10))/100,this.g=Math.min(100,parseInt(i[2],10))/100,this.b=Math.min(100,parseInt(i[3],10))/100,e(i[5]),this;break;case"hsl":case"hsla":if(i=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(n)){n=parseFloat(i[1])/360;var o=parseInt(i[2],10)/100,l=parseInt(i[3],10)/100;return e(i[5]),this.setHSL(n,o,l)}}}else if(i=/^#([A-Fa-f0-9]+)$/.exec(t)){if(i=i[1],n=i.length,n===3)return this.r=parseInt(i.charAt(0)+i.charAt(0),16)/255,this.g=parseInt(i.charAt(1)+i.charAt(1),16)/255,this.b=parseInt(i.charAt(2)+i.charAt(2),16)/255,this;if(n===6)return this.r=parseInt(i.charAt(0)+i.charAt(1),16)/255,this.g=parseInt(i.charAt(2)+i.charAt(3),16)/255,this.b=parseInt(i.charAt(4)+i.charAt(5),16)/255,this}return t&&0<t.length&&(i=Qr[t],i!==void 0?this.setHex(i):console.warn("THREE.Color: Unknown color "+t)),this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,e){return e===void 0&&(e=2),this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},copyLinearToGamma:function(t,e){return e===void 0&&(e=2),e=0<e?1/e:1,this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},convertGammaToLinear:function(t){return this.copyGammaToLinear(this,t),this},convertLinearToGamma:function(t){return this.copyLinearToGamma(this,t),this},copySRGBToLinear:function(){function t(e){return .04045>e?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}return function(e){return this.r=t(e.r),this.g=t(e.g),this.b=t(e.b),this}}(),copyLinearToSRGB:function(){function t(e){return .0031308>e?12.92*e:1.055*Math.pow(e,.41666)-.055}return function(e){return this.r=t(e.r),this.g=t(e.g),this.b=t(e.b),this}}(),convertSRGBToLinear:function(){return this.copySRGBToLinear(this),this},convertLinearToSRGB:function(){return this.copyLinearToSRGB(this),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(t){t===void 0&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});var e=this.r,i=this.g,n=this.b,o=Math.max(e,i,n),l=Math.min(e,i,n),f,p=(l+o)/2;if(l===o)l=f=0;else{var y=o-l;switch(l=.5>=p?y/(o+l):y/(2-o-l),o){case e:f=(i-n)/y+(i<n?6:0);break;case i:f=(n-e)/y+2;break;case n:f=(e-i)/y+4}f/=6}return t.h=f,t.s=l,t.l=p,t},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(){var t={};return function(e,i,n){return this.getHSL(t),t.h+=e,t.s+=i,t.l+=n,this.setHSL(t.h,t.s,t.l),this}}(),add:function(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this},addColors:function(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this},addScalar:function(t){return this.r+=t,this.g+=t,this.b+=t,this},sub:function(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this},multiply:function(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this},multiplyScalar:function(t){return this.r*=t,this.g*=t,this.b*=t,this},lerp:function(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this},lerpHSL:function(){var t={h:0,s:0,l:0},e={h:0,s:0,l:0};return function(i,n){this.getHSL(t),i.getHSL(e),i=di.lerp(t.h,e.h,n);var o=di.lerp(t.s,e.s,n);return n=di.lerp(t.l,e.l,n),this.setHSL(i,o,n),this}}(),equals:function(t){return t.r===this.r&&t.g===this.g&&t.b===this.b},fromArray:function(t,e){return e===void 0&&(e=0),this.r=t[e],this.g=t[e+1],this.b=t[e+2],this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t},toJSON:function(){return this.getHex()}});var qe={common:{diffuse:{value:new L(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new m},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new s(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new L(16777215)}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new L(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},uvTransform:{value:new m}},sprite:{diffuse:{value:new L(15658734)},opacity:{value:1},center:{value:new s(.5,.5)},rotation:{value:0},map:{value:null},uvTransform:{value:new m}}},wo={basic:{uniforms:Bn.merge([qe.common,qe.specularmap,qe.envmap,qe.aomap,qe.lightmap,qe.fog]),vertexShader:Ci.meshbasic_vert,fragmentShader:Ci.meshbasic_frag},lambert:{uniforms:Bn.merge([qe.common,qe.specularmap,qe.envmap,qe.aomap,qe.lightmap,qe.emissivemap,qe.fog,qe.lights,{emissive:{value:new L(0)}}]),vertexShader:Ci.meshlambert_vert,fragmentShader:Ci.meshlambert_frag},phong:{uniforms:Bn.merge([qe.common,qe.specularmap,qe.envmap,qe.aomap,qe.lightmap,qe.emissivemap,qe.bumpmap,qe.normalmap,qe.displacementmap,qe.gradientmap,qe.fog,qe.lights,{emissive:{value:new L(0)},specular:{value:new L(1118481)},shininess:{value:30}}]),vertexShader:Ci.meshphong_vert,fragmentShader:Ci.meshphong_frag},standard:{uniforms:Bn.merge([qe.common,qe.envmap,qe.aomap,qe.lightmap,qe.emissivemap,qe.bumpmap,qe.normalmap,qe.displacementmap,qe.roughnessmap,qe.metalnessmap,qe.fog,qe.lights,{emissive:{value:new L(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:Ci.meshphysical_vert,fragmentShader:Ci.meshphysical_frag},matcap:{uniforms:Bn.merge([qe.common,qe.bumpmap,qe.normalmap,qe.displacementmap,qe.fog,{matcap:{value:null}}]),vertexShader:Ci.meshmatcap_vert,fragmentShader:Ci.meshmatcap_frag},points:{uniforms:Bn.merge([qe.points,qe.fog]),vertexShader:Ci.points_vert,fragmentShader:Ci.points_frag},dashed:{uniforms:Bn.merge([qe.common,qe.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ci.linedashed_vert,fragmentShader:Ci.linedashed_frag},depth:{uniforms:Bn.merge([qe.common,qe.displacementmap]),vertexShader:Ci.depth_vert,fragmentShader:Ci.depth_frag},normal:{uniforms:Bn.merge([qe.common,qe.bumpmap,qe.normalmap,qe.displacementmap,{opacity:{value:1}}]),vertexShader:Ci.normal_vert,fragmentShader:Ci.normal_frag},sprite:{uniforms:Bn.merge([qe.sprite,qe.fog]),vertexShader:Ci.sprite_vert,fragmentShader:Ci.sprite_frag},background:{uniforms:{uvTransform:{value:new m},t2D:{value:null}},vertexShader:Ci.background_vert,fragmentShader:Ci.background_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ci.cube_vert,fragmentShader:Ci.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ci.equirect_vert,fragmentShader:Ci.equirect_frag},distanceRGBA:{uniforms:Bn.merge([qe.common,qe.displacementmap,{referencePosition:{value:new u},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ci.distanceRGBA_vert,fragmentShader:Ci.distanceRGBA_frag},shadow:{uniforms:Bn.merge([qe.lights,qe.fog,{color:{value:new L(0)},opacity:{value:1}}]),vertexShader:Ci.shadow_vert,fragmentShader:Ci.shadow_frag}};wo.physical={uniforms:Bn.merge([wo.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:Ci.meshphysical_vert,fragmentShader:Ci.meshphysical_frag},Object.assign(R.prototype,{clone:function(){return new this.constructor().copy(this)},copy:function(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(var e=0,i=t.vertexNormals.length;e<i;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(e=0,i=t.vertexColors.length;e<i;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}}),C.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" "),C.DefaultOrder="XYZ",Object.defineProperties(C.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},order:{get:function(){return this._order},set:function(t){this._order=t,this.onChangeCallback()}}}),Object.assign(C.prototype,{isEuler:!0,set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._order=n||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this.onChangeCallback(),this},setFromRotationMatrix:function(t,e,i){var n=di.clamp,o=t.elements;t=o[0];var l=o[4],f=o[8],p=o[1],y=o[5],w=o[9],A=o[2],P=o[6];return o=o[10],e=e||this._order,e==="XYZ"?(this._y=Math.asin(n(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(-w,o),this._z=Math.atan2(-l,t)):(this._x=Math.atan2(P,y),this._z=0)):e==="YXZ"?(this._x=Math.asin(-n(w,-1,1)),.99999>Math.abs(w)?(this._y=Math.atan2(f,o),this._z=Math.atan2(p,y)):(this._y=Math.atan2(-A,t),this._z=0)):e==="ZXY"?(this._x=Math.asin(n(P,-1,1)),.99999>Math.abs(P)?(this._y=Math.atan2(-A,o),this._z=Math.atan2(-l,y)):(this._y=0,this._z=Math.atan2(p,t))):e==="ZYX"?(this._y=Math.asin(-n(A,-1,1)),.99999>Math.abs(A)?(this._x=Math.atan2(P,o),this._z=Math.atan2(p,t)):(this._x=0,this._z=Math.atan2(-l,y))):e==="YZX"?(this._z=Math.asin(n(p,-1,1)),.99999>Math.abs(p)?(this._x=Math.atan2(-w,y),this._y=Math.atan2(-A,t)):(this._x=0,this._y=Math.atan2(f,o))):e==="XZY"?(this._z=Math.asin(-n(l,-1,1)),.99999>Math.abs(l)?(this._x=Math.atan2(P,y),this._y=Math.atan2(f,t)):(this._x=Math.atan2(-w,o),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+e),this._order=e,i!==!1&&this.onChangeCallback(),this},setFromQuaternion:function(){var t=new c;return function(e,i,n){return t.makeRotationFromQuaternion(e),this.setFromRotationMatrix(t,i,n)}}(),setFromVector3:function(t,e){return this.set(t.x,t.y,t.z,e||this._order)},reorder:function(){var t=new d;return function(e){return t.setFromEuler(this),this.setFromQuaternion(t,e)}}(),equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},fromArray:function(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&&(this._order=t[3]),this.onChangeCallback(),this},toArray:function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},toVector3:function(t){return t?t.set(this._x,this._y,this._z):new u(this._x,this._y,this._z)},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(U.prototype,{set:function(t){this.mask=1<<t|0},enable:function(t){this.mask=this.mask|1<<t|0},toggle:function(t){this.mask^=1<<t|0},disable:function(t){this.mask&=~(1<<t|0)},test:function(t){return(this.mask&t.mask)!==0}});var qc=0;N.DefaultUp=new u(0,1,0),N.DefaultMatrixAutoUpdate=!0,N.prototype=Object.assign(Object.create(a.prototype),{constructor:N,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(t){this.matrix.multiplyMatrices(t,this.matrix),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(t){return this.quaternion.premultiply(t),this},setRotationFromAxisAngle:function(t,e){this.quaternion.setFromAxisAngle(t,e)},setRotationFromEuler:function(t){this.quaternion.setFromEuler(t,!0)},setRotationFromMatrix:function(t){this.quaternion.setFromRotationMatrix(t)},setRotationFromQuaternion:function(t){this.quaternion.copy(t)},rotateOnAxis:function(){var t=new d;return function(e,i){return t.setFromAxisAngle(e,i),this.quaternion.multiply(t),this}}(),rotateOnWorldAxis:function(){var t=new d;return function(e,i){return t.setFromAxisAngle(e,i),this.quaternion.premultiply(t),this}}(),rotateX:function(){var t=new u(1,0,0);return function(e){return this.rotateOnAxis(t,e)}}(),rotateY:function(){var t=new u(0,1,0);return function(e){return this.rotateOnAxis(t,e)}}(),rotateZ:function(){var t=new u(0,0,1);return function(e){return this.rotateOnAxis(t,e)}}(),translateOnAxis:function(){var t=new u;return function(e,i){return t.copy(e).applyQuaternion(this.quaternion),this.position.add(t.multiplyScalar(i)),this}}(),translateX:function(){var t=new u(1,0,0);return function(e){return this.translateOnAxis(t,e)}}(),translateY:function(){var t=new u(0,1,0);return function(e){return this.translateOnAxis(t,e)}}(),translateZ:function(){var t=new u(0,0,1);return function(e){return this.translateOnAxis(t,e)}}(),localToWorld:function(t){return t.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var t=new c;return function(e){return e.applyMatrix4(t.getInverse(this.matrixWorld))}}(),lookAt:function(){var t=new d,e=new c,i=new u,n=new u;return function(o,l,f){o.isVector3?i.copy(o):i.set(o,l,f),o=this.parent,this.updateWorldMatrix(!0,!1),n.setFromMatrixPosition(this.matrixWorld),this.isCamera?e.lookAt(n,i,this.up):e.lookAt(i,n,this.up),this.quaternion.setFromRotationMatrix(e),o&&(e.extractRotation(o.matrixWorld),t.setFromRotationMatrix(e),this.quaternion.premultiply(t.inverse()))}}(),add:function(t){if(1<arguments.length){for(var e=0;e<arguments.length;e++)this.add(arguments[e]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(t.parent!==null&&t.parent.remove(t),t.parent=this,t.dispatchEvent({type:"added"}),this.children.push(t)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)},remove:function(t){if(1<arguments.length){for(var e=0;e<arguments.length;e++)this.remove(arguments[e]);return this}return e=this.children.indexOf(t),e!==-1&&(t.parent=null,t.dispatchEvent({type:"removed"}),this.children.splice(e,1)),this},getObjectById:function(t){return this.getObjectByProperty("id",t)},getObjectByName:function(t){return this.getObjectByProperty("name",t)},getObjectByProperty:function(t,e){if(this[t]===e)return this;for(var i=0,n=this.children.length;i<n;i++){var o=this.children[i].getObjectByProperty(t,e);if(o!==void 0)return o}},getWorldPosition:function(t){return t===void 0&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),t=new u),this.updateMatrixWorld(!0),t.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(){var t=new u,e=new u;return function(i){return i===void 0&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),i=new d),this.updateMatrixWorld(!0),this.matrixWorld.decompose(t,i,e),i}}(),getWorldScale:function(){var t=new u,e=new d;return function(i){return i===void 0&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),i=new u),this.updateMatrixWorld(!0),this.matrixWorld.decompose(t,e,i),i}}(),getWorldDirection:function(t){t===void 0&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),t=new u),this.updateMatrixWorld(!0);var e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()},raycast:function(){},traverse:function(t){t(this);for(var e=this.children,i=0,n=e.length;i<n;i++)e[i].traverse(t)},traverseVisible:function(t){if(this.visible!==!1){t(this);for(var e=this.children,i=0,n=e.length;i<n;i++)e[i].traverseVisible(t)}},traverseAncestors:function(t){var e=this.parent;e!==null&&(t(e),e.traverseAncestors(t))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);for(var e=this.children,i=0,n=e.length;i<n;i++)e[i].updateMatrixWorld(t)},updateWorldMatrix:function(t,e){var i=this.parent;if(t===!0&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),e===!0)for(t=this.children,e=0,i=t.length;e<i;e++)t[e].updateWorldMatrix(!1,!0)},toJSON:function(t){function e(A,P){return A[P.uuid]===void 0&&(A[P.uuid]=P.toJSON(t)),P.uuid}function i(A){var P=[],B;for(B in A){var H=A[B];delete H.metadata,P.push(H)}return P}var n=t===void 0||typeof t=="string",o={};n&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{}},o.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var l={};if(l.uuid=this.uuid,l.type=this.type,this.name!==""&&(l.name=this.name),this.castShadow===!0&&(l.castShadow=!0),this.receiveShadow===!0&&(l.receiveShadow=!0),this.visible===!1&&(l.visible=!1),this.frustumCulled===!1&&(l.frustumCulled=!1),this.renderOrder!==0&&(l.renderOrder=this.renderOrder),JSON.stringify(this.userData)!=="{}"&&(l.userData=this.userData),l.layers=this.layers.mask,l.matrix=this.matrix.toArray(),this.matrixAutoUpdate===!1&&(l.matrixAutoUpdate=!1),this.isMesh||this.isLine||this.isPoints){l.geometry=e(t.geometries,this.geometry);var f=this.geometry.parameters;if(f!==void 0&&f.shapes!==void 0)if(f=f.shapes,Array.isArray(f))for(var p=0,y=f.length;p<y;p++)e(t.shapes,f[p]);else e(t.shapes,f)}if(this.material!==void 0)if(Array.isArray(this.material)){for(f=[],p=0,y=this.material.length;p<y;p++)f.push(e(t.materials,this.material[p]));l.material=f}else l.material=e(t.materials,this.material);if(0<this.children.length)for(l.children=[],p=0;p<this.children.length;p++)l.children.push(this.children[p].toJSON(t).object);if(n){n=i(t.geometries),p=i(t.materials),y=i(t.textures);var w=i(t.images);f=i(t.shapes),0<n.length&&(o.geometries=n),0<p.length&&(o.materials=p),0<y.length&&(o.textures=y),0<w.length&&(o.images=w),0<f.length&&(o.shapes=f)}return o.object=l,o},clone:function(t){return new this.constructor().copy(this,t)},copy:function(t,e){if(e===void 0&&(e=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(e=0;e<t.children.length;e++)this.add(t.children[e].clone());return this}});var Yc=0;X.prototype=Object.assign(Object.create(a.prototype),{constructor:X,isGeometry:!0,applyMatrix:function(t){for(var e=new m().getNormalMatrix(t),i=0,n=this.vertices.length;i<n;i++)this.vertices[i].applyMatrix4(t);for(i=0,n=this.faces.length;i<n;i++){t=this.faces[i],t.normal.applyMatrix3(e).normalize();for(var o=0,l=t.vertexNormals.length;o<l;o++)t.vertexNormals[o].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.normalsNeedUpdate=this.verticesNeedUpdate=!0,this},rotateX:function(){var t=new c;return function(e){return t.makeRotationX(e),this.applyMatrix(t),this}}(),rotateY:function(){var t=new c;return function(e){return t.makeRotationY(e),this.applyMatrix(t),this}}(),rotateZ:function(){var t=new c;return function(e){return t.makeRotationZ(e),this.applyMatrix(t),this}}(),translate:function(){var t=new c;return function(e,i,n){return t.makeTranslation(e,i,n),this.applyMatrix(t),this}}(),scale:function(){var t=new c;return function(e,i,n){return t.makeScale(e,i,n),this.applyMatrix(t),this}}(),lookAt:function(){var t=new N;return function(e){t.lookAt(e),t.updateMatrix(),this.applyMatrix(t.matrix)}}(),fromBufferGeometry:function(t){function e(q,$,rt,xt){var gt=p===void 0?[]:[i.colors[q].clone(),i.colors[$].clone(),i.colors[rt].clone()],Ct=f===void 0?[]:[new u().fromArray(f,3*q),new u().fromArray(f,3*$),new u().fromArray(f,3*rt)];xt=new R(q,$,rt,Ct,gt,xt),i.faces.push(xt),y!==void 0&&i.faceVertexUvs[0].push([new s().fromArray(y,2*q),new s().fromArray(y,2*$),new s().fromArray(y,2*rt)]),w!==void 0&&i.faceVertexUvs[1].push([new s().fromArray(w,2*q),new s().fromArray(w,2*$),new s().fromArray(w,2*rt)])}var i=this,n=t.index!==null?t.index.array:void 0,o=t.attributes,l=o.position.array,f=o.normal!==void 0?o.normal.array:void 0,p=o.color!==void 0?o.color.array:void 0,y=o.uv!==void 0?o.uv.array:void 0,w=o.uv2!==void 0?o.uv2.array:void 0;w!==void 0&&(this.faceVertexUvs[1]=[]);for(var A=o=0;o<l.length;o+=3,A+=2)i.vertices.push(new u().fromArray(l,o)),p!==void 0&&i.colors.push(new L().fromArray(p,o));var P=t.groups;if(0<P.length)for(o=0;o<P.length;o++){l=P[o];var B=l.start,H=l.count;for(A=B,B+=H;A<B;A+=3)n!==void 0?e(n[A],n[A+1],n[A+2],l.materialIndex):e(A,A+1,A+2,l.materialIndex)}else if(n!==void 0)for(o=0;o<n.length;o+=3)e(n[o],n[o+1],n[o+2]);else for(o=0;o<l.length/3;o+=3)e(o,o+1,o+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this},center:function(){var t=new u;return function(){return this.computeBoundingBox(),this.boundingBox.getCenter(t).negate(),this.translate(t.x,t.y,t.z),this}}(),normalize:function(){this.computeBoundingSphere();var t=this.boundingSphere.center,e=this.boundingSphere.radius;e=e===0?1:1/e;var i=new c;return i.set(e,0,0,-e*t.x,0,e,0,-e*t.y,0,0,e,-e*t.z,0,0,0,1),this.applyMatrix(i),this},computeFaceNormals:function(){for(var t=new u,e=new u,i=0,n=this.faces.length;i<n;i++){var o=this.faces[i],l=this.vertices[o.a],f=this.vertices[o.b];t.subVectors(this.vertices[o.c],f),e.subVectors(l,f),t.cross(e),t.normalize(),o.normal.copy(t)}},computeVertexNormals:function(t){t===void 0&&(t=!0);var e,i=Array(this.vertices.length),n=0;for(e=this.vertices.length;n<e;n++)i[n]=new u;if(t){var o=new u,l=new u;for(t=0,n=this.faces.length;t<n;t++){e=this.faces[t];var f=this.vertices[e.a],p=this.vertices[e.b],y=this.vertices[e.c];o.subVectors(y,p),l.subVectors(f,p),o.cross(l),i[e.a].add(o),i[e.b].add(o),i[e.c].add(o)}}else for(this.computeFaceNormals(),t=0,n=this.faces.length;t<n;t++)e=this.faces[t],i[e.a].add(e.normal),i[e.b].add(e.normal),i[e.c].add(e.normal);for(n=0,e=this.vertices.length;n<e;n++)i[n].normalize();for(t=0,n=this.faces.length;t<n;t++)e=this.faces[t],f=e.vertexNormals,f.length===3?(f[0].copy(i[e.a]),f[1].copy(i[e.b]),f[2].copy(i[e.c])):(f[0]=i[e.a].clone(),f[1]=i[e.b].clone(),f[2]=i[e.c].clone());0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var t;this.computeFaceNormals();var e=0;for(t=this.faces.length;e<t;e++){var i=this.faces[e],n=i.vertexNormals;n.length===3?(n[0].copy(i.normal),n[1].copy(i.normal),n[2].copy(i.normal)):(n[0]=i.normal.clone(),n[1]=i.normal.clone(),n[2]=i.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var t,e,i=0;for(e=this.faces.length;i<e;i++){var n=this.faces[i];n.__originalFaceNormal?n.__originalFaceNormal.copy(n.normal):n.__originalFaceNormal=n.normal.clone(),n.__originalVertexNormals||(n.__originalVertexNormals=[]);var o=0;for(t=n.vertexNormals.length;o<t;o++)n.__originalVertexNormals[o]?n.__originalVertexNormals[o].copy(n.vertexNormals[o]):n.__originalVertexNormals[o]=n.vertexNormals[o].clone()}var l=new X;for(l.faces=this.faces,o=0,t=this.morphTargets.length;o<t;o++){if(!this.morphNormals[o]){this.morphNormals[o]={},this.morphNormals[o].faceNormals=[],this.morphNormals[o].vertexNormals=[],n=this.morphNormals[o].faceNormals;var f=this.morphNormals[o].vertexNormals;for(i=0,e=this.faces.length;i<e;i++){var p=new u,y={a:new u,b:new u,c:new u};n.push(p),f.push(y)}}for(f=this.morphNormals[o],l.vertices=this.morphTargets[o].vertices,l.computeFaceNormals(),l.computeVertexNormals(),i=0,e=this.faces.length;i<e;i++)n=this.faces[i],p=f.faceNormals[i],y=f.vertexNormals[i],p.copy(n.normal),y.a.copy(n.vertexNormals[0]),y.b.copy(n.vertexNormals[1]),y.c.copy(n.vertexNormals[2])}for(i=0,e=this.faces.length;i<e;i++)n=this.faces[i],n.normal=n.__originalFaceNormal,n.vertexNormals=n.__originalVertexNormals},computeBoundingBox:function(){this.boundingBox===null&&(this.boundingBox=new k),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){this.boundingSphere===null&&(this.boundingSphere=new D),this.boundingSphere.setFromPoints(this.vertices)},merge:function(t,e,i){if(t&&t.isGeometry){var n,o=this.vertices.length,l=this.vertices,f=t.vertices,p=this.faces,y=t.faces,w=this.faceVertexUvs[0],A=t.faceVertexUvs[0],P=this.colors,B=t.colors;i===void 0&&(i=0),e!==void 0&&(n=new m().getNormalMatrix(e)),t=0;for(var H=f.length;t<H;t++){var q=f[t].clone();e!==void 0&&q.applyMatrix4(e),l.push(q)}for(t=0,H=B.length;t<H;t++)P.push(B[t].clone());for(t=0,H=y.length;t<H;t++){f=y[t];var $=f.vertexNormals;for(B=f.vertexColors,P=new R(f.a+o,f.b+o,f.c+o),P.normal.copy(f.normal),n!==void 0&&P.normal.applyMatrix3(n).normalize(),e=0,l=$.length;e<l;e++)q=$[e].clone(),n!==void 0&&q.applyMatrix3(n).normalize(),P.vertexNormals.push(q);for(P.color.copy(f.color),e=0,l=B.length;e<l;e++)q=B[e],P.vertexColors.push(q.clone());P.materialIndex=f.materialIndex+i,p.push(P)}for(t=0,H=A.length;t<H;t++)if(i=A[t],n=[],i!==void 0){for(e=0,l=i.length;e<l;e++)n.push(i[e].clone());w.push(n)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t)},mergeMesh:function(t){t&&t.isMesh?(t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t)},mergeVertices:function(){var t={},e=[],i=[],n=Math.pow(10,4),o,l=0;for(o=this.vertices.length;l<o;l++){var f=this.vertices[l];f=Math.round(f.x*n)+"_"+Math.round(f.y*n)+"_"+Math.round(f.z*n),t[f]===void 0?(t[f]=l,e.push(this.vertices[l]),i[l]=e.length-1):i[l]=i[t[f]]}for(t=[],l=0,o=this.faces.length;l<o;l++)for(n=this.faces[l],n.a=i[n.a],n.b=i[n.b],n.c=i[n.c],n=[n.a,n.b,n.c],f=0;3>f;f++)if(n[f]===n[(f+1)%3]){t.push(l);break}for(l=t.length-1;0<=l;l--)for(n=t[l],this.faces.splice(n,1),i=0,o=this.faceVertexUvs.length;i<o;i++)this.faceVertexUvs[i].splice(n,1);return l=this.vertices.length-e.length,this.vertices=e,l},setFromPoints:function(t){this.vertices=[];for(var e=0,i=t.length;e<i;e++){var n=t[e];this.vertices.push(new u(n.x,n.y,n.z||0))}return this},sortFacesByMaterialIndex:function(){for(var t=this.faces,e=t.length,i=0;i<e;i++)t[i]._id=i;t.sort(function(y,w){return y.materialIndex-w.materialIndex});var n=this.faceVertexUvs[0],o=this.faceVertexUvs[1],l,f;for(n&&n.length===e&&(l=[]),o&&o.length===e&&(f=[]),i=0;i<e;i++){var p=t[i]._id;l&&l.push(n[p]),f&&f.push(o[p])}l&&(this.faceVertexUvs[0]=l),f&&(this.faceVertexUvs[1]=f)},toJSON:function(){function t(Vt,J,ot){return ot?Vt|1<<J:Vt&~(1<<J)}function e(Vt){var J=Vt.x.toString()+Vt.y.toString()+Vt.z.toString();return w[J]!==void 0||(w[J]=y.length/3,y.push(Vt.x,Vt.y,Vt.z)),w[J]}function i(Vt){var J=Vt.r.toString()+Vt.g.toString()+Vt.b.toString();return P[J]!==void 0||(P[J]=A.length,A.push(Vt.getHex())),P[J]}function n(Vt){var J=Vt.x.toString()+Vt.y.toString();return H[J]!==void 0||(H[J]=B.length/2,B.push(Vt.x,Vt.y)),H[J]}var o={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(o.uuid=this.uuid,o.type=this.type,this.name!==""&&(o.name=this.name),this.parameters!==void 0){var l=this.parameters,f;for(f in l)l[f]!==void 0&&(o[f]=l[f]);return o}for(l=[],f=0;f<this.vertices.length;f++){var p=this.vertices[f];l.push(p.x,p.y,p.z)}p=[];var y=[],w={},A=[],P={},B=[],H={};for(f=0;f<this.faces.length;f++){var q=this.faces[f],$=this.faceVertexUvs[0][f]!==void 0,rt=0<q.normal.length(),xt=0<q.vertexNormals.length,gt=q.color.r!==1||q.color.g!==1||q.color.b!==1,Ct=0<q.vertexColors.length,wt=0;wt=t(wt,0,0),wt=t(wt,1,!0),wt=t(wt,2,!1),wt=t(wt,3,$),wt=t(wt,4,rt),wt=t(wt,5,xt),wt=t(wt,6,gt),wt=t(wt,7,Ct),p.push(wt),p.push(q.a,q.b,q.c),p.push(q.materialIndex),$&&($=this.faceVertexUvs[0][f],p.push(n($[0]),n($[1]),n($[2]))),rt&&p.push(e(q.normal)),xt&&(rt=q.vertexNormals,p.push(e(rt[0]),e(rt[1]),e(rt[2]))),gt&&p.push(i(q.color)),Ct&&(q=q.vertexColors,p.push(i(q[0]),i(q[1]),i(q[2])))}return o.data={},o.data.vertices=l,o.data.normals=y,0<A.length&&(o.data.colors=A),0<B.length&&(o.data.uvs=[B]),o.data.faces=p,o},clone:function(){return new X().copy(this)},copy:function(t){var e,i,n;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingSphere=this.boundingBox=null,this.name=t.name;var o=t.vertices,l=0;for(e=o.length;l<e;l++)this.vertices.push(o[l].clone());for(o=t.colors,l=0,e=o.length;l<e;l++)this.colors.push(o[l].clone());for(o=t.faces,l=0,e=o.length;l<e;l++)this.faces.push(o[l].clone());for(l=0,e=t.faceVertexUvs.length;l<e;l++){var f=t.faceVertexUvs[l];for(this.faceVertexUvs[l]===void 0&&(this.faceVertexUvs[l]=[]),o=0,i=f.length;o<i;o++){var p=f[o],y=[],w=0;for(n=p.length;w<n;w++)y.push(p[w].clone());this.faceVertexUvs[l].push(y)}}for(w=t.morphTargets,l=0,e=w.length;l<e;l++){if(n={},n.name=w[l].name,w[l].vertices!==void 0)for(n.vertices=[],o=0,i=w[l].vertices.length;o<i;o++)n.vertices.push(w[l].vertices[o].clone());if(w[l].normals!==void 0)for(n.normals=[],o=0,i=w[l].normals.length;o<i;o++)n.normals.push(w[l].normals[o].clone());this.morphTargets.push(n)}for(w=t.morphNormals,l=0,e=w.length;l<e;l++){if(n={},w[l].vertexNormals!==void 0)for(n.vertexNormals=[],o=0,i=w[l].vertexNormals.length;o<i;o++)f=w[l].vertexNormals[o],p={},p.a=f.a.clone(),p.b=f.b.clone(),p.c=f.c.clone(),n.vertexNormals.push(p);if(w[l].faceNormals!==void 0)for(n.faceNormals=[],o=0,i=w[l].faceNormals.length;o<i;o++)n.faceNormals.push(w[l].faceNormals[o].clone());this.morphNormals.push(n)}for(o=t.skinWeights,l=0,e=o.length;l<e;l++)this.skinWeights.push(o[l].clone());for(o=t.skinIndices,l=0,e=o.length;l<e;l++)this.skinIndices.push(o[l].clone());for(o=t.lineDistances,l=0,e=o.length;l<e;l++)this.lineDistances.push(o[l]);return l=t.boundingBox,l!==null&&(this.boundingBox=l.clone()),l=t.boundingSphere,l!==null&&(this.boundingSphere=l.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(K.prototype,"needsUpdate",{set:function(t){t===!0&&this.version++}}),Object.assign(K.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setArray:function(t){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");return this.count=t!==void 0?t.length/this.itemSize:0,this.array=t,this},setDynamic:function(t){return this.dynamic=t,this},copy:function(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.dynamic=t.dynamic,this},copyAt:function(t,e,i){t*=this.itemSize,i*=e.itemSize;for(var n=0,o=this.itemSize;n<o;n++)this.array[t+n]=e.array[i+n];return this},copyArray:function(t){return this.array.set(t),this},copyColorsArray:function(t){for(var e=this.array,i=0,n=0,o=t.length;n<o;n++){var l=t[n];l===void 0&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",n),l=new L),e[i++]=l.r,e[i++]=l.g,e[i++]=l.b}return this},copyVector2sArray:function(t){for(var e=this.array,i=0,n=0,o=t.length;n<o;n++){var l=t[n];l===void 0&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",n),l=new s),e[i++]=l.x,e[i++]=l.y}return this},copyVector3sArray:function(t){for(var e=this.array,i=0,n=0,o=t.length;n<o;n++){var l=t[n];l===void 0&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",n),l=new u),e[i++]=l.x,e[i++]=l.y,e[i++]=l.z}return this},copyVector4sArray:function(t){for(var e=this.array,i=0,n=0,o=t.length;n<o;n++){var l=t[n];l===void 0&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",n),l=new _),e[i++]=l.x,e[i++]=l.y,e[i++]=l.z,e[i++]=l.w}return this},set:function(t,e){return e===void 0&&(e=0),this.array.set(t,e),this},getX:function(t){return this.array[t*this.itemSize]},setX:function(t,e){return this.array[t*this.itemSize]=e,this},getY:function(t){return this.array[t*this.itemSize+1]},setY:function(t,e){return this.array[t*this.itemSize+1]=e,this},getZ:function(t){return this.array[t*this.itemSize+2]},setZ:function(t,e){return this.array[t*this.itemSize+2]=e,this},getW:function(t){return this.array[t*this.itemSize+3]},setW:function(t,e){return this.array[t*this.itemSize+3]=e,this},setXY:function(t,e,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=i,this},setXYZ:function(t,e,i,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=i,this.array[t+2]=n,this},setXYZW:function(t,e,i,n,o){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=i,this.array[t+2]=n,this.array[t+3]=o,this},onUpload:function(t){return this.onUploadCallback=t,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)}}),Z.prototype=Object.create(K.prototype),Z.prototype.constructor=Z,ct.prototype=Object.create(K.prototype),ct.prototype.constructor=ct,Rt.prototype=Object.create(K.prototype),Rt.prototype.constructor=Rt,tt.prototype=Object.create(K.prototype),tt.prototype.constructor=tt,_t.prototype=Object.create(K.prototype),_t.prototype.constructor=_t,G.prototype=Object.create(K.prototype),G.prototype.constructor=G,Pt.prototype=Object.create(K.prototype),Pt.prototype.constructor=Pt,Et.prototype=Object.create(K.prototype),Et.prototype.constructor=Et,At.prototype=Object.create(K.prototype),At.prototype.constructor=At,Object.assign(ce.prototype,{computeGroups:function(t){var e=[],i=void 0;t=t.faces;for(var n=0;n<t.length;n++){var o=t[n];if(o.materialIndex!==i){i=o.materialIndex,l!==void 0&&(l.count=3*n-l.start,e.push(l));var l={start:3*n,materialIndex:i}}}l!==void 0&&(l.count=3*n-l.start,e.push(l)),this.groups=e},fromGeometry:function(t){var e=t.faces,i=t.vertices,n=t.faceVertexUvs,o=n[0]&&0<n[0].length,l=n[1]&&0<n[1].length,f=t.morphTargets,p=f.length;if(0<p){for(var y=[],w=0;w<p;w++)y[w]={name:f[w].name,data:[]};this.morphTargets.position=y}var A=t.morphNormals,P=A.length;if(0<P){var B=[];for(w=0;w<P;w++)B[w]={name:A[w].name,data:[]};this.morphTargets.normal=B}var H=t.skinIndices,q=t.skinWeights,$=H.length===i.length,rt=q.length===i.length;for(0<i.length&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported."),w=0;w<e.length;w++){var xt=e[w];this.vertices.push(i[xt.a],i[xt.b],i[xt.c]);var gt=xt.vertexNormals;for(gt.length===3?this.normals.push(gt[0],gt[1],gt[2]):(gt=xt.normal,this.normals.push(gt,gt,gt)),gt=xt.vertexColors,gt.length===3?this.colors.push(gt[0],gt[1],gt[2]):(gt=xt.color,this.colors.push(gt,gt,gt)),o===!0&&(gt=n[0][w],gt!==void 0?this.uvs.push(gt[0],gt[1],gt[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",w),this.uvs.push(new s,new s,new s))),l===!0&&(gt=n[1][w],gt!==void 0?this.uvs2.push(gt[0],gt[1],gt[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",w),this.uvs2.push(new s,new s,new s))),gt=0;gt<p;gt++){var Ct=f[gt].vertices;y[gt].data.push(Ct[xt.a],Ct[xt.b],Ct[xt.c])}for(gt=0;gt<P;gt++)Ct=A[gt].vertexNormals[w],B[gt].data.push(Ct.a,Ct.b,Ct.c);$&&this.skinIndices.push(H[xt.a],H[xt.b],H[xt.c]),rt&&this.skinWeights.push(q[xt.a],q[xt.b],q[xt.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}});var Zc=1;Ft.prototype=Object.assign(Object.create(a.prototype),{constructor:Ft,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(t){Array.isArray(t)?this.index=new(65535<re(t)?Pt:_t)(t,1):this.index=t},addAttribute:function(t,e,i){return e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?t==="index"?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):(this.attributes[t]=e,this):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.addAttribute(t,new K(e,i)))},getAttribute:function(t){return this.attributes[t]},removeAttribute:function(t){return delete this.attributes[t],this},addGroup:function(t,e,i){this.groups.push({start:t,count:e,materialIndex:i!==void 0?i:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix:function(t){var e=this.attributes.position;return e!==void 0&&(t.applyToBufferAttribute(e),e.needsUpdate=!0),e=this.attributes.normal,e!==void 0&&(new m().getNormalMatrix(t).applyToBufferAttribute(e),e.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this},rotateX:function(){var t=new c;return function(e){return t.makeRotationX(e),this.applyMatrix(t),this}}(),rotateY:function(){var t=new c;return function(e){return t.makeRotationY(e),this.applyMatrix(t),this}}(),rotateZ:function(){var t=new c;return function(e){return t.makeRotationZ(e),this.applyMatrix(t),this}}(),translate:function(){var t=new c;return function(e,i,n){return t.makeTranslation(e,i,n),this.applyMatrix(t),this}}(),scale:function(){var t=new c;return function(e,i,n){return t.makeScale(e,i,n),this.applyMatrix(t),this}}(),lookAt:function(){var t=new N;return function(e){t.lookAt(e),t.updateMatrix(),this.applyMatrix(t.matrix)}}(),center:function(){var t=new u;return function(){return this.computeBoundingBox(),this.boundingBox.getCenter(t).negate(),this.translate(t.x,t.y,t.z),this}}(),setFromObject:function(t){var e=t.geometry;if(t.isPoints||t.isLine){t=new Et(3*e.vertices.length,3);var i=new Et(3*e.colors.length,3);this.addAttribute("position",t.copyVector3sArray(e.vertices)),this.addAttribute("color",i.copyColorsArray(e.colors)),e.lineDistances&&e.lineDistances.length===e.vertices.length&&(t=new Et(e.lineDistances.length,1),this.addAttribute("lineDistance",t.copyArray(e.lineDistances))),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone())}else t.isMesh&&e&&e.isGeometry&&this.fromGeometry(e);return this},setFromPoints:function(t){for(var e=[],i=0,n=t.length;i<n;i++){var o=t[i];e.push(o.x,o.y,o.z||0)}return this.addAttribute("position",new Et(e,3)),this},updateFromObject:function(t){var e=t.geometry;if(t.isMesh){var i=e.__directGeometry;if(e.elementsNeedUpdate===!0&&(i=void 0,e.elementsNeedUpdate=!1),i===void 0)return this.fromGeometry(e);i.verticesNeedUpdate=e.verticesNeedUpdate,i.normalsNeedUpdate=e.normalsNeedUpdate,i.colorsNeedUpdate=e.colorsNeedUpdate,i.uvsNeedUpdate=e.uvsNeedUpdate,i.groupsNeedUpdate=e.groupsNeedUpdate,e.verticesNeedUpdate=!1,e.normalsNeedUpdate=!1,e.colorsNeedUpdate=!1,e.uvsNeedUpdate=!1,e.groupsNeedUpdate=!1,e=i}return e.verticesNeedUpdate===!0&&(i=this.attributes.position,i!==void 0&&(i.copyVector3sArray(e.vertices),i.needsUpdate=!0),e.verticesNeedUpdate=!1),e.normalsNeedUpdate===!0&&(i=this.attributes.normal,i!==void 0&&(i.copyVector3sArray(e.normals),i.needsUpdate=!0),e.normalsNeedUpdate=!1),e.colorsNeedUpdate===!0&&(i=this.attributes.color,i!==void 0&&(i.copyColorsArray(e.colors),i.needsUpdate=!0),e.colorsNeedUpdate=!1),e.uvsNeedUpdate&&(i=this.attributes.uv,i!==void 0&&(i.copyVector2sArray(e.uvs),i.needsUpdate=!0),e.uvsNeedUpdate=!1),e.lineDistancesNeedUpdate&&(i=this.attributes.lineDistance,i!==void 0&&(i.copyArray(e.lineDistances),i.needsUpdate=!0),e.lineDistancesNeedUpdate=!1),e.groupsNeedUpdate&&(e.computeGroups(t.geometry),this.groups=e.groups,e.groupsNeedUpdate=!1),this},fromGeometry:function(t){return t.__directGeometry=new ce().fromGeometry(t),this.fromDirectGeometry(t.__directGeometry)},fromDirectGeometry:function(t){var e=new Float32Array(3*t.vertices.length);this.addAttribute("position",new K(e,3).copyVector3sArray(t.vertices)),0<t.normals.length&&(e=new Float32Array(3*t.normals.length),this.addAttribute("normal",new K(e,3).copyVector3sArray(t.normals))),0<t.colors.length&&(e=new Float32Array(3*t.colors.length),this.addAttribute("color",new K(e,3).copyColorsArray(t.colors))),0<t.uvs.length&&(e=new Float32Array(2*t.uvs.length),this.addAttribute("uv",new K(e,2).copyVector2sArray(t.uvs))),0<t.uvs2.length&&(e=new Float32Array(2*t.uvs2.length),this.addAttribute("uv2",new K(e,2).copyVector2sArray(t.uvs2))),this.groups=t.groups;for(var i in t.morphTargets){e=[];for(var n=t.morphTargets[i],o=0,l=n.length;o<l;o++){var f=n[o],p=new Et(3*f.data.length,3);p.name=f.name,e.push(p.copyVector3sArray(f.data))}this.morphAttributes[i]=e}return 0<t.skinIndices.length&&(i=new Et(4*t.skinIndices.length,4),this.addAttribute("skinIndex",i.copyVector4sArray(t.skinIndices))),0<t.skinWeights.length&&(i=new Et(4*t.skinWeights.length,4),this.addAttribute("skinWeight",i.copyVector4sArray(t.skinWeights))),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){this.boundingBox===null&&(this.boundingBox=new k);var t=this.attributes.position;t!==void 0?this.boundingBox.setFromBufferAttribute(t):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var t=new k,e=new u;return function(){this.boundingSphere===null&&(this.boundingSphere=new D);var i=this.attributes.position;if(i){var n=this.boundingSphere.center;t.setFromBufferAttribute(i),t.getCenter(n);for(var o=0,l=0,f=i.count;l<f;l++)e.x=i.getX(l),e.y=i.getY(l),e.z=i.getZ(l),o=Math.max(o,n.distanceToSquared(e));this.boundingSphere.radius=Math.sqrt(o),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}}(),computeFaceNormals:function(){},computeVertexNormals:function(){var t=this.index,e=this.attributes;if(e.position){var i=e.position.array;if(e.normal===void 0)this.addAttribute("normal",new K(new Float32Array(i.length),3));else for(var n=e.normal.array,o=0,l=n.length;o<l;o++)n[o]=0;n=e.normal.array;var f=new u,p=new u,y=new u,w=new u,A=new u;if(t){var P=t.array;for(o=0,l=t.count;o<l;o+=3){t=3*P[o+0];var B=3*P[o+1],H=3*P[o+2];f.fromArray(i,t),p.fromArray(i,B),y.fromArray(i,H),w.subVectors(y,p),A.subVectors(f,p),w.cross(A),n[t]+=w.x,n[t+1]+=w.y,n[t+2]+=w.z,n[B]+=w.x,n[B+1]+=w.y,n[B+2]+=w.z,n[H]+=w.x,n[H+1]+=w.y,n[H+2]+=w.z}}else for(o=0,l=i.length;o<l;o+=9)f.fromArray(i,o),p.fromArray(i,o+3),y.fromArray(i,o+6),w.subVectors(y,p),A.subVectors(f,p),w.cross(A),n[o]=w.x,n[o+1]=w.y,n[o+2]=w.z,n[o+3]=w.x,n[o+4]=w.y,n[o+5]=w.z,n[o+6]=w.x,n[o+7]=w.y,n[o+8]=w.z;this.normalizeNormals(),e.normal.needsUpdate=!0}},merge:function(t,e){if(t&&t.isBufferGeometry){e===void 0&&(e=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));var i=this.attributes,n;for(n in i)if(t.attributes[n]!==void 0){var o=i[n].array,l=t.attributes[n],f=l.array,p=0;for(l=l.itemSize*e;p<f.length;p++,l++)o[l]=f[p]}return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",t)},normalizeNormals:function(){var t=new u;return function(){for(var e=this.attributes.normal,i=0,n=e.count;i<n;i++)t.x=e.getX(i),t.y=e.getY(i),t.z=e.getZ(i),t.normalize(),e.setXYZ(i,t.x,t.y,t.z)}}(),toNonIndexed:function(){if(this.index===null)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var t=new Ft,e=this.index.array,i=this.attributes,n;for(n in i){var o=i[n],l=o.array,f=o.itemSize,p=new l.constructor(e.length*f),y=0;o=0;for(var w=e.length;o<w;o++)for(var A=e[o]*f,P=0;P<f;P++)p[y++]=l[A++];t.addAttribute(n,new K(p,f))}for(e=this.groups,o=0,w=e.length;o<w;o++)i=e[o],t.addGroup(i.start,i.count,i.materialIndex);return t},toJSON:function(){var t={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),0<Object.keys(this.userData).length&&(t.userData=this.userData),this.parameters!==void 0){var e=this.parameters;for(o in e)e[o]!==void 0&&(t[o]=e[o]);return t}t.data={attributes:{}};var i=this.index;i!==null&&(e=Array.prototype.slice.call(i.array),t.data.index={type:i.array.constructor.name,array:e}),i=this.attributes;for(o in i){var n=i[o];e=Array.prototype.slice.call(n.array),t.data.attributes[o]={itemSize:n.itemSize,type:n.array.constructor.name,array:e,normalized:n.normalized}}var o=this.groups;return 0<o.length&&(t.data.groups=JSON.parse(JSON.stringify(o))),o=this.boundingSphere,o!==null&&(t.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),t},clone:function(){return new Ft().copy(this)},copy:function(t){var e;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingSphere=this.boundingBox=null,this.name=t.name;var i=t.index;i!==null&&this.setIndex(i.clone()),i=t.attributes;for(f in i)this.addAttribute(f,i[f].clone());var n=t.morphAttributes;for(f in n){var o=[],l=n[f];for(i=0,e=l.length;i<e;i++)o.push(l[i].clone());this.morphAttributes[f]=o}var f=t.groups;for(i=0,e=f.length;i<e;i++)n=f[i],this.addGroup(n.start,n.count,n.materialIndex);return f=t.boundingBox,f!==null&&(this.boundingBox=f.clone()),f=t.boundingSphere,f!==null&&(this.boundingSphere=f.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),It.prototype=Object.create(X.prototype),It.prototype.constructor=It,Nt.prototype=Object.create(Ft.prototype),Nt.prototype.constructor=Nt,Pe.prototype=Object.create(X.prototype),Pe.prototype.constructor=Pe,pe.prototype=Object.create(Ft.prototype),pe.prototype.constructor=pe;var zu=0;Wt.prototype=Object.assign(Object.create(a.prototype),{constructor:Wt,isMaterial:!0,onBeforeCompile:function(){},setValues:function(t){if(t!==void 0)for(var e in t){var i=t[e];if(i===void 0)console.warn("THREE.Material: '"+e+"' parameter is undefined.");else if(e==="shading")console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=i===1;else{var n=this[e];n===void 0?console.warn("THREE."+this.type+": '"+e+"' is not a property of this material."):n&&n.isColor?n.set(i):n&&n.isVector3&&i&&i.isVector3?n.copy(i):this[e]=i}}},toJSON:function(t){function e(o){var l=[],f;for(f in o){var p=o[f];delete p.metadata,l.push(p)}return l}var i=t===void 0||typeof t=="string";i&&(t={textures:{},images:{}});var n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};return n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearCoat!==void 0&&(n.clearCoat=this.clearCoat),this.clearCoatRoughness!==void 0&&(n.clearCoatRoughness=this.clearCoatRoughness),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,n.reflectivity=this.reflectivity,this.combine!==void 0&&(n.combine=this.combine),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity)),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),this.size!==void 0&&(n.size=this.size),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==1&&(n.blending=this.blending),this.flatShading===!0&&(n.flatShading=this.flatShading),this.side!==0&&(n.side=this.side),this.vertexColors!==0&&(n.vertexColors=this.vertexColors),1>this.opacity&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),0<this.alphaTest&&(n.alphaTest=this.alphaTest),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),1<this.wireframeLinewidth&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.morphTargets===!0&&(n.morphTargets=!0),this.skinning===!0&&(n.skinning=!0),this.visible===!1&&(n.visible=!1),JSON.stringify(this.userData)!=="{}"&&(n.userData=this.userData),i&&(i=e(t.textures),t=e(t.images),0<i.length&&(n.textures=i),0<t.length&&(n.images=t)),n},clone:function(){return new this.constructor().copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.lights=t.lights,this.blending=t.blending,this.side=t.side,this.flatShading=t.flatShading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.userData=JSON.parse(JSON.stringify(t.userData)),this.clipShadows=t.clipShadows,this.clipIntersection=t.clipIntersection;var e=t.clippingPlanes,i=null;if(e!==null){var n=e.length;i=Array(n);for(var o=0;o!==n;++o)i[o]=e[o].clone()}return this.clippingPlanes=i,this.shadowSide=t.shadowSide,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),$e.prototype=Object.create(Wt.prototype),$e.prototype.constructor=$e,$e.prototype.isShaderMaterial=!0,$e.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=Bn.clone(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=t.extensions,this},$e.prototype.toJSON=function(t){var e=Wt.prototype.toJSON.call(this,t);e.uniforms={};for(var i in this.uniforms){var n=this.uniforms[i].value;e.uniforms[i]=n.isTexture?{type:"t",value:n.toJSON(t).uuid}:n.isColor?{type:"c",value:n.getHex()}:n.isVector2?{type:"v2",value:n.toArray()}:n.isVector3?{type:"v3",value:n.toArray()}:n.isVector4?{type:"v4",value:n.toArray()}:n.isMatrix4?{type:"m4",value:n.toArray()}:{value:n}}return 0<Object.keys(this.defines).length&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e},Object.assign(Si.prototype,{set:function(t,e){return this.origin.copy(t),this.direction.copy(e),this},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this},at:function(t,e){return e===void 0&&(console.warn("THREE.Ray: .at() target is now required"),e=new u),e.copy(this.direction).multiplyScalar(t).add(this.origin)},lookAt:function(t){return this.direction.copy(t).sub(this.origin).normalize(),this},recast:function(){var t=new u;return function(e){return this.origin.copy(this.at(e,t)),this}}(),closestPointToPoint:function(t,e){return e===void 0&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new u),e.subVectors(t,this.origin),t=e.dot(this.direction),0>t?e.copy(this.origin):e.copy(this.direction).multiplyScalar(t).add(this.origin)},distanceToPoint:function(t){return Math.sqrt(this.distanceSqToPoint(t))},distanceSqToPoint:function(){var t=new u;return function(e){var i=t.subVectors(e,this.origin).dot(this.direction);return 0>i?this.origin.distanceToSquared(e):(t.copy(this.direction).multiplyScalar(i).add(this.origin),t.distanceToSquared(e))}}(),distanceSqToSegment:function(){var t=new u,e=new u,i=new u;return function(n,o,l,f){t.copy(n).add(o).multiplyScalar(.5),e.copy(o).sub(n).normalize(),i.copy(this.origin).sub(t);var p=.5*n.distanceTo(o),y=-this.direction.dot(e),w=i.dot(this.direction),A=-i.dot(e),P=i.lengthSq(),B=Math.abs(1-y*y);if(0<B){n=y*A-w,o=y*w-A;var H=p*B;0<=n?o>=-H?o<=H?(p=1/B,n*=p,o*=p,y=n*(n+y*o+2*w)+o*(y*n+o+2*A)+P):(o=p,n=Math.max(0,-(y*o+w)),y=-n*n+o*(o+2*A)+P):(o=-p,n=Math.max(0,-(y*o+w)),y=-n*n+o*(o+2*A)+P):o<=-H?(n=Math.max(0,-(-y*p+w)),o=0<n?-p:Math.min(Math.max(-p,-A),p),y=-n*n+o*(o+2*A)+P):o<=H?(n=0,o=Math.min(Math.max(-p,-A),p),y=o*(o+2*A)+P):(n=Math.max(0,-(y*p+w)),o=0<n?p:Math.min(Math.max(-p,-A),p),y=-n*n+o*(o+2*A)+P)}else o=0<y?-p:p,n=Math.max(0,-(y*o+w)),y=-n*n+o*(o+2*A)+P;return l&&l.copy(this.direction).multiplyScalar(n).add(this.origin),f&&f.copy(e).multiplyScalar(o).add(t),y}}(),intersectSphere:function(){var t=new u;return function(e,i){t.subVectors(e.center,this.origin);var n=t.dot(this.direction),o=t.dot(t)-n*n;return e=e.radius*e.radius,o>e?null:(e=Math.sqrt(e-o),o=n-e,n+=e,0>o&&0>n?null:0>o?this.at(n,i):this.at(o,i))}}(),intersectsSphere:function(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);return e===0?t.distanceToPoint(this.origin)===0?0:null:(t=-(this.origin.dot(t.normal)+t.constant)/e,0<=t?t:null)},intersectPlane:function(t,e){return t=this.distanceToPlane(t),t===null?null:this.at(t,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);return e===0||0>t.normal.dot(this.direction)*e},intersectBox:function(t,e){var i=1/this.direction.x,n=1/this.direction.y,o=1/this.direction.z,l=this.origin;if(0<=i){var f=(t.min.x-l.x)*i;i*=t.max.x-l.x}else f=(t.max.x-l.x)*i,i*=t.min.x-l.x;if(0<=n){var p=(t.min.y-l.y)*n;n*=t.max.y-l.y}else p=(t.max.y-l.y)*n,n*=t.min.y-l.y;return f>n||p>i||((p>f||f!==f)&&(f=p),(n<i||i!==i)&&(i=n),0<=o?(p=(t.min.z-l.z)*o,t=(t.max.z-l.z)*o):(p=(t.max.z-l.z)*o,t=(t.min.z-l.z)*o),f>t||p>i)?null:((p>f||f!==f)&&(f=p),(t<i||i!==i)&&(i=t),0>i?null:this.at(0<=f?f:i,e))},intersectsBox:function(){var t=new u;return function(e){return this.intersectBox(e,t)!==null}}(),intersectTriangle:function(){var t=new u,e=new u,i=new u,n=new u;return function(o,l,f,p,y){if(e.subVectors(l,o),i.subVectors(f,o),n.crossVectors(e,i),l=this.direction.dot(n),0<l){if(p)return null;p=1}else if(0>l)p=-1,l=-l;else return null;return t.subVectors(this.origin,o),o=p*this.direction.dot(i.crossVectors(t,i)),0>o||(f=p*this.direction.dot(e.cross(t)),0>f||o+f>l)?null:(o=-p*t.dot(n),0>o?null:this.at(o/l,y))}}(),applyMatrix4:function(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}}),Object.assign(Oe,{getNormal:function(){var t=new u;return function(e,i,n,o){return o===void 0&&(console.warn("THREE.Triangle: .getNormal() target is now required"),o=new u),o.subVectors(n,i),t.subVectors(e,i),o.cross(t),e=o.lengthSq(),0<e?o.multiplyScalar(1/Math.sqrt(e)):o.set(0,0,0)}}(),getBarycoord:function(){var t=new u,e=new u,i=new u;return function(n,o,l,f,p){t.subVectors(f,o),e.subVectors(l,o),i.subVectors(n,o),n=t.dot(t),o=t.dot(e),l=t.dot(i);var y=e.dot(e);f=e.dot(i);var w=n*y-o*o;return p===void 0&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),p=new u),w===0?p.set(-2,-1,-1):(w=1/w,y=(y*l-o*f)*w,n=(n*f-o*l)*w,p.set(1-y-n,n,y))}}(),containsPoint:function(){var t=new u;return function(e,i,n,o){return Oe.getBarycoord(e,i,n,o,t),0<=t.x&&0<=t.y&&1>=t.x+t.y}}(),getUV:function(){var t=new u;return function(e,i,n,o,l,f,p,y){return this.getBarycoord(e,i,n,o,t),y.set(0,0),y.addScaledVector(l,t.x),y.addScaledVector(f,t.y),y.addScaledVector(p,t.z),y}}()}),Object.assign(Oe.prototype,{set:function(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this},setFromPointsAndIndices:function(t,e,i,n){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[n]),this},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},getArea:function(){var t=new u,e=new u;return function(){return t.subVectors(this.c,this.b),e.subVectors(this.a,this.b),.5*t.cross(e).length()}}(),getMidpoint:function(t){return t===void 0&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new u),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(t){return Oe.getNormal(this.a,this.b,this.c,t)},getPlane:function(t){return t===void 0&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new u),t.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(t,e){return Oe.getBarycoord(t,this.a,this.b,this.c,e)},containsPoint:function(t){return Oe.containsPoint(t,this.a,this.b,this.c)},getUV:function(t,e,i,n,o){return Oe.getUV(t,this.a,this.b,this.c,e,i,n,o)},intersectsBox:function(t){return t.intersectsTriangle(this)},closestPointToPoint:function(){var t=new u,e=new u,i=new u,n=new u,o=new u,l=new u;return function(f,p){p===void 0&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),p=new u);var y=this.a,w=this.b,A=this.c;t.subVectors(w,y),e.subVectors(A,y),n.subVectors(f,y);var P=t.dot(n),B=e.dot(n);if(0>=P&&0>=B)return p.copy(y);o.subVectors(f,w);var H=t.dot(o),q=e.dot(o);if(0<=H&&q<=H)return p.copy(w);var $=P*q-H*B;if(0>=$&&0<=P&&0>=H)return w=P/(P-H),p.copy(y).addScaledVector(t,w);l.subVectors(f,A),f=t.dot(l);var rt=e.dot(l);return 0<=rt&&f<=rt?p.copy(A):(P=f*B-P*rt,0>=P&&0<=B&&0>=rt?($=B/(B-rt),p.copy(y).addScaledVector(e,$)):(B=H*rt-f*q,0>=B&&0<=q-H&&0<=f-rt?(i.subVectors(A,w),$=(q-H)/(q-H+(f-rt)),p.copy(w).addScaledVector(i,$)):(A=1/(B+P+$),w=P*A,$*=A,p.copy(y).addScaledVector(t,w).addScaledVector(e,$))))}}(),equals:function(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}),Ge.prototype=Object.create(Wt.prototype),Ge.prototype.constructor=Ge,Ge.prototype.isMeshBasicMaterial=!0,Ge.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this},pi.prototype=Object.assign(Object.create(N.prototype),{constructor:pi,isMesh:!0,setDrawMode:function(t){this.drawMode=t},copy:function(t){return N.prototype.copy.call(this,t),this.drawMode=t.drawMode,t.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),t.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this},updateMorphTargets:function(){var t=this.geometry;if(t.isBufferGeometry){t=t.morphAttributes;var e=Object.keys(t);if(0<e.length){var i=t[e[0]];if(i!==void 0)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=i.length;t<e;t++){var n=i[t].name||String(t);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=t}}}else if(i=t.morphTargets,i!==void 0&&0<i.length)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=i.length;t<e;t++)n=i[t].name||String(t),this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=t},raycast:function(){function t(rt,xt,gt,Ct,wt,Vt,J,ot){return(xt.side===1?Ct.intersectTriangle(J,Vt,wt,!0,ot):Ct.intersectTriangle(wt,Vt,J,xt.side!==2,ot))===null?null:($.copy(ot),$.applyMatrix4(rt.matrixWorld),xt=gt.ray.origin.distanceTo($),xt<gt.near||xt>gt.far?null:{distance:xt,point:$.clone(),object:rt})}function e(rt,xt,gt,Ct,wt,Vt,J,ot,zt){return l.fromBufferAttribute(wt,J),f.fromBufferAttribute(wt,ot),p.fromBufferAttribute(wt,zt),(rt=t(rt,xt,gt,Ct,l,f,p,q))&&(Vt&&(P.fromBufferAttribute(Vt,J),B.fromBufferAttribute(Vt,ot),H.fromBufferAttribute(Vt,zt),rt.uv=Oe.getUV(q,l,f,p,P,B,H,new s)),Vt=new R(J,ot,zt),Oe.getNormal(l,f,p,Vt.normal),rt.face=Vt),rt}var i=new c,n=new Si,o=new D,l=new u,f=new u,p=new u,y=new u,w=new u,A=new u,P=new s,B=new s,H=new s,q=new u,$=new u;return function(rt,xt){var gt=this.geometry,Ct=this.material,wt=this.matrixWorld;if(Ct!==void 0&&(gt.boundingSphere===null&>.computeBoundingSphere(),o.copy(gt.boundingSphere),o.applyMatrix4(wt),rt.ray.intersectsSphere(o)!==!1&&(i.getInverse(wt),n.copy(rt.ray).applyMatrix4(i),gt.boundingBox===null||n.intersectsBox(gt.boundingBox)!==!1))){if(gt.isBufferGeometry){var Vt=gt.index,J=gt.attributes.position,ot=gt.attributes.uv,zt=gt.groups;gt=gt.drawRange;var ee;if(Vt!==null)if(Array.isArray(Ct)){var $t=0;for(ee=zt.length;$t<ee;$t++){var Yt=zt[$t],Te=Ct[Yt.materialIndex];wt=Math.max(Yt.start,gt.start);var me=Math.min(Yt.start+Yt.count,gt.start+gt.count);for(Yt=wt;Yt<me;Yt+=3){wt=Vt.getX(Yt);var De=Vt.getX(Yt+1),be=Vt.getX(Yt+2);(wt=e(this,Te,rt,n,J,ot,wt,De,be))&&(wt.faceIndex=Math.floor(Yt/3),xt.push(wt))}}}else for(wt=Math.max(0,gt.start),me=Math.min(Vt.count,gt.start+gt.count),$t=wt,ee=me;$t<ee;$t+=3)wt=Vt.getX($t),De=Vt.getX($t+1),be=Vt.getX($t+2),(wt=e(this,Ct,rt,n,J,ot,wt,De,be))&&(wt.faceIndex=Math.floor($t/3),xt.push(wt));else if(J!==void 0)if(Array.isArray(Ct))for($t=0,ee=zt.length;$t<ee;$t++)for(Yt=zt[$t],Te=Ct[Yt.materialIndex],wt=Math.max(Yt.start,gt.start),me=Math.min(Yt.start+Yt.count,gt.start+gt.count),Yt=wt;Yt<me;Yt+=3)wt=Yt,De=Yt+1,be=Yt+2,(wt=e(this,Te,rt,n,J,ot,wt,De,be))&&(wt.faceIndex=Math.floor(Yt/3),xt.push(wt));else for(wt=Math.max(0,gt.start),me=Math.min(J.count,gt.start+gt.count),$t=wt,ee=me;$t<ee;$t+=3)wt=$t,De=$t+1,be=$t+2,(wt=e(this,Ct,rt,n,J,ot,wt,De,be))&&(wt.faceIndex=Math.floor($t/3),xt.push(wt))}else if(gt.isGeometry){for(J=Array.isArray(Ct),ot=gt.vertices,zt=gt.faces,wt=gt.faceVertexUvs[0],0<wt.length&&(Vt=wt),Yt=0,me=zt.length;Yt<me;Yt++)if(De=zt[Yt],wt=J?Ct[De.materialIndex]:Ct,wt!==void 0){if($t=ot[De.a],ee=ot[De.b],Te=ot[De.c],wt.morphTargets===!0){be=gt.morphTargets;var ae=this.morphTargetInfluences;l.set(0,0,0),f.set(0,0,0),p.set(0,0,0);for(var We=0,Qe=be.length;We<Qe;We++){var fi=ae[We];if(fi!==0){var Cn=be[We].vertices;l.addScaledVector(y.subVectors(Cn[De.a],$t),fi),f.addScaledVector(w.subVectors(Cn[De.b],ee),fi),p.addScaledVector(A.subVectors(Cn[De.c],Te),fi)}}l.add($t),f.add(ee),p.add(Te),$t=l,ee=f,Te=p}(wt=t(this,wt,rt,n,$t,ee,Te,q))&&(Vt&&Vt[Yt]&&(be=Vt[Yt],P.copy(be[0]),B.copy(be[1]),H.copy(be[2]),wt.uv=Oe.getUV(q,$t,ee,Te,P,B,H,new s)),wt.face=De,wt.faceIndex=Yt,xt.push(wt))}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),z.prototype=Object.create(g.prototype),z.prototype.constructor=z,z.prototype.isCubeTexture=!0,Object.defineProperty(z.prototype,"images",{get:function(){return this.image},set:function(t){this.image=t}}),Q.prototype=Object.create(g.prototype),Q.prototype.constructor=Q,Q.prototype.isDataTexture3D=!0;var qh=new g,Jc=new Q,ku=new z,ah=[],La=[],Tl=new Float32Array(16),Bu=new Float32Array(9),Yh=new Float32Array(4);oa.prototype.updateCache=function(t){var e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),vt(e,t)},Ja.prototype.setValue=function(t,e,i){for(var n=this.seq,o=0,l=n.length;o!==l;++o){var f=n[o];f.setValue(t,e[f.id],i)}};var Zh=/([\w\d_]+)(\])?(\[|\.)?/g;ho.prototype.setValue=function(t,e,i){e=this.map[e],e!==void 0&&e.setValue(t,i,this.renderer)},ho.prototype.setOptional=function(t,e,i){e=e[i],e!==void 0&&this.setValue(t,i,e)},ho.upload=function(t,e,i,n){for(var o=0,l=e.length;o!==l;++o){var f=e[o],p=i[f.id];p.needsUpdate!==!1&&f.setValue(t,p.value,n)}},ho.seqWithValue=function(t,e){for(var i=[],n=0,o=t.length;n!==o;++n){var l=t[n];l.id in e&&i.push(l)}return i};var Bo=0,Jh=0;se.prototype=Object.create(Wt.prototype),se.prototype.constructor=se,se.prototype.isMeshDepthMaterial=!0,se.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this},te.prototype=Object.create(Wt.prototype),te.prototype.constructor=te,te.prototype.isMeshDistanceMaterial=!0,te.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this},ci.prototype=Object.assign(Object.create(N.prototype),{constructor:ci,isGroup:!0}),Be.prototype=Object.assign(Object.create(N.prototype),{constructor:Be,isCamera:!0,copy:function(t,e){return N.prototype.copy.call(this,t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this},getWorldDirection:function(t){t===void 0&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new u),this.updateMatrixWorld(!0);var e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()},updateMatrixWorld:function(t){N.prototype.updateMatrixWorld.call(this,t),this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return new this.constructor().copy(this)}}),_e.prototype=Object.assign(Object.create(Be.prototype),{constructor:_e,isPerspectiveCamera:!0,copy:function(t,e){return Be.prototype.copy.call(this,t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this},setFocalLength:function(t){t=.5*this.getFilmHeight()/t,this.fov=2*di.RAD2DEG*Math.atan(t),this.updateProjectionMatrix()},getFocalLength:function(){var t=Math.tan(.5*di.DEG2RAD*this.fov);return .5*this.getFilmHeight()/t},getEffectiveFOV:function(){return 2*di.RAD2DEG*Math.atan(Math.tan(.5*di.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(t,e,i,n,o,l){this.aspect=t/e,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=n,this.view.width=o,this.view.height=l,this.updateProjectionMatrix()},clearViewOffset:function(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=this.near,e=t*Math.tan(.5*di.DEG2RAD*this.fov)/this.zoom,i=2*e,n=this.aspect*i,o=-.5*n,l=this.view;if(this.view!==null&&this.view.enabled){var f=l.fullWidth,p=l.fullHeight;o+=l.offsetX*n/f,e-=l.offsetY*i/p,n*=l.width/f,i*=l.height/p}l=this.filmOffset,l!==0&&(o+=t*l/this.getFilmWidth()),this.projectionMatrix.makePerspective(o,o+n,e,e-i,t,this.far),this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(t){return t=N.prototype.toJSON.call(this,t),t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}),Fe.prototype=Object.assign(Object.create(_e.prototype),{constructor:Fe,isArrayCamera:!0});var as=new u,wr=new u;Re.prototype.isFogExp2=!0,Re.prototype.clone=function(){return new Re(this.color,this.density)},Re.prototype.toJSON=function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}},Sn.prototype.isFog=!0,Sn.prototype.clone=function(){return new Sn(this.color,this.near,this.far)},Sn.prototype.toJSON=function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}},Xn.prototype=Object.assign(Object.create(N.prototype),{constructor:Xn,copy:function(t,e){return N.prototype.copy.call(this,t,e),t.background!==null&&(this.background=t.background.clone()),t.fog!==null&&(this.fog=t.fog.clone()),t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this},toJSON:function(t){var e=N.prototype.toJSON.call(this,t);return this.background!==null&&(e.object.background=this.background.toJSON(t)),this.fog!==null&&(e.object.fog=this.fog.toJSON()),e}}),Object.defineProperty(ki.prototype,"needsUpdate",{set:function(t){t===!0&&this.version++}}),Object.assign(ki.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setArray:function(t){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");return this.count=t!==void 0?t.length/this.stride:0,this.array=t,this},setDynamic:function(t){return this.dynamic=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.dynamic=t.dynamic,this},copyAt:function(t,e,i){t*=this.stride,i*=e.stride;for(var n=0,o=this.stride;n<o;n++)this.array[t+n]=e.array[i+n];return this},set:function(t,e){return e===void 0&&(e=0),this.array.set(t,e),this},clone:function(){return new this.constructor().copy(this)},onUpload:function(t){return this.onUploadCallback=t,this}}),Object.defineProperties(Bi.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}}),Object.assign(Bi.prototype,{isInterleavedBufferAttribute:!0,setX:function(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this},setY:function(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this},setZ:function(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this},setW:function(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this},getX:function(t){return this.data.array[t*this.data.stride+this.offset]},getY:function(t){return this.data.array[t*this.data.stride+this.offset+1]},getZ:function(t){return this.data.array[t*this.data.stride+this.offset+2]},getW:function(t){return this.data.array[t*this.data.stride+this.offset+3]},setXY:function(t,e,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=i,this},setXYZ:function(t,e,i,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=i,this.data.array[t+2]=n,this},setXYZW:function(t,e,i,n,o){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=i,this.data.array[t+2]=n,this.data.array[t+3]=o,this}}),Hi.prototype=Object.create(Wt.prototype),Hi.prototype.constructor=Hi,Hi.prototype.isSpriteMaterial=!0,Hi.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this};var Ra;nn.prototype=Object.assign(Object.create(N.prototype),{constructor:nn,isSprite:!0,raycast:function(){function t(H,q,$,rt,xt,gt){o.subVectors(H,$).addScalar(.5).multiply(rt),xt!==void 0?(l.x=gt*o.x-xt*o.y,l.y=xt*o.x+gt*o.y):l.copy(o),H.copy(q),H.x+=l.x,H.y+=l.y,H.applyMatrix4(f)}var e=new u,i=new u,n=new u,o=new s,l=new s,f=new c,p=new u,y=new u,w=new u,A=new s,P=new s,B=new s;return function(H,q){i.setFromMatrixScale(this.matrixWorld),f.getInverse(this.modelViewMatrix).premultiply(this.matrixWorld),n.setFromMatrixPosition(this.modelViewMatrix);var $=this.material.rotation;if($!==0)var rt=Math.cos($),xt=Math.sin($);$=this.center,t(p.set(-.5,-.5,0),n,$,i,xt,rt),t(y.set(.5,-.5,0),n,$,i,xt,rt),t(w.set(.5,.5,0),n,$,i,xt,rt),A.set(0,0),P.set(1,0),B.set(1,1);var gt=H.ray.intersectTriangle(p,y,w,!1,e);gt===null&&(t(y.set(-.5,.5,0),n,$,i,xt,rt),P.set(0,1),gt=H.ray.intersectTriangle(p,w,y,!1,e),gt===null)||(xt=H.ray.origin.distanceTo(e),xt<H.near||xt>H.far||q.push({distance:xt,point:e.clone(),uv:Oe.getUV(e,p,y,w,A,P,B,new s),face:null,object:this}))}}(),clone:function(){return new this.constructor(this.material).copy(this)},copy:function(t){return N.prototype.copy.call(this,t),t.center!==void 0&&this.center.copy(t.center),this}}),rn.prototype=Object.assign(Object.create(N.prototype),{constructor:rn,copy:function(t){N.prototype.copy.call(this,t,!1),t=t.levels;for(var e=0,i=t.length;e<i;e++){var n=t[e];this.addLevel(n.object.clone(),n.distance)}return this},addLevel:function(t,e){e===void 0&&(e=0),e=Math.abs(e);for(var i=this.levels,n=0;n<i.length&&!(e<i[n].distance);n++);i.splice(n,0,{distance:e,object:t}),this.add(t)},getObjectForDistance:function(t){for(var e=this.levels,i=1,n=e.length;i<n&&!(t<e[i].distance);i++);return e[i-1].object},raycast:function(){var t=new u;return function(e,i){t.setFromMatrixPosition(this.matrixWorld);var n=e.ray.origin.distanceTo(t);this.getObjectForDistance(n).raycast(e,i)}}(),update:function(){var t=new u,e=new u;return function(i){var n=this.levels;if(1<n.length){t.setFromMatrixPosition(i.matrixWorld),e.setFromMatrixPosition(this.matrixWorld),i=t.distanceTo(e),n[0].object.visible=!0;for(var o=1,l=n.length;o<l&&i>=n[o].distance;o++)n[o-1].object.visible=!1,n[o].object.visible=!0;for(;o<l;o++)n[o].object.visible=!1}}}(),toJSON:function(t){t=N.prototype.toJSON.call(this,t),t.object.levels=[];for(var e=this.levels,i=0,n=e.length;i<n;i++){var o=e[i];t.object.levels.push({object:o.object.uuid,distance:o.distance})}return t}}),Object.assign(un.prototype,{calculateInverses:function(){this.boneInverses=[];for(var t=0,e=this.bones.length;t<e;t++){var i=new c;this.bones[t]&&i.getInverse(this.bones[t].matrixWorld),this.boneInverses.push(i)}},pose:function(){var t,e,i=0;for(e=this.bones.length;i<e;i++)(t=this.bones[i])&&t.matrixWorld.getInverse(this.boneInverses[i]);for(i=0,e=this.bones.length;i<e;i++)(t=this.bones[i])&&(t.parent&&t.parent.isBone?(t.matrix.getInverse(t.parent.matrixWorld),t.matrix.multiply(t.matrixWorld)):t.matrix.copy(t.matrixWorld),t.matrix.decompose(t.position,t.quaternion,t.scale))},update:function(){var t=new c,e=new c;return function(){for(var i=this.bones,n=this.boneInverses,o=this.boneMatrices,l=this.boneTexture,f=0,p=i.length;f<p;f++)t.multiplyMatrices(i[f]?i[f].matrixWorld:e,n[f]),t.toArray(o,16*f);l!==void 0&&(l.needsUpdate=!0)}}(),clone:function(){return new un(this.bones,this.boneInverses)},getBoneByName:function(t){for(var e=0,i=this.bones.length;e<i;e++){var n=this.bones[e];if(n.name===t)return n}}}),cn.prototype=Object.assign(Object.create(N.prototype),{constructor:cn,isBone:!0}),Gi.prototype=Object.assign(Object.create(pi.prototype),{constructor:Gi,isSkinnedMesh:!0,initBones:function(){var t=[],e;if(this.geometry&&this.geometry.bones!==void 0){var i=0;for(e=this.geometry.bones.length;i<e;i++){var n=this.geometry.bones[i],o=new cn;t.push(o),o.name=n.name,o.position.fromArray(n.pos),o.quaternion.fromArray(n.rotq),n.scl!==void 0&&o.scale.fromArray(n.scl)}for(i=0,e=this.geometry.bones.length;i<e;i++)n=this.geometry.bones[i],n.parent!==-1&&n.parent!==null&&t[n.parent]!==void 0?t[n.parent].add(t[i]):this.add(t[i])}return this.updateMatrixWorld(!0),t},bind:function(t,e){this.skeleton=t,e===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.getInverse(e)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){var t;if(this.geometry&&this.geometry.isGeometry)for(t=0;t<this.geometry.skinWeights.length;t++){var e=this.geometry.skinWeights[t],i=1/e.manhattanLength();i!==1/0?e.multiplyScalar(i):e.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry){e=new _;var n=this.geometry.attributes.skinWeight;for(t=0;t<n.count;t++)e.x=n.getX(t),e.y=n.getY(t),e.z=n.getZ(t),e.w=n.getW(t),i=1/e.manhattanLength(),i!==1/0?e.multiplyScalar(i):e.set(1,0,0,0),n.setXYZW(t,e.x,e.y,e.z,e.w)}},updateMatrixWorld:function(t){pi.prototype.updateMatrixWorld.call(this,t),this.bindMode==="attached"?this.bindMatrixInverse.getInverse(this.matrixWorld):this.bindMode==="detached"?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),Ni.prototype=Object.create(Wt.prototype),Ni.prototype.constructor=Ni,Ni.prototype.isLineBasicMaterial=!0,Ni.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this},ji.prototype=Object.assign(Object.create(N.prototype),{constructor:ji,isLine:!0,computeLineDistances:function(){var t=new u,e=new u;return function(){var i=this.geometry;if(i.isBufferGeometry)if(i.index===null){for(var n=i.attributes.position,o=[0],l=1,f=n.count;l<f;l++)t.fromBufferAttribute(n,l-1),e.fromBufferAttribute(n,l),o[l]=o[l-1],o[l]+=t.distanceTo(e);i.addAttribute("lineDistance",new Et(o,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(i.isGeometry)for(n=i.vertices,o=i.lineDistances,o[0]=0,l=1,f=n.length;l<f;l++)o[l]=o[l-1],o[l]+=n[l-1].distanceTo(n[l]);return this}}(),raycast:function(){var t=new c,e=new Si,i=new D;return function(n,o){var l=n.linePrecision,f=this.geometry,p=this.matrixWorld;if(f.boundingSphere===null&&f.computeBoundingSphere(),i.copy(f.boundingSphere),i.applyMatrix4(p),i.radius+=l,n.ray.intersectsSphere(i)!==!1){t.getInverse(p),e.copy(n.ray).applyMatrix4(t),l/=(this.scale.x+this.scale.y+this.scale.z)/3,l*=l;var y=new u,w=new u;p=new u;var A=new u,P=this&&this.isLineSegments?2:1;if(f.isBufferGeometry){var B=f.index,H=f.attributes.position.array;if(B!==null){B=B.array,f=0;for(var q=B.length-1;f<q;f+=P){var $=B[f+1];y.fromArray(H,3*B[f]),w.fromArray(H,3*$),$=e.distanceSqToSegment(y,w,A,p),$>l||(A.applyMatrix4(this.matrixWorld),$=n.ray.origin.distanceTo(A),$<n.near||$>n.far||o.push({distance:$,point:p.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}}else for(f=0,q=H.length/3-1;f<q;f+=P)y.fromArray(H,3*f),w.fromArray(H,3*f+3),$=e.distanceSqToSegment(y,w,A,p),$>l||(A.applyMatrix4(this.matrixWorld),$=n.ray.origin.distanceTo(A),$<n.near||$>n.far||o.push({distance:$,point:p.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}else if(f.isGeometry)for(y=f.vertices,w=y.length,f=0;f<w-1;f+=P)$=e.distanceSqToSegment(y[f],y[f+1],A,p),$>l||(A.applyMatrix4(this.matrixWorld),$=n.ray.origin.distanceTo(A),$<n.near||$>n.far||o.push({distance:$,point:p.clone().applyMatrix4(this.matrixWorld),index:f,face:null,faceIndex:null,object:this}))}}}(),copy:function(t){return N.prototype.copy.call(this,t),this.geometry.copy(t.geometry),this.material.copy(t.material),this},clone:function(){return new this.constructor().copy(this)}}),gi.prototype=Object.assign(Object.create(ji.prototype),{constructor:gi,isLineSegments:!0,computeLineDistances:function(){var t=new u,e=new u;return function(){var i=this.geometry;if(i.isBufferGeometry)if(i.index===null){for(var n=i.attributes.position,o=[],l=0,f=n.count;l<f;l+=2)t.fromBufferAttribute(n,l),e.fromBufferAttribute(n,l+1),o[l]=l===0?0:o[l-1],o[l+1]=o[l]+t.distanceTo(e);i.addAttribute("lineDistance",new Et(o,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(i.isGeometry)for(n=i.vertices,o=i.lineDistances,l=0,f=n.length;l<f;l+=2)t.copy(n[l]),e.copy(n[l+1]),o[l]=l===0?0:o[l-1],o[l+1]=o[l]+t.distanceTo(e);return this}}()}),co.prototype=Object.assign(Object.create(ji.prototype),{constructor:co,isLineLoop:!0}),Fn.prototype=Object.create(Wt.prototype),Fn.prototype.constructor=Fn,Fn.prototype.isPointsMaterial=!0,Fn.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this},la.prototype=Object.assign(Object.create(N.prototype),{constructor:la,isPoints:!0,raycast:function(){var t=new c,e=new Si,i=new D;return function(n,o){function l(rt,xt){var gt=e.distanceSqToPoint(rt);gt<A&&(e.closestPointToPoint(rt,P),P.applyMatrix4(y),rt=n.ray.origin.distanceTo(P),rt<n.near||rt>n.far||o.push({distance:rt,distanceToRay:Math.sqrt(gt),point:P.clone(),index:xt,face:null,object:f}))}var f=this,p=this.geometry,y=this.matrixWorld,w=n.params.Points.threshold;if(p.boundingSphere===null&&p.computeBoundingSphere(),i.copy(p.boundingSphere),i.applyMatrix4(y),i.radius+=w,n.ray.intersectsSphere(i)!==!1){t.getInverse(y),e.copy(n.ray).applyMatrix4(t),w/=(this.scale.x+this.scale.y+this.scale.z)/3;var A=w*w;w=new u;var P=new u;if(p.isBufferGeometry){var B=p.index;if(p=p.attributes.position.array,B!==null){var H=B.array;B=0;for(var q=H.length;B<q;B++){var $=H[B];w.fromArray(p,3*$),l(w,$)}}else for(B=0,H=p.length/3;B<H;B++)w.fromArray(p,3*B),l(w,B)}else for(w=p.vertices,B=0,H=w.length;B<H;B++)l(w[B],B)}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),zh.prototype=Object.assign(Object.create(g.prototype),{constructor:zh,isVideoTexture:!0,update:function(){var t=this.image;t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}),Yo.prototype=Object.create(g.prototype),Yo.prototype.constructor=Yo,Yo.prototype.isCompressedTexture=!0,Ka.prototype=Object.create(g.prototype),Ka.prototype.constructor=Ka,Ka.prototype.isCanvasTexture=!0,Qa.prototype=Object.create(g.prototype),Qa.prototype.constructor=Qa,Qa.prototype.isDepthTexture=!0,ha.prototype=Object.create(Ft.prototype),ha.prototype.constructor=ha,tl.prototype=Object.create(X.prototype),tl.prototype.constructor=tl,ua.prototype=Object.create(Ft.prototype),ua.prototype.constructor=ua,Xi.prototype=Object.create(X.prototype),Xi.prototype.constructor=Xi,xi.prototype=Object.create(Ft.prototype),xi.prototype.constructor=xi,el.prototype=Object.create(X.prototype),el.prototype.constructor=el,ca.prototype=Object.create(xi.prototype),ca.prototype.constructor=ca,il.prototype=Object.create(X.prototype),il.prototype.constructor=il,_s.prototype=Object.create(xi.prototype),_s.prototype.constructor=_s,nl.prototype=Object.create(X.prototype),nl.prototype.constructor=nl,fa.prototype=Object.create(xi.prototype),fa.prototype.constructor=fa,da.prototype=Object.create(X.prototype),da.prototype.constructor=da,pa.prototype=Object.create(xi.prototype),pa.prototype.constructor=pa,gn.prototype=Object.create(X.prototype),gn.prototype.constructor=gn,Zo.prototype=Object.create(Ft.prototype),Zo.prototype.constructor=Zo,Zr.prototype=Object.create(X.prototype),Zr.prototype.constructor=Zr,xs.prototype=Object.create(Ft.prototype),xs.prototype.constructor=xs,ws.prototype=Object.create(X.prototype),ws.prototype.constructor=ws,Un.prototype=Object.create(Ft.prototype),Un.prototype.constructor=Un;var Nu={triangulate:function(t,e,i){i=i||2;var n=e&&e.length,o=n?e[0]*i:t.length,l=kh(t,0,o,i,!0),f=[];if(!l)return f;var p;if(n){var y=i;n=[];var w,A=0;for(w=e.length;A<w;A++){var P=e[A]*y,B=A<w-1?e[A+1]*y:t.length;P=kh(t,P,B,y,!1),P===P.next&&(P.steiner=!0),n.push(yr(P))}for(n.sort(Su),A=0;A<n.length;A++)e=n[A],y=l,(y=Eu(e,y))&&(e=rl(y,e),ma(e,e.next)),l=ma(l,l.next)}if(t.length>80*i){var H=p=t[0],q=n=t[1];for(y=i;y<o;y+=i)A=t[y],e=t[y+1],A<H&&(H=A),e<q&&(q=e),A>p&&(p=A),e>n&&(n=e);p=Math.max(p-H,n-q),p=p!==0?1/p:0}return ga(l,f,i,H,q,p),f}},To={area:function(t){for(var e=t.length,i=0,n=e-1,o=0;o<e;n=o++)i+=t[n].x*t[o].y-t[o].x*t[n].y;return .5*i},isClockWise:function(t){return 0>To.area(t)},triangulateShape:function(t,e){var i=[],n=[],o=[];$l(t),bu(i,t);var l=t.length;for(e.forEach($l),t=0;t<e.length;t++)n.push(l),l+=e[t].length,bu(i,e[t]);for(e=Nu.triangulate(i,n),t=0;t<e.length;t+=3)o.push(e.slice(t,t+3));return o}};Po.prototype=Object.create(X.prototype),Po.prototype.constructor=Po,Po.prototype.toJSON=function(){var t=X.prototype.toJSON.call(this);return Cu(this.parameters.shapes,this.parameters.options,t)},po.prototype=Object.create(Ft.prototype),po.prototype.constructor=po,po.prototype.toJSON=function(){var t=Ft.prototype.toJSON.call(this);return Cu(this.parameters.shapes,this.parameters.options,t)};var Ml={generateTopUV:function(t,e,i,n,o){t=e[3*n],n=e[3*n+1];var l=e[3*o];return o=e[3*o+1],[new s(e[3*i],e[3*i+1]),new s(t,n),new s(l,o)]},generateSideWallUV:function(t,e,i,n,o,l){t=e[3*i];var f=e[3*i+1];i=e[3*i+2];var p=e[3*n],y=e[3*n+1];n=e[3*n+2];var w=e[3*o],A=e[3*o+1];o=e[3*o+2];var P=e[3*l],B=e[3*l+1];return e=e[3*l+2],.01>Math.abs(f-y)?[new s(t,1-i),new s(p,1-n),new s(w,1-o),new s(P,1-e)]:[new s(f,1-i),new s(y,1-n),new s(A,1-o),new s(B,1-e)]}};ol.prototype=Object.create(X.prototype),ol.prototype.constructor=ol,Ms.prototype=Object.create(po.prototype),Ms.prototype.constructor=Ms,Jo.prototype=Object.create(X.prototype),Jo.prototype.constructor=Jo,Or.prototype=Object.create(Ft.prototype),Or.prototype.constructor=Or,sl.prototype=Object.create(X.prototype),sl.prototype.constructor=sl,Ss.prototype=Object.create(Ft.prototype),Ss.prototype.constructor=Ss,va.prototype=Object.create(X.prototype),va.prototype.constructor=va,$o.prototype=Object.create(Ft.prototype),$o.prototype.constructor=$o,Lo.prototype=Object.create(X.prototype),Lo.prototype.constructor=Lo,Lo.prototype.toJSON=function(){var t=X.prototype.toJSON.call(this);return Au(this.parameters.shapes,t)},Ko.prototype=Object.create(Ft.prototype),Ko.prototype.constructor=Ko,Ko.prototype.toJSON=function(){var t=Ft.prototype.toJSON.call(this);return Au(this.parameters.shapes,t)},Qo.prototype=Object.create(Ft.prototype),Qo.prototype.constructor=Qo,Ro.prototype=Object.create(X.prototype),Ro.prototype.constructor=Ro,Oo.prototype=Object.create(Ft.prototype),Oo.prototype.constructor=Oo,ya.prototype=Object.create(Ro.prototype),ya.prototype.constructor=ya,Gn.prototype=Object.create(Oo.prototype),Gn.prototype.constructor=Gn,Es.prototype=Object.create(X.prototype),Es.prototype.constructor=Es,mo.prototype=Object.create(Ft.prototype),mo.prototype.constructor=mo;var yn=Object.freeze({WireframeGeometry:ha,ParametricGeometry:tl,ParametricBufferGeometry:ua,TetrahedronGeometry:el,TetrahedronBufferGeometry:ca,OctahedronGeometry:il,OctahedronBufferGeometry:_s,IcosahedronGeometry:nl,IcosahedronBufferGeometry:fa,DodecahedronGeometry:da,DodecahedronBufferGeometry:pa,PolyhedronGeometry:Xi,PolyhedronBufferGeometry:xi,TubeGeometry:gn,TubeBufferGeometry:Zo,TorusKnotGeometry:Zr,TorusKnotBufferGeometry:xs,TorusGeometry:ws,TorusBufferGeometry:Un,TextGeometry:ol,TextBufferGeometry:Ms,SphereGeometry:Jo,SphereBufferGeometry:Or,RingGeometry:sl,RingBufferGeometry:Ss,PlaneGeometry:Pe,PlaneBufferGeometry:pe,LatheGeometry:va,LatheBufferGeometry:$o,ShapeGeometry:Lo,ShapeBufferGeometry:Ko,ExtrudeGeometry:Po,ExtrudeBufferGeometry:po,EdgesGeometry:Qo,ConeGeometry:ya,ConeBufferGeometry:Gn,CylinderGeometry:Ro,CylinderBufferGeometry:Oo,CircleGeometry:Es,CircleBufferGeometry:mo,BoxGeometry:It,BoxBufferGeometry:Nt});ts.prototype=Object.create(Wt.prototype),ts.prototype.constructor=ts,ts.prototype.isShadowMaterial=!0,ts.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.color.copy(t.color),this},bs.prototype=Object.create($e.prototype),bs.prototype.constructor=bs,bs.prototype.isRawShaderMaterial=!0,go.prototype=Object.create(Wt.prototype),go.prototype.constructor=go,go.prototype.isMeshStandardMaterial=!0,go.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Cs.prototype=Object.create(go.prototype),Cs.prototype.constructor=Cs,Cs.prototype.isMeshPhysicalMaterial=!0,Cs.prototype.copy=function(t){return go.prototype.copy.call(this,t),this.defines={PHYSICAL:""},this.reflectivity=t.reflectivity,this.clearCoat=t.clearCoat,this.clearCoatRoughness=t.clearCoatRoughness,this},Jr.prototype=Object.create(Wt.prototype),Jr.prototype.constructor=Jr,Jr.prototype.isMeshPhongMaterial=!0,Jr.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},As.prototype=Object.create(Jr.prototype),As.prototype.constructor=As,As.prototype.isMeshToonMaterial=!0,As.prototype.copy=function(t){return Jr.prototype.copy.call(this,t),this.gradientMap=t.gradientMap,this},Ps.prototype=Object.create(Wt.prototype),Ps.prototype.constructor=Ps,Ps.prototype.isMeshNormalMaterial=!0,Ps.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Ir.prototype=Object.create(Wt.prototype),Ir.prototype.constructor=Ir,Ir.prototype.isMeshLambertMaterial=!0,Ir.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Ls.prototype=Object.create(Wt.prototype),Ls.prototype.constructor=Ls,Ls.prototype.isMeshMatcapMaterial=!0,Ls.prototype.copy=function(t){return Wt.prototype.copy.call(this,t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Rs.prototype=Object.create(Ni.prototype),Rs.prototype.constructor=Rs,Rs.prototype.isLineDashedMaterial=!0,Rs.prototype.copy=function(t){return Ni.prototype.copy.call(this,t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this};var Fu=Object.freeze({ShadowMaterial:ts,SpriteMaterial:Hi,RawShaderMaterial:bs,ShaderMaterial:$e,PointsMaterial:Fn,MeshPhysicalMaterial:Cs,MeshStandardMaterial:go,MeshPhongMaterial:Jr,MeshToonMaterial:As,MeshNormalMaterial:Ps,MeshLambertMaterial:Ir,MeshDepthMaterial:se,MeshDistanceMaterial:te,MeshBasicMaterial:Ge,MeshMatcapMaterial:Ls,LineDashedMaterial:Rs,LineBasicMaterial:Ni,Material:Wt}),Yn={arraySlice:function(t,e,i){return Yn.isTypedArray(t)?new t.constructor(t.subarray(e,i!==void 0?i:t.length)):t.slice(e,i)},convertArray:function(t,e,i){return!t||!i&&t.constructor===e?t:typeof e.BYTES_PER_ELEMENT=="number"?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){for(var e=t.length,i=Array(e),n=0;n!==e;++n)i[n]=n;return i.sort(function(o,l){return t[o]-t[l]}),i},sortedArray:function(t,e,i){for(var n=t.length,o=new t.constructor(n),l=0,f=0;f!==n;++l)for(var p=i[l]*e,y=0;y!==e;++y)o[f++]=t[p+y];return o},flattenJSON:function(t,e,i,n){for(var o=1,l=t[0];l!==void 0&&l[n]===void 0;)l=t[o++];if(l!==void 0){var f=l[n];if(f!==void 0)if(Array.isArray(f))do f=l[n],f!==void 0&&(e.push(l.time),i.push.apply(i,f)),l=t[o++];while(l!==void 0);else if(f.toArray!==void 0)do f=l[n],f!==void 0&&(e.push(l.time),f.toArray(i,i.length)),l=t[o++];while(l!==void 0);else do f=l[n],f!==void 0&&(e.push(l.time),i.push(f)),l=t[o++];while(l!==void 0)}}};Object.assign($n.prototype,{evaluate:function(t){var e=this.parameterPositions,i=this._cachedIndex,n=e[i],o=e[i-1];t:{e:{i:{n:if(!(t<n)){for(var l=i+2;;){if(n===void 0){if(t<o)break n;return this._cachedIndex=i=e.length,this.afterEnd_(i-1,t,o)}if(i===l)break;if(o=n,n=e[++i],t<n)break e}n=e.length;break i}if(t>=o)break t;for(l=e[1],t<l&&(i=2,o=l),l=i-2;;){if(o===void 0)return this._cachedIndex=0,this.beforeStart_(0,t,n);if(i===l)break;if(n=o,o=e[--i-1],t>=o)break e}n=i,i=0}for(;i<n;)o=i+n>>>1,t<e[o]?n=o:i=o+1;if(n=e[i],o=e[i-1],o===void 0)return this._cachedIndex=0,this.beforeStart_(0,t,n);if(n===void 0)return this._cachedIndex=i=e.length,this.afterEnd_(i-1,o,t)}this._cachedIndex=i,this.intervalChanged_(i,o,n)}return this.interpolate_(i,o,t,n)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(t){var e=this.resultBuffer,i=this.sampleValues,n=this.valueSize;t*=n;for(var o=0;o!==n;++o)e[o]=i[t+o];return e},interpolate_:function(){throw Error("call to abstract method")},intervalChanged_:function(){}}),Object.assign($n.prototype,{beforeStart_:$n.prototype.copySampleValue_,afterEnd_:$n.prototype.copySampleValue_}),al.prototype=Object.assign(Object.create($n.prototype),{constructor:al,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(t,e,i){var n=this.parameterPositions,o=t-2,l=t+1,f=n[o],p=n[l];if(f===void 0)switch(this.getSettings_().endingStart){case 2401:o=t,f=2*e-i;break;case 2402:o=n.length-2,f=e+n[o]-n[o+1];break;default:o=t,f=i}if(p===void 0)switch(this.getSettings_().endingEnd){case 2401:l=t,p=2*i-e;break;case 2402:l=1,p=i+n[1]-n[0];break;default:l=t-1,p=e}t=.5*(i-e),n=this.valueSize,this._weightPrev=t/(e-f),this._weightNext=t/(p-i),this._offsetPrev=o*n,this._offsetNext=l*n},interpolate_:function(t,e,i,n){var o=this.resultBuffer,l=this.sampleValues,f=this.valueSize;t*=f;var p=t-f,y=this._offsetPrev,w=this._offsetNext,A=this._weightPrev,P=this._weightNext,B=(i-e)/(n-e);for(i=B*B,n=i*B,e=-A*n+2*A*i-A*B,A=(1+A)*n+(-1.5-2*A)*i+(-.5+A)*B+1,B=(-1-P)*n+(1.5+P)*i+.5*B,P=P*n-P*i,i=0;i!==f;++i)o[i]=e*l[y+i]+A*l[p+i]+B*l[t+i]+P*l[w+i];return o}}),Dr.prototype=Object.assign(Object.create($n.prototype),{constructor:Dr,interpolate_:function(t,e,i,n){var o=this.resultBuffer,l=this.sampleValues,f=this.valueSize;t*=f;var p=t-f;for(e=(i-e)/(n-e),i=1-e,n=0;n!==f;++n)o[n]=l[p+n]*i+l[t+n]*e;return o}}),Os.prototype=Object.assign(Object.create($n.prototype),{constructor:Os,interpolate_:function(t){return this.copySampleValue_(t-1)}}),Object.assign(Hn,{toJSON:function(t){var e=t.constructor;if(e.toJSON!==void 0)e=e.toJSON(t);else{e={name:t.name,times:Yn.convertArray(t.times,Array),values:Yn.convertArray(t.values,Array)};var i=t.getInterpolation();i!==t.DefaultInterpolation&&(e.interpolation=i)}return e.type=t.ValueTypeName,e}}),Object.assign(Hn.prototype,{constructor:Hn,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(t){return new Os(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodLinear:function(t){return new Dr(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:function(t){return new al(this.times,this.values,this.getValueSize(),t)},setInterpolation:function(t){switch(t){case 2300:var e=this.InterpolantFactoryMethodDiscrete;break;case 2301:e=this.InterpolantFactoryMethodLinear;break;case 2302:e=this.InterpolantFactoryMethodSmooth}if(e===void 0){if(e="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name,this.createInterpolant===void 0)if(t!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(e);return console.warn("THREE.KeyframeTrack:",e),this}return this.createInterpolant=e,this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(t){if(t!==0)for(var e=this.times,i=0,n=e.length;i!==n;++i)e[i]+=t;return this},scale:function(t){if(t!==1)for(var e=this.times,i=0,n=e.length;i!==n;++i)e[i]*=t;return this},trim:function(t,e){for(var i=this.times,n=i.length,o=0,l=n-1;o!==n&&i[o]<t;)++o;for(;l!==-1&&i[l]>e;)--l;return++l,(o!==0||l!==n)&&(o>=l&&(l=Math.max(l,1),o=l-1),t=this.getValueSize(),this.times=Yn.arraySlice(i,o,l),this.values=Yn.arraySlice(this.values,o*t,l*t)),this},validate:function(){var t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);var i=this.times;e=this.values;var n=i.length;n===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);for(var o=null,l=0;l!==n;l++){var f=i[l];if(typeof f=="number"&&isNaN(f)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,l,f),t=!1;break}if(o!==null&&o>f){console.error("THREE.KeyframeTrack: Out of order keys.",this,l,f,o),t=!1;break}o=f}if(e!==void 0&&Yn.isTypedArray(e)){for(l=0,i=e.length;l!==i;++l)if(n=e[l],isNaN(n)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,l,n),t=!1;break}}return t},optimize:function(){for(var t=this.times,e=this.values,i=this.getValueSize(),n=this.getInterpolation()===2302,o=1,l=t.length-1,f=1;f<l;++f){var p=!1,y=t[f];if(y!==t[f+1]&&(f!==1||y!==y[0]))if(n)p=!0;else{var w=f*i,A=w-i,P=w+i;for(y=0;y!==i;++y){var B=e[w+y];if(B!==e[A+y]||B!==e[P+y]){p=!0;break}}}if(p){if(f!==o)for(t[o]=t[f],p=f*i,w=o*i,y=0;y!==i;++y)e[w+y]=e[p+y];++o}}if(0<l){for(t[o]=t[l],p=l*i,w=o*i,y=0;y!==i;++y)e[w+y]=e[p+y];++o}return o!==t.length&&(this.times=Yn.arraySlice(t,0,o),this.values=Yn.arraySlice(e,0,o*i)),this}}),Kl.prototype=Object.assign(Object.create(Hn.prototype),{constructor:Kl,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Ql.prototype=Object.assign(Object.create(Hn.prototype),{constructor:Ql,ValueTypeName:"color"}),$r.prototype=Object.assign(Object.create(Hn.prototype),{constructor:$r,ValueTypeName:"number"}),ar.prototype=Object.assign(Object.create($n.prototype),{constructor:ar,interpolate_:function(t,e,i,n){var o=this.resultBuffer,l=this.sampleValues,f=this.valueSize;for(t*=f,e=(i-e)/(n-e),i=t+f;t!==i;t+=4)d.slerpFlat(o,0,l,t-f,l,t,e);return o}}),_a.prototype=Object.assign(Object.create(Hn.prototype),{constructor:_a,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(t){return new ar(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:void 0}),th.prototype=Object.assign(Object.create(Hn.prototype),{constructor:th,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),xa.prototype=Object.assign(Object.create(Hn.prototype),{constructor:xa,ValueTypeName:"vector"}),Object.assign(_r,{parse:function(t){for(var e=[],i=t.tracks,n=1/(t.fps||1),o=0,l=i.length;o!==l;++o)e.push(Xc(i[o]).scale(n));return new _r(t.name,t.duration,e)},toJSON:function(t){var e=[],i=t.tracks;t={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid};for(var n=0,o=i.length;n!==o;++n)e.push(Hn.toJSON(i[n]));return t},CreateFromMorphTargetSequence:function(t,e,i,n){for(var o=e.length,l=[],f=0;f<o;f++){var p=[],y=[];p.push((f+o-1)%o,f,(f+1)%o),y.push(0,1,0);var w=Yn.getKeyframeOrder(p);p=Yn.sortedArray(p,1,w),y=Yn.sortedArray(y,1,w),n||p[0]!==0||(p.push(o),y.push(y[0])),l.push(new $r(".morphTargetInfluences["+e[f].name+"]",p,y).scale(1/i))}return new _r(t,-1,l)},findByName:function(t,e){var i=t;for(Array.isArray(t)||(i=t.geometry&&t.geometry.animations||t.animations),t=0;t<i.length;t++)if(i[t].name===e)return i[t];return null},CreateClipsFromMorphTargetSequences:function(t,e,i){for(var n={},o=/^([\w-]*?)([\d]+)$/,l=0,f=t.length;l<f;l++){var p=t[l],y=p.name.match(o);if(y&&1<y.length){var w=y[1];(y=n[w])||(n[w]=y=[]),y.push(p)}}t=[];for(w in n)t.push(_r.CreateFromMorphTargetSequence(w,n[w],e,i));return t},parseAnimation:function(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var i=function($,rt,xt,gt,Ct){if(xt.length!==0){var wt=[],Vt=[];Yn.flattenJSON(xt,wt,Vt,gt),wt.length!==0&&Ct.push(new $(rt,wt,Vt))}},n=[],o=t.name||"default",l=t.length||-1,f=t.fps||30;t=t.hierarchy||[];for(var p=0;p<t.length;p++){var y=t[p].keys;if(y&&y.length!==0)if(y[0].morphTargets){l={};for(var w=0;w<y.length;w++)if(y[w].morphTargets)for(var A=0;A<y[w].morphTargets.length;A++)l[y[w].morphTargets[A]]=-1;for(var P in l){var B=[],H=[];for(A=0;A!==y[w].morphTargets.length;++A){var q=y[w];B.push(q.time),H.push(q.morphTarget===P?1:0)}n.push(new $r(".morphTargetInfluence["+P+"]",B,H))}l=l.length*(f||1)}else w=".bones["+e[p].name+"]",i(xa,w+".position",y,"pos",n),i(_a,w+".quaternion",y,"rot",n),i(xa,w+".scale",y,"scl",n)}return n.length===0?null:new _r(o,l,n)}}),Object.assign(_r.prototype,{resetDuration:function(){for(var t=0,e=0,i=this.tracks.length;e!==i;++e){var n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this},trim:function(){for(var t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this},validate:function(){for(var t=!0,e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t},optimize:function(){for(var t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}});var Mo={enabled:!1,files:{},add:function(t,e){this.enabled!==!1&&(this.files[t]=e)},get:function(t){if(this.enabled!==!1)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}},tr=new es,Br={};Object.assign(Lt.prototype,{load:function(t,e,i,n){t===void 0&&(t=""),this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);var o=this,l=Mo.get(t);if(l!==void 0)return o.manager.itemStart(t),setTimeout(function(){e&&e(l),o.manager.itemEnd(t)},0),l;if(Br[t]!==void 0)Br[t].push({onLoad:e,onProgress:i,onError:n});else{var f=t.match(/^data:(.*?)(;base64)?,(.*)$/);if(f){i=f[1];var p=!!f[2];f=f[3],f=decodeURIComponent(f),p&&(f=atob(f));try{var y=(this.responseType||"").toLowerCase();switch(y){case"arraybuffer":case"blob":var w=new Uint8Array(f.length);for(p=0;p<f.length;p++)w[p]=f.charCodeAt(p);var A=y==="blob"?new Blob([w.buffer],{type:i}):w.buffer;break;case"document":A=new DOMParser().parseFromString(f,i);break;case"json":A=JSON.parse(f);break;default:A=f}setTimeout(function(){e&&e(A),o.manager.itemEnd(t)},0)}catch(B){setTimeout(function(){n&&n(B),o.manager.itemError(t),o.manager.itemEnd(t)},0)}}else{Br[t]=[],Br[t].push({onLoad:e,onProgress:i,onError:n});var P=new XMLHttpRequest;P.open("GET",t,!0),P.addEventListener("load",function(B){var H=this.response;Mo.add(t,H);var q=Br[t];if(delete Br[t],this.status===200||this.status===0){this.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received.");for(var $=0,rt=q.length;$<rt;$++){var xt=q[$];xt.onLoad&&xt.onLoad(H)}}else{for($=0,rt=q.length;$<rt;$++)xt=q[$],xt.onError&&xt.onError(B);o.manager.itemError(t)}o.manager.itemEnd(t)},!1),P.addEventListener("progress",function(B){for(var H=Br[t],q=0,$=H.length;q<$;q++){var rt=H[q];rt.onProgress&&rt.onProgress(B)}},!1),P.addEventListener("error",function(B){var H=Br[t];delete Br[t];for(var q=0,$=H.length;q<$;q++){var rt=H[q];rt.onError&&rt.onError(B)}o.manager.itemError(t),o.manager.itemEnd(t)},!1),P.addEventListener("abort",function(B){var H=Br[t];delete Br[t];for(var q=0,$=H.length;q<$;q++){var rt=H[q];rt.onError&&rt.onError(B)}o.manager.itemError(t),o.manager.itemEnd(t)},!1),this.responseType!==void 0&&(P.responseType=this.responseType),this.withCredentials!==void 0&&(P.withCredentials=this.withCredentials),P.overrideMimeType&&P.overrideMimeType(this.mimeType!==void 0?this.mimeType:"text/plain");for(p in this.requestHeader)P.setRequestHeader(p,this.requestHeader[p]);P.send(null)}return o.manager.itemStart(t),P}},setPath:function(t){return this.path=t,this},setResponseType:function(t){return this.responseType=t,this},setWithCredentials:function(t){return this.withCredentials=t,this},setMimeType:function(t){return this.mimeType=t,this},setRequestHeader:function(t){return this.requestHeader=t,this}}),Object.assign(Qt.prototype,{load:function(t,e,i,n){var o=this,l=new Lt(o.manager);l.setPath(o.path),l.load(t,function(f){e(o.parse(JSON.parse(f)))},i,n)},parse:function(t,e){for(var i=[],n=0;n<t.length;n++){var o=_r.parse(t[n]);i.push(o)}e(i)},setPath:function(t){return this.path=t,this}}),Object.assign(Zt.prototype,{load:function(t,e,i,n){function o(B){y.load(t[B],function(H){H=l._parser(H,!0),f[B]={width:H.width,height:H.height,format:H.format,mipmaps:H.mipmaps},w+=1,w===6&&(H.mipmapCount===1&&(p.minFilter=1006),p.format=H.format,p.needsUpdate=!0,e&&e(p))},i,n)}var l=this,f=[],p=new Yo;p.image=f;var y=new Lt(this.manager);if(y.setPath(this.path),y.setResponseType("arraybuffer"),Array.isArray(t))for(var w=0,A=0,P=t.length;A<P;++A)o(A);else y.load(t,function(B){if(B=l._parser(B,!0),B.isCubemap)for(var H=B.mipmaps.length/B.mipmapCount,q=0;q<H;q++){f[q]={mipmaps:[]};for(var $=0;$<B.mipmapCount;$++)f[q].mipmaps.push(B.mipmaps[q*B.mipmapCount+$]),f[q].format=B.format,f[q].width=B.width,f[q].height=B.height}else p.image.width=B.width,p.image.height=B.height,p.mipmaps=B.mipmaps;B.mipmapCount===1&&(p.minFilter=1006),p.format=B.format,p.needsUpdate=!0,e&&e(p)},i,n);return p},setPath:function(t){return this.path=t,this}}),Object.assign(Ue.prototype,{load:function(t,e,i,n){var o=this,l=new I,f=new Lt(this.manager);return f.setResponseType("arraybuffer"),f.setPath(this.path),f.load(t,function(p){(p=o._parser(p))&&(p.image!==void 0?l.image=p.image:p.data!==void 0&&(l.image.width=p.width,l.image.height=p.height,l.image.data=p.data),l.wrapS=p.wrapS!==void 0?p.wrapS:1001,l.wrapT=p.wrapT!==void 0?p.wrapT:1001,l.magFilter=p.magFilter!==void 0?p.magFilter:1006,l.minFilter=p.minFilter!==void 0?p.minFilter:1008,l.anisotropy=p.anisotropy!==void 0?p.anisotropy:1,p.format!==void 0&&(l.format=p.format),p.type!==void 0&&(l.type=p.type),p.mipmaps!==void 0&&(l.mipmaps=p.mipmaps),p.mipmapCount===1&&(l.minFilter=1006),l.needsUpdate=!0,e&&e(l,p))},i,n),l},setPath:function(t){return this.path=t,this}}),Object.assign(ai.prototype,{crossOrigin:"anonymous",load:function(t,e,i,n){function o(){y.removeEventListener("load",o,!1),y.removeEventListener("error",l,!1),Mo.add(t,this),e&&e(this),f.manager.itemEnd(t)}function l(w){y.removeEventListener("load",o,!1),y.removeEventListener("error",l,!1),n&&n(w),f.manager.itemError(t),f.manager.itemEnd(t)}t===void 0&&(t=""),this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);var f=this,p=Mo.get(t);if(p!==void 0)return f.manager.itemStart(t),setTimeout(function(){e&&e(p),f.manager.itemEnd(t)},0),p;var y=document.createElementNS("http://www.w3.org/1999/xhtml","img");return y.addEventListener("load",o,!1),y.addEventListener("error",l,!1),t.substr(0,5)!=="data:"&&this.crossOrigin!==void 0&&(y.crossOrigin=this.crossOrigin),f.manager.itemStart(t),y.src=t,y},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this}}),Object.assign(Fi.prototype,{crossOrigin:"anonymous",load:function(t,e,i,n){function o(y){f.load(t[y],function(w){l.images[y]=w,p++,p===6&&(l.needsUpdate=!0,e&&e(l))},void 0,n)}var l=new z,f=new ai(this.manager);f.setCrossOrigin(this.crossOrigin),f.setPath(this.path);var p=0;for(i=0;i<t.length;++i)o(i);return l},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this}}),Object.assign(fn.prototype,{crossOrigin:"anonymous",load:function(t,e,i,n){var o=new g,l=new ai(this.manager);return l.setCrossOrigin(this.crossOrigin),l.setPath(this.path),l.load(t,function(f){o.image=f,f=0<t.search(/\.jpe?g$/i)||t.search(/^data:image\/jpeg/)===0,o.format=f?1022:1023,o.needsUpdate=!0,e!==void 0&&e(o)},i,n),o},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this}}),Object.assign(Ee.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(t,e){return t=this.getUtoTmapping(t),this.getPoint(t,e)},getPoints:function(t){t===void 0&&(t=5);for(var e=[],i=0;i<=t;i++)e.push(this.getPoint(i/t));return e},getSpacedPoints:function(t){t===void 0&&(t=5);for(var e=[],i=0;i<=t;i++)e.push(this.getPointAt(i/t));return e},getLength:function(){var t=this.getLengths();return t[t.length-1]},getLengths:function(t){if(t===void 0&&(t=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var e=[],i=this.getPoint(0),n,o=0;for(e.push(0),n=1;n<=t;n++){var l=this.getPoint(n/t);o+=l.distanceTo(i),e.push(o),i=l}return this.cacheArcLengths=e},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(t,e){var i=this.getLengths(),n=i.length;e=e||t*i[n-1];for(var o=0,l=n-1,f;o<=l;)if(t=Math.floor(o+(l-o)/2),f=i[t]-e,0>f)o=t+1;else if(0<f)l=t-1;else{l=t;break}return t=l,i[t]===e?t/(n-1):(o=i[t],(t+(e-o)/(i[t+1]-o))/(n-1))},getTangent:function(t){var e=t-1e-4;return t+=1e-4,0>e&&(e=0),1<t&&(t=1),e=this.getPoint(e),this.getPoint(t).clone().sub(e).normalize()},getTangentAt:function(t){return t=this.getUtoTmapping(t),this.getTangent(t)},computeFrenetFrames:function(t,e){var i=new u,n=[],o=[],l=[],f=new u,p=new c,y;for(y=0;y<=t;y++){var w=y/t;n[y]=this.getTangentAt(w),n[y].normalize()}o[0]=new u,l[0]=new u,y=Number.MAX_VALUE,w=Math.abs(n[0].x);var A=Math.abs(n[0].y),P=Math.abs(n[0].z);for(w<=y&&(y=w,i.set(1,0,0)),A<=y&&(y=A,i.set(0,1,0)),P<=y&&i.set(0,0,1),f.crossVectors(n[0],i).normalize(),o[0].crossVectors(n[0],f),l[0].crossVectors(n[0],o[0]),y=1;y<=t;y++)o[y]=o[y-1].clone(),l[y]=l[y-1].clone(),f.crossVectors(n[y-1],n[y]),f.length()>Number.EPSILON&&(f.normalize(),i=Math.acos(di.clamp(n[y-1].dot(n[y]),-1,1)),o[y].applyMatrix4(p.makeRotationAxis(f,i))),l[y].crossVectors(n[y],o[y]);if(e===!0)for(i=Math.acos(di.clamp(o[0].dot(o[t]),-1,1)),i/=t,0<n[0].dot(f.crossVectors(o[0],o[t]))&&(i=-i),y=1;y<=t;y++)o[y].applyMatrix4(p.makeRotationAxis(n[y],i*y)),l[y].crossVectors(n[y],o[y]);return{tangents:n,normals:o,binormals:l}},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this},toJSON:function(){var t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t},fromJSON:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}),Kn.prototype=Object.create(Ee.prototype),Kn.prototype.constructor=Kn,Kn.prototype.isEllipseCurve=!0,Kn.prototype.getPoint=function(t,e){e=e||new s;for(var i=2*Math.PI,n=this.aEndAngle-this.aStartAngle,o=Math.abs(n)<Number.EPSILON;0>n;)n+=i;for(;n>i;)n-=i;n<Number.EPSILON&&(n=o?0:i),this.aClockwise!==!0||o||(n=n===i?-i:n-i),i=this.aStartAngle+t*n,t=this.aX+this.xRadius*Math.cos(i);var l=this.aY+this.yRadius*Math.sin(i);return this.aRotation!==0&&(i=Math.cos(this.aRotation),n=Math.sin(this.aRotation),o=t-this.aX,l-=this.aY,t=o*i-l*n+this.aX,l=o*n+l*i+this.aY),e.set(t,l)},Kn.prototype.copy=function(t){return Ee.prototype.copy.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},Kn.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t},Kn.prototype.fromJSON=function(t){return Ee.prototype.fromJSON.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},wa.prototype=Object.create(Kn.prototype),wa.prototype.constructor=wa,wa.prototype.isArcCurve=!0;var bn=new u,Sl=new lr,lh=new lr,Nr=new lr;On.prototype=Object.create(Ee.prototype),On.prototype.constructor=On,On.prototype.isCatmullRomCurve3=!0,On.prototype.getPoint=function(t,e){e=e||new u;var i=this.points,n=i.length;t*=n-(this.closed?0:1);var o=Math.floor(t);if(t-=o,this.closed?o+=0<o?0:(Math.floor(Math.abs(o)/n)+1)*n:t===0&&o===n-1&&(o=n-2,t=1),this.closed||0<o)var l=i[(o-1)%n];else bn.subVectors(i[0],i[1]).add(i[0]),l=bn;var f=i[o%n],p=i[(o+1)%n];if(this.closed||o+2<n?i=i[(o+2)%n]:(bn.subVectors(i[n-1],i[n-2]).add(i[n-1]),i=bn),this.curveType==="centripetal"||this.curveType==="chordal"){var y=this.curveType==="chordal"?.5:.25;n=Math.pow(l.distanceToSquared(f),y),o=Math.pow(f.distanceToSquared(p),y),y=Math.pow(p.distanceToSquared(i),y),1e-4>o&&(o=1),1e-4>n&&(n=o),1e-4>y&&(y=o),Sl.initNonuniformCatmullRom(l.x,f.x,p.x,i.x,n,o,y),lh.initNonuniformCatmullRom(l.y,f.y,p.y,i.y,n,o,y),Nr.initNonuniformCatmullRom(l.z,f.z,p.z,i.z,n,o,y)}else this.curveType==="catmullrom"&&(Sl.initCatmullRom(l.x,f.x,p.x,i.x,this.tension),lh.initCatmullRom(l.y,f.y,p.y,i.y,this.tension),Nr.initCatmullRom(l.z,f.z,p.z,i.z,this.tension));return e.set(Sl.calc(t),lh.calc(t),Nr.calc(t)),e},On.prototype.copy=function(t){Ee.prototype.copy.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++)this.points.push(t.points[e].clone());return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},On.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);t.points=[];for(var e=0,i=this.points.length;e<i;e++)t.points.push(this.points[e].toArray());return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t},On.prototype.fromJSON=function(t){Ee.prototype.fromJSON.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++){var n=t.points[e];this.points.push(new u().fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},hr.prototype=Object.create(Ee.prototype),hr.prototype.constructor=hr,hr.prototype.isCubicBezierCurve=!0,hr.prototype.getPoint=function(t,e){e=e||new s;var i=this.v0,n=this.v1,o=this.v2,l=this.v3;return e.set(is(t,i.x,n.x,o.x,l.x),is(t,i.y,n.y,o.y,l.y)),e},hr.prototype.copy=function(t){return Ee.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},hr.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},hr.prototype.fromJSON=function(t){return Ee.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},Ti.prototype=Object.create(Ee.prototype),Ti.prototype.constructor=Ti,Ti.prototype.isCubicBezierCurve3=!0,Ti.prototype.getPoint=function(t,e){e=e||new u;var i=this.v0,n=this.v1,o=this.v2,l=this.v3;return e.set(is(t,i.x,n.x,o.x,l.x),is(t,i.y,n.y,o.y,l.y),is(t,i.z,n.z,o.z,l.z)),e},Ti.prototype.copy=function(t){return Ee.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},Ti.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},Ti.prototype.fromJSON=function(t){return Ee.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},ur.prototype=Object.create(Ee.prototype),ur.prototype.constructor=ur,ur.prototype.isLineCurve=!0,ur.prototype.getPoint=function(t,e){return e=e||new s,t===1?e.copy(this.v2):(e.copy(this.v2).sub(this.v1),e.multiplyScalar(t).add(this.v1)),e},ur.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},ur.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()},ur.prototype.copy=function(t){return Ee.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},ur.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},ur.prototype.fromJSON=function(t){return Ee.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},zr.prototype=Object.create(Ee.prototype),zr.prototype.constructor=zr,zr.prototype.isLineCurve3=!0,zr.prototype.getPoint=function(t,e){return e=e||new u,t===1?e.copy(this.v2):(e.copy(this.v2).sub(this.v1),e.multiplyScalar(t).add(this.v1)),e},zr.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},zr.prototype.copy=function(t){return Ee.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},zr.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},zr.prototype.fromJSON=function(t){return Ee.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},cr.prototype=Object.create(Ee.prototype),cr.prototype.constructor=cr,cr.prototype.isQuadraticBezierCurve=!0,cr.prototype.getPoint=function(t,e){e=e||new s;var i=this.v0,n=this.v1,o=this.v2;return e.set(vo(t,i.x,n.x,o.x),vo(t,i.y,n.y,o.y)),e},cr.prototype.copy=function(t){return Ee.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},cr.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},cr.prototype.fromJSON=function(t){return Ee.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},yo.prototype=Object.create(Ee.prototype),yo.prototype.constructor=yo,yo.prototype.isQuadraticBezierCurve3=!0,yo.prototype.getPoint=function(t,e){e=e||new u;var i=this.v0,n=this.v1,o=this.v2;return e.set(vo(t,i.x,n.x,o.x),vo(t,i.y,n.y,o.y),vo(t,i.z,n.z,o.z)),e},yo.prototype.copy=function(t){return Ee.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},yo.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},yo.prototype.fromJSON=function(t){return Ee.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},Kr.prototype=Object.create(Ee.prototype),Kr.prototype.constructor=Kr,Kr.prototype.isSplineCurve=!0,Kr.prototype.getPoint=function(t,e){e=e||new s;var i=this.points,n=(i.length-1)*t;t=Math.floor(n),n-=t;var o=i[t===0?t:t-1],l=i[t],f=i[t>i.length-2?i.length-1:t+1];return i=i[t>i.length-3?i.length-1:t+2],e.set(Pu(n,o.x,l.x,f.x,i.x),Pu(n,o.y,l.y,f.y,i.y)),e},Kr.prototype.copy=function(t){Ee.prototype.copy.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++)this.points.push(t.points[e].clone());return this},Kr.prototype.toJSON=function(){var t=Ee.prototype.toJSON.call(this);t.points=[];for(var e=0,i=this.points.length;e<i;e++)t.points.push(this.points[e].toArray());return t},Kr.prototype.fromJSON=function(t){Ee.prototype.fromJSON.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++){var n=t.points[e];this.points.push(new s().fromArray(n))}return this};var hh=Object.freeze({ArcCurve:wa,CatmullRomCurve3:On,CubicBezierCurve:hr,CubicBezierCurve3:Ti,EllipseCurve:Kn,LineCurve:ur,LineCurve3:zr,QuadraticBezierCurve:cr,QuadraticBezierCurve3:yo,SplineCurve:Kr});Io.prototype=Object.assign(Object.create(Ee.prototype),{constructor:Io,add:function(t){this.curves.push(t)},closePath:function(){var t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new ur(e,t))},getPoint:function(t){var e=t*this.getLength(),i=this.getCurveLengths();for(t=0;t<i.length;){if(i[t]>=e)return e=i[t]-e,t=this.curves[t],i=t.getLength(),t.getPointAt(i===0?0:1-e/i);t++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,i=0,n=this.curves.length;i<n;i++)e+=this.curves[i].getLength(),t.push(e);return this.cacheLengths=t},getSpacedPoints:function(t){t===void 0&&(t=40);for(var e=[],i=0;i<=t;i++)e.push(this.getPoint(i/t));return this.autoClose&&e.push(e[0]),e},getPoints:function(t){t=t||12;for(var e=[],i,n=0,o=this.curves;n<o.length;n++){var l=o[n];l=l.getPoints(l&&l.isEllipseCurve?2*t:l&&(l.isLineCurve||l.isLineCurve3)?1:l&&l.isSplineCurve?t*l.points.length:t);for(var f=0;f<l.length;f++){var p=l[f];i&&i.equals(p)||(e.push(p),i=p)}}return this.autoClose&&1<e.length&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e},copy:function(t){Ee.prototype.copy.call(this,t),this.curves=[];for(var e=0,i=t.curves.length;e<i;e++)this.curves.push(t.curves[e].clone());return this.autoClose=t.autoClose,this},toJSON:function(){var t=Ee.prototype.toJSON.call(this);t.autoClose=this.autoClose,t.curves=[];for(var e=0,i=this.curves.length;e<i;e++)t.curves.push(this.curves[e].toJSON());return t},fromJSON:function(t){Ee.prototype.fromJSON.call(this,t),this.autoClose=t.autoClose,this.curves=[];for(var e=0,i=t.curves.length;e<i;e++){var n=t.curves[e];this.curves.push(new hh[n.type]().fromJSON(n))}return this}}),fr.prototype=Object.assign(Object.create(Io.prototype),{constructor:fr,setFromPoints:function(t){this.moveTo(t[0].x,t[0].y);for(var e=1,i=t.length;e<i;e++)this.lineTo(t[e].x,t[e].y)},moveTo:function(t,e){this.currentPoint.set(t,e)},lineTo:function(t,e){var i=new ur(this.currentPoint.clone(),new s(t,e));this.curves.push(i),this.currentPoint.set(t,e)},quadraticCurveTo:function(t,e,i,n){t=new cr(this.currentPoint.clone(),new s(t,e),new s(i,n)),this.curves.push(t),this.currentPoint.set(i,n)},bezierCurveTo:function(t,e,i,n,o,l){t=new hr(this.currentPoint.clone(),new s(t,e),new s(i,n),new s(o,l)),this.curves.push(t),this.currentPoint.set(o,l)},splineThru:function(t){var e=[this.currentPoint.clone()].concat(t);e=new Kr(e),this.curves.push(e),this.currentPoint.copy(t[t.length-1])},arc:function(t,e,i,n,o,l){this.absarc(t+this.currentPoint.x,e+this.currentPoint.y,i,n,o,l)},absarc:function(t,e,i,n,o,l){this.absellipse(t,e,i,i,n,o,l)},ellipse:function(t,e,i,n,o,l,f,p){this.absellipse(t+this.currentPoint.x,e+this.currentPoint.y,i,n,o,l,f,p)},absellipse:function(t,e,i,n,o,l,f,p){t=new Kn(t,e,i,n,o,l,f,p),0<this.curves.length&&(e=t.getPoint(0),e.equals(this.currentPoint)||this.lineTo(e.x,e.y)),this.curves.push(t),t=t.getPoint(1),this.currentPoint.copy(t)},copy:function(t){return Io.prototype.copy.call(this,t),this.currentPoint.copy(t.currentPoint),this},toJSON:function(){var t=Io.prototype.toJSON.call(this);return t.currentPoint=this.currentPoint.toArray(),t},fromJSON:function(t){return Io.prototype.fromJSON.call(this,t),this.currentPoint.fromArray(t.currentPoint),this}}),Qn.prototype=Object.assign(Object.create(fr.prototype),{constructor:Qn,getPointsHoles:function(t){for(var e=[],i=0,n=this.holes.length;i<n;i++)e[i]=this.holes[i].getPoints(t);return e},extractPoints:function(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}},copy:function(t){fr.prototype.copy.call(this,t),this.holes=[];for(var e=0,i=t.holes.length;e<i;e++)this.holes.push(t.holes[e].clone());return this},toJSON:function(){var t=fr.prototype.toJSON.call(this);t.uuid=this.uuid,t.holes=[];for(var e=0,i=this.holes.length;e<i;e++)t.holes.push(this.holes[e].toJSON());return t},fromJSON:function(t){fr.prototype.fromJSON.call(this,t),this.uuid=t.uuid,this.holes=[];for(var e=0,i=t.holes.length;e<i;e++){var n=t.holes[e];this.holes.push(new fr().fromJSON(n))}return this}}),tn.prototype=Object.assign(Object.create(N.prototype),{constructor:tn,isLight:!0,copy:function(t){return N.prototype.copy.call(this,t),this.color.copy(t.color),this.intensity=t.intensity,this},toJSON:function(t){return t=N.prototype.toJSON.call(this,t),t.object.color=this.color.getHex(),t.object.intensity=this.intensity,this.groundColor!==void 0&&(t.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(t.object.distance=this.distance),this.angle!==void 0&&(t.object.angle=this.angle),this.decay!==void 0&&(t.object.decay=this.decay),this.penumbra!==void 0&&(t.object.penumbra=this.penumbra),this.shadow!==void 0&&(t.object.shadow=this.shadow.toJSON()),t}}),ll.prototype=Object.assign(Object.create(tn.prototype),{constructor:ll,isHemisphereLight:!0,copy:function(t){return tn.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}),Object.assign(_o.prototype,{copy:function(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this},clone:function(){return new this.constructor().copy(this)},toJSON:function(){var t={};return this.bias!==0&&(t.bias=this.bias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}),hl.prototype=Object.assign(Object.create(_o.prototype),{constructor:hl,isSpotLightShadow:!0,update:function(t){var e=this.camera,i=2*di.RAD2DEG*t.angle,n=this.mapSize.width/this.mapSize.height;t=t.distance||e.far,(i!==e.fov||n!==e.aspect||t!==e.far)&&(e.fov=i,e.aspect=n,e.far=t,e.updateProjectionMatrix())}}),ul.prototype=Object.assign(Object.create(tn.prototype),{constructor:ul,isSpotLight:!0,copy:function(t){return tn.prototype.copy.call(this,t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Is.prototype=Object.assign(Object.create(tn.prototype),{constructor:Is,isPointLight:!0,copy:function(t){return tn.prototype.copy.call(this,t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}),Ta.prototype=Object.assign(Object.create(Be.prototype),{constructor:Ta,isOrthographicCamera:!0,copy:function(t,e){return Be.prototype.copy.call(this,t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this},setViewOffset:function(t,e,i,n,o,l){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=n,this.view.width=o,this.view.height=l,this.updateProjectionMatrix()},clearViewOffset:function(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,n=(this.top+this.bottom)/2,o=i-t;if(i+=t,t=n+e,e=n-e,this.view!==null&&this.view.enabled){i=this.zoom/(this.view.width/this.view.fullWidth),e=this.zoom/(this.view.height/this.view.fullHeight);var l=(this.right-this.left)/this.view.width;n=(this.top-this.bottom)/this.view.height,o+=this.view.offsetX/i*l,i=o+this.view.width/i*l,t-=this.view.offsetY/e*n,e=t-this.view.height/e*n}this.projectionMatrix.makeOrthographic(o,i,t,e,this.near,this.far),this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(t){return t=N.prototype.toJSON.call(this,t),t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}),ns.prototype=Object.assign(Object.create(_o.prototype),{constructor:ns}),xo.prototype=Object.assign(Object.create(tn.prototype),{constructor:xo,isDirectionalLight:!0,copy:function(t){return tn.prototype.copy.call(this,t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Ds.prototype=Object.assign(Object.create(tn.prototype),{constructor:Ds,isAmbientLight:!0}),eh.prototype=Object.assign(Object.create(tn.prototype),{constructor:eh,isRectAreaLight:!0,copy:function(t){return tn.prototype.copy.call(this,t),this.width=t.width,this.height=t.height,this},toJSON:function(t){return t=tn.prototype.toJSON.call(this,t),t.object.width=this.width,t.object.height=this.height,t}}),Object.assign(ih.prototype,{load:function(t,e,i,n){var o=this,l=new Lt(o.manager);l.setPath(o.path),l.load(t,function(f){e(o.parse(JSON.parse(f)))},i,n)},parse:function(t){function e(f){return i[f]===void 0&&console.warn("THREE.MaterialLoader: Undefined texture",f),i[f]}var i=this.textures,n=new Fu[t.type];if(t.uuid!==void 0&&(n.uuid=t.uuid),t.name!==void 0&&(n.name=t.name),t.color!==void 0&&n.color.setHex(t.color),t.roughness!==void 0&&(n.roughness=t.roughness),t.metalness!==void 0&&(n.metalness=t.metalness),t.emissive!==void 0&&n.emissive.setHex(t.emissive),t.specular!==void 0&&n.specular.setHex(t.specular),t.shininess!==void 0&&(n.shininess=t.shininess),t.clearCoat!==void 0&&(n.clearCoat=t.clearCoat),t.clearCoatRoughness!==void 0&&(n.clearCoatRoughness=t.clearCoatRoughness),t.vertexColors!==void 0&&(n.vertexColors=t.vertexColors),t.fog!==void 0&&(n.fog=t.fog),t.flatShading!==void 0&&(n.flatShading=t.flatShading),t.blending!==void 0&&(n.blending=t.blending),t.combine!==void 0&&(n.combine=t.combine),t.side!==void 0&&(n.side=t.side),t.opacity!==void 0&&(n.opacity=t.opacity),t.transparent!==void 0&&(n.transparent=t.transparent),t.alphaTest!==void 0&&(n.alphaTest=t.alphaTest),t.depthTest!==void 0&&(n.depthTest=t.depthTest),t.depthWrite!==void 0&&(n.depthWrite=t.depthWrite),t.colorWrite!==void 0&&(n.colorWrite=t.colorWrite),t.wireframe!==void 0&&(n.wireframe=t.wireframe),t.wireframeLinewidth!==void 0&&(n.wireframeLinewidth=t.wireframeLinewidth),t.wireframeLinecap!==void 0&&(n.wireframeLinecap=t.wireframeLinecap),t.wireframeLinejoin!==void 0&&(n.wireframeLinejoin=t.wireframeLinejoin),t.rotation!==void 0&&(n.rotation=t.rotation),t.linewidth!==1&&(n.linewidth=t.linewidth),t.dashSize!==void 0&&(n.dashSize=t.dashSize),t.gapSize!==void 0&&(n.gapSize=t.gapSize),t.scale!==void 0&&(n.scale=t.scale),t.polygonOffset!==void 0&&(n.polygonOffset=t.polygonOffset),t.polygonOffsetFactor!==void 0&&(n.polygonOffsetFactor=t.polygonOffsetFactor),t.polygonOffsetUnits!==void 0&&(n.polygonOffsetUnits=t.polygonOffsetUnits),t.skinning!==void 0&&(n.skinning=t.skinning),t.morphTargets!==void 0&&(n.morphTargets=t.morphTargets),t.dithering!==void 0&&(n.dithering=t.dithering),t.visible!==void 0&&(n.visible=t.visible),t.userData!==void 0&&(n.userData=t.userData),t.uniforms!==void 0)for(var o in t.uniforms){var l=t.uniforms[o];switch(n.uniforms[o]={},l.type){case"t":n.uniforms[o].value=e(l.value);break;case"c":n.uniforms[o].value=new L().setHex(l.value);break;case"v2":n.uniforms[o].value=new s().fromArray(l.value);break;case"v3":n.uniforms[o].value=new u().fromArray(l.value);break;case"v4":n.uniforms[o].value=new _().fromArray(l.value);break;case"m4":n.uniforms[o].value=new c().fromArray(l.value);break;default:n.uniforms[o].value=l.value}}return t.defines!==void 0&&(n.defines=t.defines),t.vertexShader!==void 0&&(n.vertexShader=t.vertexShader),t.fragmentShader!==void 0&&(n.fragmentShader=t.fragmentShader),t.shading!==void 0&&(n.flatShading=t.shading===1),t.size!==void 0&&(n.size=t.size),t.sizeAttenuation!==void 0&&(n.sizeAttenuation=t.sizeAttenuation),t.map!==void 0&&(n.map=e(t.map)),t.alphaMap!==void 0&&(n.alphaMap=e(t.alphaMap),n.transparent=!0),t.bumpMap!==void 0&&(n.bumpMap=e(t.bumpMap)),t.bumpScale!==void 0&&(n.bumpScale=t.bumpScale),t.normalMap!==void 0&&(n.normalMap=e(t.normalMap)),t.normalMapType!==void 0&&(n.normalMapType=t.normalMapType),t.normalScale!==void 0&&(o=t.normalScale,Array.isArray(o)===!1&&(o=[o,o]),n.normalScale=new s().fromArray(o)),t.displacementMap!==void 0&&(n.displacementMap=e(t.displacementMap)),t.displacementScale!==void 0&&(n.displacementScale=t.displacementScale),t.displacementBias!==void 0&&(n.displacementBias=t.displacementBias),t.roughnessMap!==void 0&&(n.roughnessMap=e(t.roughnessMap)),t.metalnessMap!==void 0&&(n.metalnessMap=e(t.metalnessMap)),t.emissiveMap!==void 0&&(n.emissiveMap=e(t.emissiveMap)),t.emissiveIntensity!==void 0&&(n.emissiveIntensity=t.emissiveIntensity),t.specularMap!==void 0&&(n.specularMap=e(t.specularMap)),t.envMap!==void 0&&(n.envMap=e(t.envMap)),t.envMapIntensity!==void 0&&(n.envMapIntensity=t.envMapIntensity),t.reflectivity!==void 0&&(n.reflectivity=t.reflectivity),t.lightMap!==void 0&&(n.lightMap=e(t.lightMap)),t.lightMapIntensity!==void 0&&(n.lightMapIntensity=t.lightMapIntensity),t.aoMap!==void 0&&(n.aoMap=e(t.aoMap)),t.aoMapIntensity!==void 0&&(n.aoMapIntensity=t.aoMapIntensity),t.gradientMap!==void 0&&(n.gradientMap=e(t.gradientMap)),n},setPath:function(t){return this.path=t,this},setTextures:function(t){return this.textures=t,this}});var Us={decodeText:function(t){if(typeof TextDecoder<"u")return new TextDecoder().decode(t);for(var e="",i=0,n=t.length;i<n;i++)e+=String.fromCharCode(t[i]);return decodeURIComponent(escape(e))},extractUrlBase:function(t){var e=t.lastIndexOf("/");return e===-1?"./":t.substr(0,e+1)}};Object.assign(Nh.prototype,{load:function(t,e,i,n){var o=this,l=new Lt(o.manager);l.setPath(o.path),l.load(t,function(f){e(o.parse(JSON.parse(f)))},i,n)},parse:function(t){var e=new Ft,i=t.data.index;i!==void 0&&(i=new ls[i.type](i.array),e.setIndex(new K(i,1)));var n=t.data.attributes;for(l in n){var o=n[l];i=new ls[o.type](o.array),e.addAttribute(l,new K(i,o.itemSize,o.normalized))}var l=t.data.groups||t.data.drawcalls||t.data.offsets;if(l!==void 0)for(i=0,n=l.length;i!==n;++i)o=l[i],e.addGroup(o.start,o.count,o.materialIndex);return t=t.data.boundingSphere,t!==void 0&&(l=new u,t.center!==void 0&&l.fromArray(t.center),e.boundingSphere=new D(l,t.radius)),e},setPath:function(t){return this.path=t,this}});var ls={Int8Array,Uint8Array,Uint8ClampedArray:typeof Uint8ClampedArray<"u"?Uint8ClampedArray:Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};Do.Handlers={handlers:[],add:function(t,e){this.handlers.push(t,e)},get:function(t){for(var e=this.handlers,i=0,n=e.length;i<n;i+=2){var o=e[i+1];if(e[i].test(t))return o}return null}},Object.assign(Do.prototype,{crossOrigin:"anonymous",onLoadStart:function(){},onLoadProgress:function(){},onLoadComplete:function(){},initMaterials:function(t,e,i){for(var n=[],o=0;o<t.length;++o)n[o]=this.createMaterial(t[o],e,i);return n},createMaterial:function(){var t={NoBlending:0,NormalBlending:1,AdditiveBlending:2,SubtractiveBlending:3,MultiplyBlending:4,CustomBlending:5},e=new L,i=new fn,n=new ih;return function(o,l,f){function p(B,H,q,$,rt){B=l+B;var xt=Do.Handlers.get(B);return xt!==null?B=xt.load(B):(i.setCrossOrigin(f),B=i.load(B)),H!==void 0&&(B.repeat.fromArray(H),H[0]!==1&&(B.wrapS=1e3),H[1]!==1&&(B.wrapT=1e3)),q!==void 0&&B.offset.fromArray(q),$!==void 0&&($[0]==="repeat"&&(B.wrapS=1e3),$[0]==="mirror"&&(B.wrapS=1002),$[1]==="repeat"&&(B.wrapT=1e3),$[1]==="mirror"&&(B.wrapT=1002)),rt!==void 0&&(B.anisotropy=rt),H=di.generateUUID(),y[H]=B,H}var y={},w={uuid:di.generateUUID(),type:"MeshLambertMaterial"},A;for(A in o){var P=o[A];switch(A){case"DbgColor":case"DbgIndex":case"opticalDensity":case"illumination":break;case"DbgName":w.name=P;break;case"blending":w.blending=t[P];break;case"colorAmbient":case"mapAmbient":console.warn("THREE.Loader.createMaterial:",A,"is no longer supported.");break;case"colorDiffuse":w.color=e.fromArray(P).getHex();break;case"colorSpecular":w.specular=e.fromArray(P).getHex();break;case"colorEmissive":w.emissive=e.fromArray(P).getHex();break;case"specularCoef":w.shininess=P;break;case"shading":P.toLowerCase()==="basic"&&(w.type="MeshBasicMaterial"),P.toLowerCase()==="phong"&&(w.type="MeshPhongMaterial"),P.toLowerCase()==="standard"&&(w.type="MeshStandardMaterial");break;case"mapDiffuse":w.map=p(P,o.mapDiffuseRepeat,o.mapDiffuseOffset,o.mapDiffuseWrap,o.mapDiffuseAnisotropy);break;case"mapDiffuseRepeat":case"mapDiffuseOffset":case"mapDiffuseWrap":case"mapDiffuseAnisotropy":break;case"mapEmissive":w.emissiveMap=p(P,o.mapEmissiveRepeat,o.mapEmissiveOffset,o.mapEmissiveWrap,o.mapEmissiveAnisotropy);break;case"mapEmissiveRepeat":case"mapEmissiveOffset":case"mapEmissiveWrap":case"mapEmissiveAnisotropy":break;case"mapLight":w.lightMap=p(P,o.mapLightRepeat,o.mapLightOffset,o.mapLightWrap,o.mapLightAnisotropy);break;case"mapLightRepeat":case"mapLightOffset":case"mapLightWrap":case"mapLightAnisotropy":break;case"mapAO":w.aoMap=p(P,o.mapAORepeat,o.mapAOOffset,o.mapAOWrap,o.mapAOAnisotropy);break;case"mapAORepeat":case"mapAOOffset":case"mapAOWrap":case"mapAOAnisotropy":break;case"mapBump":w.bumpMap=p(P,o.mapBumpRepeat,o.mapBumpOffset,o.mapBumpWrap,o.mapBumpAnisotropy);break;case"mapBumpScale":w.bumpScale=P;break;case"mapBumpRepeat":case"mapBumpOffset":case"mapBumpWrap":case"mapBumpAnisotropy":break;case"mapNormal":w.normalMap=p(P,o.mapNormalRepeat,o.mapNormalOffset,o.mapNormalWrap,o.mapNormalAnisotropy);break;case"mapNormalFactor":w.normalScale=P;break;case"mapNormalRepeat":case"mapNormalOffset":case"mapNormalWrap":case"mapNormalAnisotropy":break;case"mapSpecular":w.specularMap=p(P,o.mapSpecularRepeat,o.mapSpecularOffset,o.mapSpecularWrap,o.mapSpecularAnisotropy);break;case"mapSpecularRepeat":case"mapSpecularOffset":case"mapSpecularWrap":case"mapSpecularAnisotropy":break;case"mapMetalness":w.metalnessMap=p(P,o.mapMetalnessRepeat,o.mapMetalnessOffset,o.mapMetalnessWrap,o.mapMetalnessAnisotropy);break;case"mapMetalnessRepeat":case"mapMetalnessOffset":case"mapMetalnessWrap":case"mapMetalnessAnisotropy":break;case"mapRoughness":w.roughnessMap=p(P,o.mapRoughnessRepeat,o.mapRoughnessOffset,o.mapRoughnessWrap,o.mapRoughnessAnisotropy);break;case"mapRoughnessRepeat":case"mapRoughnessOffset":case"mapRoughnessWrap":case"mapRoughnessAnisotropy":break;case"mapAlpha":w.alphaMap=p(P,o.mapAlphaRepeat,o.mapAlphaOffset,o.mapAlphaWrap,o.mapAlphaAnisotropy);break;case"mapAlphaRepeat":case"mapAlphaOffset":case"mapAlphaWrap":case"mapAlphaAnisotropy":break;case"flipSided":w.side=1;break;case"doubleSided":w.side=2;break;case"transparency":console.warn("THREE.Loader.createMaterial: transparency has been renamed to opacity"),w.opacity=P;break;case"depthTest":case"depthWrite":case"colorWrite":case"opacity":case"reflectivity":case"transparent":case"visible":case"wireframe":w[A]=P;break;case"vertexColors":P===!0&&(w.vertexColors=2),P==="face"&&(w.vertexColors=1);break;default:console.error("THREE.Loader.createMaterial: Unsupported",A,P)}}return w.type==="MeshBasicMaterial"&&delete w.emissive,w.type!=="MeshPhongMaterial"&&delete w.specular,1>w.opacity&&(w.transparent=!0),n.setTextures(y),n.parse(w)}}()}),Object.assign(zs.prototype,{crossOrigin:"anonymous",load:function(t,e,i,n){var o=this,l=this.path===void 0?Us.extractUrlBase(t):this.path,f=new Lt(this.manager);f.setPath(this.path),f.setWithCredentials(this.withCredentials),f.load(t,function(p){p=JSON.parse(p);var y=p.metadata;if(y!==void 0&&(y=y.type,y!==void 0&&y.toLowerCase()==="object")){console.error("THREE.JSONLoader: "+t+" should be loaded with THREE.ObjectLoader instead.");return}p=o.parse(p,l),e(p.geometry,p.materials)},i,n)},setPath:function(t){return this.path=t,this},setResourcePath:function(t){return this.resourcePath=t,this},setCrossOrigin:function(t){return this.crossOrigin=t,this},parse:function(){return function(t,e){t.data!==void 0&&(t=t.data),t.scale=t.scale!==void 0?1/t.scale:1;var i=new X,n=t,o,l,f,p=n.faces,y=n.vertices,w=n.normals,A=n.colors,P=n.scale,B=0;if(n.uvs!==void 0){for(o=0;o<n.uvs.length;o++)n.uvs[o].length&&B++;for(o=0;o<B;o++)i.faceVertexUvs[o]=[]}var H=0;for(f=y.length;H<f;)o=new u,o.x=y[H++]*P,o.y=y[H++]*P,o.z=y[H++]*P,i.vertices.push(o);for(H=0,f=p.length;H<f;){y=p[H++];var q=y&1,$=y&2;o=y&8;var rt=y&16,xt=y&32;if(P=y&64,y&=128,q){q=new R,q.a=p[H],q.b=p[H+1],q.c=p[H+3];var gt=new R;if(gt.a=p[H+1],gt.b=p[H+2],gt.c=p[H+3],H+=4,$&&($=p[H++],q.materialIndex=$,gt.materialIndex=$),$=i.faces.length,o)for(o=0;o<B;o++){var Ct=n.uvs[o];for(i.faceVertexUvs[o][$]=[],i.faceVertexUvs[o][$+1]=[],l=0;4>l;l++){var wt=p[H++],Vt=Ct[2*wt];wt=Ct[2*wt+1],Vt=new s(Vt,wt),l!==2&&i.faceVertexUvs[o][$].push(Vt),l!==0&&i.faceVertexUvs[o][$+1].push(Vt)}}if(rt&&(rt=3*p[H++],q.normal.set(w[rt++],w[rt++],w[rt]),gt.normal.copy(q.normal)),xt)for(o=0;4>o;o++)rt=3*p[H++],xt=new u(w[rt++],w[rt++],w[rt]),o!==2&&q.vertexNormals.push(xt),o!==0&>.vertexNormals.push(xt);if(P&&(P=p[H++],P=A[P],q.color.setHex(P),gt.color.setHex(P)),y)for(o=0;4>o;o++)P=p[H++],P=A[P],o!==2&&q.vertexColors.push(new L(P)),o!==0&>.vertexColors.push(new L(P));i.faces.push(q),i.faces.push(gt)}else{if(q=new R,q.a=p[H++],q.b=p[H++],q.c=p[H++],$&&($=p[H++],q.materialIndex=$),$=i.faces.length,o)for(o=0;o<B;o++)for(Ct=n.uvs[o],i.faceVertexUvs[o][$]=[],l=0;3>l;l++)wt=p[H++],Vt=Ct[2*wt],wt=Ct[2*wt+1],Vt=new s(Vt,wt),i.faceVertexUvs[o][$].push(Vt);if(rt&&(rt=3*p[H++],q.normal.set(w[rt++],w[rt++],w[rt])),xt)for(o=0;3>o;o++)rt=3*p[H++],xt=new u(w[rt++],w[rt++],w[rt]),q.vertexNormals.push(xt);if(P&&(P=p[H++],q.color.setHex(A[P])),y)for(o=0;3>o;o++)P=p[H++],q.vertexColors.push(new L(A[P]));i.faces.push(q)}}if(n=t,H=n.influencesPerVertex!==void 0?n.influencesPerVertex:2,n.skinWeights)for(f=0,p=n.skinWeights.length;f<p;f+=H)i.skinWeights.push(new _(n.skinWeights[f],1<H?n.skinWeights[f+1]:0,2<H?n.skinWeights[f+2]:0,3<H?n.skinWeights[f+3]:0));if(n.skinIndices)for(f=0,p=n.skinIndices.length;f<p;f+=H)i.skinIndices.push(new _(n.skinIndices[f],1<H?n.skinIndices[f+1]:0,2<H?n.skinIndices[f+2]:0,3<H?n.skinIndices[f+3]:0));if(i.bones=n.bones,i.bones&&0<i.bones.length&&(i.skinWeights.length!==i.skinIndices.length||i.skinIndices.length!==i.vertices.length)&&console.warn("When skinning, number of vertices ("+i.vertices.length+"), skinIndices ("+i.skinIndices.length+"), and skinWeights ("+i.skinWeights.length+") should match."),f=t,p=f.scale,f.morphTargets!==void 0)for(n=0,H=f.morphTargets.length;n<H;n++)for(i.morphTargets[n]={},i.morphTargets[n].name=f.morphTargets[n].name,i.morphTargets[n].vertices=[],w=i.morphTargets[n].vertices,A=f.morphTargets[n].vertices,B=0,y=A.length;B<y;B+=3)P=new u,P.x=A[B]*p,P.y=A[B+1]*p,P.z=A[B+2]*p,w.push(P);if(f.morphColors!==void 0&&0<f.morphColors.length)for(console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.'),p=i.faces,f=f.morphColors[0].colors,n=0,H=p.length;n<H;n++)p[n].color.fromArray(f,3*n);for(f=t,n=[],H=[],f.animation!==void 0&&H.push(f.animation),f.animations!==void 0&&(f.animations.length?H=H.concat(f.animations):H.push(f.animations)),f=0;f<H.length;f++)(p=_r.parseAnimation(H[f],i.bones))&&n.push(p);return i.morphTargets&&(H=_r.CreateClipsFromMorphTargetSequences(i.morphTargets,10),n=n.concat(H)),0<n.length&&(i.animations=n),i.computeFaceNormals(),i.computeBoundingSphere(),t.materials===void 0||t.materials.length===0?{geometry:i}:(t=Do.prototype.initMaterials(t.materials,this.resourcePath||e,this.crossOrigin),{geometry:i,materials:t})}}()}),Object.assign(cl.prototype,{crossOrigin:"anonymous",load:function(t,e,i,n){var o=this,l=this.path===void 0?Us.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||l,l=new Lt(o.manager),l.setPath(this.path),l.load(t,function(f){var p=null;try{p=JSON.parse(f)}catch(y){n!==void 0&&n(y),console.error("THREE:ObjectLoader: Can't parse "+t+".",y.message);return}f=p.metadata,f===void 0||f.type===void 0||f.type.toLowerCase()==="geometry"?console.error("THREE.ObjectLoader: Can't load "+t+". Use THREE.JSONLoader instead."):o.parse(p,e)},i,n)},setPath:function(t){return this.path=t,this},setResourcePath:function(t){return this.resourcePath=t,this},setCrossOrigin:function(t){return this.crossOrigin=t,this},parse:function(t,e){var i=this.parseShape(t.shapes);i=this.parseGeometries(t.geometries,i);var n=this.parseImages(t.images,function(){e!==void 0&&e(o)});n=this.parseTextures(t.textures,n),n=this.parseMaterials(t.materials,n);var o=this.parseObject(t.object,i,n);return t.animations&&(o.animations=this.parseAnimations(t.animations)),t.images!==void 0&&t.images.length!==0||e===void 0||e(o),o},parseShape:function(t){var e={};if(t!==void 0)for(var i=0,n=t.length;i<n;i++){var o=new Qn().fromJSON(t[i]);e[o.uuid]=o}return e},parseGeometries:function(t,e){var i={};if(t!==void 0)for(var n=new zs,o=new Nh,l=0,f=t.length;l<f;l++){var p=t[l];switch(p.type){case"PlaneGeometry":case"PlaneBufferGeometry":var y=new yn[p.type](p.width,p.height,p.widthSegments,p.heightSegments);break;case"BoxGeometry":case"BoxBufferGeometry":case"CubeGeometry":y=new yn[p.type](p.width,p.height,p.depth,p.widthSegments,p.heightSegments,p.depthSegments);break;case"CircleGeometry":case"CircleBufferGeometry":y=new yn[p.type](p.radius,p.segments,p.thetaStart,p.thetaLength);break;case"CylinderGeometry":case"CylinderBufferGeometry":y=new yn[p.type](p.radiusTop,p.radiusBottom,p.height,p.radialSegments,p.heightSegments,p.openEnded,p.thetaStart,p.thetaLength);break;case"ConeGeometry":case"ConeBufferGeometry":y=new yn[p.type](p.radius,p.height,p.radialSegments,p.heightSegments,p.openEnded,p.thetaStart,p.thetaLength);break;case"SphereGeometry":case"SphereBufferGeometry":y=new yn[p.type](p.radius,p.widthSegments,p.heightSegments,p.phiStart,p.phiLength,p.thetaStart,p.thetaLength);break;case"DodecahedronGeometry":case"DodecahedronBufferGeometry":case"IcosahedronGeometry":case"IcosahedronBufferGeometry":case"OctahedronGeometry":case"OctahedronBufferGeometry":case"TetrahedronGeometry":case"TetrahedronBufferGeometry":y=new yn[p.type](p.radius,p.detail);break;case"RingGeometry":case"RingBufferGeometry":y=new yn[p.type](p.innerRadius,p.outerRadius,p.thetaSegments,p.phiSegments,p.thetaStart,p.thetaLength);break;case"TorusGeometry":case"TorusBufferGeometry":y=new yn[p.type](p.radius,p.tube,p.radialSegments,p.tubularSegments,p.arc);break;case"TorusKnotGeometry":case"TorusKnotBufferGeometry":y=new yn[p.type](p.radius,p.tube,p.tubularSegments,p.radialSegments,p.p,p.q);break;case"LatheGeometry":case"LatheBufferGeometry":y=new yn[p.type](p.points,p.segments,p.phiStart,p.phiLength);break;case"PolyhedronGeometry":case"PolyhedronBufferGeometry":y=new yn[p.type](p.vertices,p.indices,p.radius,p.details);break;case"ShapeGeometry":case"ShapeBufferGeometry":y=[];for(var w=0,A=p.shapes.length;w<A;w++){var P=e[p.shapes[w]];y.push(P)}y=new yn[p.type](y,p.curveSegments);break;case"ExtrudeGeometry":case"ExtrudeBufferGeometry":for(y=[],w=0,A=p.shapes.length;w<A;w++)P=e[p.shapes[w]],y.push(P);w=p.options.extrudePath,w!==void 0&&(p.options.extrudePath=new hh[w.type]().fromJSON(w)),y=new yn[p.type](y,p.options);break;case"BufferGeometry":y=o.parse(p);break;case"Geometry":y=n.parse(p,this.resourcePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+p.type+'"');continue}y.uuid=p.uuid,p.name!==void 0&&(y.name=p.name),y.isBufferGeometry===!0&&p.userData!==void 0&&(y.userData=p.userData),i[p.uuid]=y}return i},parseMaterials:function(t,e){var i={},n={};if(t!==void 0){var o=new ih;o.setTextures(e),e=0;for(var l=t.length;e<l;e++){var f=t[e];if(f.type==="MultiMaterial"){for(var p=[],y=0;y<f.materials.length;y++){var w=f.materials[y];i[w.uuid]===void 0&&(i[w.uuid]=o.parse(w)),p.push(i[w.uuid])}n[f.uuid]=p}else n[f.uuid]=o.parse(f),i[f.uuid]=n[f.uuid]}}return n},parseAnimations:function(t){for(var e=[],i=0;i<t.length;i++){var n=t[i],o=_r.parse(n);n.uuid!==void 0&&(o.uuid=n.uuid),e.push(o)}return e},parseImages:function(t,e){function i(B){return n.manager.itemStart(B),l.load(B,function(){n.manager.itemEnd(B)},void 0,function(){n.manager.itemError(B),n.manager.itemEnd(B)})}var n=this,o={};if(t!==void 0&&0<t.length){e=new es(e);var l=new ai(e);l.setCrossOrigin(this.crossOrigin),e=0;for(var f=t.length;e<f;e++){var p=t[e],y=p.url;if(Array.isArray(y)){o[p.uuid]=[];for(var w=0,A=y.length;w<A;w++){var P=y[w];P=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(P)?P:n.resourcePath+P,o[p.uuid].push(i(P))}}else P=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(p.url)?p.url:n.resourcePath+p.url,o[p.uuid]=i(P)}}return o},parseTextures:function(t,e){function i(y,w){return typeof y=="number"?y:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",y),w[y])}var n={};if(t!==void 0)for(var o=0,l=t.length;o<l;o++){var f=t[o];f.image===void 0&&console.warn('THREE.ObjectLoader: No "image" specified for',f.uuid),e[f.image]===void 0&&console.warn("THREE.ObjectLoader: Undefined image",f.image);var p=Array.isArray(e[f.image])?new z(e[f.image]):new g(e[f.image]);p.needsUpdate=!0,p.uuid=f.uuid,f.name!==void 0&&(p.name=f.name),f.mapping!==void 0&&(p.mapping=i(f.mapping,Uu)),f.offset!==void 0&&p.offset.fromArray(f.offset),f.repeat!==void 0&&p.repeat.fromArray(f.repeat),f.center!==void 0&&p.center.fromArray(f.center),f.rotation!==void 0&&(p.rotation=f.rotation),f.wrap!==void 0&&(p.wrapS=i(f.wrap[0],Zn),p.wrapT=i(f.wrap[1],Zn)),f.format!==void 0&&(p.format=f.format),f.minFilter!==void 0&&(p.minFilter=i(f.minFilter,uh)),f.magFilter!==void 0&&(p.magFilter=i(f.magFilter,uh)),f.anisotropy!==void 0&&(p.anisotropy=f.anisotropy),f.flipY!==void 0&&(p.flipY=f.flipY),n[f.uuid]=p}return n},parseObject:function(t,e,i){function n(w){return e[w]===void 0&&console.warn("THREE.ObjectLoader: Undefined geometry",w),e[w]}function o(w){if(w!==void 0){if(Array.isArray(w)){for(var A=[],P=0,B=w.length;P<B;P++){var H=w[P];i[H]===void 0&&console.warn("THREE.ObjectLoader: Undefined material",H),A.push(i[H])}return A}return i[w]===void 0&&console.warn("THREE.ObjectLoader: Undefined material",w),i[w]}}switch(t.type){case"Scene":var l=new Xn;t.background!==void 0&&Number.isInteger(t.background)&&(l.background=new L(t.background)),t.fog!==void 0&&(t.fog.type==="Fog"?l.fog=new Sn(t.fog.color,t.fog.near,t.fog.far):t.fog.type==="FogExp2"&&(l.fog=new Re(t.fog.color,t.fog.density)));break;case"PerspectiveCamera":l=new _e(t.fov,t.aspect,t.near,t.far),t.focus!==void 0&&(l.focus=t.focus),t.zoom!==void 0&&(l.zoom=t.zoom),t.filmGauge!==void 0&&(l.filmGauge=t.filmGauge),t.filmOffset!==void 0&&(l.filmOffset=t.filmOffset),t.view!==void 0&&(l.view=Object.assign({},t.view));break;case"OrthographicCamera":l=new Ta(t.left,t.right,t.top,t.bottom,t.near,t.far),t.zoom!==void 0&&(l.zoom=t.zoom),t.view!==void 0&&(l.view=Object.assign({},t.view));break;case"AmbientLight":l=new Ds(t.color,t.intensity);break;case"DirectionalLight":l=new xo(t.color,t.intensity);break;case"PointLight":l=new Is(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":l=new eh(t.color,t.intensity,t.width,t.height);break;case"SpotLight":l=new ul(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case"HemisphereLight":l=new ll(t.color,t.groundColor,t.intensity);break;case"SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case"Mesh":l=n(t.geometry);var f=o(t.material);l=l.bones&&0<l.bones.length?new Gi(l,f):new pi(l,f);break;case"LOD":l=new rn;break;case"Line":l=new ji(n(t.geometry),o(t.material),t.mode);break;case"LineLoop":l=new co(n(t.geometry),o(t.material));break;case"LineSegments":l=new gi(n(t.geometry),o(t.material));break;case"PointCloud":case"Points":l=new la(n(t.geometry),o(t.material));break;case"Sprite":l=new nn(o(t.material));break;case"Group":l=new ci;break;default:l=new N}if(l.uuid=t.uuid,t.name!==void 0&&(l.name=t.name),t.matrix!==void 0?(l.matrix.fromArray(t.matrix),t.matrixAutoUpdate!==void 0&&(l.matrixAutoUpdate=t.matrixAutoUpdate),l.matrixAutoUpdate&&l.matrix.decompose(l.position,l.quaternion,l.scale)):(t.position!==void 0&&l.position.fromArray(t.position),t.rotation!==void 0&&l.rotation.fromArray(t.rotation),t.quaternion!==void 0&&l.quaternion.fromArray(t.quaternion),t.scale!==void 0&&l.scale.fromArray(t.scale)),t.castShadow!==void 0&&(l.castShadow=t.castShadow),t.receiveShadow!==void 0&&(l.receiveShadow=t.receiveShadow),t.shadow&&(t.shadow.bias!==void 0&&(l.shadow.bias=t.shadow.bias),t.shadow.radius!==void 0&&(l.shadow.radius=t.shadow.radius),t.shadow.mapSize!==void 0&&l.shadow.mapSize.fromArray(t.shadow.mapSize),t.shadow.camera!==void 0&&(l.shadow.camera=this.parseObject(t.shadow.camera))),t.visible!==void 0&&(l.visible=t.visible),t.frustumCulled!==void 0&&(l.frustumCulled=t.frustumCulled),t.renderOrder!==void 0&&(l.renderOrder=t.renderOrder),t.userData!==void 0&&(l.userData=t.userData),t.layers!==void 0&&(l.layers.mask=t.layers),t.children!==void 0){f=t.children;for(var p=0;p<f.length;p++)l.add(this.parseObject(f[p],e,i))}if(t.type==="LOD")for(t=t.levels,f=0;f<t.length;f++){p=t[f];var y=l.getObjectByProperty("uuid",p.object);y!==void 0&&l.addLevel(y,p.distance)}return l}});var Uu={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},Zn={RepeatWrapping:1e3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},uh={NearestFilter:1003,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,LinearFilter:1006,LinearMipMapNearestFilter:1007,LinearMipMapLinearFilter:1008};Fh.prototype={constructor:Fh,setOptions:function(t){return this.options=t,this},load:function(t,e,i,n){t===void 0&&(t=""),this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);var o=this,l=Mo.get(t);if(l!==void 0)return o.manager.itemStart(t),setTimeout(function(){e&&e(l),o.manager.itemEnd(t)},0),l;fetch(t).then(function(f){return f.blob()}).then(function(f){return createImageBitmap(f,o.options)}).then(function(f){Mo.add(t,f),e&&e(f),o.manager.itemEnd(t)}).catch(function(f){n&&n(f),o.manager.itemError(t),o.manager.itemEnd(t)})},setCrossOrigin:function(){return this},setPath:function(t){return this.path=t,this}},Object.assign(nh.prototype,{moveTo:function(t,e){this.currentPath=new fr,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e)},lineTo:function(t,e){this.currentPath.lineTo(t,e)},quadraticCurveTo:function(t,e,i,n){this.currentPath.quadraticCurveTo(t,e,i,n)},bezierCurveTo:function(t,e,i,n,o,l){this.currentPath.bezierCurveTo(t,e,i,n,o,l)},splineThru:function(t){this.currentPath.splineThru(t)},toShapes:function(t,e){function i(rt){for(var xt=[],gt=0,Ct=rt.length;gt<Ct;gt++){var wt=rt[gt],Vt=new Qn;Vt.curves=wt.curves,xt.push(Vt)}return xt}function n(rt,xt){for(var gt=xt.length,Ct=!1,wt=gt-1,Vt=0;Vt<gt;wt=Vt++){var J=xt[wt],ot=xt[Vt],zt=ot.x-J.x,ee=ot.y-J.y;if(Math.abs(ee)>Number.EPSILON){if(0>ee&&(J=xt[Vt],zt=-zt,ot=xt[wt],ee=-ee),!(rt.y<J.y||rt.y>ot.y))if(rt.y===J.y){if(rt.x===J.x)return!0}else{if(wt=ee*(rt.x-J.x)-zt*(rt.y-J.y),wt===0)return!0;0>wt||(Ct=!Ct)}}else if(rt.y===J.y&&(ot.x<=rt.x&&rt.x<=J.x||J.x<=rt.x&&rt.x<=ot.x))return!0}return Ct}var o=To.isClockWise,l=this.subPaths;if(l.length===0)return[];if(e===!0)return i(l);if(e=[],l.length===1){var f=l[0],p=new Qn;return p.curves=f.curves,e.push(p),e}var y=!o(l[0].getPoints());y=t?!y:y,p=[];var w=[],A=[],P=0;w[P]=void 0,A[P]=[];for(var B=0,H=l.length;B<H;B++){f=l[B];var q=f.getPoints(),$=o(q);($=t?!$:$)?(!y&&w[P]&&P++,w[P]={s:new Qn,p:q},w[P].s.curves=f.curves,y&&P++,A[P]=[]):A[P].push({h:f,p:q[0]})}if(!w[0])return i(l);if(1<w.length){for(B=!1,t=[],o=0,l=w.length;o<l;o++)p[o]=[];for(o=0,l=w.length;o<l;o++)for(f=A[o],$=0;$<f.length;$++){for(y=f[$],P=!0,q=0;q<w.length;q++)n(y.p,w[q].p)&&(o!==q&&t.push({froms:o,tos:q,hole:$}),P?(P=!1,p[q].push(y)):B=!0);P&&p[o].push(y)}0<t.length&&(B||(A=p))}for(B=0,o=w.length;B<o;B++)for(p=w[B].s,e.push(p),t=A[B],l=0,f=t.length;l<f;l++)p.holes.push(t[l].h);return e}}),Object.assign(Uh.prototype,{isFont:!0,generateShapes:function(t,e){e===void 0&&(e=100);var i=[],n=e;e=this.data;var o=Array.from?Array.from(t):String(t).split("");n/=e.resolution;var l=(e.boundingBox.yMax-e.boundingBox.yMin+e.underlineThickness)*n;t=[];for(var f=0,p=0,y=0;y<o.length;y++){var w=o[y];if(w===`
|
|
2571
2571
|
`)f=0,p-=l;else{var A=n,P=f,B=p;if(w=e.glyphs[w]||e.glyphs["?"]){var H=new nh;if(w.o)for(var q=w._cachedOutline||(w._cachedOutline=w.o.split(" ")),$=0,rt=q.length;$<rt;)switch(q[$++]){case"m":var xt=q[$++]*A+P,gt=q[$++]*A+B;H.moveTo(xt,gt);break;case"l":xt=q[$++]*A+P,gt=q[$++]*A+B,H.lineTo(xt,gt);break;case"q":var Ct=q[$++]*A+P,wt=q[$++]*A+B,Vt=q[$++]*A+P,J=q[$++]*A+B;H.quadraticCurveTo(Vt,J,Ct,wt);break;case"b":Ct=q[$++]*A+P,wt=q[$++]*A+B,Vt=q[$++]*A+P,J=q[$++]*A+B,xt=q[$++]*A+P,gt=q[$++]*A+B,H.bezierCurveTo(Vt,J,xt,gt,Ct,wt)}A={offsetX:w.ha*A,path:H}}else A=void 0;f+=A.offsetX,t.push(A.path)}}for(e=0,o=t.length;e<o;e++)Array.prototype.push.apply(i,t[e].toShapes());return i}}),Object.assign(Lu.prototype,{load:function(t,e,i,n){var o=this,l=new Lt(this.manager);l.setPath(this.path),l.load(t,function(f){try{var p=JSON.parse(f)}catch{console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),p=JSON.parse(f.substring(65,f.length-2))}f=o.parse(p),e&&e(f)},i,n)},parse:function(t){return new Uh(t)},setPath:function(t){return this.path=t,this}});var ch,$h={getContext:function(){return ch===void 0&&(ch=new(window.AudioContext||window.webkitAudioContext)),ch},setContext:function(t){ch=t}};Object.assign(vn.prototype,{load:function(t,e,i,n){var o=new Lt(this.manager);o.setResponseType("arraybuffer"),o.setPath(this.path),o.load(t,function(l){l=l.slice(0),$h.getContext().decodeAudioData(l,function(f){e(f)})},i,n)},setPath:function(t){return this.path=t,this}}),Object.assign(Vn.prototype,{update:function(){var t,e,i,n,o,l,f,p,y=new c,w=new c;return function(A){if(t!==this||e!==A.focus||i!==A.fov||n!==A.aspect*this.aspect||o!==A.near||l!==A.far||f!==A.zoom||p!==this.eyeSep){t=this,e=A.focus,i=A.fov,n=A.aspect*this.aspect,o=A.near,l=A.far,f=A.zoom;var P=A.projectionMatrix.clone();p=this.eyeSep/2;var B=p*o/e,H=o*Math.tan(di.DEG2RAD*i*.5)/f;w.elements[12]=-p,y.elements[12]=p;var q=-H*n+B,$=H*n+B;P.elements[0]=2*o/($-q),P.elements[8]=($+q)/($-q),this.cameraL.projectionMatrix.copy(P),q=-H*n-B,$=H*n-B,P.elements[0]=2*o/($-q),P.elements[8]=($+q)/($-q),this.cameraR.projectionMatrix.copy(P)}this.cameraL.matrixWorld.copy(A.matrixWorld).multiply(w),this.cameraR.matrixWorld.copy(A.matrixWorld).multiply(y)}}()}),fl.prototype=Object.create(N.prototype),fl.prototype.constructor=fl,Object.assign(Gh.prototype,{start:function(){this.oldTime=this.startTime=(typeof performance>"u"?Date:performance).now(),this.elapsedTime=0,this.running=!0},stop:function(){this.getElapsedTime(),this.autoStart=this.running=!1},getElapsedTime:function(){return this.getDelta(),this.elapsedTime},getDelta:function(){var t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var e=(typeof performance>"u"?Date:performance).now();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}),rh.prototype=Object.assign(Object.create(N.prototype),{constructor:rh,getInput:function(){return this.gain},removeFilter:function(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this},getFilter:function(){return this.filter},setFilter:function(t){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this},updateMatrixWorld:function(){var t=new u,e=new d,i=new u,n=new u,o=new Gh;return function(l){N.prototype.updateMatrixWorld.call(this,l),l=this.context.listener;var f=this.up;if(this.timeDelta=o.getDelta(),this.matrixWorld.decompose(t,e,i),n.set(0,0,-1).applyQuaternion(e),l.positionX){var p=this.context.currentTime+this.timeDelta;l.positionX.linearRampToValueAtTime(t.x,p),l.positionY.linearRampToValueAtTime(t.y,p),l.positionZ.linearRampToValueAtTime(t.z,p),l.forwardX.linearRampToValueAtTime(n.x,p),l.forwardY.linearRampToValueAtTime(n.y,p),l.forwardZ.linearRampToValueAtTime(n.z,p),l.upX.linearRampToValueAtTime(f.x,p),l.upY.linearRampToValueAtTime(f.y,p),l.upZ.linearRampToValueAtTime(f.z,p)}else l.setPosition(t.x,t.y,t.z),l.setOrientation(n.x,n.y,n.z,f.x,f.y,f.z)}}()}),Ma.prototype=Object.assign(Object.create(N.prototype),{constructor:Ma,getOutput:function(){return this.gain},setNodeSource:function(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this},setMediaElementSource:function(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this},setBuffer:function(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this},play:function(){if(this.isPlaying===!0)console.warn("THREE.Audio: Audio is already playing.");else if(this.hasPlaybackControl===!1)console.warn("THREE.Audio: this Audio has no playback control.");else{var t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.onended=this.onEnded.bind(this),t.playbackRate.setValueAtTime(this.playbackRate,this.startTime),this.startTime=this.context.currentTime,t.start(this.startTime,this.offset),this.isPlaying=!0,this.source=t,this.connect()}},pause:function(){if(this.hasPlaybackControl===!1)console.warn("THREE.Audio: this Audio has no playback control.");else return this.isPlaying===!0&&(this.source.stop(),this.source.onended=null,this.offset+=(this.context.currentTime-this.startTime)*this.playbackRate,this.isPlaying=!1),this},stop:function(){if(this.hasPlaybackControl===!1)console.warn("THREE.Audio: this Audio has no playback control.");else return this.source.stop(),this.source.onended=null,this.offset=0,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(t){return t||(t=[]),this.isPlaying===!0?(this.disconnect(),this.filters=t,this.connect()):this.filters=t,this},getFilter:function(){return this.getFilters()[0]},setFilter:function(t){return this.setFilters(t?[t]:[])},setPlaybackRate:function(t){if(this.hasPlaybackControl===!1)console.warn("THREE.Audio: this Audio has no playback control.");else return this.playbackRate=t,this.isPlaying===!0&&this.source.playbackRate.setValueAtTime(this.playbackRate,this.context.currentTime),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return this.hasPlaybackControl===!1?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(t){if(this.hasPlaybackControl===!1)console.warn("THREE.Audio: this Audio has no playback control.");else return this.loop=t,this.isPlaying===!0&&(this.source.loop=this.loop),this},getVolume:function(){return this.gain.gain.value},setVolume:function(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}),dl.prototype=Object.assign(Object.create(Ma.prototype),{constructor:dl,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(t){return this.panner.refDistance=t,this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(t){return this.panner.rolloffFactor=t,this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(t){return this.panner.distanceModel=t,this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(t){return this.panner.maxDistance=t,this},setDirectionalCone:function(t,e,i){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=i,this},updateMatrixWorld:function(){var t=new u,e=new d,i=new u,n=new u;return function(o){if(N.prototype.updateMatrixWorld.call(this,o),o=this.panner,this.matrixWorld.decompose(t,e,i),n.set(0,0,1).applyQuaternion(e),o.positionX){var l=this.context.currentTime+this.listener.timeDelta;o.positionX.linearRampToValueAtTime(t.x,l),o.positionY.linearRampToValueAtTime(t.y,l),o.positionZ.linearRampToValueAtTime(t.z,l),o.orientationX.linearRampToValueAtTime(n.x,l),o.orientationY.linearRampToValueAtTime(n.y,l),o.orientationZ.linearRampToValueAtTime(n.z,l)}else o.setPosition(t.x,t.y,t.z),o.setOrientation(n.x,n.y,n.z)}}()}),Object.assign(ks.prototype,{getFrequencyData:function(){return this.analyser.getByteFrequencyData(this.data),this.data},getAverageFrequency:function(){for(var t=0,e=this.getFrequencyData(),i=0;i<e.length;i++)t+=e[i];return t/e.length}}),Object.assign(pl.prototype,{accumulate:function(t,e){var i=this.buffer,n=this.valueSize;t=t*n+n;var o=this.cumulativeWeight;if(o===0){for(o=0;o!==n;++o)i[t+o]=i[o];o=e}else o+=e,this._mixBufferRegion(i,t,0,e/o,n);this.cumulativeWeight=o},apply:function(t){var e=this.valueSize,i=this.buffer;t=t*e+e;var n=this.cumulativeWeight,o=this.binding;this.cumulativeWeight=0,1>n&&this._mixBufferRegion(i,t,3*e,1-n,e),n=e;for(var l=e+e;n!==l;++n)if(i[n]!==i[n+e]){o.setValue(i,t);break}},saveOriginalState:function(){var t=this.buffer,e=this.valueSize,i=3*e;this.binding.getValue(t,i);for(var n=e;n!==i;++n)t[n]=t[i+n%e];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(t,e,i,n,o){if(.5<=n)for(n=0;n!==o;++n)t[e+n]=t[i+n]},_slerp:function(t,e,i,n){d.slerpFlat(t,e,t,e,t,i,n)},_lerp:function(t,e,i,n,o){for(var l=1-n,f=0;f!==o;++f){var p=e+f;t[p]=t[p]*l+t[i+f]*n}}}),Object.assign(Bs.prototype,{getValue:function(t,e){this.bind();var i=this._bindings[this._targetGroup.nCachedObjects_];i!==void 0&&i.getValue(t,e)},setValue:function(t,e){for(var i=this._bindings,n=this._targetGroup.nCachedObjects_,o=i.length;n!==o;++n)i[n].setValue(t,e)},bind:function(){for(var t=this._bindings,e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()},unbind:function(){for(var t=this._bindings,e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}}),Object.assign(En,{Composite:Bs,create:function(t,e,i){return t&&t.isAnimationObjectGroup?new En.Composite(t,e,i):new En(t,e,i)},sanitizeNodeName:function(){var t=/[\[\]\.:\/]/g;return function(e){return e.replace(/\s/g,"_").replace(t,"")}}(),parseTrackName:function(){var t="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",e=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]");t=/(WCOD+)?/.source.replace("WCOD",t);var i=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),n=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),o=new RegExp("^"+e+t+i+n+"$"),l=["material","materials","bones"];return function(f){var p=o.exec(f);if(!p)throw Error("PropertyBinding: Cannot parse trackName: "+f);p={nodeName:p[2],objectName:p[3],objectIndex:p[4],propertyName:p[5],propertyIndex:p[6]};var y=p.nodeName&&p.nodeName.lastIndexOf(".");if(y!==void 0&&y!==-1){var w=p.nodeName.substring(y+1);l.indexOf(w)!==-1&&(p.nodeName=p.nodeName.substring(0,y),p.objectName=w)}if(p.propertyName===null||p.propertyName.length===0)throw Error("PropertyBinding: can not parse propertyName from trackName: "+f);return p}}(),findNode:function(t,e){if(!e||e===""||e==="root"||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){var i=t.skeleton.getBoneByName(e);if(i!==void 0)return i}if(t.children){var n=function(o){for(var l=0;l<o.length;l++){var f=o[l];if(f.name===e||f.uuid===e||(f=n(f.children)))return f}return null};if(t=n(t.children))return t}return null}}),Object.assign(En.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(t,e){t[e]=this.node[this.propertyName]},function(t,e){for(var i=this.resolvedProperty,n=0,o=i.length;n!==o;++n)t[e++]=i[n]},function(t,e){t[e]=this.resolvedProperty[this.propertyIndex]},function(t,e){this.resolvedProperty.toArray(t,e)}],SetterByBindingTypeAndVersioning:[[function(t,e){this.targetObject[this.propertyName]=t[e]},function(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0},function(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){for(var i=this.resolvedProperty,n=0,o=i.length;n!==o;++n)i[n]=t[e++]},function(t,e){for(var i=this.resolvedProperty,n=0,o=i.length;n!==o;++n)i[n]=t[e++];this.targetObject.needsUpdate=!0},function(t,e){for(var i=this.resolvedProperty,n=0,o=i.length;n!==o;++n)i[n]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){this.resolvedProperty[this.propertyIndex]=t[e]},function(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0},function(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){this.resolvedProperty.fromArray(t,e)},function(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0},function(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(t,e){this.bind(),this.getValue(t,e)},setValue:function(t,e){this.bind(),this.setValue(t,e)},bind:function(){var t=this.node,e=this.parsedPath,i=e.objectName,n=e.propertyName,o=e.propertyIndex;if(t||(this.node=t=En.findNode(this.rootNode,e.nodeName)||this.rootNode),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,t){if(i){var l=e.objectIndex;switch(i){case"materials":if(!t.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!t.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}t=t.material.materials;break;case"bones":if(!t.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}for(t=t.skeleton.bones,i=0;i<t.length;i++)if(t[i].name===l){l=i;break}break;default:if(t[i]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}t=t[i]}if(l!==void 0){if(t[l]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);return}t=t[l]}}if(l=t[n],l===void 0)console.error("THREE.PropertyBinding: Trying to update property for track: "+e.nodeName+"."+n+" but it wasn't found.",t);else{if(e=this.Versioning.None,this.targetObject=t,t.needsUpdate!==void 0?e=this.Versioning.NeedsUpdate:t.matrixWorldNeedsUpdate!==void 0&&(e=this.Versioning.MatrixWorldNeedsUpdate),i=this.BindingType.Direct,o!==void 0){if(n==="morphTargetInfluences"){if(!t.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(t.geometry.isBufferGeometry){if(!t.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}for(i=0;i<this.node.geometry.morphAttributes.position.length;i++)if(t.geometry.morphAttributes.position[i].name===o){o=i;break}}else{if(!t.geometry.morphTargets){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",this);return}for(i=0;i<this.node.geometry.morphTargets.length;i++)if(t.geometry.morphTargets[i].name===o){o=i;break}}}i=this.BindingType.ArrayElement,this.resolvedProperty=l,this.propertyIndex=o}else l.fromArray!==void 0&&l.toArray!==void 0?(i=this.BindingType.HasFromToArray,this.resolvedProperty=l):Array.isArray(l)?(i=this.BindingType.EntireArray,this.resolvedProperty=l):this.propertyName=n;this.getValue=this.GetterByBindingType[i],this.setValue=this.SetterByBindingTypeAndVersioning[i][e]}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}),Object.assign(En.prototype,{_getValue_unbound:En.prototype.getValue,_setValue_unbound:En.prototype.setValue}),Object.assign(Sa.prototype,{isAnimationObjectGroup:!0,add:function(){for(var t=this._objects,e=t.length,i=this.nCachedObjects_,n=this._indicesByUUID,o=this._paths,l=this._parsedPaths,f=this._bindings,p=f.length,y=void 0,w=0,A=arguments.length;w!==A;++w){var P=arguments[w],B=P.uuid,H=n[B];if(H===void 0){H=e++,n[B]=H,t.push(P),B=0;for(var q=p;B!==q;++B)f[B].push(new En(P,o[B],l[B]))}else if(H<i){y=t[H];var $=--i;for(q=t[$],n[q.uuid]=H,t[H]=q,n[B]=$,t[$]=P,B=0,q=p;B!==q;++B){var rt=f[B],xt=rt[H];rt[H]=rt[$],xt===void 0&&(xt=new En(P,o[B],l[B])),rt[$]=xt}}else t[H]!==y&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=i},remove:function(){for(var t=this._objects,e=this.nCachedObjects_,i=this._indicesByUUID,n=this._bindings,o=n.length,l=0,f=arguments.length;l!==f;++l){var p=arguments[l],y=p.uuid,w=i[y];if(w!==void 0&&w>=e){var A=e++,P=t[A];for(i[P.uuid]=w,t[w]=P,i[y]=A,t[A]=p,p=0,y=o;p!==y;++p){P=n[p];var B=P[w];P[w]=P[A],P[A]=B}}}this.nCachedObjects_=e},uncache:function(){for(var t=this._objects,e=t.length,i=this.nCachedObjects_,n=this._indicesByUUID,o=this._bindings,l=o.length,f=0,p=arguments.length;f!==p;++f){var y=arguments[f].uuid,w=n[y];if(w!==void 0)if(delete n[y],w<i){y=--i;var A=t[y],P=--e,B=t[P];for(n[A.uuid]=w,t[w]=A,n[B.uuid]=y,t[y]=B,t.pop(),A=0,B=l;A!==B;++A){var H=o[A],q=H[P];H[w]=H[y],H[y]=q,H.pop()}}else for(P=--e,B=t[P],n[B.uuid]=w,t[w]=B,t.pop(),A=0,B=l;A!==B;++A)H=o[A],H[w]=H[P],H.pop()}this.nCachedObjects_=i},subscribe_:function(t,e){var i=this._bindingsIndicesByPath,n=i[t],o=this._bindings;if(n!==void 0)return o[n];var l=this._paths,f=this._parsedPaths,p=this._objects,y=this.nCachedObjects_,w=Array(p.length);for(n=o.length,i[t]=n,l.push(t),f.push(e),o.push(w),i=y,n=p.length;i!==n;++i)w[i]=new En(p[i],t,e);return w},unsubscribe_:function(t){var e=this._bindingsIndicesByPath,i=e[t];if(i!==void 0){var n=this._paths,o=this._parsedPaths,l=this._bindings,f=l.length-1,p=l[f];e[t[f]]=i,l[i]=p,l.pop(),o[i]=o[f],o.pop(),n[i]=n[f],n.pop()}}}),Object.assign(ml.prototype,{play:function(){return this._mixer._activateAction(this),this},stop:function(){return this._mixer._deactivateAction(this),this.reset()},reset:function(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(t){return this._startTime=t,this},setLoop:function(t,e){return this.loop=t,this.repetitions=e,this},setEffectiveWeight:function(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(t){return this._scheduleFading(t,0,1)},fadeOut:function(t){return this._scheduleFading(t,1,0)},crossFadeFrom:function(t,e,i){if(t.fadeOut(e),this.fadeIn(e),i){i=this._clip.duration;var n=t._clip.duration,o=i/n;t.warp(1,n/i,e),this.warp(o,1,e)}return this},crossFadeTo:function(t,e,i){return t.crossFadeFrom(this,e,i)},stopFading:function(){var t=this._weightInterpolant;return t!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this},setEffectiveTimeScale:function(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(t){return this.timeScale=this._clip.duration/t,this.stopWarping()},syncWith:function(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()},halt:function(t){return this.warp(this._effectiveTimeScale,0,t)},warp:function(t,e,i){var n=this._mixer,o=n.time,l=this._timeScaleInterpolant,f=this.timeScale;return l===null&&(this._timeScaleInterpolant=l=n._lendControlInterpolant()),n=l.parameterPositions,l=l.sampleValues,n[0]=o,n[1]=o+i,l[0]=t/f,l[1]=e/f,this},stopWarping:function(){var t=this._timeScaleInterpolant;return t!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(t,e,i,n){if(this.enabled){var o=this._startTime;if(o!==null){if(e=(t-o)*i,0>e||i===0)return;this._startTime=null,e*=i}if(e*=this._updateTimeScale(t),i=this._updateTime(e),t=this._updateWeight(t),0<t){e=this._interpolants,o=this._propertyBindings;for(var l=0,f=e.length;l!==f;++l)e[l].evaluate(i),o[l].accumulate(n,t)}}else this._updateWeight(t)},_updateWeight:function(t){var e=0;if(this.enabled){e=this.weight;var i=this._weightInterpolant;if(i!==null){var n=i.evaluate(t)[0];e*=n,t>i.parameterPositions[1]&&(this.stopFading(),n===0&&(this.enabled=!1))}}return this._effectiveWeight=e},_updateTimeScale:function(t){var e=0;if(!this.paused){e=this.timeScale;var i=this._timeScaleInterpolant;if(i!==null){var n=i.evaluate(t)[0];e*=n,t>i.parameterPositions[1]&&(this.stopWarping(),e===0?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e},_updateTime:function(t){var e=this.time+t,i=this._clip.duration,n=this.loop,o=this._loopCount,l=n===2202;if(t===0)return o===-1?e:l&&(o&1)===1?i-e:e;if(n===2200)t:{if(o===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1)),e>=i)e=i;else if(0>e)e=0;else break t;this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:"finished",action:this,direction:0>t?-1:1})}else{if(o===-1&&(0<=t?(o=0,this._setEndings(!0,this.repetitions===0,l)):this._setEndings(this.repetitions===0,!0,l)),e>=i||0>e){n=Math.floor(e/i),e-=i*n,o+=Math.abs(n);var f=this.repetitions-o;0>=f?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=0<t?i:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<t?1:-1})):(f===1?(t=0>t,this._setEndings(t,!t,l)):this._setEndings(!1,!1,l),this._loopCount=o,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n}))}if(l&&(o&1)===1)return this.time=e,i-e}return this.time=e},_setEndings:function(t,e,i){var n=this._interpolantSettings;i?(n.endingStart=2401,n.endingEnd=2401):(n.endingStart=t?this.zeroSlopeAtStart?2401:2400:2402,n.endingEnd=e?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(t,e,i){var n=this._mixer,o=n.time,l=this._weightInterpolant;return l===null&&(this._weightInterpolant=l=n._lendControlInterpolant()),n=l.parameterPositions,l=l.sampleValues,n[0]=o,l[0]=e,n[1]=o+t,l[1]=i,this}}),rs.prototype=Object.assign(Object.create(a.prototype),{constructor:rs,_bindAction:function(t,e){var i=t._localRoot||this._root,n=t._clip.tracks,o=n.length,l=t._propertyBindings;t=t._interpolants;var f=i.uuid,p=this._bindingsByRootAndName,y=p[f];for(y===void 0&&(y={},p[f]=y),p=0;p!==o;++p){var w=n[p],A=w.name,P=y[A];if(P===void 0){if(P=l[p],P!==void 0){P._cacheIndex===null&&(++P.referenceCount,this._addInactiveBinding(P,f,A));continue}P=new pl(En.create(i,A,e&&e._propertyBindings[p].binding.parsedPath),w.ValueTypeName,w.getValueSize()),++P.referenceCount,this._addInactiveBinding(P,f,A)}l[p]=P,t[p].resultBuffer=P.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(t._cacheIndex===null){var e=(t._localRoot||this._root).uuid,i=t._clip.uuid,n=this._actionsByClip[i];this._bindAction(t,n&&n.knownActions[0]),this._addInactiveAction(t,i,e)}for(e=t._propertyBindings,i=0,n=e.length;i!==n;++i){var o=e[i];o.useCount++===0&&(this._lendBinding(o),o.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){for(var e=t._propertyBindings,i=0,n=e.length;i!==n;++i){var o=e[i];--o.useCount===0&&(o.restoreOriginalState(),this._takeBackBinding(o))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){return t=t._cacheIndex,t!==null&&t<this._nActiveActions},_addInactiveAction:function(t,e,i){var n=this._actions,o=this._actionsByClip,l=o[e];l===void 0?(l={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,o[e]=l):(e=l.knownActions,t._byClipCacheIndex=e.length,e.push(t)),t._cacheIndex=n.length,n.push(t),l.actionByRoot[i]=t},_removeInactiveAction:function(t){var e=this._actions,i=e[e.length-1],n=t._cacheIndex;i._cacheIndex=n,e[n]=i,e.pop(),t._cacheIndex=null,e=t._clip.uuid,i=this._actionsByClip,n=i[e];var o=n.knownActions,l=o[o.length-1],f=t._byClipCacheIndex;l._byClipCacheIndex=f,o[f]=l,o.pop(),t._byClipCacheIndex=null,delete n.actionByRoot[(t._localRoot||this._root).uuid],o.length===0&&delete i[e],this._removeInactiveBindingsForAction(t)},_removeInactiveBindingsForAction:function(t){t=t._propertyBindings;for(var e=0,i=t.length;e!==i;++e){var n=t[e];--n.referenceCount===0&&this._removeInactiveBinding(n)}},_lendAction:function(t){var e=this._actions,i=t._cacheIndex,n=this._nActiveActions++,o=e[n];t._cacheIndex=n,e[n]=t,o._cacheIndex=i,e[i]=o},_takeBackAction:function(t){var e=this._actions,i=t._cacheIndex,n=--this._nActiveActions,o=e[n];t._cacheIndex=n,e[n]=t,o._cacheIndex=i,e[i]=o},_addInactiveBinding:function(t,e,i){var n=this._bindingsByRootAndName,o=n[e],l=this._bindings;o===void 0&&(o={},n[e]=o),o[i]=t,t._cacheIndex=l.length,l.push(t)},_removeInactiveBinding:function(t){var e=this._bindings,i=t.binding,n=i.rootNode.uuid;i=i.path;var o=this._bindingsByRootAndName,l=o[n],f=e[e.length-1];t=t._cacheIndex,f._cacheIndex=t,e[t]=f,e.pop(),delete l[i];t:{for(var p in l)break t;delete o[n]}},_lendBinding:function(t){var e=this._bindings,i=t._cacheIndex,n=this._nActiveBindings++,o=e[n];t._cacheIndex=n,e[n]=t,o._cacheIndex=i,e[i]=o},_takeBackBinding:function(t){var e=this._bindings,i=t._cacheIndex,n=--this._nActiveBindings,o=e[n];t._cacheIndex=n,e[n]=t,o._cacheIndex=i,e[i]=o},_lendControlInterpolant:function(){var t=this._controlInterpolants,e=this._nActiveControlInterpolants++,i=t[e];return i===void 0&&(i=new Dr(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),i.__cacheIndex=e,t[e]=i),i},_takeBackControlInterpolant:function(t){var e=this._controlInterpolants,i=t.__cacheIndex,n=--this._nActiveControlInterpolants,o=e[n];t.__cacheIndex=n,e[n]=t,o.__cacheIndex=i,e[i]=o},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(t,e){var i=e||this._root,n=i.uuid;i=typeof t=="string"?_r.findByName(i,t):t,t=i!==null?i.uuid:t;var o=this._actionsByClip[t],l=null;if(o!==void 0){if(l=o.actionByRoot[n],l!==void 0)return l;l=o.knownActions[0],i===null&&(i=l._clip)}return i===null?null:(e=new ml(this,i,e),this._bindAction(e,l),this._addInactiveAction(e,t,n),e)},existingAction:function(t,e){var i=e||this._root;return e=i.uuid,i=typeof t=="string"?_r.findByName(i,t):t,t=this._actionsByClip[i?i.uuid:t],t!==void 0&&t.actionByRoot[e]||null},stopAllAction:function(){for(var t=this._actions,e=this._nActiveActions,i=this._bindings,n=this._nActiveBindings,o=this._nActiveBindings=this._nActiveActions=0;o!==e;++o)t[o].reset();for(o=0;o!==n;++o)i[o].useCount=0;return this},update:function(t){t*=this.timeScale;for(var e=this._actions,i=this._nActiveActions,n=this.time+=t,o=Math.sign(t),l=this._accuIndex^=1,f=0;f!==i;++f)e[f]._update(n,t,o,l);for(t=this._bindings,e=this._nActiveBindings,f=0;f!==e;++f)t[f].apply(l);return this},getRoot:function(){return this._root},uncacheClip:function(t){var e=this._actions;t=t.uuid;var i=this._actionsByClip,n=i[t];if(n!==void 0){n=n.knownActions;for(var o=0,l=n.length;o!==l;++o){var f=n[o];this._deactivateAction(f);var p=f._cacheIndex,y=e[e.length-1];f._cacheIndex=null,f._byClipCacheIndex=null,y._cacheIndex=p,e[p]=y,e.pop(),this._removeInactiveBindingsForAction(f)}delete i[t]}},uncacheRoot:function(t){t=t.uuid;var e=this._actionsByClip;for(n in e){var i=e[n].actionByRoot[t];i!==void 0&&(this._deactivateAction(i),this._removeInactiveAction(i))}var n=this._bindingsByRootAndName[t];if(n!==void 0)for(var o in n)t=n[o],t.restoreOriginalState(),this._removeInactiveBinding(t)},uncacheAction:function(t,e){t=this.existingAction(t,e),t!==null&&(this._deactivateAction(t),this._removeInactiveAction(t))}}),oh.prototype.clone=function(){return new oh(this.value.clone===void 0?this.value:this.value.clone())},Hh.prototype=Object.assign(Object.create(Ft.prototype),{constructor:Hh,isInstancedBufferGeometry:!0,copy:function(t){return Ft.prototype.copy.call(this,t),this.maxInstancedCount=t.maxInstancedCount,this},clone:function(){return new this.constructor().copy(this)}}),Vh.prototype=Object.assign(Object.create(ki.prototype),{constructor:Vh,isInstancedInterleavedBuffer:!0,copy:function(t){return ki.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this}}),Wh.prototype=Object.assign(Object.create(K.prototype),{constructor:Wh,isInstancedBufferAttribute:!0,copy:function(t){return K.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this}}),Object.assign(Ru.prototype,{linePrecision:1,set:function(t,e){this.ray.set(t,e)},setFromCamera:function(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize()):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld)):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(t,e,i){return i=i||[],Ns(t,this,i,e),i.sort(gl),i},intersectObjects:function(t,e,i){if(i=i||[],Array.isArray(t)===!1)return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),i;for(var n=0,o=t.length;n<o;n++)Ns(t[n],this,i,e);return i.sort(gl),i}}),Object.assign(jh.prototype,{set:function(t,e,i){return this.radius=t,this.phi=e,this.theta=i,this},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this},makeSafe:function(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this},setFromVector3:function(t){return this.setFromCartesianCoords(t.x,t.y,t.z)},setFromCartesianCoords:function(t,e,i){return this.radius=Math.sqrt(t*t+e*e+i*i),this.radius===0?this.phi=this.theta=0:(this.theta=Math.atan2(t,i),this.phi=Math.acos(di.clamp(e/this.radius,-1,1))),this}}),Object.assign(it.prototype,{set:function(t,e,i){return this.radius=t,this.theta=e,this.y=i,this},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this},setFromVector3:function(t){return this.setFromCartesianCoords(t.x,t.y,t.z)},setFromCartesianCoords:function(t,e,i){return this.radius=Math.sqrt(t*t+i*i),this.theta=Math.atan2(t,i),this.y=e,this}}),Object.assign(os.prototype,{set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;e<i;e++)this.expandByPoint(t[e]);return this},setFromCenterAndSize:function(){var t=new s;return function(e,i){return i=t.copy(i).multiplyScalar(.5),this.min.copy(e).sub(i),this.max.copy(e).add(i),this}}(),clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.min.copy(t.min),this.max.copy(t.max),this},makeEmpty:function(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(t){return t===void 0&&(console.warn("THREE.Box2: .getCenter() target is now required"),t=new s),this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(t){return t===void 0&&(console.warn("THREE.Box2: .getSize() target is now required"),t=new s),this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)},expandByPoint:function(t){return this.min.min(t),this.max.max(t),this},expandByVector:function(t){return this.min.sub(t),this.max.add(t),this},expandByScalar:function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},containsPoint:function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},getParameter:function(t,e){return e===void 0&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new s),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)},clampPoint:function(t,e){return e===void 0&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new s),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new s;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),Object.assign(Ea.prototype,{set:function(t,e){return this.start.copy(t),this.end.copy(e),this},clone:function(){return new this.constructor().copy(this)},copy:function(t){return this.start.copy(t.start),this.end.copy(t.end),this},getCenter:function(t){return t===void 0&&(console.warn("THREE.Line3: .getCenter() target is now required"),t=new u),t.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(t){return t===void 0&&(console.warn("THREE.Line3: .delta() target is now required"),t=new u),t.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(t,e){return e===void 0&&(console.warn("THREE.Line3: .at() target is now required"),e=new u),this.delta(e).multiplyScalar(t).add(this.start)},closestPointToPointParameter:function(){var t=new u,e=new u;return function(i,n){return t.subVectors(i,this.start),e.subVectors(this.end,this.start),i=e.dot(e),i=e.dot(t)/i,n&&(i=di.clamp(i,0,1)),i}}(),closestPointToPoint:function(t,e,i){return t=this.closestPointToPointParameter(t,e),i===void 0&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),i=new u),this.delta(i).multiplyScalar(t).add(this.start)},applyMatrix4:function(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this},equals:function(t){return t.start.equals(this.start)&&t.end.equals(this.end)}}),qn.prototype=Object.create(N.prototype),qn.prototype.constructor=qn,qn.prototype.isImmediateRenderObject=!0,_i.prototype=Object.create(gi.prototype),_i.prototype.constructor=_i,_i.prototype.update=function(){var t=new u,e=new u,i=new m;return function(){var n=["a","b","c"];this.object.updateMatrixWorld(!0),i.getNormalMatrix(this.object.matrixWorld);var o=this.object.matrixWorld,l=this.geometry.attributes.position,f=this.object.geometry;if(f&&f.isGeometry)for(var p=f.vertices,y=f.faces,w=f=0,A=y.length;w<A;w++)for(var P=y[w],B=0,H=P.vertexNormals.length;B<H;B++){var q=P.vertexNormals[B];t.copy(p[P[n[B]]]).applyMatrix4(o),e.copy(q).applyMatrix3(i).normalize().multiplyScalar(this.size).add(t),l.setXYZ(f,t.x,t.y,t.z),f+=1,l.setXYZ(f,e.x,e.y,e.z),f+=1}else if(f&&f.isBufferGeometry)for(n=f.attributes.position,p=f.attributes.normal,B=f=0,H=n.count;B<H;B++)t.set(n.getX(B),n.getY(B),n.getZ(B)).applyMatrix4(o),e.set(p.getX(B),p.getY(B),p.getZ(B)),e.applyMatrix3(i).normalize().multiplyScalar(this.size).add(t),l.setXYZ(f,t.x,t.y,t.z),f+=1,l.setXYZ(f,e.x,e.y,e.z),f+=1;l.needsUpdate=!0}}(),ba.prototype=Object.create(N.prototype),ba.prototype.constructor=ba,ba.prototype.dispose=function(){this.cone.geometry.dispose(),this.cone.material.dispose()},ba.prototype.update=function(){var t=new u,e=new u;return function(){this.light.updateMatrixWorld();var i=this.light.distance?this.light.distance:1e3,n=i*Math.tan(this.light.angle);this.cone.scale.set(n,n,i),t.setFromMatrixPosition(this.light.matrixWorld),e.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(e.sub(t)),this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}(),Ca.prototype=Object.create(gi.prototype),Ca.prototype.constructor=Ca,Ca.prototype.updateMatrixWorld=function(){var t=new u,e=new c,i=new c;return function(n){var o=this.bones,l=this.geometry,f=l.getAttribute("position");i.getInverse(this.root.matrixWorld);for(var p=0,y=0;p<o.length;p++){var w=o[p];w.parent&&w.parent.isBone&&(e.multiplyMatrices(i,w.matrixWorld),t.setFromMatrixPosition(e),f.setXYZ(y,t.x,t.y,t.z),e.multiplyMatrices(i,w.parent.matrixWorld),t.setFromMatrixPosition(e),f.setXYZ(y+1,t.x,t.y,t.z),y+=2)}l.getAttribute("position").needsUpdate=!0,N.prototype.updateMatrixWorld.call(this,n)}}(),kr.prototype=Object.create(pi.prototype),kr.prototype.constructor=kr,kr.prototype.dispose=function(){this.geometry.dispose(),this.material.dispose()},kr.prototype.update=function(){this.color!==void 0?this.material.color.set(this.color):this.material.color.copy(this.light.color)},Aa.prototype=Object.create(N.prototype),Aa.prototype.constructor=Aa,Aa.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},Aa.prototype.update=function(){var t=.5*this.light.width,e=.5*this.light.height,i=this.line.geometry.attributes.position,n=i.array;n[0]=t,n[1]=-e,n[2]=0,n[3]=t,n[4]=e,n[5]=0,n[6]=-t,n[7]=e,n[8]=0,n[9]=-t,n[10]=-e,n[11]=0,n[12]=t,n[13]=-e,n[14]=0,i.needsUpdate=!0,this.color!==void 0?this.line.material.color.set(this.color):this.line.material.color.copy(this.light.color)},Pa.prototype=Object.create(N.prototype),Pa.prototype.constructor=Pa,Pa.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},Pa.prototype.update=function(){var t=new u,e=new L,i=new L;return function(){var n=this.children[0];if(this.color!==void 0)this.material.color.set(this.color);else{var o=n.geometry.getAttribute("color");e.copy(this.light.color),i.copy(this.light.groundColor);for(var l=0,f=o.count;l<f;l++){var p=l<f/2?e:i;o.setXYZ(l,p.r,p.g,p.b)}o.needsUpdate=!0}n.lookAt(t.setFromMatrixPosition(this.light.matrixWorld).negate())}}(),vl.prototype=Object.create(gi.prototype),vl.prototype.constructor=vl,sh.prototype=Object.create(gi.prototype),sh.prototype.constructor=sh,yl.prototype=Object.create(gi.prototype),yl.prototype.constructor=yl,yl.prototype.update=function(){var t=new u,e=new u,i=new m;return function(){this.object.updateMatrixWorld(!0),i.getNormalMatrix(this.object.matrixWorld);var n=this.object.matrixWorld,o=this.geometry.attributes.position,l=this.object.geometry,f=l.vertices;l=l.faces;for(var p=0,y=0,w=l.length;y<w;y++){var A=l[y],P=A.normal;t.copy(f[A.a]).add(f[A.b]).add(f[A.c]).divideScalar(3).applyMatrix4(n),e.copy(P).applyMatrix3(i).normalize().multiplyScalar(this.size).add(t),o.setXYZ(p,t.x,t.y,t.z),p+=1,o.setXYZ(p,e.x,e.y,e.z),p+=1}o.needsUpdate=!0}}(),dr.prototype=Object.create(N.prototype),dr.prototype.constructor=dr,dr.prototype.dispose=function(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()},dr.prototype.update=function(){var t=new u,e=new u,i=new u;return function(){t.setFromMatrixPosition(this.light.matrixWorld),e.setFromMatrixPosition(this.light.target.matrixWorld),i.subVectors(e,t),this.lightPlane.lookAt(i),this.color!==void 0?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(i),this.targetLine.scale.z=i.length()}}(),_l.prototype=Object.create(gi.prototype),_l.prototype.constructor=_l,_l.prototype.update=function(){function t(l,f,p,y){if(n.set(f,p,y).unproject(o),l=i[l],l!==void 0)for(f=e.getAttribute("position"),p=0,y=l.length;p<y;p++)f.setXYZ(l[p],n.x,n.y,n.z)}var e,i,n=new u,o=new Be;return function(){e=this.geometry,i=this.pointMap,o.projectionMatrix.copy(this.camera.projectionMatrix),t("c",0,0,-1),t("t",0,0,1),t("n1",-1,-1,-1),t("n2",1,-1,-1),t("n3",-1,1,-1),t("n4",1,1,-1),t("f1",-1,-1,1),t("f2",1,-1,1),t("f3",-1,1,1),t("f4",1,1,1),t("u1",.7,1.1,-1),t("u2",-.7,1.1,-1),t("u3",0,2,-1),t("cf1",-1,0,1),t("cf2",1,0,1),t("cf3",0,-1,1),t("cf4",0,1,1),t("cn1",-1,0,-1),t("cn2",1,0,-1),t("cn3",0,-1,-1),t("cn4",0,1,-1),e.getAttribute("position").needsUpdate=!0}}(),zo.prototype=Object.create(gi.prototype),zo.prototype.constructor=zo,zo.prototype.update=function(){var t=new k;return function(e){if(e!==void 0&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),this.object!==void 0&&t.setFromObject(this.object),!t.isEmpty()){e=t.min;var i=t.max,n=this.geometry.attributes.position,o=n.array;o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=e.x,o[4]=i.y,o[5]=i.z,o[6]=e.x,o[7]=e.y,o[8]=i.z,o[9]=i.x,o[10]=e.y,o[11]=i.z,o[12]=i.x,o[13]=i.y,o[14]=e.z,o[15]=e.x,o[16]=i.y,o[17]=e.z,o[18]=e.x,o[19]=e.y,o[20]=e.z,o[21]=i.x,o[22]=e.y,o[23]=e.z,n.needsUpdate=!0,this.geometry.computeBoundingSphere()}}}(),zo.prototype.setFromObject=function(t){return this.object=t,this.update(),this},zo.prototype.copy=function(t){return gi.prototype.copy.call(this,t),this.object=t.object,this},zo.prototype.clone=function(){return new this.constructor().copy(this)},xl.prototype=Object.create(gi.prototype),xl.prototype.constructor=xl,xl.prototype.updateMatrixWorld=function(t){var e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),N.prototype.updateMatrixWorld.call(this,t))},wl.prototype=Object.create(ji.prototype),wl.prototype.constructor=wl,wl.prototype.updateMatrixWorld=function(t){var e=-this.plane.constant;1e-8>Math.abs(e)&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=0>e?1:0,this.lookAt(this.plane.normal),N.prototype.updateMatrixWorld.call(this,t)};var fh,El;ko.prototype=Object.create(N.prototype),ko.prototype.constructor=ko,ko.prototype.setDirection=function(){var t=new u,e;return function(i){.99999<i.y?this.quaternion.set(0,0,0,1):-.99999>i.y?this.quaternion.set(1,0,0,0):(t.set(i.z,0,-i.x).normalize(),e=Math.acos(i.y),this.quaternion.setFromAxisAngle(t,e))}}(),ko.prototype.setLength=function(t,e,i){e===void 0&&(e=.2*t),i===void 0&&(i=.2*e),this.line.scale.set(1,Math.max(0,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()},ko.prototype.setColor=function(t){this.line.material.color.copy(t),this.cone.material.color.copy(t)},ko.prototype.copy=function(t){return N.prototype.copy.call(this,t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this},ko.prototype.clone=function(){return new this.constructor().copy(this)},xr.prototype=Object.create(gi.prototype),xr.prototype.constructor=xr,Ee.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(Ee.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Object.assign(Io.prototype,{createPointsGeometry:function(t){return console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."),t=this.getPoints(t),this.createGeometry(t)},createSpacedPointsGeometry:function(t){return console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead."),t=this.getSpacedPoints(t),this.createGeometry(t)},createGeometry:function(t){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var e=new X,i=0,n=t.length;i<n;i++){var o=t[i];e.vertices.push(new u(o.x,o.y,o.z||0))}return e}}),Object.assign(fr.prototype,{fromPoints:function(t){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)}}),Iu.prototype=Object.create(On.prototype),Du.prototype=Object.create(On.prototype),Xh.prototype=Object.create(On.prototype),Object.assign(Xh.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),vl.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},Ca.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},Object.assign(Do.prototype,{extractUrlBase:function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),Us.extractUrlBase(t)}}),Object.assign(zs.prototype,{setTexturePath:function(t){return console.warn("THREE.JSONLoader: .setTexturePath() has been renamed to .setResourcePath()."),this.setResourcePath(t)}}),Object.assign(cl.prototype,{setTexturePath:function(t){return console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath()."),this.setResourcePath(t)}}),Object.assign(os.prototype,{center:function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},size:function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)}}),Object.assign(k.prototype,{center:function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionSphere:function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},size:function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)}}),Ea.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},Object.assign(di,{random16:function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},nearestPowerOfTwo:function(t){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),di.floorPowerOfTwo(t)},nextPowerOfTwo:function(t){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),di.ceilPowerOfTwo(t)}}),Object.assign(m.prototype,{flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},multiplyVector3:function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(t){return console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(t)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}}),Object.assign(c.prototype,{extractPosition:function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},getPosition:function(){var t;return function(){return t===void 0&&(t=new u),console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),t.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector4:function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},crossVector:function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBuffer:function(t){return console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(t)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(t,e,i,n,o,l){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,n,i,o,l)}}),F.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},d.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},Object.assign(Si.prototype,{isIntersectionBox:function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionPlane:function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},isIntersectionSphere:function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)}}),Object.assign(Oe.prototype,{area:function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},barycoordFromPoint:function(t,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,e)},midpoint:function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},normal:function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},plane:function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)}}),Object.assign(Oe,{barycoordFromPoint:function(t,e,i,n,o){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),Oe.getBarycoord(t,e,i,n,o)},normal:function(t,e,i,n){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),Oe.getNormal(t,e,i,n)}}),Object.assign(Qn.prototype,{extractAllPoints:function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},extrude:function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Po(this,t)},makeGeometry:function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new Lo(this,t)}}),Object.assign(s.prototype,{fromAttribute:function(t,e,i){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,i)},distanceToManhattan:function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(u.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},getScaleFromMatrix:function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},getColumnFromMatrix:function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},applyProjection:function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},fromAttribute:function(t,e,i){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,i)},distanceToManhattan:function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(_.prototype,{fromAttribute:function(t,e,i){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,i)},lengthManhattan:function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(X.prototype,{computeTangents:function(){console.error("THREE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}}),Object.assign(N.prototype,{getChildByName:function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")}}),Object.defineProperties(N.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Object.defineProperties(rn.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(un.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),Object.defineProperty(Ee.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(t){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=t}}),_e.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),e!==void 0&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(tn.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties(K.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")}}),Object.assign(Ft.prototype,{addIndex:function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},addDrawCall:function(t,e,i){i!==void 0&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")}}),Object.defineProperties(Ft.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Object.assign(po.prototype,{getArrays:function(){console.error("THREE.ExtrudeBufferGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeBufferGeometry: .addShape() has been removed.")}}),Object.defineProperties(oh.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(Wt.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new L}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=t===1}}}),Object.defineProperties(Jr.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties($e.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),Object.assign(xe.prototype,{clearTarget:function(t,e,i,n){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(e,i,n)},animate:function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},getMaxAnisotropy:function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},getPrecision:function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},resetGLState:function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},supportsFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},supportsInstancedArrays:function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")}}),Object.defineProperties(xe.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(ye.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(S.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),Object.defineProperties(mi.prototype,{standing:{set:function(){console.warn("THREE.WebVRManager: .standing has been removed.")}},userHeight:{set:function(){console.warn("THREE.WebVRManager: .userHeight has been removed.")}}}),Ma.prototype.load=function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var e=this;return new vn().load(t,function(i){e.setBuffer(i)}),this},ks.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},fl.prototype.updateCubeMap=function(t,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,e)},ss.crossOrigin=void 0,ss.loadTexture=function(t,e,i,n){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var o=new fn;return o.setCrossOrigin(this.crossOrigin),t=o.load(t,i,void 0,n),e&&(t.mapping=e),t},ss.loadTextureCube=function(t,e,i,n){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var o=new Fi;return o.setCrossOrigin(this.crossOrigin),t=o.load(t,i,void 0,n),e&&(t.mapping=e),t},ss.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},ss.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")},x.WebGLRenderTargetCube=b,x.WebGLRenderTarget=S,x.WebGLRenderer=xe,x.ShaderLib=wo,x.UniformsLib=qe,x.UniformsUtils=Bn,x.ShaderChunk=Ci,x.FogExp2=Re,x.Fog=Sn,x.Scene=Xn,x.Sprite=nn,x.LOD=rn,x.SkinnedMesh=Gi,x.Skeleton=un,x.Bone=cn,x.Mesh=pi,x.LineSegments=gi,x.LineLoop=co,x.Line=ji,x.Points=la,x.Group=ci,x.VideoTexture=zh,x.DataTexture=I,x.DataTexture3D=Q,x.CompressedTexture=Yo,x.CubeTexture=z,x.CanvasTexture=Ka,x.DepthTexture=Qa,x.Texture=g,x.AnimationLoader=Qt,x.CompressedTextureLoader=Zt,x.DataTextureLoader=Ue,x.CubeTextureLoader=Fi,x.TextureLoader=fn,x.ObjectLoader=cl,x.MaterialLoader=ih,x.BufferGeometryLoader=Nh,x.DefaultLoadingManager=tr,x.LoadingManager=es,x.JSONLoader=zs,x.ImageLoader=ai,x.ImageBitmapLoader=Fh,x.FontLoader=Lu,x.FileLoader=Lt,x.Loader=Do,x.LoaderUtils=Us,x.Cache=Mo,x.AudioLoader=vn,x.SpotLightShadow=hl,x.SpotLight=ul,x.PointLight=Is,x.RectAreaLight=eh,x.HemisphereLight=ll,x.DirectionalLightShadow=ns,x.DirectionalLight=xo,x.AmbientLight=Ds,x.LightShadow=_o,x.Light=tn,x.StereoCamera=Vn,x.PerspectiveCamera=_e,x.OrthographicCamera=Ta,x.CubeCamera=fl,x.ArrayCamera=Fe,x.Camera=Be,x.AudioListener=rh,x.PositionalAudio=dl,x.AudioContext=$h,x.AudioAnalyser=ks,x.Audio=Ma,x.VectorKeyframeTrack=xa,x.StringKeyframeTrack=th,x.QuaternionKeyframeTrack=_a,x.NumberKeyframeTrack=$r,x.ColorKeyframeTrack=Ql,x.BooleanKeyframeTrack=Kl,x.PropertyMixer=pl,x.PropertyBinding=En,x.KeyframeTrack=Hn,x.AnimationUtils=Yn,x.AnimationObjectGroup=Sa,x.AnimationMixer=rs,x.AnimationClip=_r,x.Uniform=oh,x.InstancedBufferGeometry=Hh,x.BufferGeometry=Ft,x.Geometry=X,x.InterleavedBufferAttribute=Bi,x.InstancedInterleavedBuffer=Vh,x.InterleavedBuffer=ki,x.InstancedBufferAttribute=Wh,x.Face3=R,x.Object3D=N,x.Raycaster=Ru,x.Layers=U,x.EventDispatcher=a,x.Clock=Gh,x.QuaternionLinearInterpolant=ar,x.LinearInterpolant=Dr,x.DiscreteInterpolant=Os,x.CubicInterpolant=al,x.Interpolant=$n,x.Triangle=Oe,x.Math=di,x.Spherical=jh,x.Cylindrical=it,x.Plane=F,x.Frustum=E,x.Sphere=D,x.Ray=Si,x.Matrix4=c,x.Matrix3=m,x.Box3=k,x.Box2=os,x.Line3=Ea,x.Euler=C,x.Vector4=_,x.Vector3=u,x.Vector2=s,x.Quaternion=d,x.Color=L,x.ImmediateRenderObject=qn,x.VertexNormalsHelper=_i,x.SpotLightHelper=ba,x.SkeletonHelper=Ca,x.PointLightHelper=kr,x.RectAreaLightHelper=Aa,x.HemisphereLightHelper=Pa,x.GridHelper=vl,x.PolarGridHelper=sh,x.FaceNormalsHelper=yl,x.DirectionalLightHelper=dr,x.CameraHelper=_l,x.BoxHelper=zo,x.Box3Helper=xl,x.PlaneHelper=wl,x.ArrowHelper=ko,x.AxesHelper=xr,x.Shape=Qn,x.Path=fr,x.ShapePath=nh,x.Font=Uh,x.CurvePath=Io,x.Curve=Ee,x.ImageUtils=ss,x.ShapeUtils=To,x.WebGLUtils=He,x.WireframeGeometry=ha,x.ParametricGeometry=tl,x.ParametricBufferGeometry=ua,x.TetrahedronGeometry=el,x.TetrahedronBufferGeometry=ca,x.OctahedronGeometry=il,x.OctahedronBufferGeometry=_s,x.IcosahedronGeometry=nl,x.IcosahedronBufferGeometry=fa,x.DodecahedronGeometry=da,x.DodecahedronBufferGeometry=pa,x.PolyhedronGeometry=Xi,x.PolyhedronBufferGeometry=xi,x.TubeGeometry=gn,x.TubeBufferGeometry=Zo,x.TorusKnotGeometry=Zr,x.TorusKnotBufferGeometry=xs,x.TorusGeometry=ws,x.TorusBufferGeometry=Un,x.TextGeometry=ol,x.TextBufferGeometry=Ms,x.SphereGeometry=Jo,x.SphereBufferGeometry=Or,x.RingGeometry=sl,x.RingBufferGeometry=Ss,x.PlaneGeometry=Pe,x.PlaneBufferGeometry=pe,x.LatheGeometry=va,x.LatheBufferGeometry=$o,x.ShapeGeometry=Lo,x.ShapeBufferGeometry=Ko,x.ExtrudeGeometry=Po,x.ExtrudeBufferGeometry=po,x.EdgesGeometry=Qo,x.ConeGeometry=ya,x.ConeBufferGeometry=Gn,x.CylinderGeometry=Ro,x.CylinderBufferGeometry=Oo,x.CircleGeometry=Es,x.CircleBufferGeometry=mo,x.BoxGeometry=It,x.BoxBufferGeometry=Nt,x.ShadowMaterial=ts,x.SpriteMaterial=Hi,x.RawShaderMaterial=bs,x.ShaderMaterial=$e,x.PointsMaterial=Fn,x.MeshPhysicalMaterial=Cs,x.MeshStandardMaterial=go,x.MeshPhongMaterial=Jr,x.MeshToonMaterial=As,x.MeshNormalMaterial=Ps,x.MeshLambertMaterial=Ir,x.MeshDepthMaterial=se,x.MeshDistanceMaterial=te,x.MeshBasicMaterial=Ge,x.MeshMatcapMaterial=Ls,x.LineDashedMaterial=Rs,x.LineBasicMaterial=Ni,x.Material=Wt,x.Float64BufferAttribute=At,x.Float32BufferAttribute=Et,x.Uint32BufferAttribute=Pt,x.Int32BufferAttribute=G,x.Uint16BufferAttribute=_t,x.Int16BufferAttribute=tt,x.Uint8ClampedBufferAttribute=Rt,x.Uint8BufferAttribute=ct,x.Int8BufferAttribute=Z,x.BufferAttribute=K,x.ArcCurve=wa,x.CatmullRomCurve3=On,x.CubicBezierCurve=hr,x.CubicBezierCurve3=Ti,x.EllipseCurve=Kn,x.LineCurve=ur,x.LineCurve3=zr,x.QuadraticBezierCurve=cr,x.QuadraticBezierCurve3=yo,x.SplineCurve=Kr,x.REVISION="98",x.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2},x.CullFaceNone=0,x.CullFaceBack=1,x.CullFaceFront=2,x.CullFaceFrontBack=3,x.FrontFaceDirectionCW=0,x.FrontFaceDirectionCCW=1,x.BasicShadowMap=0,x.PCFShadowMap=1,x.PCFSoftShadowMap=2,x.FrontSide=0,x.BackSide=1,x.DoubleSide=2,x.FlatShading=1,x.SmoothShading=2,x.NoColors=0,x.FaceColors=1,x.VertexColors=2,x.NoBlending=0,x.NormalBlending=1,x.AdditiveBlending=2,x.SubtractiveBlending=3,x.MultiplyBlending=4,x.CustomBlending=5,x.AddEquation=100,x.SubtractEquation=101,x.ReverseSubtractEquation=102,x.MinEquation=103,x.MaxEquation=104,x.ZeroFactor=200,x.OneFactor=201,x.SrcColorFactor=202,x.OneMinusSrcColorFactor=203,x.SrcAlphaFactor=204,x.OneMinusSrcAlphaFactor=205,x.DstAlphaFactor=206,x.OneMinusDstAlphaFactor=207,x.DstColorFactor=208,x.OneMinusDstColorFactor=209,x.SrcAlphaSaturateFactor=210,x.NeverDepth=0,x.AlwaysDepth=1,x.LessDepth=2,x.LessEqualDepth=3,x.EqualDepth=4,x.GreaterEqualDepth=5,x.GreaterDepth=6,x.NotEqualDepth=7,x.MultiplyOperation=0,x.MixOperation=1,x.AddOperation=2,x.NoToneMapping=0,x.LinearToneMapping=1,x.ReinhardToneMapping=2,x.Uncharted2ToneMapping=3,x.CineonToneMapping=4,x.UVMapping=300,x.CubeReflectionMapping=301,x.CubeRefractionMapping=302,x.EquirectangularReflectionMapping=303,x.EquirectangularRefractionMapping=304,x.SphericalReflectionMapping=305,x.CubeUVReflectionMapping=306,x.CubeUVRefractionMapping=307,x.RepeatWrapping=1e3,x.ClampToEdgeWrapping=1001,x.MirroredRepeatWrapping=1002,x.NearestFilter=1003,x.NearestMipMapNearestFilter=1004,x.NearestMipMapLinearFilter=1005,x.LinearFilter=1006,x.LinearMipMapNearestFilter=1007,x.LinearMipMapLinearFilter=1008,x.UnsignedByteType=1009,x.ByteType=1010,x.ShortType=1011,x.UnsignedShortType=1012,x.IntType=1013,x.UnsignedIntType=1014,x.FloatType=1015,x.HalfFloatType=1016,x.UnsignedShort4444Type=1017,x.UnsignedShort5551Type=1018,x.UnsignedShort565Type=1019,x.UnsignedInt248Type=1020,x.AlphaFormat=1021,x.RGBFormat=1022,x.RGBAFormat=1023,x.LuminanceFormat=1024,x.LuminanceAlphaFormat=1025,x.RGBEFormat=1023,x.DepthFormat=1026,x.DepthStencilFormat=1027,x.RedFormat=1028,x.RGB_S3TC_DXT1_Format=33776,x.RGBA_S3TC_DXT1_Format=33777,x.RGBA_S3TC_DXT3_Format=33778,x.RGBA_S3TC_DXT5_Format=33779,x.RGB_PVRTC_4BPPV1_Format=35840,x.RGB_PVRTC_2BPPV1_Format=35841,x.RGBA_PVRTC_4BPPV1_Format=35842,x.RGBA_PVRTC_2BPPV1_Format=35843,x.RGB_ETC1_Format=36196,x.RGBA_ASTC_4x4_Format=37808,x.RGBA_ASTC_5x4_Format=37809,x.RGBA_ASTC_5x5_Format=37810,x.RGBA_ASTC_6x5_Format=37811,x.RGBA_ASTC_6x6_Format=37812,x.RGBA_ASTC_8x5_Format=37813,x.RGBA_ASTC_8x6_Format=37814,x.RGBA_ASTC_8x8_Format=37815,x.RGBA_ASTC_10x5_Format=37816,x.RGBA_ASTC_10x6_Format=37817,x.RGBA_ASTC_10x8_Format=37818,x.RGBA_ASTC_10x10_Format=37819,x.RGBA_ASTC_12x10_Format=37820,x.RGBA_ASTC_12x12_Format=37821,x.LoopOnce=2200,x.LoopRepeat=2201,x.LoopPingPong=2202,x.InterpolateDiscrete=2300,x.InterpolateLinear=2301,x.InterpolateSmooth=2302,x.ZeroCurvatureEnding=2400,x.ZeroSlopeEnding=2401,x.WrapAroundEnding=2402,x.TrianglesDrawMode=0,x.TriangleStripDrawMode=1,x.TriangleFanDrawMode=2,x.LinearEncoding=3e3,x.sRGBEncoding=3001,x.GammaEncoding=3007,x.RGBEEncoding=3002,x.LogLuvEncoding=3003,x.RGBM7Encoding=3004,x.RGBM16Encoding=3005,x.RGBDEncoding=3006,x.BasicDepthPacking=3200,x.RGBADepthPacking=3201,x.TangentSpaceNormalMap=0,x.ObjectSpaceNormalMap=1,x.CubeGeometry=It,x.Face4=function(t,e,i,n,o,l,f){return console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead."),new R(t,e,i,o,l,f)},x.LineStrip=0,x.LinePieces=1,x.MeshFaceMaterial=function(t){return console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead."),t},x.MultiMaterial=function(t){return t===void 0&&(t=[]),console.warn("THREE.MultiMaterial has been removed. Use an Array instead."),t.isMultiMaterial=!0,t.materials=t,t.clone=function(){return t.slice()},t},x.PointCloud=function(t,e){return console.warn("THREE.PointCloud has been renamed to THREE.Points."),new la(t,e)},x.Particle=function(t){return console.warn("THREE.Particle has been renamed to THREE.Sprite."),new nn(t)},x.ParticleSystem=function(t,e){return console.warn("THREE.ParticleSystem has been renamed to THREE.Points."),new la(t,e)},x.PointCloudMaterial=function(t){return console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial."),new Fn(t)},x.ParticleBasicMaterial=function(t){return console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial."),new Fn(t)},x.ParticleSystemMaterial=function(t){return console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial."),new Fn(t)},x.Vertex=function(t,e,i){return console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead."),new u(t,e,i)},x.DynamicBufferAttribute=function(t,e){return console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead."),new K(t,e).setDynamic(!0)},x.Int8Attribute=function(t,e){return console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead."),new Z(t,e)},x.Uint8Attribute=function(t,e){return console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead."),new ct(t,e)},x.Uint8ClampedAttribute=function(t,e){return console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead."),new Rt(t,e)},x.Int16Attribute=function(t,e){return console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead."),new tt(t,e)},x.Uint16Attribute=function(t,e){return console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead."),new _t(t,e)},x.Int32Attribute=function(t,e){return console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead."),new G(t,e)},x.Uint32Attribute=function(t,e){return console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead."),new Pt(t,e)},x.Float32Attribute=function(t,e){return console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead."),new Et(t,e)},x.Float64Attribute=function(t,e){return console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead."),new At(t,e)},x.ClosedSplineCurve3=Iu,x.SplineCurve3=Du,x.Spline=Xh,x.AxisHelper=function(t){return console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper."),new xr(t)},x.BoundingBoxHelper=function(t,e){return console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead."),new zo(t,e)},x.EdgesHelper=function(t,e){return console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead."),new gi(new Qo(t.geometry),new Ni({color:e!==void 0?e:16777215}))},x.WireframeHelper=function(t,e){return console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead."),new gi(new ha(t.geometry),new Ni({color:e!==void 0?e:16777215}))},x.XHRLoader=function(t){return console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader."),new Lt(t)},x.BinaryTextureLoader=function(t){return console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader."),new Ue(t)},x.GeometryUtils={merge:function(t,e,i){if(console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead."),e.isMesh){e.matrixAutoUpdate&&e.updateMatrix();var n=e.matrix;e=e.geometry}t.merge(e,n,i)},center:function(t){return console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead."),t.center()}},x.Projector=function(){console.error("THREE.Projector has been moved to /examples/js/renderers/Projector.js."),this.projectVector=function(t,e){console.warn("THREE.Projector: .projectVector() is now vector.project()."),t.project(e)},this.unprojectVector=function(t,e){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject()."),t.unproject(e)},this.pickingRay=function(){console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().")}},x.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")},x.SceneUtils={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")}},x.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js")},Object.defineProperty(x,"__esModule",{value:!0})}),THREE.Sky=function(){var x=THREE.Sky.SkyShader,a=new THREE.ShaderMaterial({fragmentShader:x.fragmentShader,vertexShader:x.vertexShader,uniforms:THREE.UniformsUtils.clone(x.uniforms),side:THREE.BackSide});THREE.Mesh.call(this,new THREE.BoxBufferGeometry(1,1,1),a)},THREE.Sky.prototype=Object.create(THREE.Mesh.prototype),THREE.Sky.SkyShader={uniforms:{luminance:{value:1},turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new THREE.Vector3}},vertexShader:["uniform vec3 sunPosition;","uniform float rayleigh;","uniform float turbidity;","uniform float mieCoefficient;","varying vec3 vWorldPosition;","varying vec3 vSunDirection;","varying float vSunfade;","varying vec3 vBetaR;","varying vec3 vBetaM;","varying float vSunE;","const vec3 up = vec3( 0.0, 1.0, 0.0 );","const float e = 2.71828182845904523536028747135266249775724709369995957;","const float pi = 3.141592653589793238462643383279502884197169;","const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 );","const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 );","const float v = 4.0;","const vec3 K = vec3( 0.686, 0.678, 0.666 );","const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 );","const float cutoffAngle = 1.6110731556870734;","const float steepness = 1.5;","const float EE = 1000.0;","float sunIntensity( float zenithAngleCos ) {"," zenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 );"," return EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) );","}","vec3 totalMie( float T ) {"," float c = ( 0.2 * T ) * 10E-18;"," return 0.434 * c * MieConst;","}","void main() {"," vec4 worldPosition = modelMatrix * vec4( position, 1.0 );"," vWorldPosition = worldPosition.xyz;"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"," gl_Position.z = gl_Position.w;"," vSunDirection = normalize( sunPosition );"," vSunE = sunIntensity( dot( vSunDirection, up ) );"," vSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 );"," float rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) );"," vBetaR = totalRayleigh * rayleighCoefficient;"," vBetaM = totalMie( turbidity ) * mieCoefficient;","}"].join(`
|
|
2572
2572
|
`),fragmentShader:["varying vec3 vWorldPosition;","varying vec3 vSunDirection;","varying float vSunfade;","varying vec3 vBetaR;","varying vec3 vBetaM;","varying float vSunE;","uniform float luminance;","uniform float mieDirectionalG;","const vec3 cameraPos = vec3( 0.0, 1.0, 0.0 );","const float pi = 3.141592653589793238462643383279502884197169;","const float n = 1.0003;","const float N = 2.545E25;","const float rayleighZenithLength = 8.4E3;","const float mieZenithLength = 1.25E3;","const vec3 up = vec3( 0.0, 1.0, 0.0 );","const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;","const float THREE_OVER_SIXTEENPI = 0.05968310365946075;","const float ONE_OVER_FOURPI = 0.07957747154594767;","float rayleighPhase( float cosTheta ) {"," return THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) );","}","float hgPhase( float cosTheta, float g ) {"," float g2 = pow( g, 2.0 );"," float inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 );"," return ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse );","}","const float A = 0.15;","const float B = 0.50;","const float C = 0.10;","const float D = 0.20;","const float E = 0.02;","const float F = 0.30;","const float whiteScale = 1.0748724675633854;","vec3 Uncharted2Tonemap( vec3 x ) {"," return ( ( x * ( A * x + C * B ) + D * E ) / ( x * ( A * x + B ) + D * F ) ) - E / F;","}","void main() {"," float zenithAngle = acos( max( 0.0, dot( up, normalize( vWorldPosition - cameraPos ) ) ) );"," float inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) );"," float sR = rayleighZenithLength * inverse;"," float sM = mieZenithLength * inverse;"," vec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) );"," float cosTheta = dot( normalize( vWorldPosition - cameraPos ), vSunDirection );"," float rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 );"," vec3 betaRTheta = vBetaR * rPhase;"," float mPhase = hgPhase( cosTheta, mieDirectionalG );"," vec3 betaMTheta = vBetaM * mPhase;"," vec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) );"," Lin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) );"," vec3 direction = normalize( vWorldPosition - cameraPos );"," float theta = acos( direction.y ); // elevation --> y-axis, [-pi/2, pi/2]"," float phi = atan( direction.z, direction.x ); // azimuth --> x-axis [-pi/2, pi/2]"," vec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 );"," vec3 L0 = vec3( 0.1 ) * Fex;"," float sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta );"," L0 += ( vSunE * 19000.0 * Fex ) * sundisk;"," vec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 );"," vec3 curr = Uncharted2Tonemap( ( log2( 2.0 / pow( luminance, 4.0 ) ) ) * texColor );"," vec3 color = curr * whiteScale;"," vec3 retColor = pow( color, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) );"," gl_FragColor = vec4( retColor, 1.0 );","}"].join(`
|
|
2573
|
-
`)},function(x){typeof module>"u"?window.charming=x:module.exports=x}(function(x,a){a=a||{};var s=a.tagName||"span",c=a.classPrefix!=null?a.classPrefix:"char",d=1,u=function(m){for(var g=m.parentNode,_=m.nodeValue,S=_.length,b=-1;++b<S;){var I=document.createElement(s);c&&(I.className=c+d,d++),I.appendChild(document.createTextNode(_[b])),g.insertBefore(I,m)}g.removeChild(m)};return function m(g){for(var _=[].slice.call(g.childNodes),S=_.length,b=-1;++b<S;)m(_[b]);g.nodeType===Node.TEXT_NODE&&u(g)}(x),x});class sm{constructor(a=[]){mars3d?(this.tilesetLayer,this.modelArr=a,this.bimObliquePhotographyId=[],this.editDate={id:null}):console.error("未引入指定插件")}pushModel(a){this.modelArr.push(a)}add(a,s,c){let d=c==null?void 0:c.isClone;const u=new Map([["click",mars3d.EventType.click],["initialTilesLoaded",mars3d.EventType.initialTilesLoaded]]);return new Promise((m,g)=>{let _,S,b,I,k,D,F,E,L,T={enabled:!0,precise:!1,czm:!1},M={enabled:!0,precise:!1,czm:!1};if(typeof a!="object"){let N=this.query(a);N||g("缺少树结构");let{id:X,bimModelExcavationDetails:K,bimModel:Z}=N;_=X,S=Z.modelType,b=Z.tender,I=Z.releasedDistance,k=Z.modelName,D=Z.isDynamicReleased,F={bimModelExcavationDetails:K},E=N.url,L=Z.modelColor,T.maxCanvasSize=Z.gridResolution||4080}else _=a.modelId,S=a.modelType,b=a.tender,I=a.releasedDistance,k=a.modelTitle,D=a.permission,F=a.customize,E=a.url,L=a.color,T.maxCanvasSize=a.maxCanvasSize||4080;let R=2147483648,C=16;if(c){if(c.color&&(L=c.color),c.clip&&(T.area=c.clip.handleDataList),c.flat&&(M.area=c.flat.handleDataList),c.maxCanvasSize&&(T.maxCanvasSize=c.maxCanvasSize||4080),c.cacheSpaceMultiplier){let N=N*c.cacheSpaceMultiplier}c.maximumScreenSpaceError&&S==0&&(C=c.maximumScreenSpaceError)}let U;if(d?window.mapClone&&(U=window.mapClone.mapEx.getLayer(a,"modelId")):U=window.map.getLayer(a,"modelId"),U){if(c.color&&this.editColor(a,c.color,c),c.clip){let{modelId:N,handleDataList:X}=c.clip;X.forEach(K=>{let{id:Z,positions:ct}=K;schemeEvnModify.modelCutById(N,ct,Z)})}return m(U),!1}else{if(E.indexOf("tileset.json")<0)return console.error("链接不完整",k),m({tite:"【模型】「"+k+"」链接地址有误",type:"error",id:_,url:E}),!1;new Cesium.Resource({url:E}).fetchJson().then(X=>{let K=null;L&&(K={color:{conditions:[["true",L]]}}),this.tilesetLayer=new mars3d.layer.TilesetLayer({modelId:_,modelType:S,tender:b,releasedDistance:I,modelTitle:k,permission:D,customize:F,url:encodeURI(E),skipLevelOfDetail:!1,loadSiblings:!0,cullRequestsWhileMoving:!0,cullRequestsWhileMovingMultiplier:10,preferLeaves:!0,progressiveResolutionHeightFraction:.5,dynamicScreenSpaceError:!0,preloadWhenHidden:!1,style:K,clip:T,flat:M,maximumScreenSpaceError:C,cacheBytes:1073741824,maximumCacheOverflowBytes:R}),this.tilesetLayer.bindPopup(Z=>{if(Z.graphic){const ct=Z.graphic.attr;let Rt=null,tt=null;return JSON.stringify(ct)!=="{}"?(ct.name&&(Rt=ct.name.lastIndexOf("@")),Rt&&Rt>-1&&(tt=ct.name.slice(0,Rt)),ct.name?` <span>${tt||ct.name}</span> `:` <span>${k}</span> `):` <span>${k}</span> `}else return` <span>${k}</span> `}),this.tilesetLayer.readyPromise.then(Z=>{m(Z)}).catch(Z=>{console.log("加载失败",Z),m()}),this.tilesetLayer.on("click",Z=>{Z.layer.style==null&&map.bimMapEdit=="0"&&Z.layer.openHighlight({color:"rgba(255,0,0,1)"},!0)}),s&&Object.keys(s).forEach(Z=>{this.tilesetLayer.on(u.get(Z),ct=>{s[Z](ct)})}),S==0&&this.bimObliquePhotographyId.push(_),d?window.mapClone&&window.mapClone.mapEx.addLayer(this.tilesetLayer):window.map.addLayer(this.tilesetLayer)}).catch(X=>{console.error("数据加载失败",k),m({tite:"【模型】「"+k+"」无法加载",type:"error",id:_,url:E})})}})}remove(a,s){let c=s==null?void 0:s.isClone;window.map.getLayer(a,"modelId")&&(c?(window.mapClone.mapEx.getLayer(a,"modelId").closeHighlight(),window.mapClone.mapEx.removeLayer(window.mapClone.mapEx.getLayer(a,"modelId"))):(window.map.getLayer(a,"modelId").closeHighlight(),window.map.removeLayer(window.map.getLayer(a,"modelId"))))}selected(a,s,c,d=!0){return new Promise((u,m)=>{let g=window.map.getLayer(a,"modelId");g?(g.style==null&&map.bimMapEdit=="0"&&g.openHighlight({color:"rgba(255,0,0,1)"},!0),d?g.flyTo({complete:()=>{u(g)}}):u(g)):this.add(a,s,c).then(_=>{_&&(_.style==null&&map.bimMapEdit=="0"&&_.openHighlight({color:"rgba(255,0,0,1)"},!0),d?_.flyTo({complete:()=>{u(_)}}):u(_))})})}initial(){this.modelArr=[],this.bimObliquePhotographyId=[],this.tilesetLayer=null}query(a){return this.modelArr.length==0?!1:this.modelArr.find(s=>s.id==a)}queryModel(a,s){return(s==null?void 0:s.isClone)?window.mapClone.mapEx.getLayer(a,"modelId"):window.map.getLayer(a,"modelId")}postEditDate(a){this.editDate={id:a}}editColor(a,s,c,d="true"){let u,m=c==null?void 0:c.isClone;if(typeof a!="object"&&(m?u=window.mapClone.mapEx.getLayer(a,"modelId"):u=window.map.getLayer(a,"modelId")),u)if(s)u.style={color:{conditions:[[d,s]]}};else{let g=this.query(a).bimModel.modelColor;g?u.style={color:{conditions:[[d,g]]}}:u.style=null}}editOpacity(a,s){window.map.getLayer(a,"modelId").opacity=s}addClip(a){return new Promise((s,c)=>{window.bimClip?s(bimClip.clipModelAdd(a)):c("挖洞工具未初始化")})}removeClip(a){window.bimClip?window.bimClip.clipModelremoveClip(a):console.log("挖洞工具未初始化")}}const su=x=>Object.prototype.toString.call(x)==="[object Object]";function au(){const x=Array.from(arguments);if(x.length<2)return x[0];let a=x[0];return x.shift(),x.forEach(s=>{if(su(s)){su(a)||(a={});for(let c in s)a[c]&&su(s[c])?a[c]=au(a[c],s[c]):a[c]=s[c]}else s instanceof Array&&(a instanceof Array||(a=[]),s.forEach((c,d)=>{su(c)?a[d]=au(a[d]):a[d]=c}))}),a}let vh={};const bf=(x,a,s)=>{vh={};let{vectorStyle:c,difference:d}=x;if(c){let{divType:u}=c,m="";if(u){let{theme_color:g,title:_,font_color:S,content:b,scaleByDistance:I,scaleByDistance_far:k,scaleByDistance_farValue:D,scaleByDistance_near:F,scaleByDistance_nearValue:E,distanceDisplayCondition:L,distanceDisplayCondition_far:T,distanceDisplayCondition_near:M,clampToGround:R,divStyle:C,isMirror:U}=c,{theme_color2:N,theme_color3:X}=C;switch(u){case"1":m=`<div class="entity-div-style entity-div-style1" style="--theme-color1:${g};--theme-font-color1:${S};">
|
|
2573
|
+
`)},function(x){typeof module>"u"?window.charming=x:module.exports=x}(function(x,a){a=a||{};var s=a.tagName||"span",c=a.classPrefix!=null?a.classPrefix:"char",d=1,u=function(m){for(var g=m.parentNode,_=m.nodeValue,S=_.length,b=-1;++b<S;){var I=document.createElement(s);c&&(I.className=c+d,d++),I.appendChild(document.createTextNode(_[b])),g.insertBefore(I,m)}g.removeChild(m)};return function m(g){for(var _=[].slice.call(g.childNodes),S=_.length,b=-1;++b<S;)m(_[b]);g.nodeType===Node.TEXT_NODE&&u(g)}(x),x});class sm{constructor(a=[]){mars3d?(this.tilesetLayer,this.modelArr=a,this.bimObliquePhotographyId=[],this.editDate={id:null}):console.error("未引入指定插件")}pushModel(a){this.modelArr.push(a)}add(a,s,c){let d=c==null?void 0:c.isClone;const u=new Map([["click",mars3d.EventType.click],["initialTilesLoaded",mars3d.EventType.initialTilesLoaded]]);return new Promise((m,g)=>{let _,S,b,I,k,D,F,E,L,T={enabled:!0,precise:!1,czm:!1},M={enabled:!0,precise:!1,czm:!1};if(typeof a!="object"){let N=this.query(a);N||g("缺少树结构");let{id:X,bimModelExcavationDetails:K,bimModel:Z}=N;_=X,S=Z.modelType,b=Z.tender,I=Z.releasedDistance,k=Z.modelName,D=Z.isDynamicReleased,F={bimModelExcavationDetails:K},E=N.url,L=Z.modelColor,T.maxCanvasSize=Z.gridResolution||4080}else _=a.modelId,S=a.modelType,b=a.tender,I=a.releasedDistance,k=a.modelTitle,D=a.permission,F=a.customize,E=a.url,L=a.color,T.maxCanvasSize=a.maxCanvasSize||4080;let R=2147483648,C=16;if(c){if(c.color&&(L=c.color),c.clip&&(T.area=c.clip.handleDataList),c.flat&&(M.area=c.flat.handleDataList),c.maxCanvasSize&&(T.maxCanvasSize=c.maxCanvasSize||4080),c.cacheSpaceMultiplier){let N=N*c.cacheSpaceMultiplier}c.maximumScreenSpaceError&&S==0&&(C=c.maximumScreenSpaceError)}let U;if(d?window.mapClone&&(U=window.mapClone.mapEx.getLayer(a,"modelId")):U=window.map.getLayer(a,"modelId"),U){if(c.color&&this.editColor(a,c.color,c),schemeEvnModify&&c.clip){let{modelId:N,handleDataList:X}=c.clip;X.forEach(K=>{let{id:Z,positions:ct}=K;schemeEvnModify.modelCutById(N,ct,Z)})}return m(U),!1}else{if(E.indexOf("tileset.json")<0)return console.error("链接不完整",k),m({tite:"【模型】「"+k+"」链接地址有误",type:"error",id:_,url:E}),!1;new Cesium.Resource({url:E}).fetchJson().then(X=>{let K=null;L&&(K={color:{conditions:[["true",L]]}}),this.tilesetLayer=new mars3d.layer.TilesetLayer({modelId:_,modelType:S,tender:b,releasedDistance:I,modelTitle:k,permission:D,customize:F,url:encodeURI(E),skipLevelOfDetail:!1,loadSiblings:!0,cullRequestsWhileMoving:!0,cullRequestsWhileMovingMultiplier:10,preferLeaves:!0,progressiveResolutionHeightFraction:.5,dynamicScreenSpaceError:!0,preloadWhenHidden:!1,style:K,clip:T,flat:M,maximumScreenSpaceError:C,cacheBytes:1073741824,maximumCacheOverflowBytes:R}),this.tilesetLayer.bindPopup(Z=>{if(Z.graphic){const ct=Z.graphic.attr;let Rt=null,tt=null;return JSON.stringify(ct)!=="{}"?(ct.name&&(Rt=ct.name.lastIndexOf("@")),Rt&&Rt>-1&&(tt=ct.name.slice(0,Rt)),ct.name?` <span>${tt||ct.name}</span> `:` <span>${k}</span> `):` <span>${k}</span> `}else return` <span>${k}</span> `}),this.tilesetLayer.readyPromise.then(Z=>{m(Z)}).catch(Z=>{console.log("加载失败",Z),m()}),this.tilesetLayer.on("click",Z=>{Z.layer.style==null&&map.bimMapEdit=="0"&&Z.layer.openHighlight({color:"rgba(255,0,0,1)"},!0)}),s&&Object.keys(s).forEach(Z=>{this.tilesetLayer.on(u.get(Z),ct=>{s[Z](ct)})}),S==0&&this.bimObliquePhotographyId.push(_),d?window.mapClone&&window.mapClone.mapEx.addLayer(this.tilesetLayer):window.map.addLayer(this.tilesetLayer)}).catch(X=>{console.error("数据加载失败",k),m({tite:"【模型】「"+k+"」无法加载",type:"error",id:_,url:E})})}})}remove(a,s){let c=s==null?void 0:s.isClone;window.map.getLayer(a,"modelId")&&(c?(window.mapClone.mapEx.getLayer(a,"modelId").closeHighlight(),window.mapClone.mapEx.removeLayer(window.mapClone.mapEx.getLayer(a,"modelId"))):(window.map.getLayer(a,"modelId").closeHighlight(),window.map.removeLayer(window.map.getLayer(a,"modelId"))))}selected(a,s,c,d=!0){return new Promise((u,m)=>{let g=window.map.getLayer(a,"modelId");g?(g.style==null&&map.bimMapEdit=="0"&&g.openHighlight({color:"rgba(255,0,0,1)"},!0),d?g.flyTo({complete:()=>{u(g)}}):u(g)):this.add(a,s,c).then(_=>{_&&(_.style==null&&map.bimMapEdit=="0"&&_.openHighlight({color:"rgba(255,0,0,1)"},!0),d?_.flyTo({complete:()=>{u(_)}}):u(_))})})}initial(){this.modelArr=[],this.bimObliquePhotographyId=[],this.tilesetLayer=null}query(a){return this.modelArr.length==0?!1:this.modelArr.find(s=>s.id==a)}queryModel(a,s){return(s==null?void 0:s.isClone)?window.mapClone.mapEx.getLayer(a,"modelId"):window.map.getLayer(a,"modelId")}postEditDate(a){this.editDate={id:a}}editColor(a,s,c,d="true"){let u,m=c==null?void 0:c.isClone;if(typeof a!="object"&&(m?u=window.mapClone.mapEx.getLayer(a,"modelId"):u=window.map.getLayer(a,"modelId")),u)if(s)u.style={color:{conditions:[[d,s]]}};else{let g=this.query(a).bimModel.modelColor;g?u.style={color:{conditions:[[d,g]]}}:u.style=null}}editOpacity(a,s){window.map.getLayer(a,"modelId").opacity=s}addClip(a){return new Promise((s,c)=>{window.bimClip?s(bimClip.clipModelAdd(a)):c("挖洞工具未初始化")})}removeClip(a){window.bimClip?window.bimClip.clipModelremoveClip(a):console.log("挖洞工具未初始化")}}const su=x=>Object.prototype.toString.call(x)==="[object Object]";function au(){const x=Array.from(arguments);if(x.length<2)return x[0];let a=x[0];return x.shift(),x.forEach(s=>{if(su(s)){su(a)||(a={});for(let c in s)a[c]&&su(s[c])?a[c]=au(a[c],s[c]):a[c]=s[c]}else s instanceof Array&&(a instanceof Array||(a=[]),s.forEach((c,d)=>{su(c)?a[d]=au(a[d]):a[d]=c}))}),a}let vh={};const bf=(x,a,s)=>{vh={};let{vectorStyle:c,difference:d}=x;if(c){let{divType:u}=c,m="";if(u){let{theme_color:g,title:_,font_color:S,content:b,scaleByDistance:I,scaleByDistance_far:k,scaleByDistance_farValue:D,scaleByDistance_near:F,scaleByDistance_nearValue:E,distanceDisplayCondition:L,distanceDisplayCondition_far:T,distanceDisplayCondition_near:M,clampToGround:R,divStyle:C,isMirror:U}=c,{theme_color2:N,theme_color3:X}=C;switch(u){case"1":m=`<div class="entity-div-style entity-div-style1" style="--theme-color1:${g};--theme-font-color1:${S};">
|
|
2574
2574
|
<div class="title">${_}</div>
|
|
2575
2575
|
</div >`;break;case"2":m=`<div class="entity-div-style entity-div-style2" style="--theme-color1:${g};--theme-font-color1:${S};">
|
|
2576
2576
|
<div class="title">${_}</div>
|
|
@@ -2633,7 +2633,7 @@ __p += '`),Ui&&(de+=`' +
|
|
|
2633
2633
|
function print() { __p += __j.call(arguments, '') }
|
|
2634
2634
|
`:`;
|
|
2635
2635
|
`)+de+`return __p
|
|
2636
|
-
}`;var Mi=Np(function(){return Fi(ut,Je+"return "+de).apply(s,yt)});if(Mi.source=de,cf(Mi))throw Mi;return Mi}function P_(r){return Zi(r).toLowerCase()}function L_(r){return Zi(r).toUpperCase()}function R_(r,h,v){if(r=Zi(r),r&&(v||h===s))return ya(r);if(!r||!(h=Ye(h)))return r;var O=ar(r),Y=ar(h),ut=ts(O,Y),yt=bs(O,Y)+1;return xn(O,ut,yt).join("")}function O_(r,h,v){if(r=Zi(r),r&&(v||h===s))return r.slice(0,_a(r)+1);if(!r||!(h=Ye(h)))return r;var O=ar(r),Y=bs(O,ar(h))+1;return xn(O,0,Y).join("")}function I_(r,h,v){if(r=Zi(r),r&&(v||h===s))return r.replace(lo,"");if(!r||!(h=Ye(h)))return r;var O=ar(r),Y=ts(O,ar(h));return xn(O,Y).join("")}function D_(r,h){var v=ct,O=Rt;if(wn(h)){var Y="separator"in h?h.separator:Y;v="length"in h?wi(h.length):v,O="omission"in h?Ye(h.omission):O}r=Zi(r);var ut=r.length;if(Ir(r)){var yt=ar(r);ut=yt.length}if(v>=ut)return r;var bt=v-$r(O);if(bt<1)return O;var Bt=yt?xn(yt,0,bt).join(""):r.slice(0,bt);if(Y===s)return Bt+O;if(yt&&(bt+=Bt.length-bt),ff(Y)){if(r.slice(bt).search(Y)){var oe,le=Bt;for(Y.global||(Y=Kn(Y.source,Zi(jl.exec(Y))+"g")),Y.lastIndex=0;oe=Y.exec(le);)var de=oe.index;Bt=Bt.slice(0,de===s?bt:de)}}else if(r.indexOf(Ye(Y),bt)!=bt){var ke=Bt.lastIndexOf(Y);ke>-1&&(Bt=Bt.slice(0,ke))}return Bt+O}function z_(r){return r=Zi(r),r&&qo.test(r)?r.replace(Ao,th):r}var k_=ze(function(r,h,v){return r+(v?" ":"")+h.toUpperCase()}),mf=Me("toUpperCase");function Bp(r,h,v){return r=Zi(r),h=v?s:h,h===s?Ls(r)?jc(r):ol(r):r.match(h)||[]}var Np=ae(function(r,h){try{return yr(r,s,h)}catch(v){return cf(v)?v:new ai(v)}}),B_=Vs(function(r,h){return Ji(h,function(v){v=us(v),Bo(r,v,hf(r[v],r))}),r});function N_(r){var h=r==null?0:r.length,v=si();return r=h?Yi(r,function(O){if(typeof O[1]!="function")throw new lr(m);return[v(O[0]),O[1]]}):[],ae(function(O){for(var Y=-1;++Y<h;){var ut=r[Y];if(yr(ut[0],this,O))return yr(ut[1],this,O)}})}function F_(r){return Ra(wr(r,I))}function gf(r){return function(){return r}}function U_(r,h){return r==null||r!==r?h:r}var G_=Oi(),H_=Oi(!0);function Gr(r){return r}function vf(r){return H(typeof r=="function"?r:wr(r,I))}function V_(r){return gt(wr(r,I))}function W_(r,h){return Ct(r,wr(h,I))}var j_=ae(function(r,h){return function(v){return e(v,r,h)}}),X_=ae(function(r,h){return function(v){return e(r,v,h)}});function yf(r,h,v){var O=Jn(h),Y=Us(h,O);v==null&&!(wn(h)&&(Y.length||!O.length))&&(v=h,h=r,r=this,Y=Us(h,Jn(h)));var ut=!(wn(v)&&"chain"in v)||!!v.chain,yt=js(r);return Ji(Y,function(bt){var Bt=h[bt];r[bt]=Bt,yt&&(r.prototype[bt]=function(){var oe=this.__chain__;if(ut||oe){var le=r(this.__wrapped__),de=le.__actions__=er(this.__actions__);return de.push({func:Bt,args:arguments,thisArg:r}),le.__chain__=oe,le}return Bt.apply(r,fo([this.value()],arguments))})}),r}function q_(){return gn._===this&&(gn._=Kr),this}function _f(){}function Y_(r){return r=wi(r),ae(function(h){return J(h,r)})}var Z_=Nn(Yi),J_=Nn(Bh),$_=Nn(Po);function Fp(r){return nf(r)?$o(us(r)):$t(r)}function K_(r){return function(h){return r==null?s:ls(r,h)}}var Q_=eu(),t1=eu(!0);function xf(){return[]}function wf(){return!1}function e1(){return{}}function i1(){return""}function n1(){return!0}function r1(r,h){if(r=wi(r),r<1||r>ce)return[];var v=It,O=Vn(r,It);h=si(h),r-=It;for(var Y=Ro(O,h);++v<r;)h(v);return Y}function o1(r){return vi(r)?Yi(r,us):to(r)?[r]:er(op(Zi(r)))}function s1(r){var h=++ur;return Zi(r)+h}var a1=Tr(function(r,h){return r+h},0),l1=dh("ceil"),h1=Tr(function(r,h){return r/h},1),u1=dh("floor");function c1(r){return r&&r.length?Mo(r,Gr,uh):s}function f1(r,h){return r&&r.length?Mo(r,si(h,2),uh):s}function d1(r){return va(r,Gr)}function p1(r,h){return va(r,si(h,2))}function m1(r){return r&&r.length?Mo(r,Gr,rt):s}function g1(r,h){return r&&r.length?Mo(r,si(h,2),rt):s}var v1=Tr(function(r,h){return r*h},1),y1=dh("round"),_1=Tr(function(r,h){return r-h},0);function x1(r){return r&&r.length?Qo(r,Gr):0}function w1(r,h){return r&&r.length?Qo(r,si(h,2)):0}return it.after=Vv,it.ary=gp,it.assign=Ly,it.assignIn=Lp,it.assignInWith=Qu,it.assignWith=Ry,it.at=Oy,it.before=vp,it.bind=hf,it.bindAll=B_,it.bindKey=yp,it.castArray=ey,it.chain=dp,it.chunk=u0,it.compact=c0,it.concat=f0,it.cond=N_,it.conforms=F_,it.constant=gf,it.countBy=xv,it.create=Iy,it.curry=_p,it.curryRight=xp,it.debounce=wp,it.defaults=Dy,it.defaultsDeep=zy,it.defer=Wv,it.delay=jv,it.difference=d0,it.differenceBy=p0,it.differenceWith=m0,it.drop=g0,it.dropRight=v0,it.dropRightWhile=y0,it.dropWhile=_0,it.fill=x0,it.filter=Tv,it.flatMap=Ev,it.flatMapDeep=bv,it.flatMapDepth=Cv,it.flatten=hp,it.flattenDeep=w0,it.flattenDepth=T0,it.flip=Xv,it.flow=G_,it.flowRight=H_,it.fromPairs=M0,it.functions=Hy,it.functionsIn=Vy,it.groupBy=Av,it.initial=E0,it.intersection=b0,it.intersectionBy=C0,it.intersectionWith=A0,it.invert=jy,it.invertBy=Xy,it.invokeMap=Lv,it.iteratee=vf,it.keyBy=Rv,it.keys=Jn,it.keysIn=Ur,it.map=qu,it.mapKeys=Yy,it.mapValues=Zy,it.matches=V_,it.matchesProperty=W_,it.memoize=Zu,it.merge=Jy,it.mergeWith=Rp,it.method=j_,it.methodOf=X_,it.mixin=yf,it.negate=Ju,it.nthArg=Y_,it.omit=$y,it.omitBy=Ky,it.once=qv,it.orderBy=Ov,it.over=Z_,it.overArgs=Yv,it.overEvery=J_,it.overSome=$_,it.partial=uf,it.partialRight=Tp,it.partition=Iv,it.pick=Qy,it.pickBy=Op,it.property=Fp,it.propertyOf=K_,it.pull=O0,it.pullAll=cp,it.pullAllBy=I0,it.pullAllWith=D0,it.pullAt=z0,it.range=Q_,it.rangeRight=t1,it.rearg=Zv,it.reject=kv,it.remove=k0,it.rest=Jv,it.reverse=af,it.sampleSize=Nv,it.set=e_,it.setWith=i_,it.shuffle=Fv,it.slice=B0,it.sortBy=Hv,it.sortedUniq=W0,it.sortedUniqBy=j0,it.split=E_,it.spread=$v,it.tail=X0,it.take=q0,it.takeRight=Y0,it.takeRightWhile=Z0,it.takeWhile=J0,it.tap=cv,it.throttle=Kv,it.thru=Xu,it.toArray=Cp,it.toPairs=Ip,it.toPairsIn=Dp,it.toPath=o1,it.toPlainObject=Pp,it.transform=n_,it.unary=Qv,it.union=$0,it.unionBy=K0,it.unionWith=Q0,it.uniq=tv,it.uniqBy=ev,it.uniqWith=iv,it.unset=r_,it.unzip=lf,it.unzipWith=fp,it.update=o_,it.updateWith=s_,it.values=gh,it.valuesIn=a_,it.without=nv,it.words=Bp,it.wrap=ty,it.xor=rv,it.xorBy=ov,it.xorWith=sv,it.zip=av,it.zipObject=lv,it.zipObjectDeep=hv,it.zipWith=uv,it.entries=Ip,it.entriesIn=Dp,it.extend=Lp,it.extendWith=Qu,yf(it,it),it.add=a1,it.attempt=Np,it.camelCase=c_,it.capitalize=zp,it.ceil=l1,it.clamp=l_,it.clone=iy,it.cloneDeep=ry,it.cloneDeepWith=oy,it.cloneWith=ny,it.conformsTo=sy,it.deburr=kp,it.defaultTo=U_,it.divide=h1,it.endsWith=f_,it.eq=Uo,it.escape=d_,it.escapeRegExp=p_,it.every=wv,it.find=Mv,it.findIndex=ap,it.findKey=ky,it.findLast=Sv,it.findLastIndex=lp,it.findLastKey=By,it.floor=u1,it.forEach=pp,it.forEachRight=mp,it.forIn=Ny,it.forInRight=Fy,it.forOwn=Uy,it.forOwnRight=Gy,it.get=df,it.gt=ay,it.gte=ly,it.has=Wy,it.hasIn=pf,it.head=up,it.identity=Gr,it.includes=Pv,it.indexOf=S0,it.inRange=h_,it.invoke=qy,it.isArguments=Pl,it.isArray=vi,it.isArrayBuffer=hy,it.isArrayLike=Fr,it.isArrayLikeObject=Dn,it.isBoolean=uy,it.isBuffer=ka,it.isDate=cy,it.isElement=fy,it.isEmpty=dy,it.isEqual=py,it.isEqualWith=my,it.isError=cf,it.isFinite=gy,it.isFunction=js,it.isInteger=Mp,it.isLength=$u,it.isMap=Sp,it.isMatch=vy,it.isMatchWith=yy,it.isNaN=_y,it.isNative=xy,it.isNil=Ty,it.isNull=wy,it.isNumber=Ep,it.isObject=wn,it.isObjectLike=Ln,it.isPlainObject=ou,it.isRegExp=ff,it.isSafeInteger=My,it.isSet=bp,it.isString=Ku,it.isSymbol=to,it.isTypedArray=mh,it.isUndefined=Sy,it.isWeakMap=Ey,it.isWeakSet=by,it.join=P0,it.kebabCase=m_,it.last=bo,it.lastIndexOf=L0,it.lowerCase=g_,it.lowerFirst=v_,it.lt=Cy,it.lte=Ay,it.max=c1,it.maxBy=f1,it.mean=d1,it.meanBy=p1,it.min=m1,it.minBy=g1,it.stubArray=xf,it.stubFalse=wf,it.stubObject=e1,it.stubString=i1,it.stubTrue=n1,it.multiply=v1,it.nth=R0,it.noConflict=q_,it.noop=_f,it.now=Yu,it.pad=y_,it.padEnd=__,it.padStart=x_,it.parseInt=w_,it.random=u_,it.reduce=Dv,it.reduceRight=zv,it.repeat=T_,it.replace=M_,it.result=t_,it.round=y1,it.runInContext=Lt,it.sample=Bv,it.size=Uv,it.snakeCase=S_,it.some=Gv,it.sortedIndex=N0,it.sortedIndexBy=F0,it.sortedIndexOf=U0,it.sortedLastIndex=G0,it.sortedLastIndexBy=H0,it.sortedLastIndexOf=V0,it.startCase=b_,it.startsWith=C_,it.subtract=_1,it.sum=x1,it.sumBy=w1,it.template=A_,it.times=r1,it.toFinite=Xs,it.toInteger=wi,it.toLength=Ap,it.toLower=P_,it.toNumber=Co,it.toSafeInteger=Py,it.toString=Zi,it.toUpper=L_,it.trim=R_,it.trimEnd=O_,it.trimStart=I_,it.truncate=D_,it.unescape=z_,it.uniqueId=s1,it.upperCase=k_,it.upperFirst=mf,it.each=pp,it.eachRight=mp,it.first=up,yf(it,function(){var r={};return Nr(it,function(h,v){Ti.call(it.prototype,v)||(r[v]=h)}),r}(),{chain:!1}),it.VERSION=c,Ji(["bind","bindKey","curry","curryRight","partial","partialRight"],function(r){it[r].placeholder=it}),Ji(["drop","take"],function(r,h){_i.prototype[r]=function(v){v=v===s?1:vn(wi(v),0);var O=this.__filtered__&&!h?new _i(this):this.clone();return O.__filtered__?O.__takeCount__=Vn(v,O.__takeCount__):O.__views__.push({size:Vn(v,It),type:r+(O.__dir__<0?"Right":"")}),O},_i.prototype[r+"Right"]=function(v){return this.reverse()[r](v).reverse()}}),Ji(["filter","map","takeWhile"],function(r,h){var v=h+1,O=v==G||v==Et;_i.prototype[r]=function(Y){var ut=this.clone();return ut.__iteratees__.push({iteratee:si(Y,3),type:v}),ut.__filtered__=ut.__filtered__||O,ut}}),Ji(["head","last"],function(r,h){var v="take"+(h?"Right":"");_i.prototype[r]=function(){return this[v](1).value()[0]}}),Ji(["initial","tail"],function(r,h){var v="drop"+(h?"":"Right");_i.prototype[r]=function(){return this.__filtered__?new _i(this):this[v](1)}}),_i.prototype.compact=function(){return this.filter(Gr)},_i.prototype.find=function(r){return this.filter(r).head()},_i.prototype.findLast=function(r){return this.reverse().find(r)},_i.prototype.invokeMap=ae(function(r,h){return typeof r=="function"?new _i(this):this.map(function(v){return e(v,r,h)})}),_i.prototype.reject=function(r){return this.filter(Ju(si(r)))},_i.prototype.slice=function(r,h){r=wi(r);var v=this;return v.__filtered__&&(r>0||h<0)?new _i(v):(r<0?v=v.takeRight(-r):r&&(v=v.drop(r)),h!==s&&(h=wi(h),v=h<0?v.dropRight(-h):v.take(h-r)),v)},_i.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},_i.prototype.toArray=function(){return this.take(It)},Nr(_i.prototype,function(r,h){var v=/^(?:filter|find|map|reject)|While$/.test(h),O=/^(?:head|last)$/.test(h),Y=it[O?"take"+(h=="last"?"Right":""):h],ut=O||/^find/.test(h);Y&&(it.prototype[h]=function(){var yt=this.__wrapped__,bt=O?[1]:arguments,Bt=yt instanceof _i,oe=bt[0],le=Bt||vi(yt),de=function(Ri){var Ui=Y.apply(it,fo([Ri],bt));return O&&ke?Ui[0]:Ui};le&&v&&typeof oe=="function"&&oe.length!=1&&(Bt=le=!1);var ke=this.__chain__,Je=!!this.__actions__.length,hi=ut&&!ke,Mi=Bt&&!Je;if(!ut&&le){yt=Mi?yt:new _i(this);var ui=r.apply(yt,bt);return ui.__actions__.push({func:Xu,args:[de],thisArg:s}),new qn(ui,ke)}return hi&&Mi?r.apply(this,bt):(ui=this.thru(de),hi?O?ui.value()[0]:ui.value():ui)})}),Ji(["pop","push","shift","sort","splice","unshift"],function(r){var h=On[r],v=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",O=/^(?:pop|shift)$/.test(r);it.prototype[r]=function(){var Y=arguments;if(O&&!this.__chain__){var ut=this.value();return h.apply(vi(ut)?ut:[],Y)}return this[v](function(yt){return h.apply(vi(yt)?yt:[],Y)})}}),Nr(_i.prototype,function(r,h){var v=it[h];if(v){var O=v.name+"";Ti.call(rs,O)||(rs[O]=[]),rs[O].push({name:h,func:v})}}),rs[$i(s,T).name]=[{name:"wrapper",func:s}],_i.prototype.clone=ba,_i.prototype.reverse=Ou,_i.prototype.value=Ca,it.prototype.at=fv,it.prototype.chain=dv,it.prototype.commit=pv,it.prototype.next=mv,it.prototype.plant=vv,it.prototype.reverse=yv,it.prototype.toJSON=it.prototype.valueOf=it.prototype.value=_v,it.prototype.first=it.prototype.head,ns&&(it.prototype[ns]=gv),it},es=Xc();Zr?((Zr.exports=es)._=es,Zo._=es):gn._=es}).call(Er)}(lu,lu.exports);var am=lu.exports;const ec=tc(am);class lm{constructor(a=[],s=!1){Ba(this,"simplifyFunc",a=>{try{a=turf.simplify(a,{tolerance:5e-4,highQuality:!1,mutate:!0})}catch{}return a});mars3d?(this.vectorArr=a,this.geoJsonType=new Map([["Point"],["LineString"],["Polygon"],["MultiPoint"],["MultiLineString"],["MultiPolygon"]]),this.avoidanceArr=[],this.editDate={id:""},this.isDynamicMasking=s):console.error("未引入指定插件")}remove(a,s=null){s&&s.isClone=="true"?window.mapClone.mapEx.removeLayer(window.mapClone.mapEx.getLayer(a,"vectorId")):(window.map.removeLayer(window.map.getLayer(a,"vectorId")),window.dynamicMasking&&window.dynamicMasking.remove(a))}add(a,s){return new Promise((c,d)=>{let u,m=s==null?void 0:s.isClone;if(typeof a!="object"){let g=window.map.getLayer(a,"vectorId");if(g)return c(g);u=this.query(a)}else{let g=window.map.getLayer(a.id,"vectorId");if(g)return c(g);u=a}if(u){let{value:g,url:_,id:S,title:b}=u;new Cesium.Resource({url:_}).fetchJson().then(k=>{let{id:D,title:F,shpInfo:E}=u,{attributes:L,geometryType:T,geometryCount:M,pointCount:R}=E;if(L){let{width:C,materialType:U,materialOptions:N,clampToGround:X,distanceDisplayCondition:K,distanceDisplayCondition_near:Z,distanceDisplayCondition_far:ct,zIndex:Rt,label:tt,fill:_t,diffHeight:G,outline:Pt,outlineStyle:Et,color:At,pixelSize:ce,outlineColor:re,outlineWidth:Ft,classificationType:It,setHeight:Nt}=JSON.parse(L),Pe;switch(tt.height==""&&(tt.height=null),this.isDynamicMasking?(tt.color=Cesium.Color.fromCssColorString(tt.color).withAlpha(0),tt.outlineColor=Cesium.Color.fromCssColorString(tt.outlineColor).withAlpha(.001),tt.backgroundColor=Cesium.Color.fromCssColorString(tt.backgroundColor).withAlpha(.001),tt.background=!1,tt.outline=!1,tt.show=!1):(tt.color=Cesium.Color.fromCssColorString(tt.color),tt.outlineColor=Cesium.Color.fromCssColorString(tt.outlineColor),tt.backgroundColor=Cesium.Color.fromCssColorString(tt.backgroundColor)),T){case"LineString":case"MultiLineString":tt.backgroundPadding=5,Pe=new mars3d.layer.GeoJsonLayer({data:k,vectorId:D,symbol:{type:"polylineP",styleOptions:{width:C,clampToGround:X,distanceDisplayCondition:K,distanceDisplayCondition_far:ct,distanceDisplayCondition_near:Z,materialType:U,materialOptions:N,classificationType:It,setHeight:Nt,label:tt}},hasZIndex:!0,zIndex:Rt});break;case"Polygon":case"MultiPolygon":console.log(tt),U=="PolyGrass"&&(N={evenColor:new Cesium.Color(.25,.4,.1,1),oddColor:new Cesium.Color(.1,.1,.1,1),frequency:1.5}),Pe=new mars3d.layer.GeoJsonLayer({data:k,vectorId:D,symbol:{type:"polygonP",styleOptions:{fill:_t,diffHeight:G,clampToGround:X,materialType:U,materialOptions:N,distanceDisplayCondition:K,distanceDisplayCondition_far:ct,distanceDisplayCondition_near:Z,outlineStyle:Et,outline:Pt,classificationType:It,setHeight:Nt,label:tt}}});break;case"Point":case"MultiPoint":Pe=new mars3d.layer.GeoJsonLayer({data:k,vectorId:D,symbol:{type:"pointP",styleOptions:{color:At,pixelSize:ce,outline:Pt,outlineColor:re,outlineWidth:Ft,visibleDepth:!1,label:tt}}});break}m?window.mapClone.mapEx.addLayer(Pe):window.map.addLayer(Pe),Pe.bindPopup(Wt=>{let $e='<div class="bim-map-popup">';return Object.keys(Wt.graphic.attr).forEach((Si,Oe)=>{Wt.graphic.attr[Si]&&($e+=`<p><b>${Si}</b> : ${Wt.graphic.attr[Si]}</p>`)}),$e+="</div>",$e});let pe=ec.debounce(Wt=>{window.dynamicMasking.add(Wt,JSON.parse(L))},500);Pe.readyPromise.then(Wt=>{window.dynamicMasking&&pe(Wt),c(Wt)}).catch(Wt=>{console.error("测试shp矢量加载失败",Wt),c({tite:"【矢量】「"+F+"」无法加载",type:"error",id:D,url:_})})}else c({tite:"【矢量】「"+F+"」无法加载",type:"error",id:D,url:_})}).catch(k=>{console.error("数据有误",k),c({tite:"【矢量】「"+b+"」链接地址有误",type:"error",id:S,url:_})})}else c({tite:"【矢量】ID:「"+a+"」已删除",type:"error",id:a})})}updateData(a){this.vectorArr=a}processingKML(a){let s,c=2e3,d=!0,{kmlInfo:u}=a,{fill:m,areaColor:g,areaSideColor:_,transparency:S,isAreaSideColor:b,minDistinct:I,textDistinct:k,textSize:D,textColor:F,fontStyle:E,outLine:L,sideColor:T,backGround:M,backGroundColor:R,clampToGround:C}=u,U={fill:m,color:g,opacity:S||.5,outline:b,outlineColor:_,outlineWidth:2,clampToGround:C,distanceDisplayCondition:!0,distanceDisplayCondition_far:k||1e6,distanceDisplayCondition_near:I||0,classificationType:s,opacity:String(S)},N={text:"{name}",horizontalOrigin:Cesium.HorizontalOrigin.CENTER,verticalOrigin:Cesium.VerticalOrigin.BOTTOM,pixelOffsetY:-10,font_size:26,color:F||"#ffffff",font_family:E||"黑体",outline:L||!0,outlineColor:T||"#000000",outlineWidth:4,scaleByDistance:!0,distanceDisplayCondition:!0,distanceDisplayCondition_far:k||1e6,distanceDisplayCondition_near:I||0,background:M||!1,backgroundColor:R||"",visibleDepth:d,clampToGround:C||!1,disableDepthTestDistance:c};return{...U,label:N}}selected(a){window.map.getLayer(a,"vectorId")&&window.map.getLayer(a,"vectorId").flyTo()}query(a){return this.vectorArr.length==0?!1:this.vectorArr.find(s=>s.id==a)}queryVector(a){return window.map.getLayer(a,"vectorId")}editVector(a,s,c){let d=window.map.getLayer(a,"vectorId"),u=bf(s,c);d&&(d.eachGraphic(m=>{m.label&&m.label.show===!1&&(delete m.label.outline,delete m.label.background,delete m.label.outlineColor,delete m.label.backgroundColor),u.label&&u.label.height==""&&(u.label.height=null),m.setStyle({...u})}),window.dynamicMasking&&dynamicMasking.modify(a,u))}nationalBoundaries(a="/gis/nationalBoundaries.json"){let s=new mars3d.layer.GeoJsonLayer({name:"国界",url:a,vectorId:"border",format:c=>{try{c=turf.simplify(c,{tolerance:1e-5,highQuality:!1,mutate:!0})}catch(d){console.error(d)}return c},symbol:{type:"polylineC",styleOptions:{width:2,materialType:"Color",materialOptions:{color:"#CD9B1D"},distanceDisplayCondition:!0,distanceDisplayCondition_near:1e3,distanceDisplayCondition_far:2e7,clampToGround:!0,classificationType:Cesium.ClassificationType.TERRAIN}}});map.addLayer(s)}switchDynamicMasking(a){this.isDynamicMasking=a}}class hm{constructor(a=[]){mars3d?(this.terrainProviderArr=a,this.terrainProviderId="",this.events={},window.map.on(mars3d.EventType.terrainLoadError,s=>{console.error("地形服务加载失败",s),this.hide()}),window.map.viewer.scene.globe.tileLoadProgressEvent.addEventListener(s=>{window.map.viewer.scene.globe.tilesLoaded&&this.emit("load",s)})):console.error("未引入指定插件")}add(a,s){if(s==null?void 0:s.isClone)mapClone?window.mapClone.mapEx.terrainProvider=window.map.terrainProvider:console.error("副屏幕未初始化");else{let{url:d,id:u}=a;if(this.terrainProviderId==u&&window.map.terrainProvider._layers)return!1;window.map.terrainProvider=mars3d.LayerUtil.createTerrainProvider({imageXyzId:u,type:"xyz",url:d,requestVertexNormals:!0,requestMetadata:!0}),this.terrainProviderId=u}}show(a){(a==null?void 0:a.isClone)?window.mapClone.mapEx.hasTerrain=!0:window.map.hasTerrain=!0}hide(a){(a==null?void 0:a.isClone)?window.mapClone.mapEx.hasTerrain=!1:window.map.hasTerrain=!1}on(a,s){a=="load"?this.events[a]?this.events[a].push(s):this.events[a]=[s]:console.log("未开放自定义")}emit(a,...s){this.events[a]!=null&&this.events[a].forEach(c=>c(...s))}off(a,s){this.events[a]=this.events[a].filter(c=>c!==s)}once(a,s){const c=()=>{s(),this.off(a,c)};this.on(a,c)}addClip(a){return new Promise((s,c)=>{window.bimClip?s(bimClip.clipGisAdd(a)):c("挖洞工具未初始化")})}}class um{constructor(a=[],s){mars3d?(this.elevationImageArr=a,this.elevationImageLayer,s?this.gisTkone={Authorization:`Bearer ${s}`}:this.gisTkone={},this.form={brightnessVal:1.3,msaaSamples:4,surfaceOpacity:1,layerOpacity:1,layerBrightness:2,layerContrast:1,layerHue:0,layerSaturation:1,layerGamma:1},this.tdtLayer=null):console.error("未引入指定插件")}pushVector(a){this.elevationImageArr.push(a)}add(a,s=!0,c){let d;if(typeof a!="object"?d=a:d=a.imageXyzId,window.map.getLayer(d,"imageXyzId"))return!1;const{layerOpacity:u,layerBrightness:m,layerContrast:g,layerHue:_,layerSaturation:S,layerGamma:b,surfaceOpacity:I}=this.exposureEnvironmentSettings();return new Promise((k,D)=>{let F,E,L,T,M,R;if(typeof a!="object"){let C=this.query(a);C||D("缺少树结构");let{gisInfo:U}=C;F=U.id,L=U.order,E=C.url,T=U.minLevel,M=U.maxLevel}else F=a.imageXyzId,E=a.url,L=a.zIndex,T=a.minimumLevel,M=a.maximumLevel,R=a.chinaCRS;this.elevationImageLayer=new mars3d.layer.XyzLayer({imageXyzId:F,type:"xyz",url:E,hasZIndex:!0,zIndex:L.toString(),brightness:m,opacity:u,saturation:S,contrast:g,hue:_,gamma:b,alpha:I,show:!0,minimumLevel:T||0,maximumLevel:M||15,chinaCRS:R,headers:s?this.gisTkone:null}),this.elevationImageLayer.on(mars3d.EventType.load,C=>{k(C)}),window.map.addLayer(this.elevationImageLayer),c&&Object.keys(c).forEach(C=>{this.elevationImageLayer.on(fnType.get(C),U=>{c[C](U)})})})}remove(a){console.log(a),window.map.removeLayer(window.map.getLayer(a,"imageXyzId"))}query(a){return this.elevationImageArr.length==0?!1:this.elevationImageArr.find(s=>s.id==a)}initial(){this.elevationImageArr=[],this.elevationImageLayer=null}exposureEnvironmentSettings(){return localStorage.getItem("environmentSettings")?JSON.parse(localStorage.getItem("environmentSettings")):(localStorage.setItem("environmentSettings",JSON.stringify(this.form)),JSON.parse(JSON.stringify(this.form)))}}class cm{constructor(a,...s){Ba(this,"manualFreed",ec.debounce(()=>{let{lng:a,lat:s,alt:c,pitch:d}=window.map.getCameraView(),u;this.modelArray.forEach(m=>{u=m.releasedDistance?m.releasedDistance:1e4,this.disTance([a,s,c],[m.center._lng,m.center._lat,m.center._alt],this.calculateDistance(d,u))?window.map.getLayer(m.id,"modelId")&&this.emit("leave",m):window.map.getLayer(m.id,"modelId")||this.emit("enter",m)})},200));mars3d?(a&&a!=null&&(this.modelArray=a),this.showModelArray=[],this.Cesium=mars3d.Cesium,this.events={}):console.error("未引入指定插件")}on(a,s){a=="enter"||a=="leave"?this.events[a]?this.events[a].push(s):this.events[a]=[s]:console.log("未开放自定义")}emit(a,...s){this.events[a]!=null&&this.events[a].forEach(c=>c(...s))}off(a,s){this.events[a]=this.events[a].filter(c=>c!==s)}once(a,s){const c=()=>{s(),this.off(a,c)};this.on(a,c)}say(a){return this[a]}add(a,s){this[a].push(s)}remove(a,s){this[a]=this[a].filter(function(c){return c!==s})}initial(){this.modelArray=[],this.events={}}updateCustomExcavationDetails(a,s,c,d=[],u={}){let m,g,_;switch(m=this.modelArray.find(S=>S.modelId==a).customize.bimModelExcavationDetails,_=m.find((S,b)=>{if(S.id==s)return g=b,S}),c){case"delete":m.splice(g,1);break;case"update":_.excavationDetails=d;break;case"add":m.push(u);break;case"edit":_.excavationDetails=u.excavationDetails,_.kId=u.kId;break}return m}resourceRelease(){window.map.viewer.camera.moveEnd.addEventListener(()=>{this.freed()})}freed(){let{alt:a}=window.map.getCameraView();a<2e4&&(this.freed=ec.throttle(()=>{let{lng:s,lat:c,alt:d,pitch:u}=window.map.getCameraView();this.modelArray&&this.modelArray.forEach(m=>{let g=m.bimModel.releasedDistance?m.bimModel.releasedDistance:1e4;m.center&&this.disTance([s,c,d],[m.center._lng,m.center._lat,m.center._alt],this.calculateDistance(u,g))?window.map.getLayer(m.id,"modelId")&&this.emit("leave",m):this.showModelArray.indexOf(m.id)>=0&&!window.map.getLayer(m.id,"modelId")&&this.emit("enter",m)})},2e3),this.freed())}findPnodeId(a,s,c="id"){let d;if(a){for(var u=0;u<a.length;u++){let m=a[u];if(m[c]==s)return d=m,d;if(m.children&&m.children.length>0&&(d=this.findPnodeId(m.children,s,c),d))return d}return d}}disTance(a,s,c){let d,u,m;return d=Cesium.Cartesian3.fromDegrees(...a),u=Cesium.Cartesian3.fromDegrees(...s),m=Cesium.Cartesian3.distance(d,u),m>c}calculateDistance(a,s){let c=(a+180)%360-180;c=Math.max(-90,Math.min(c,90));let d=(s-s/5)*(Math.abs(c)/90)+s/5;return Math.round(d)}}class fm{constructor(a=[],s){mars3d?(this.entityArr=a,this.entityLayer=new mars3d.layer.GraphicLayer({entityId:"bimEntity"}),window.map.addLayer(this.entityLayer),this.entityItem=null,this.events={},this.entityCloneLayer):console.error("未引入指定插件")}on(a,s){a=="change"||a=="collection"?this.events[a]?this.events[a].push(s):this.events[a]=[s]:console.log("未开放自定义")}emit(a,...s){this.events[a]!=null&&this.events[a].forEach(c=>c(...s))}off(a,s){this.events[a]=this.events[a].filter(c=>c!==s)}offAll(){this.events={}}once(a,s){const c=()=>{s(),this.off(a,c)};this.on(a,c)}add(a,s=null,c){return new Promise((d,u)=>{var m;if(this.entityLayer){let g,_,S;if(c==null?void 0:c.isClone)this.entityCloneLayer&&(_=this.query(a),_?(S=JSON.parse(_.bimPlanPainting.graphic),S.attr=S.attr||{},S.attr.entityId=a,this.entityCloneLayer.addGraphic(S)):d({tite:"【标绘】 ID:「"+a+"」已删除",type:"error",id:a}));else{if(typeof a!="object"?(g=this.entityLayer.getGraphicByAttr(a,"entityId"),_=this.query(a),_?(S=JSON.parse(_.bimPlanPainting.graphic),S.attr=S.attr||{},S.attr.entityId=a):d({tite:"【标绘】ID:「"+a+"」已删除",type:"error",id:a})):(g=this.entityLayer.getGraphicByAttr(a.id,"entityId"),S=JSON.parse(JSON.stringify(a)),S.attr=S.attr||{},S.attr.entityId=S.attr.entityId||s,S.attr==null?S.attr={entityId:a.id}:((m=S.attr)==null?void 0:m.entityId)==null&&s&&(S.attr.entityId=s)),g)return d();this.entityLayer.addGraphic(S),d(S)}}else d(),console.error("未初始化标绘实例图层")})}query(a){return this.entityArr.length==0?!1:this.entityArr.find(s=>s.id==a)}queryEntity(a){if(bimEntity.entityLayer)return bimEntity.entityLayer.getGraphicByAttr(a,"entityId")}selected(a,s=null){let c=this.entityLayer.getGraphicByAttr(a,"entityId");s==null||s.isClone,(c.options.type=="div"||c.options.type=="point")&&c._point?c.flyTo({radius:c._point._alt+500<500?5e3:c._point._alt+500}):c.flyTo()}remove(a,s=null){(s==null?void 0:s.isClone)?this.entityCloneLayer&&this.entityCloneLayer.getGraphicByAttr(a,"entityId").remove():this.entityLayer.getGraphicByAttr(a,"entityId")&&(this.entityLayer.getGraphicByAttr(a,"entityId").remove(),this.entityItem&&(this.entityItem._state=="destroy"||this.entityItem.options.attr.entityId==a)&&(this.entityItem=null))}entityCloneLayerInit(){(this.entityCloneLayer==null||this.entityCloneLayer.state=="destroy")&&(this.entityCloneLayer=window.mapClone._mapEx.getLayer("bimEntity","entityId"))}entityCloneLayerRemove(){this.entityCloneLayer.remove(),this.entityCloneLayer=null}removeEntityItem(){this.entityItem=null}updateData(a){this.entityArr=a}startDrawGraphic(a){return new Promise((s,c)=>{let{type:d,style:u}=a;if(a.style.drawShow=!0,d=="div")if(u.html)this.entityLayer.startDraw(a).then(m=>{setTimeout(()=>{this.entityItem=m,this.entityLayer.startEditing(m)},500)});else{let{title:m,divType:g,theme_color:_,font_color:S,scaleByDistance:b,scaleByDistance_far:I,scaleByDistance_farValue:k,scaleByDistance_near:D,scaleByDistance_nearValue:F,distanceDisplayCondition:E,distanceDisplayCondition_far:L,distanceDisplayCondition_near:T,clampToGround:M}=u,R={type:"div",style:{pointerEvents:!0,scaleByDistance:b,scaleByDistance_far:I,scaleByDistance_farValue:k,scaleByDistance_near:D,scaleByDistance_nearValue:F,distanceDisplayCondition:E,distanceDisplayCondition_far:L,distanceDisplayCondition_near:T,clampToGround:M,horizontalOrigin:Cesium.HorizontalOrigin.LEFT,verticalOrigin:Cesium.VerticalOrigin.BOTTOM}};switch(g){case"1":R.style.html=`<div class="entity-div-style entity-div-style1" style="--theme-color1:${_};--theme-font-color1:${S};">
|
|
2636
|
+
}`;var Mi=Np(function(){return Fi(ut,Je+"return "+de).apply(s,yt)});if(Mi.source=de,cf(Mi))throw Mi;return Mi}function P_(r){return Zi(r).toLowerCase()}function L_(r){return Zi(r).toUpperCase()}function R_(r,h,v){if(r=Zi(r),r&&(v||h===s))return ya(r);if(!r||!(h=Ye(h)))return r;var O=ar(r),Y=ar(h),ut=ts(O,Y),yt=bs(O,Y)+1;return xn(O,ut,yt).join("")}function O_(r,h,v){if(r=Zi(r),r&&(v||h===s))return r.slice(0,_a(r)+1);if(!r||!(h=Ye(h)))return r;var O=ar(r),Y=bs(O,ar(h))+1;return xn(O,0,Y).join("")}function I_(r,h,v){if(r=Zi(r),r&&(v||h===s))return r.replace(lo,"");if(!r||!(h=Ye(h)))return r;var O=ar(r),Y=ts(O,ar(h));return xn(O,Y).join("")}function D_(r,h){var v=ct,O=Rt;if(wn(h)){var Y="separator"in h?h.separator:Y;v="length"in h?wi(h.length):v,O="omission"in h?Ye(h.omission):O}r=Zi(r);var ut=r.length;if(Ir(r)){var yt=ar(r);ut=yt.length}if(v>=ut)return r;var bt=v-$r(O);if(bt<1)return O;var Bt=yt?xn(yt,0,bt).join(""):r.slice(0,bt);if(Y===s)return Bt+O;if(yt&&(bt+=Bt.length-bt),ff(Y)){if(r.slice(bt).search(Y)){var oe,le=Bt;for(Y.global||(Y=Kn(Y.source,Zi(jl.exec(Y))+"g")),Y.lastIndex=0;oe=Y.exec(le);)var de=oe.index;Bt=Bt.slice(0,de===s?bt:de)}}else if(r.indexOf(Ye(Y),bt)!=bt){var ke=Bt.lastIndexOf(Y);ke>-1&&(Bt=Bt.slice(0,ke))}return Bt+O}function z_(r){return r=Zi(r),r&&qo.test(r)?r.replace(Ao,th):r}var k_=ze(function(r,h,v){return r+(v?" ":"")+h.toUpperCase()}),mf=Me("toUpperCase");function Bp(r,h,v){return r=Zi(r),h=v?s:h,h===s?Ls(r)?jc(r):ol(r):r.match(h)||[]}var Np=ae(function(r,h){try{return yr(r,s,h)}catch(v){return cf(v)?v:new ai(v)}}),B_=Vs(function(r,h){return Ji(h,function(v){v=us(v),Bo(r,v,hf(r[v],r))}),r});function N_(r){var h=r==null?0:r.length,v=si();return r=h?Yi(r,function(O){if(typeof O[1]!="function")throw new lr(m);return[v(O[0]),O[1]]}):[],ae(function(O){for(var Y=-1;++Y<h;){var ut=r[Y];if(yr(ut[0],this,O))return yr(ut[1],this,O)}})}function F_(r){return Ra(wr(r,I))}function gf(r){return function(){return r}}function U_(r,h){return r==null||r!==r?h:r}var G_=Oi(),H_=Oi(!0);function Gr(r){return r}function vf(r){return H(typeof r=="function"?r:wr(r,I))}function V_(r){return gt(wr(r,I))}function W_(r,h){return Ct(r,wr(h,I))}var j_=ae(function(r,h){return function(v){return e(v,r,h)}}),X_=ae(function(r,h){return function(v){return e(r,v,h)}});function yf(r,h,v){var O=Jn(h),Y=Us(h,O);v==null&&!(wn(h)&&(Y.length||!O.length))&&(v=h,h=r,r=this,Y=Us(h,Jn(h)));var ut=!(wn(v)&&"chain"in v)||!!v.chain,yt=js(r);return Ji(Y,function(bt){var Bt=h[bt];r[bt]=Bt,yt&&(r.prototype[bt]=function(){var oe=this.__chain__;if(ut||oe){var le=r(this.__wrapped__),de=le.__actions__=er(this.__actions__);return de.push({func:Bt,args:arguments,thisArg:r}),le.__chain__=oe,le}return Bt.apply(r,fo([this.value()],arguments))})}),r}function q_(){return gn._===this&&(gn._=Kr),this}function _f(){}function Y_(r){return r=wi(r),ae(function(h){return J(h,r)})}var Z_=Nn(Yi),J_=Nn(Bh),$_=Nn(Po);function Fp(r){return nf(r)?$o(us(r)):$t(r)}function K_(r){return function(h){return r==null?s:ls(r,h)}}var Q_=eu(),t1=eu(!0);function xf(){return[]}function wf(){return!1}function e1(){return{}}function i1(){return""}function n1(){return!0}function r1(r,h){if(r=wi(r),r<1||r>ce)return[];var v=It,O=Vn(r,It);h=si(h),r-=It;for(var Y=Ro(O,h);++v<r;)h(v);return Y}function o1(r){return vi(r)?Yi(r,us):to(r)?[r]:er(op(Zi(r)))}function s1(r){var h=++ur;return Zi(r)+h}var a1=Tr(function(r,h){return r+h},0),l1=dh("ceil"),h1=Tr(function(r,h){return r/h},1),u1=dh("floor");function c1(r){return r&&r.length?Mo(r,Gr,uh):s}function f1(r,h){return r&&r.length?Mo(r,si(h,2),uh):s}function d1(r){return va(r,Gr)}function p1(r,h){return va(r,si(h,2))}function m1(r){return r&&r.length?Mo(r,Gr,rt):s}function g1(r,h){return r&&r.length?Mo(r,si(h,2),rt):s}var v1=Tr(function(r,h){return r*h},1),y1=dh("round"),_1=Tr(function(r,h){return r-h},0);function x1(r){return r&&r.length?Qo(r,Gr):0}function w1(r,h){return r&&r.length?Qo(r,si(h,2)):0}return it.after=Vv,it.ary=gp,it.assign=Ly,it.assignIn=Lp,it.assignInWith=Qu,it.assignWith=Ry,it.at=Oy,it.before=vp,it.bind=hf,it.bindAll=B_,it.bindKey=yp,it.castArray=ey,it.chain=dp,it.chunk=u0,it.compact=c0,it.concat=f0,it.cond=N_,it.conforms=F_,it.constant=gf,it.countBy=xv,it.create=Iy,it.curry=_p,it.curryRight=xp,it.debounce=wp,it.defaults=Dy,it.defaultsDeep=zy,it.defer=Wv,it.delay=jv,it.difference=d0,it.differenceBy=p0,it.differenceWith=m0,it.drop=g0,it.dropRight=v0,it.dropRightWhile=y0,it.dropWhile=_0,it.fill=x0,it.filter=Tv,it.flatMap=Ev,it.flatMapDeep=bv,it.flatMapDepth=Cv,it.flatten=hp,it.flattenDeep=w0,it.flattenDepth=T0,it.flip=Xv,it.flow=G_,it.flowRight=H_,it.fromPairs=M0,it.functions=Hy,it.functionsIn=Vy,it.groupBy=Av,it.initial=E0,it.intersection=b0,it.intersectionBy=C0,it.intersectionWith=A0,it.invert=jy,it.invertBy=Xy,it.invokeMap=Lv,it.iteratee=vf,it.keyBy=Rv,it.keys=Jn,it.keysIn=Ur,it.map=qu,it.mapKeys=Yy,it.mapValues=Zy,it.matches=V_,it.matchesProperty=W_,it.memoize=Zu,it.merge=Jy,it.mergeWith=Rp,it.method=j_,it.methodOf=X_,it.mixin=yf,it.negate=Ju,it.nthArg=Y_,it.omit=$y,it.omitBy=Ky,it.once=qv,it.orderBy=Ov,it.over=Z_,it.overArgs=Yv,it.overEvery=J_,it.overSome=$_,it.partial=uf,it.partialRight=Tp,it.partition=Iv,it.pick=Qy,it.pickBy=Op,it.property=Fp,it.propertyOf=K_,it.pull=O0,it.pullAll=cp,it.pullAllBy=I0,it.pullAllWith=D0,it.pullAt=z0,it.range=Q_,it.rangeRight=t1,it.rearg=Zv,it.reject=kv,it.remove=k0,it.rest=Jv,it.reverse=af,it.sampleSize=Nv,it.set=e_,it.setWith=i_,it.shuffle=Fv,it.slice=B0,it.sortBy=Hv,it.sortedUniq=W0,it.sortedUniqBy=j0,it.split=E_,it.spread=$v,it.tail=X0,it.take=q0,it.takeRight=Y0,it.takeRightWhile=Z0,it.takeWhile=J0,it.tap=cv,it.throttle=Kv,it.thru=Xu,it.toArray=Cp,it.toPairs=Ip,it.toPairsIn=Dp,it.toPath=o1,it.toPlainObject=Pp,it.transform=n_,it.unary=Qv,it.union=$0,it.unionBy=K0,it.unionWith=Q0,it.uniq=tv,it.uniqBy=ev,it.uniqWith=iv,it.unset=r_,it.unzip=lf,it.unzipWith=fp,it.update=o_,it.updateWith=s_,it.values=gh,it.valuesIn=a_,it.without=nv,it.words=Bp,it.wrap=ty,it.xor=rv,it.xorBy=ov,it.xorWith=sv,it.zip=av,it.zipObject=lv,it.zipObjectDeep=hv,it.zipWith=uv,it.entries=Ip,it.entriesIn=Dp,it.extend=Lp,it.extendWith=Qu,yf(it,it),it.add=a1,it.attempt=Np,it.camelCase=c_,it.capitalize=zp,it.ceil=l1,it.clamp=l_,it.clone=iy,it.cloneDeep=ry,it.cloneDeepWith=oy,it.cloneWith=ny,it.conformsTo=sy,it.deburr=kp,it.defaultTo=U_,it.divide=h1,it.endsWith=f_,it.eq=Uo,it.escape=d_,it.escapeRegExp=p_,it.every=wv,it.find=Mv,it.findIndex=ap,it.findKey=ky,it.findLast=Sv,it.findLastIndex=lp,it.findLastKey=By,it.floor=u1,it.forEach=pp,it.forEachRight=mp,it.forIn=Ny,it.forInRight=Fy,it.forOwn=Uy,it.forOwnRight=Gy,it.get=df,it.gt=ay,it.gte=ly,it.has=Wy,it.hasIn=pf,it.head=up,it.identity=Gr,it.includes=Pv,it.indexOf=S0,it.inRange=h_,it.invoke=qy,it.isArguments=Pl,it.isArray=vi,it.isArrayBuffer=hy,it.isArrayLike=Fr,it.isArrayLikeObject=Dn,it.isBoolean=uy,it.isBuffer=ka,it.isDate=cy,it.isElement=fy,it.isEmpty=dy,it.isEqual=py,it.isEqualWith=my,it.isError=cf,it.isFinite=gy,it.isFunction=js,it.isInteger=Mp,it.isLength=$u,it.isMap=Sp,it.isMatch=vy,it.isMatchWith=yy,it.isNaN=_y,it.isNative=xy,it.isNil=Ty,it.isNull=wy,it.isNumber=Ep,it.isObject=wn,it.isObjectLike=Ln,it.isPlainObject=ou,it.isRegExp=ff,it.isSafeInteger=My,it.isSet=bp,it.isString=Ku,it.isSymbol=to,it.isTypedArray=mh,it.isUndefined=Sy,it.isWeakMap=Ey,it.isWeakSet=by,it.join=P0,it.kebabCase=m_,it.last=bo,it.lastIndexOf=L0,it.lowerCase=g_,it.lowerFirst=v_,it.lt=Cy,it.lte=Ay,it.max=c1,it.maxBy=f1,it.mean=d1,it.meanBy=p1,it.min=m1,it.minBy=g1,it.stubArray=xf,it.stubFalse=wf,it.stubObject=e1,it.stubString=i1,it.stubTrue=n1,it.multiply=v1,it.nth=R0,it.noConflict=q_,it.noop=_f,it.now=Yu,it.pad=y_,it.padEnd=__,it.padStart=x_,it.parseInt=w_,it.random=u_,it.reduce=Dv,it.reduceRight=zv,it.repeat=T_,it.replace=M_,it.result=t_,it.round=y1,it.runInContext=Lt,it.sample=Bv,it.size=Uv,it.snakeCase=S_,it.some=Gv,it.sortedIndex=N0,it.sortedIndexBy=F0,it.sortedIndexOf=U0,it.sortedLastIndex=G0,it.sortedLastIndexBy=H0,it.sortedLastIndexOf=V0,it.startCase=b_,it.startsWith=C_,it.subtract=_1,it.sum=x1,it.sumBy=w1,it.template=A_,it.times=r1,it.toFinite=Xs,it.toInteger=wi,it.toLength=Ap,it.toLower=P_,it.toNumber=Co,it.toSafeInteger=Py,it.toString=Zi,it.toUpper=L_,it.trim=R_,it.trimEnd=O_,it.trimStart=I_,it.truncate=D_,it.unescape=z_,it.uniqueId=s1,it.upperCase=k_,it.upperFirst=mf,it.each=pp,it.eachRight=mp,it.first=up,yf(it,function(){var r={};return Nr(it,function(h,v){Ti.call(it.prototype,v)||(r[v]=h)}),r}(),{chain:!1}),it.VERSION=c,Ji(["bind","bindKey","curry","curryRight","partial","partialRight"],function(r){it[r].placeholder=it}),Ji(["drop","take"],function(r,h){_i.prototype[r]=function(v){v=v===s?1:vn(wi(v),0);var O=this.__filtered__&&!h?new _i(this):this.clone();return O.__filtered__?O.__takeCount__=Vn(v,O.__takeCount__):O.__views__.push({size:Vn(v,It),type:r+(O.__dir__<0?"Right":"")}),O},_i.prototype[r+"Right"]=function(v){return this.reverse()[r](v).reverse()}}),Ji(["filter","map","takeWhile"],function(r,h){var v=h+1,O=v==G||v==Et;_i.prototype[r]=function(Y){var ut=this.clone();return ut.__iteratees__.push({iteratee:si(Y,3),type:v}),ut.__filtered__=ut.__filtered__||O,ut}}),Ji(["head","last"],function(r,h){var v="take"+(h?"Right":"");_i.prototype[r]=function(){return this[v](1).value()[0]}}),Ji(["initial","tail"],function(r,h){var v="drop"+(h?"":"Right");_i.prototype[r]=function(){return this.__filtered__?new _i(this):this[v](1)}}),_i.prototype.compact=function(){return this.filter(Gr)},_i.prototype.find=function(r){return this.filter(r).head()},_i.prototype.findLast=function(r){return this.reverse().find(r)},_i.prototype.invokeMap=ae(function(r,h){return typeof r=="function"?new _i(this):this.map(function(v){return e(v,r,h)})}),_i.prototype.reject=function(r){return this.filter(Ju(si(r)))},_i.prototype.slice=function(r,h){r=wi(r);var v=this;return v.__filtered__&&(r>0||h<0)?new _i(v):(r<0?v=v.takeRight(-r):r&&(v=v.drop(r)),h!==s&&(h=wi(h),v=h<0?v.dropRight(-h):v.take(h-r)),v)},_i.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},_i.prototype.toArray=function(){return this.take(It)},Nr(_i.prototype,function(r,h){var v=/^(?:filter|find|map|reject)|While$/.test(h),O=/^(?:head|last)$/.test(h),Y=it[O?"take"+(h=="last"?"Right":""):h],ut=O||/^find/.test(h);Y&&(it.prototype[h]=function(){var yt=this.__wrapped__,bt=O?[1]:arguments,Bt=yt instanceof _i,oe=bt[0],le=Bt||vi(yt),de=function(Ri){var Ui=Y.apply(it,fo([Ri],bt));return O&&ke?Ui[0]:Ui};le&&v&&typeof oe=="function"&&oe.length!=1&&(Bt=le=!1);var ke=this.__chain__,Je=!!this.__actions__.length,hi=ut&&!ke,Mi=Bt&&!Je;if(!ut&&le){yt=Mi?yt:new _i(this);var ui=r.apply(yt,bt);return ui.__actions__.push({func:Xu,args:[de],thisArg:s}),new qn(ui,ke)}return hi&&Mi?r.apply(this,bt):(ui=this.thru(de),hi?O?ui.value()[0]:ui.value():ui)})}),Ji(["pop","push","shift","sort","splice","unshift"],function(r){var h=On[r],v=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",O=/^(?:pop|shift)$/.test(r);it.prototype[r]=function(){var Y=arguments;if(O&&!this.__chain__){var ut=this.value();return h.apply(vi(ut)?ut:[],Y)}return this[v](function(yt){return h.apply(vi(yt)?yt:[],Y)})}}),Nr(_i.prototype,function(r,h){var v=it[h];if(v){var O=v.name+"";Ti.call(rs,O)||(rs[O]=[]),rs[O].push({name:h,func:v})}}),rs[$i(s,T).name]=[{name:"wrapper",func:s}],_i.prototype.clone=ba,_i.prototype.reverse=Ou,_i.prototype.value=Ca,it.prototype.at=fv,it.prototype.chain=dv,it.prototype.commit=pv,it.prototype.next=mv,it.prototype.plant=vv,it.prototype.reverse=yv,it.prototype.toJSON=it.prototype.valueOf=it.prototype.value=_v,it.prototype.first=it.prototype.head,ns&&(it.prototype[ns]=gv),it},es=Xc();Zr?((Zr.exports=es)._=es,Zo._=es):gn._=es}).call(Er)}(lu,lu.exports);var am=lu.exports;const ec=tc(am);class lm{constructor(a=[],s=!1){Ba(this,"simplifyFunc",a=>{try{a=turf.simplify(a,{tolerance:5e-4,highQuality:!1,mutate:!0})}catch{}return a});mars3d?(this.vectorArr=a,this.geoJsonType=new Map([["Point"],["LineString"],["Polygon"],["MultiPoint"],["MultiLineString"],["MultiPolygon"]]),this.avoidanceArr=[],this.editDate={id:""},this.isDynamicMasking=s):console.error("未引入指定插件")}remove(a,s=null){s&&s.isClone=="true"?window.mapClone.mapEx.removeLayer(window.mapClone.mapEx.getLayer(a,"vectorId")):(window.map.removeLayer(window.map.getLayer(a,"vectorId")),window.dynamicMasking&&window.dynamicMasking.remove(a))}add(a,s){return new Promise((c,d)=>{let u,m=s==null?void 0:s.isClone;if(typeof a!="object"){let g=window.map.getLayer(a,"vectorId");if(g)return c(g);u=this.query(a)}else{let g=window.map.getLayer(a.id,"vectorId");if(g)return c(g);u=a}if(u){let{value:g,url:_,id:S,title:b}=u;new Cesium.Resource({url:_}).fetchJson().then(k=>{let{id:D,title:F,shpInfo:E}=u,{attributes:L,geometryType:T,geometryCount:M,pointCount:R}=E;if(L){let{width:C,materialType:U,materialOptions:N,clampToGround:X,distanceDisplayCondition:K,distanceDisplayCondition_near:Z,distanceDisplayCondition_far:ct,zIndex:Rt,label:tt,fill:_t,diffHeight:G,outline:Pt,outlineStyle:Et,color:At,pixelSize:ce,outlineColor:re,outlineWidth:Ft,classificationType:It,setHeight:Nt}=JSON.parse(L),Pe;switch(tt.height==""&&(tt.height=null),this.isDynamicMasking?(tt.color=Cesium.Color.fromCssColorString(tt.color).withAlpha(0),tt.outlineColor=Cesium.Color.fromCssColorString(tt.outlineColor).withAlpha(.001),tt.backgroundColor=Cesium.Color.fromCssColorString(tt.backgroundColor).withAlpha(.001),tt.background=!1,tt.outline=!1,tt.show=!1):(tt.color=Cesium.Color.fromCssColorString(tt.color),tt.outlineColor=Cesium.Color.fromCssColorString(tt.outlineColor),tt.backgroundColor=Cesium.Color.fromCssColorString(tt.backgroundColor)),T){case"LineString":case"MultiLineString":tt.backgroundPadding=5,Pe=new mars3d.layer.GeoJsonLayer({data:k,vectorId:D,symbol:{type:"polylineC",styleOptions:{width:C,clampToGround:X,distanceDisplayCondition:K,distanceDisplayCondition_far:ct,distanceDisplayCondition_near:Z,materialType:U,materialOptions:N,classificationType:It,setHeight:Nt,label:tt}},hasZIndex:!0,zIndex:Rt});break;case"Polygon":case"MultiPolygon":U=="PolyGrass"&&(N={evenColor:new Cesium.Color(.25,.4,.1,1),oddColor:new Cesium.Color(.1,.1,.1,1),frequency:1.5}),Pe=new mars3d.layer.GeoJsonLayer({data:k,vectorId:D,symbol:{type:"polygonC",styleOptions:{fill:_t,diffHeight:G,clampToGround:X,materialType:U,materialOptions:N,distanceDisplayCondition:K,distanceDisplayCondition_far:ct,distanceDisplayCondition_near:Z,outlineStyle:Et,outline:Pt,classificationType:It,setHeight:Nt,label:tt}}});break;case"Point":case"MultiPoint":Pe=new mars3d.layer.GeoJsonLayer({data:k,vectorId:D,symbol:{type:"pointC",styleOptions:{color:At,pixelSize:ce,outline:Pt,outlineColor:re,outlineWidth:Ft,visibleDepth:!1,label:tt}}});break}m?window.mapClone.mapEx.addLayer(Pe):window.map.addLayer(Pe),Pe.bindPopup(Wt=>{let $e='<div class="bim-map-popup">';return Object.keys(Wt.graphic.attr).forEach((Si,Oe)=>{Wt.graphic.attr[Si]&&($e+=`<p><b>${Si}</b> : ${Wt.graphic.attr[Si]}</p>`)}),$e+="</div>",$e});let pe=ec.debounce(Wt=>{window.dynamicMasking.add(Wt,JSON.parse(L))},500);Pe.readyPromise.then(Wt=>{window.dynamicMasking&&pe(Wt),c(Wt)}).catch(Wt=>{console.error("测试shp矢量加载失败",Wt),c({tite:"【矢量】「"+F+"」无法加载",type:"error",id:D,url:_})})}else c({tite:"【矢量】「"+F+"」无法加载",type:"error",id:D,url:_})}).catch(k=>{console.error("数据有误",k),c({tite:"【矢量】「"+b+"」链接地址有误",type:"error",id:S,url:_})})}else c({tite:"【矢量】ID:「"+a+"」已删除",type:"error",id:a})})}updateData(a){this.vectorArr=a}processingKML(a){let s,c=2e3,d=!0,{kmlInfo:u}=a,{fill:m,areaColor:g,areaSideColor:_,transparency:S,isAreaSideColor:b,minDistinct:I,textDistinct:k,textSize:D,textColor:F,fontStyle:E,outLine:L,sideColor:T,backGround:M,backGroundColor:R,clampToGround:C}=u,U={fill:m,color:g,opacity:S||.5,outline:b,outlineColor:_,outlineWidth:2,clampToGround:C,distanceDisplayCondition:!0,distanceDisplayCondition_far:k||1e6,distanceDisplayCondition_near:I||0,classificationType:s,opacity:String(S)},N={text:"{name}",horizontalOrigin:Cesium.HorizontalOrigin.CENTER,verticalOrigin:Cesium.VerticalOrigin.BOTTOM,pixelOffsetY:-10,font_size:26,color:F||"#ffffff",font_family:E||"黑体",outline:L||!0,outlineColor:T||"#000000",outlineWidth:4,scaleByDistance:!0,distanceDisplayCondition:!0,distanceDisplayCondition_far:k||1e6,distanceDisplayCondition_near:I||0,background:M||!1,backgroundColor:R||"",visibleDepth:d,clampToGround:C||!1,disableDepthTestDistance:c};return{...U,label:N}}selected(a){window.map.getLayer(a,"vectorId")&&window.map.getLayer(a,"vectorId").flyTo()}query(a){return this.vectorArr.length==0?!1:this.vectorArr.find(s=>s.id==a)}queryVector(a){return window.map.getLayer(a,"vectorId")}editVector(a,s,c){let d=window.map.getLayer(a,"vectorId"),u=bf(s,c);d&&(d.eachGraphic(m=>{m.label&&m.label.show===!1&&(delete m.label.outline,delete m.label.background,delete m.label.outlineColor,delete m.label.backgroundColor),u.label&&u.label.height==""&&(u.label.height=null),m.setStyle({...u})}),window.dynamicMasking&&dynamicMasking.modify(a,u))}nationalBoundaries(a="/gis/nationalBoundaries.json"){let s=new mars3d.layer.GeoJsonLayer({name:"国界",url:a,vectorId:"border",format:c=>{try{c=turf.simplify(c,{tolerance:1e-5,highQuality:!1,mutate:!0})}catch(d){console.error(d)}return c},symbol:{type:"polylineC",styleOptions:{width:2,materialType:"Color",materialOptions:{color:"#CD9B1D"},distanceDisplayCondition:!0,distanceDisplayCondition_near:1e3,distanceDisplayCondition_far:2e7,clampToGround:!0,classificationType:Cesium.ClassificationType.TERRAIN}}});map.addLayer(s)}switchDynamicMasking(a){this.isDynamicMasking=a}}class hm{constructor(a=[]){mars3d?(this.terrainProviderArr=a,this.terrainProviderId="",this.events={},window.map.on(mars3d.EventType.terrainLoadError,s=>{console.error("地形服务加载失败",s),this.hide()}),window.map.viewer.scene.globe.tileLoadProgressEvent.addEventListener(s=>{window.map.viewer.scene.globe.tilesLoaded&&this.emit("load",s)})):console.error("未引入指定插件")}add(a,s){if(s==null?void 0:s.isClone)mapClone?window.mapClone.mapEx.terrainProvider=window.map.terrainProvider:console.error("副屏幕未初始化");else{let{url:d,id:u}=a;if(this.terrainProviderId==u&&window.map.terrainProvider._layers)return!1;window.map.terrainProvider=mars3d.LayerUtil.createTerrainProvider({imageXyzId:u,type:"xyz",url:d,requestVertexNormals:!0,requestMetadata:!0}),this.terrainProviderId=u}}show(a){(a==null?void 0:a.isClone)?window.mapClone.mapEx.hasTerrain=!0:window.map.hasTerrain=!0}hide(a){(a==null?void 0:a.isClone)?window.mapClone.mapEx.hasTerrain=!1:window.map.hasTerrain=!1}on(a,s){a=="load"?this.events[a]?this.events[a].push(s):this.events[a]=[s]:console.log("未开放自定义")}emit(a,...s){this.events[a]!=null&&this.events[a].forEach(c=>c(...s))}off(a,s){this.events[a]=this.events[a].filter(c=>c!==s)}once(a,s){const c=()=>{s(),this.off(a,c)};this.on(a,c)}addClip(a){return new Promise((s,c)=>{window.bimClip?s(bimClip.clipGisAdd(a)):c("挖洞工具未初始化")})}}class um{constructor(a=[],s){mars3d?(this.elevationImageArr=a,this.elevationImageLayer,s?this.gisTkone={Authorization:`Bearer ${s}`}:this.gisTkone={},this.form={brightnessVal:1.3,msaaSamples:4,surfaceOpacity:1,layerOpacity:1,layerBrightness:2,layerContrast:1,layerHue:0,layerSaturation:1,layerGamma:1},this.tdtLayer=null):console.error("未引入指定插件")}pushVector(a){this.elevationImageArr.push(a)}add(a,s=!0,c){let d;if(typeof a!="object"?d=a:d=a.imageXyzId,window.map.getLayer(d,"imageXyzId"))return!1;const{layerOpacity:u,layerBrightness:m,layerContrast:g,layerHue:_,layerSaturation:S,layerGamma:b,surfaceOpacity:I}=this.exposureEnvironmentSettings();return new Promise((k,D)=>{let F,E,L,T,M,R;if(typeof a!="object"){let C=this.query(a);C||D("缺少树结构");let{gisInfo:U}=C;F=U.id,L=U.order,E=C.url,T=U.minLevel,M=U.maxLevel}else F=a.imageXyzId,E=a.url,L=a.zIndex,T=a.minimumLevel,M=a.maximumLevel,R=a.chinaCRS;this.elevationImageLayer=new mars3d.layer.XyzLayer({imageXyzId:F,type:"xyz",url:E,hasZIndex:!0,zIndex:L.toString(),brightness:m,opacity:u,saturation:S,contrast:g,hue:_,gamma:b,alpha:I,show:!0,minimumLevel:T||0,maximumLevel:M||15,chinaCRS:R,headers:s?this.gisTkone:null}),this.elevationImageLayer.on(mars3d.EventType.load,C=>{k(C)}),window.map.addLayer(this.elevationImageLayer),c&&Object.keys(c).forEach(C=>{this.elevationImageLayer.on(fnType.get(C),U=>{c[C](U)})})})}remove(a){console.log(a),window.map.removeLayer(window.map.getLayer(a,"imageXyzId"))}query(a){return this.elevationImageArr.length==0?!1:this.elevationImageArr.find(s=>s.id==a)}initial(){this.elevationImageArr=[],this.elevationImageLayer=null}exposureEnvironmentSettings(){return localStorage.getItem("environmentSettings")?JSON.parse(localStorage.getItem("environmentSettings")):(localStorage.setItem("environmentSettings",JSON.stringify(this.form)),JSON.parse(JSON.stringify(this.form)))}}class cm{constructor(a,...s){Ba(this,"manualFreed",ec.debounce(()=>{let{lng:a,lat:s,alt:c,pitch:d}=window.map.getCameraView(),u;this.modelArray.forEach(m=>{u=m.releasedDistance?m.releasedDistance:1e4,this.disTance([a,s,c],[m.center._lng,m.center._lat,m.center._alt],this.calculateDistance(d,u))?window.map.getLayer(m.id,"modelId")&&this.emit("leave",m):window.map.getLayer(m.id,"modelId")||this.emit("enter",m)})},200));mars3d?(a&&a!=null&&(this.modelArray=a),this.showModelArray=[],this.Cesium=mars3d.Cesium,this.events={}):console.error("未引入指定插件")}on(a,s){a=="enter"||a=="leave"?this.events[a]?this.events[a].push(s):this.events[a]=[s]:console.log("未开放自定义")}emit(a,...s){this.events[a]!=null&&this.events[a].forEach(c=>c(...s))}off(a,s){this.events[a]=this.events[a].filter(c=>c!==s)}once(a,s){const c=()=>{s(),this.off(a,c)};this.on(a,c)}say(a){return this[a]}add(a,s){this[a].push(s)}remove(a,s){this[a]=this[a].filter(function(c){return c!==s})}initial(){this.modelArray=[],this.events={}}updateCustomExcavationDetails(a,s,c,d=[],u={}){let m,g,_;switch(m=this.modelArray.find(S=>S.modelId==a).customize.bimModelExcavationDetails,_=m.find((S,b)=>{if(S.id==s)return g=b,S}),c){case"delete":m.splice(g,1);break;case"update":_.excavationDetails=d;break;case"add":m.push(u);break;case"edit":_.excavationDetails=u.excavationDetails,_.kId=u.kId;break}return m}resourceRelease(){window.map.viewer.camera.moveEnd.addEventListener(()=>{this.freed()})}freed(){let{alt:a}=window.map.getCameraView();a<2e4&&(this.freed=ec.throttle(()=>{let{lng:s,lat:c,alt:d,pitch:u}=window.map.getCameraView();this.modelArray&&this.modelArray.forEach(m=>{let g=m.bimModel.releasedDistance?m.bimModel.releasedDistance:1e4;m.center&&this.disTance([s,c,d],[m.center._lng,m.center._lat,m.center._alt],this.calculateDistance(u,g))?window.map.getLayer(m.id,"modelId")&&this.emit("leave",m):this.showModelArray.indexOf(m.id)>=0&&!window.map.getLayer(m.id,"modelId")&&this.emit("enter",m)})},2e3),this.freed())}findPnodeId(a,s,c="id"){let d;if(a){for(var u=0;u<a.length;u++){let m=a[u];if(m[c]==s)return d=m,d;if(m.children&&m.children.length>0&&(d=this.findPnodeId(m.children,s,c),d))return d}return d}}disTance(a,s,c){let d,u,m;return d=Cesium.Cartesian3.fromDegrees(...a),u=Cesium.Cartesian3.fromDegrees(...s),m=Cesium.Cartesian3.distance(d,u),m>c}calculateDistance(a,s){let c=(a+180)%360-180;c=Math.max(-90,Math.min(c,90));let d=(s-s/5)*(Math.abs(c)/90)+s/5;return Math.round(d)}}class fm{constructor(a=[],s){mars3d?(this.entityArr=a,this.entityLayer=new mars3d.layer.GraphicLayer({entityId:"bimEntity"}),window.map.addLayer(this.entityLayer),this.entityItem=null,this.events={},this.entityCloneLayer):console.error("未引入指定插件")}on(a,s){a=="change"||a=="collection"?this.events[a]?this.events[a].push(s):this.events[a]=[s]:console.log("未开放自定义")}emit(a,...s){this.events[a]!=null&&this.events[a].forEach(c=>c(...s))}off(a,s){this.events[a]=this.events[a].filter(c=>c!==s)}offAll(){this.events={}}once(a,s){const c=()=>{s(),this.off(a,c)};this.on(a,c)}add(a,s=null,c){return new Promise((d,u)=>{var m;if(this.entityLayer){let g,_,S;if(c==null?void 0:c.isClone)this.entityCloneLayer&&(_=this.query(a),_?(S=JSON.parse(_.bimPlanPainting.graphic),S.attr=S.attr||{},S.attr.entityId=a,this.entityCloneLayer.addGraphic(S)):d({tite:"【标绘】 ID:「"+a+"」已删除",type:"error",id:a}));else{if(typeof a!="object"?(g=this.entityLayer.getGraphicByAttr(a,"entityId"),_=this.query(a),_?(S=JSON.parse(_.bimPlanPainting.graphic),S.attr=S.attr||{},S.attr.entityId=a):d({tite:"【标绘】ID:「"+a+"」已删除",type:"error",id:a})):(g=this.entityLayer.getGraphicByAttr(a.id,"entityId"),S=JSON.parse(JSON.stringify(a)),S.attr=S.attr||{},S.attr.entityId=S.attr.entityId||s,S.attr==null?S.attr={entityId:a.id}:((m=S.attr)==null?void 0:m.entityId)==null&&s&&(S.attr.entityId=s)),g)return d();this.entityLayer.addGraphic(S),d(S)}}else d(),console.error("未初始化标绘实例图层")})}query(a){return this.entityArr.length==0?!1:this.entityArr.find(s=>s.id==a)}queryEntity(a){if(bimEntity.entityLayer)return bimEntity.entityLayer.getGraphicByAttr(a,"entityId")}selected(a,s=null){let c=this.entityLayer.getGraphicByAttr(a,"entityId");s==null||s.isClone,(c.options.type=="div"||c.options.type=="point")&&c._point?c.flyTo({radius:c._point._alt+500<500?5e3:c._point._alt+500}):c.flyTo()}remove(a,s=null){(s==null?void 0:s.isClone)?this.entityCloneLayer&&this.entityCloneLayer.getGraphicByAttr(a,"entityId").remove():this.entityLayer.getGraphicByAttr(a,"entityId")&&(this.entityLayer.getGraphicByAttr(a,"entityId").remove(),this.entityItem&&(this.entityItem._state=="destroy"||this.entityItem.options.attr.entityId==a)&&(this.entityItem=null))}entityCloneLayerInit(){(this.entityCloneLayer==null||this.entityCloneLayer.state=="destroy")&&(this.entityCloneLayer=window.mapClone._mapEx.getLayer("bimEntity","entityId"))}entityCloneLayerRemove(){this.entityCloneLayer.remove(),this.entityCloneLayer=null}removeEntityItem(){this.entityItem=null}updateData(a){this.entityArr=a}startDrawGraphic(a){return new Promise((s,c)=>{let{type:d,style:u}=a;if(a.style.drawShow=!0,d=="div")if(u.html)this.entityLayer.startDraw(a).then(m=>{setTimeout(()=>{this.entityItem=m,this.entityLayer.startEditing(m)},500)});else{let{title:m,divType:g,theme_color:_,font_color:S,scaleByDistance:b,scaleByDistance_far:I,scaleByDistance_farValue:k,scaleByDistance_near:D,scaleByDistance_nearValue:F,distanceDisplayCondition:E,distanceDisplayCondition_far:L,distanceDisplayCondition_near:T,clampToGround:M}=u,R={type:"div",style:{pointerEvents:!0,scaleByDistance:b,scaleByDistance_far:I,scaleByDistance_farValue:k,scaleByDistance_near:D,scaleByDistance_nearValue:F,distanceDisplayCondition:E,distanceDisplayCondition_far:L,distanceDisplayCondition_near:T,clampToGround:M,horizontalOrigin:Cesium.HorizontalOrigin.LEFT,verticalOrigin:Cesium.VerticalOrigin.BOTTOM}};switch(g){case"1":R.style.html=`<div class="entity-div-style entity-div-style1" style="--theme-color1:${_};--theme-font-color1:${S};">
|
|
2637
2637
|
<div class="title">${m}</div>
|
|
2638
2638
|
</div>`,R.style.horizontalOrigin=Cesium.HorizontalOrigin.CENTER;break}this.entityLayer.startDraw(R).then(C=>{setTimeout(()=>{this.entityItem=C,this.entityLayer.startEditing(C),s(C)},500)})}else this.entityLayer.startDraw(a).then(m=>{setTimeout(()=>{this.entityItem=m,this.entityLayer.startEditing(m),s(m)},500)})})}stopDraw(a=!0){this.entityLayer&&this.entityLayer.stopDraw(),a&&this.entityItem&&(this.entityItem.stopEditing(),this.entityItem.remove(),this.entityItem=null)}updateEntityItem(a){let s=this.entityLayer.getGraphicByAttr(a,"entityId");s?this.entityItem=s:this.removeEntityItem()}edit(a,s,c,d){let u=bf(s,c);if(s.vectorStyle&&this.entityItem)if(s.vectorStyle.divType==5)this.entityItem.setStyle({...u,horizontalOrigin:Cesium.HorizontalOrigin.LEFT});else{if(this.entityItem.type=="circleP"&&Object.keys(u).length==1&&Object.keys(u)[0]=="radius"&&u.radius==this.entityItem.options.style.radius)return!1;this.entityItem.setStyle({...u,horizontalOrigin:Cesium.HorizontalOrigin.CENTER})}}enableDragging(a=!0){a?this.entityLayer.startEditing(this.entityItem):(this.entityLayer.stopDraw(),this.entityItem&&this.entityItem.stopEditing())}addRightMenu(){this.entityLayer.bindContextMenu([{text:"编辑对象",callback:a=>{this.emit("change",a)}},{text:"收藏对象",callback:a=>{this.emit("collection",a)}}])}removeRightMenu(){this.entityLayer.hasContextMenu()&&this.entityLayer.unbindContextMenu()}processDivData(a){let s={"--theme-color1":"theme_color","--theme-font-color1":"font_color","--theme-color2":"theme_color2","--theme-color3":"theme_color3"},c={title:"",theme_color:"",font_color:"",content:"",divType:"",divStyle:{},isMirror:!1};const d=document.createElement("div");d.innerHTML=a;const u=d.querySelector(".entity-div-style");return console.log("解耦",u),Object.keys(s).forEach(m=>{m=="--theme-color2"||m=="--theme-color3"?c.divStyle[s[m]]=u.style.getPropertyValue(m)||"#fff":c[s[m]]=u.style.getPropertyValue(m)}),c.title=u.querySelector(".title")?u.querySelector(".title").innerText:"标题",c.content=u.querySelector(".content")?u.querySelector(".content").innerText:"内容",c.divType=u.classList[1]?u.classList[1].replace("entity-div-style",""):"",c.isMirror=u.classList.contains("isMirror"),console.log("解耦",c),c}updateHtml(a,s){let{theme_color:c,font_color:d,title:u,content:m,divStyle:g}=s,{theme_color2:_,theme_color3:S}=g,b="";switch(a){case"1":b=`<div class="entity-div-style entity-div-style1" style="--theme-color1:${c};--theme-font-color1:${d};">
|
|
2639
2639
|
<div class="title">${u}</div>
|
|
@@ -2699,4 +2699,4 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
2699
2699
|
* Subject to the terms at https://gsap.com/standard-license or for
|
|
2700
2700
|
* Club GSAP members, the agreement issued with that membership.
|
|
2701
2701
|
* @author: Jack Doyle, jack@greensock.com
|
|
2702
|
-
*/var Sd,Qs,Nl,Ic,Wa,Ed,Dc,ug=function(){return typeof window<"u"},ds={},ja=180/Math.PI,Fl=Math.PI/180,Ul=Math.atan2,bd=1e8,zc=/([A-Z])/g,cg=/(left|right|width|margin|padding|x)/i,fg=/[\s,\(]\S/,jo={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},kc=function(a,s){return s.set(s.t,s.p,Math.round((s.s+s.c*a)*1e4)/1e4+s.u,s)},dg=function(a,s){return s.set(s.t,s.p,a===1?s.e:Math.round((s.s+s.c*a)*1e4)/1e4+s.u,s)},pg=function(a,s){return s.set(s.t,s.p,a?Math.round((s.s+s.c*a)*1e4)/1e4+s.u:s.b,s)},mg=function(a,s){var c=s.s+s.c*a;s.set(s.t,s.p,~~(c+(c<0?-.5:.5))+s.u,s)},Cd=function(a,s){return s.set(s.t,s.p,a?s.e:s.b,s)},Ad=function(a,s){return s.set(s.t,s.p,a!==1?s.b:s.e,s)},gg=function(a,s,c){return a.style[s]=c},vg=function(a,s,c){return a.style.setProperty(s,c)},yg=function(a,s,c){return a._gsap[s]=c},_g=function(a,s,c){return a._gsap.scaleX=a._gsap.scaleY=c},xg=function(a,s,c,d,u){var m=a._gsap;m.scaleX=m.scaleY=c,m.renderTransform(u,m)},wg=function(a,s,c,d,u){var m=a._gsap;m[s]=c,m.renderTransform(u,m)},pn="transform",Lr=pn+"Origin",Tg=function x(a,s){var c=this,d=this.target,u=d.style,m=d._gsap;if(a in ds&&u){if(this.tfm=this.tfm||{},a!=="transform")a=jo[a]||a,~a.indexOf(",")?a.split(",").forEach(function(g){return c.tfm[g]=ps(d,g)}):this.tfm[a]=m.x?m[a]:ps(d,a),a===Lr&&(this.tfm.zOrigin=m.zOrigin);else return jo.transform.split(",").forEach(function(g){return x.call(c,g,s)});if(this.props.indexOf(pn)>=0)return;m.svg&&(this.svgo=d.getAttribute("data-svg-origin"),this.props.push(Lr,s,"")),a=pn}(u||s)&&this.props.push(a,s,u[a])},Pd=function(a){a.translate&&(a.removeProperty("translate"),a.removeProperty("scale"),a.removeProperty("rotate"))},Mg=function(){var a=this.props,s=this.target,c=s.style,d=s._gsap,u,m;for(u=0;u<a.length;u+=3)a[u+1]?s[a[u]]=a[u+2]:a[u+2]?c[a[u]]=a[u+2]:c.removeProperty(a[u].substr(0,2)==="--"?a[u]:a[u].replace(zc,"-$1").toLowerCase());if(this.tfm){for(m in this.tfm)d[m]=this.tfm[m];d.svg&&(d.renderTransform(),s.setAttribute("data-svg-origin",this.svgo||"")),u=Dc(),(!u||!u.isStart)&&!c[pn]&&(Pd(c),d.zOrigin&&c[Lr]&&(c[Lr]+=" "+d.zOrigin+"px",d.zOrigin=0,d.renderTransform()),d.uncache=1)}},Ld=function(a,s){var c={target:a,props:[],revert:Mg,save:Tg};return a._gsap||Pr.core.getCache(a),s&&s.split(",").forEach(function(d){return c.save(d)}),c},Rd,Bc=function(a,s){var c=Qs.createElementNS?Qs.createElementNS((s||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),a):Qs.createElement(a);return c&&c.style?c:Qs.createElement(a)},Xo=function x(a,s,c){var d=getComputedStyle(a);return d[s]||d.getPropertyValue(s.replace(zc,"-$1").toLowerCase())||d.getPropertyValue(s)||!c&&x(a,Gl(s)||s,1)||""},Od="O,Moz,ms,Ms,Webkit".split(","),Gl=function(a,s,c){var d=s||Wa,u=d.style,m=5;if(a in u&&!c)return a;for(a=a.charAt(0).toUpperCase()+a.substr(1);m--&&!(Od[m]+a in u););return m<0?null:(m===3?"ms":m>=0?Od[m]:"")+a},Nc=function(){ug()&&window.document&&(Sd=window,Qs=Sd.document,Nl=Qs.documentElement,Wa=Bc("div")||{style:{}},Bc("div"),pn=Gl(pn),Lr=pn+"Origin",Wa.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",Rd=!!Gl("perspective"),Dc=Pr.core.reverting,Ic=1)},Fc=function x(a){var s=Bc("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),c=this.parentNode,d=this.nextSibling,u=this.style.cssText,m;if(Nl.appendChild(s),s.appendChild(this),this.style.display="block",a)try{m=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=x}catch{}else this._gsapBBox&&(m=this._gsapBBox());return c&&(d?c.insertBefore(this,d):c.appendChild(this)),Nl.removeChild(s),this.style.cssText=u,m},Id=function(a,s){for(var c=s.length;c--;)if(a.hasAttribute(s[c]))return a.getAttribute(s[c])},Dd=function(a){var s;try{s=a.getBBox()}catch{s=Fc.call(a,!0)}return s&&(s.width||s.height)||a.getBBox===Fc||(s=Fc.call(a,!0)),s&&!s.width&&!s.x&&!s.y?{x:+Id(a,["x","cx","x1"])||0,y:+Id(a,["y","cy","y1"])||0,width:0,height:0}:s},zd=function(a){return!!(a.getCTM&&(!a.parentNode||a.ownerSVGElement)&&Dd(a))},Xa=function(a,s){if(s){var c=a.style,d;s in ds&&s!==Lr&&(s=pn),c.removeProperty?(d=s.substr(0,2),(d==="ms"||s.substr(0,6)==="webkit")&&(s="-"+s),c.removeProperty(d==="--"?s:s.replace(zc,"-$1").toLowerCase())):c.removeAttribute(s)}},ta=function(a,s,c,d,u,m){var g=new Ar(a._pt,s,c,0,1,m?Ad:Cd);return a._pt=g,g.b=d,g.e=u,a._props.push(c),g},kd={deg:1,rad:1,turn:1},Sg={grid:1,flex:1},ea=function x(a,s,c,d){var u=parseFloat(c)||0,m=(c+"").trim().substr((u+"").length)||"px",g=Wa.style,_=cg.test(s),S=a.tagName.toLowerCase()==="svg",b=(S?"client":"offset")+(_?"Width":"Height"),I=100,k=d==="px",D=d==="%",F,E,L,T;if(d===m||!u||kd[d]||kd[m])return u;if(m!=="px"&&!k&&(u=x(a,s,c,"px")),T=a.getCTM&&zd(a),(D||m==="%")&&(ds[s]||~s.indexOf("adius")))return F=T?a.getBBox()[_?"width":"height"]:a[b],Rn(D?u/F*I:u/100*F);if(g[_?"width":"height"]=I+(k?m:d),E=~s.indexOf("adius")||d==="em"&&a.appendChild&&!S?a:a.parentNode,T&&(E=(a.ownerSVGElement||{}).parentNode),(!E||E===Qs||!E.appendChild)&&(E=Qs.body),L=E._gsap,L&&D&&L.width&&_&&L.time===Xr.time&&!L.uncache)return Rn(u/L.width*I);if(D&&(s==="height"||s==="width")){var M=a.style[s];a.style[s]=I+d,F=a[b],M?a.style[s]=M:Xa(a,s)}else(D||m==="%")&&!Sg[Xo(E,"display")]&&(g.position=Xo(a,"position")),E===a&&(g.position="static"),E.appendChild(Wa),F=Wa[b],E.removeChild(Wa),g.position="absolute";return _&&D&&(L=Na(E),L.time=Xr.time,L.width=E[b]),Rn(k?F*u/I:F&&u?I/F*u:0)},ps=function(a,s,c,d){var u;return Ic||Nc(),s in jo&&s!=="transform"&&(s=jo[s],~s.indexOf(",")&&(s=s.split(",")[0])),ds[s]&&s!=="transform"?(u=Lh(a,d),u=s!=="transformOrigin"?u[s]:u.svg?u.origin:Mu(Xo(a,Lr))+" "+u.zOrigin+"px"):(u=a.style[s],(!u||u==="auto"||d||~(u+"").indexOf("calc("))&&(u=Tu[s]&&Tu[s](a,s,c)||Xo(a,s)||Uf(a,s)||(s==="opacity"?1:0))),c&&!~(u+"").trim().indexOf(" ")?ea(a,s,u,c)+c:u},Eg=function(a,s,c,d){if(!c||c==="none"){var u=Gl(s,a,1),m=u&&Xo(a,u,1);m&&m!==c?(s=u,c=m):s==="borderColor"&&(c=Xo(a,"borderTopColor"))}var g=new Ar(this._pt,a.style,s,0,1,xd),_=0,S=0,b,I,k,D,F,E,L,T,M,R,C,U;if(g.b=c,g.e=d,c+="",d+="",d==="auto"&&(E=a.style[s],a.style[s]=d,d=Xo(a,s)||d,E?a.style[s]=E:Xa(a,s)),b=[c,d],ud(b),c=b[0],d=b[1],k=c.match(Ol)||[],U=d.match(Ol)||[],U.length){for(;I=Ol.exec(d);)L=I[0],M=d.substring(_,I.index),F?F=(F+1)%5:(M.substr(-5)==="rgba("||M.substr(-5)==="hsla(")&&(F=1),L!==(E=k[S++]||"")&&(D=parseFloat(E)||0,C=E.substr((D+"").length),L.charAt(1)==="="&&(L=Il(D,L)+C),T=parseFloat(L),R=L.substr((T+"").length),_=Ol.lastIndex-R.length,R||(R=R||Hr.units[s]||C,_===d.length&&(d+=R,g.e+=R)),C!==R&&(D=ea(a,s,E,R)||0),g._pt={_next:g._pt,p:M||S===1?M:",",s:D,c:T-D,m:F&&F<4||s==="zIndex"?Math.round:0});g.c=_<d.length?d.substring(_,d.length):""}else g.r=s==="display"&&d==="none"?Ad:Cd;return If.test(d)&&(g.e=0),this._pt=g,g},Bd={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},bg=function(a){var s=a.split(" "),c=s[0],d=s[1]||"50%";return(c==="top"||c==="bottom"||d==="left"||d==="right")&&(a=c,c=d,d=a),s[0]=Bd[c]||c,s[1]=Bd[d]||d,s.join(" ")},Cg=function(a,s){if(s.tween&&s.tween._time===s.tween._dur){var c=s.t,d=c.style,u=s.u,m=c._gsap,g,_,S;if(u==="all"||u===!0)d.cssText="",_=1;else for(u=u.split(","),S=u.length;--S>-1;)g=u[S],ds[g]&&(_=1,g=g==="transformOrigin"?Lr:pn),Xa(c,g);_&&(Xa(c,pn),m&&(m.svg&&c.removeAttribute("transform"),Lh(c,1),m.uncache=1,Pd(d)))}},Tu={clearProps:function(a,s,c,d,u){if(u.data!=="isFromStart"){var m=a._pt=new Ar(a._pt,s,c,0,0,Cg);return m.u=d,m.pr=-10,m.tween=u,a._props.push(c),1}}},Ph=[1,0,0,1,0,0],Nd={},Fd=function(a){return a==="matrix(1, 0, 0, 1, 0, 0)"||a==="none"||!a},Ud=function(a){var s=Xo(a,pn);return Fd(s)?Ph:s.substr(7).match(Of).map(Rn)},Uc=function(a,s){var c=a._gsap||Na(a),d=a.style,u=Ud(a),m,g,_,S;return c.svg&&a.getAttribute("transform")?(_=a.transform.baseVal.consolidate().matrix,u=[_.a,_.b,_.c,_.d,_.e,_.f],u.join(",")==="1,0,0,1,0,0"?Ph:u):(u===Ph&&!a.offsetParent&&a!==Nl&&!c.svg&&(_=d.display,d.display="block",m=a.parentNode,(!m||!a.offsetParent)&&(S=1,g=a.nextElementSibling,Nl.appendChild(a)),u=Ud(a),_?d.display=_:Xa(a,"display"),S&&(g?m.insertBefore(a,g):m?m.appendChild(a):Nl.removeChild(a))),s&&u.length>6?[u[0],u[1],u[4],u[5],u[12],u[13]]:u)},Gc=function(a,s,c,d,u,m){var g=a._gsap,_=u||Uc(a,!0),S=g.xOrigin||0,b=g.yOrigin||0,I=g.xOffset||0,k=g.yOffset||0,D=_[0],F=_[1],E=_[2],L=_[3],T=_[4],M=_[5],R=s.split(" "),C=parseFloat(R[0])||0,U=parseFloat(R[1])||0,N,X,K,Z;c?_!==Ph&&(X=D*L-F*E)&&(K=C*(L/X)+U*(-E/X)+(E*M-L*T)/X,Z=C*(-F/X)+U*(D/X)-(D*M-F*T)/X,C=K,U=Z):(N=Dd(a),C=N.x+(~R[0].indexOf("%")?C/100*N.width:C),U=N.y+(~(R[1]||R[0]).indexOf("%")?U/100*N.height:U)),d||d!==!1&&g.smooth?(T=C-S,M=U-b,g.xOffset=I+(T*D+M*E)-T,g.yOffset=k+(T*F+M*L)-M):g.xOffset=g.yOffset=0,g.xOrigin=C,g.yOrigin=U,g.smooth=!!d,g.origin=s,g.originIsAbsolute=!!c,a.style[Lr]="0px 0px",m&&(ta(m,g,"xOrigin",S,C),ta(m,g,"yOrigin",b,U),ta(m,g,"xOffset",I,g.xOffset),ta(m,g,"yOffset",k,g.yOffset)),a.setAttribute("data-svg-origin",C+" "+U)},Lh=function(a,s){var c=a._gsap||new pd(a);if("x"in c&&!s&&!c.uncache)return c;var d=a.style,u=c.scaleX<0,m="px",g="deg",_=getComputedStyle(a),S=Xo(a,Lr)||"0",b,I,k,D,F,E,L,T,M,R,C,U,N,X,K,Z,ct,Rt,tt,_t,G,Pt,Et,At,ce,re,Ft,It,Nt,Pe,pe,Wt;return b=I=k=E=L=T=M=R=C=0,D=F=1,c.svg=!!(a.getCTM&&zd(a)),_.translate&&((_.translate!=="none"||_.scale!=="none"||_.rotate!=="none")&&(d[pn]=(_.translate!=="none"?"translate3d("+(_.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+(_.rotate!=="none"?"rotate("+_.rotate+") ":"")+(_.scale!=="none"?"scale("+_.scale.split(" ").join(",")+") ":"")+(_[pn]!=="none"?_[pn]:"")),d.scale=d.rotate=d.translate="none"),X=Uc(a,c.svg),c.svg&&(c.uncache?(ce=a.getBBox(),S=c.xOrigin-ce.x+"px "+(c.yOrigin-ce.y)+"px",At=""):At=!s&&a.getAttribute("data-svg-origin"),Gc(a,At||S,!!At||c.originIsAbsolute,c.smooth!==!1,X)),U=c.xOrigin||0,N=c.yOrigin||0,X!==Ph&&(Rt=X[0],tt=X[1],_t=X[2],G=X[3],b=Pt=X[4],I=Et=X[5],X.length===6?(D=Math.sqrt(Rt*Rt+tt*tt),F=Math.sqrt(G*G+_t*_t),E=Rt||tt?Ul(tt,Rt)*ja:0,M=_t||G?Ul(_t,G)*ja+E:0,M&&(F*=Math.abs(Math.cos(M*Fl))),c.svg&&(b-=U-(U*Rt+N*_t),I-=N-(U*tt+N*G))):(Wt=X[6],Pe=X[7],Ft=X[8],It=X[9],Nt=X[10],pe=X[11],b=X[12],I=X[13],k=X[14],K=Ul(Wt,Nt),L=K*ja,K&&(Z=Math.cos(-K),ct=Math.sin(-K),At=Pt*Z+Ft*ct,ce=Et*Z+It*ct,re=Wt*Z+Nt*ct,Ft=Pt*-ct+Ft*Z,It=Et*-ct+It*Z,Nt=Wt*-ct+Nt*Z,pe=Pe*-ct+pe*Z,Pt=At,Et=ce,Wt=re),K=Ul(-_t,Nt),T=K*ja,K&&(Z=Math.cos(-K),ct=Math.sin(-K),At=Rt*Z-Ft*ct,ce=tt*Z-It*ct,re=_t*Z-Nt*ct,pe=G*ct+pe*Z,Rt=At,tt=ce,_t=re),K=Ul(tt,Rt),E=K*ja,K&&(Z=Math.cos(K),ct=Math.sin(K),At=Rt*Z+tt*ct,ce=Pt*Z+Et*ct,tt=tt*Z-Rt*ct,Et=Et*Z-Pt*ct,Rt=At,Pt=ce),L&&Math.abs(L)+Math.abs(E)>359.9&&(L=E=0,T=180-T),D=Rn(Math.sqrt(Rt*Rt+tt*tt+_t*_t)),F=Rn(Math.sqrt(Et*Et+Wt*Wt)),K=Ul(Pt,Et),M=Math.abs(K)>2e-4?K*ja:0,C=pe?1/(pe<0?-pe:pe):0),c.svg&&(At=a.getAttribute("transform"),c.forceCSS=a.setAttribute("transform","")||!Fd(Xo(a,pn)),At&&a.setAttribute("transform",At))),Math.abs(M)>90&&Math.abs(M)<270&&(u?(D*=-1,M+=E<=0?180:-180,E+=E<=0?180:-180):(F*=-1,M+=M<=0?180:-180)),s=s||c.uncache,c.x=b-((c.xPercent=b&&(!s&&c.xPercent||(Math.round(a.offsetWidth/2)===Math.round(-b)?-50:0)))?a.offsetWidth*c.xPercent/100:0)+m,c.y=I-((c.yPercent=I&&(!s&&c.yPercent||(Math.round(a.offsetHeight/2)===Math.round(-I)?-50:0)))?a.offsetHeight*c.yPercent/100:0)+m,c.z=k+m,c.scaleX=Rn(D),c.scaleY=Rn(F),c.rotation=Rn(E)+g,c.rotationX=Rn(L)+g,c.rotationY=Rn(T)+g,c.skewX=M+g,c.skewY=R+g,c.transformPerspective=C+m,(c.zOrigin=parseFloat(S.split(" ")[2])||!s&&c.zOrigin||0)&&(d[Lr]=Mu(S)),c.xOffset=c.yOffset=0,c.force3D=Hr.force3D,c.renderTransform=c.svg?Pg:Rd?Gd:Ag,c.uncache=0,c},Mu=function(a){return(a=a.split(" "))[0]+" "+a[1]},Hc=function(a,s,c){var d=or(s);return Rn(parseFloat(s)+parseFloat(ea(a,"x",c+"px",d)))+d},Ag=function(a,s){s.z="0px",s.rotationY=s.rotationX="0deg",s.force3D=0,Gd(a,s)},qa="0deg",Rh="0px",Ya=") ",Gd=function(a,s){var c=s||this,d=c.xPercent,u=c.yPercent,m=c.x,g=c.y,_=c.z,S=c.rotation,b=c.rotationY,I=c.rotationX,k=c.skewX,D=c.skewY,F=c.scaleX,E=c.scaleY,L=c.transformPerspective,T=c.force3D,M=c.target,R=c.zOrigin,C="",U=T==="auto"&&a&&a!==1||T===!0;if(R&&(I!==qa||b!==qa)){var N=parseFloat(b)*Fl,X=Math.sin(N),K=Math.cos(N),Z;N=parseFloat(I)*Fl,Z=Math.cos(N),m=Hc(M,m,X*Z*-R),g=Hc(M,g,-Math.sin(N)*-R),_=Hc(M,_,K*Z*-R+R)}L!==Rh&&(C+="perspective("+L+Ya),(d||u)&&(C+="translate("+d+"%, "+u+"%) "),(U||m!==Rh||g!==Rh||_!==Rh)&&(C+=_!==Rh||U?"translate3d("+m+", "+g+", "+_+") ":"translate("+m+", "+g+Ya),S!==qa&&(C+="rotate("+S+Ya),b!==qa&&(C+="rotateY("+b+Ya),I!==qa&&(C+="rotateX("+I+Ya),(k!==qa||D!==qa)&&(C+="skew("+k+", "+D+Ya),(F!==1||E!==1)&&(C+="scale("+F+", "+E+Ya),M.style[pn]=C||"translate(0, 0)"},Pg=function(a,s){var c=s||this,d=c.xPercent,u=c.yPercent,m=c.x,g=c.y,_=c.rotation,S=c.skewX,b=c.skewY,I=c.scaleX,k=c.scaleY,D=c.target,F=c.xOrigin,E=c.yOrigin,L=c.xOffset,T=c.yOffset,M=c.forceCSS,R=parseFloat(m),C=parseFloat(g),U,N,X,K,Z;_=parseFloat(_),S=parseFloat(S),b=parseFloat(b),b&&(b=parseFloat(b),S+=b,_+=b),_||S?(_*=Fl,S*=Fl,U=Math.cos(_)*I,N=Math.sin(_)*I,X=Math.sin(_-S)*-k,K=Math.cos(_-S)*k,S&&(b*=Fl,Z=Math.tan(S-b),Z=Math.sqrt(1+Z*Z),X*=Z,K*=Z,b&&(Z=Math.tan(b),Z=Math.sqrt(1+Z*Z),U*=Z,N*=Z)),U=Rn(U),N=Rn(N),X=Rn(X),K=Rn(K)):(U=I,K=k,N=X=0),(R&&!~(m+"").indexOf("px")||C&&!~(g+"").indexOf("px"))&&(R=ea(D,"x",m,"px"),C=ea(D,"y",g,"px")),(F||E||L||T)&&(R=Rn(R+F-(F*U+E*X)+L),C=Rn(C+E-(F*N+E*K)+T)),(d||u)&&(Z=D.getBBox(),R=Rn(R+d/100*Z.width),C=Rn(C+u/100*Z.height)),Z="matrix("+U+","+N+","+X+","+K+","+R+","+C+")",D.setAttribute("transform",Z),M&&(D.style[pn]=Z)},Lg=function(a,s,c,d,u){var m=360,g=Wn(u),_=parseFloat(u)*(g&&~u.indexOf("rad")?ja:1),S=_-d,b=d+S+"deg",I,k;return g&&(I=u.split("_")[1],I==="short"&&(S%=m,S!==S%(m/2)&&(S+=S<0?m:-m)),I==="cw"&&S<0?S=(S+m*bd)%m-~~(S/m)*m:I==="ccw"&&S>0&&(S=(S-m*bd)%m-~~(S/m)*m)),a._pt=k=new Ar(a._pt,s,c,d,S,dg),k.e=b,k.u="deg",a._props.push(c),k},Hd=function(a,s){for(var c in s)a[c]=s[c];return a},Rg=function(a,s,c){var d=Hd({},c._gsap),u="perspective,force3D,transformOrigin,svgOrigin",m=c.style,g,_,S,b,I,k,D,F;d.svg?(S=c.getAttribute("transform"),c.setAttribute("transform",""),m[pn]=s,g=Lh(c,1),Xa(c,pn),c.setAttribute("transform",S)):(S=getComputedStyle(c)[pn],m[pn]=s,g=Lh(c,1),m[pn]=S);for(_ in ds)S=d[_],b=g[_],S!==b&&u.indexOf(_)<0&&(D=or(S),F=or(b),I=D!==F?ea(c,_,S,F):parseFloat(S),k=parseFloat(b),a._pt=new Ar(a._pt,g,_,I,k-I,kc),a._pt.u=F||0,a._props.push(_));Hd(g,d)};Cr("padding,margin,Width,Radius",function(x,a){var s="Top",c="Right",d="Bottom",u="Left",m=(a<3?[s,c,d,u]:[s+u,s+c,d+c,d+u]).map(function(g){return a<2?x+g:"border"+g+x});Tu[a>1?"border"+x:x]=function(g,_,S,b,I){var k,D;if(arguments.length<4)return k=m.map(function(F){return ps(g,F,S)}),D=k.join(" "),D.split(k[0]).length===5?k[0]:D;k=(b+"").split(" "),D={},m.forEach(function(F,E){return D[F]=k[E]=k[E]||k[(E-1)/2|0]}),g.init(_,D,I)}});var Vd={name:"css",register:Nc,targetTest:function(a){return a.style&&a.nodeType},init:function(a,s,c,d,u){var m=this._props,g=a.style,_=c.vars.startAt,S,b,I,k,D,F,E,L,T,M,R,C,U,N,X,K;Ic||Nc(),this.styles=this.styles||Ld(a),K=this.styles.props,this.tween=c;for(E in s)if(E!=="autoRound"&&(b=s[E],!(Wr[E]&&md(E,s,c,d,a,u)))){if(D=typeof b,F=Tu[E],D==="function"&&(b=b.call(c,d,a,u),D=typeof b),D==="string"&&~b.indexOf("random(")&&(b=Mh(b)),F)F(this,a,E,b,c)&&(X=1);else if(E.substr(0,2)==="--")S=(getComputedStyle(a).getPropertyValue(E)+"").trim(),b+="",$s.lastIndex=0,$s.test(S)||(L=or(S),T=or(b)),T?L!==T&&(S=ea(a,E,S,T)+T):L&&(b+=L),this.add(g,"setProperty",S,b,d,u,0,0,E),m.push(E),K.push(E,0,g[E]);else if(D!=="undefined"){if(_&&E in _?(S=typeof _[E]=="function"?_[E].call(c,d,a,u):_[E],Wn(S)&&~S.indexOf("random(")&&(S=Mh(S)),or(S+"")||S==="auto"||(S+=Hr.units[E]||or(ps(a,E))||""),(S+"").charAt(1)==="="&&(S=ps(a,E))):S=ps(a,E),k=parseFloat(S),M=D==="string"&&b.charAt(1)==="="&&b.substr(0,2),M&&(b=b.substr(2)),I=parseFloat(b),E in jo&&(E==="autoAlpha"&&(k===1&&ps(a,"visibility")==="hidden"&&I&&(k=0),K.push("visibility",0,g.visibility),ta(this,g,"visibility",k?"inherit":"hidden",I?"inherit":"hidden",!I)),E!=="scale"&&E!=="transform"&&(E=jo[E],~E.indexOf(",")&&(E=E.split(",")[0]))),R=E in ds,R){if(this.styles.save(E),C||(U=a._gsap,U.renderTransform&&!s.parseTransform||Lh(a,s.parseTransform),N=s.smoothOrigin!==!1&&U.smooth,C=this._pt=new Ar(this._pt,g,pn,0,1,U.renderTransform,U,0,-1),C.dep=1),E==="scale")this._pt=new Ar(this._pt,U,"scaleY",U.scaleY,(M?Il(U.scaleY,M+I):I)-U.scaleY||0,kc),this._pt.u=0,m.push("scaleY",E),E+="X";else if(E==="transformOrigin"){K.push(Lr,0,g[Lr]),b=bg(b),U.svg?Gc(a,b,0,N,0,this):(T=parseFloat(b.split(" ")[2])||0,T!==U.zOrigin&&ta(this,U,"zOrigin",U.zOrigin,T),ta(this,g,E,Mu(S),Mu(b)));continue}else if(E==="svgOrigin"){Gc(a,b,1,N,0,this);continue}else if(E in Nd){Lg(this,U,E,k,M?Il(k,M+b):b);continue}else if(E==="smoothOrigin"){ta(this,U,"smooth",U.smooth,b);continue}else if(E==="force3D"){U[E]=b;continue}else if(E==="transform"){Rg(this,b,a);continue}}else E in g||(E=Gl(E)||E);if(R||(I||I===0)&&(k||k===0)&&!fg.test(b)&&E in g)L=(S+"").substr((k+"").length),I||(I=0),T=or(b)||(E in Hr.units?Hr.units[E]:L),L!==T&&(k=ea(a,E,S,T)),this._pt=new Ar(this._pt,R?U:g,E,k,(M?Il(k,M+I):I)-k,!R&&(T==="px"||E==="zIndex")&&s.autoRound!==!1?mg:kc),this._pt.u=T||0,L!==T&&T!=="%"&&(this._pt.b=S,this._pt.r=pg);else if(E in g)Eg.call(this,a,E,S,M?M+b:b);else if(E in a)this.add(a,E,S||a[E],M?M+b:b,d,u);else if(E!=="parseTransform"){uc(E,b);continue}R||(E in g?K.push(E,0,g[E]):K.push(E,1,S||a[E])),m.push(E)}}X&&wd(this)},render:function(a,s){if(s.tween._time||!Dc())for(var c=s._pt;c;)c.r(a,c.d),c=c._next;else s.styles.revert()},get:ps,aliases:jo,getSetter:function(a,s,c){var d=jo[s];return d&&d.indexOf(",")<0&&(s=d),s in ds&&s!==Lr&&(a._gsap.x||ps(a,"x"))?c&&Ed===c?s==="scale"?_g:yg:(Ed=c||{})&&(s==="scale"?xg:wg):a.style&&!rc(a.style[s])?gg:~s.indexOf("-")?vg:Ac(a,s)},core:{_removeProperty:Xa,_getMatrix:Uc}};Pr.utils.checkPrefix=Gl,Pr.core.getStyleSaver=Ld,function(x,a,s,c){var d=Cr(x+","+a+","+s,function(u){ds[u]=1});Cr(a,function(u){Hr.units[u]="deg",Nd[u]=1}),jo[d[13]]=x+","+a,Cr(c,function(u){var m=u.split(":");jo[m[1]]=d[m[0]]})}("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY"),Cr("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(x){Hr.units[x]="px"}),Pr.registerPlugin(Vd);var Vc=Pr.registerPlugin(Vd)||Pr;Vc.core.Tween;class Og{constructor(a,s=!1){window.mars3d?(this.Cesium=window.mars3d.Cesium,this.DynamicMaskingArr=[],this.DynamicMaskingStyle=[],this.canvasClientWidth=a.viewer.canvas.clientWidth,this.canvasClientHeight=a.viewer.canvas.clientHeight,this.oldSet=new Set,this.tweenMap=new Map,this.isDynamicMasking=s):console.error("未引入指定插件")}add(a,s){let c=a.options.symbol.styleOptions.label.font_size,d=a.options.vectorId,u=Number(c)*1.4,m=Number(c)*1.8,g=a.options.symbol.styleOptions.label,{color:_,outlineColor:S,backgroundColor:b}=g;a.eachGraphic(I=>{I.style.label&&this.DynamicMaskingArr.push({id:d,uid:I.id,position:I._getLablePosition(),label:I.name,width:u*I.name.length,height:m,color:_,outline:s.label.outline,outlineColor:S,background:s.label.background,backgroundColor:b,dynamicMaskingColor:{backgroundColor:this.Cesium.Color.fromCssColorString(s.label.backgroundColor),color:this.Cesium.Color.fromCssColorString(s.label.color),outlineColor:this.Cesium.Color.fromCssColorString(s.label.outlineColor)}})}),this.DynamicMaskingStyle.push({vectorId:a.options.vectorId,outline:s.label.outline,background:s.label.background,color:this.Cesium.Color.fromCssColorString(s.label.color),backgroundColor:this.Cesium.Color.fromCssColorString(s.label.backgroundColor),outlineColor:this.Cesium.Color.fromCssColorString(s.label.outlineColor)}),this.oldSet=new Set,this.tweenMap=new Map}remove(a){this.DynamicMaskingArr=this.DynamicMaskingArr.filter(s=>s.id!==a),this.DynamicMaskingStyle=this.DynamicMaskingStyle.filter(s=>s.vectorId!==a),this.oldSet=new Set,this.tweenMap=new Map}modify(a,s){let{label:c}=s;if(c){let{color:d,outline:u,outlineColor:m,background:g,backgroundColor:_}=c;this.DynamicMaskingArr.forEach(S=>{S.id===a&&(d!=null&&(S.color=this.Cesium.Color.fromCssColorString(d),S.dynamicMaskingColor.color=this.Cesium.Color.fromCssColorString(d)),u!=null&&(S.outline=u),m!=null&&(S.outlineColor=this.Cesium.Color.fromCssColorString(m),S.dynamicMaskingColor.outlineColor=this.Cesium.Color.fromCssColorString(m)),g!=null&&(S.background=g),_!=null&&(S.backgroundColor=this.Cesium.Color.fromCssColorString(_),S.dynamicMaskingColor.backgroundColor=this.Cesium.Color.fromCssColorString(_)))})}}getBoundingRectangle(a){var s=this.Cesium.SceneTransforms.wgs84ToWindowCoordinates(window.map.viewer.scene,a.position);return s!==void 0?new this.Cesium.BoundingRectangle(s.x,s.y,a.width,a.height):new this.Cesium.BoundingRectangle(0,0,1,1)}getNonIntersectingRectangles(){let a=[];for(var s=0;s<this.DynamicMaskingArr.length;s++){let d=!1,u=this.DynamicMaskingArr[s],m,g,_;if(g=this.getBoundingRectangle(u),!(g.x<0||g.x>this.canvasClientWidth||g.y<0||g.y>this.canvasClientHeight))if(a.length===0){a.push(s);continue}else{for(var c=0;c<a.length;c++)if(m=this.DynamicMaskingArr[a[c]],_=this.getBoundingRectangle(m),this.Cesium.Intersect.OUTSIDE!==this.Cesium.BoundingRectangle.intersect(g,_)){d=!0;break}d||a.push(s)}}return new Set(a)}ifShow(){if(this.isDynamicMasking){let s={color:.001,outlineColor:.001,backgroundColor:.001},c={color:1,outlineColor:1,backgroundColor:1},d=this.getNonIntersectingRectangles(),u=new Set([...this.oldSet].filter(g=>!d.has(g))),m=new Set([...d].filter(g=>!this.oldSet.has(g)));for(let g of u)if(this.DynamicMaskingArr[g]){if(this.tweenMap.has(g)){var a=this.tweenMap.get(g);a.kill(),this.tweenMap.delete(g)}var a=Vc.to(c,{duration:.2,color:0,outlineColor:0,backgroundColor:0,onUpdate:()=>{var S,b;var _=this.DynamicMaskingArr[g];_.backgroundColor.alpha=c.backgroundColor,_.color.alpha=c.color,_.outlineColor.alpha=c.outlineColor,(b=(S=window.map.getLayer(_.id,"vectorId"))==null?void 0:S.getGraphicByAttr(_.uid))==null||b.setStyle({label:{show:!1,outline:!1,background:!1}})}});this.tweenMap.set(g,a)}for(let g of m)if(this.DynamicMaskingArr[g]){if(this.tweenMap.has(g)){var a=this.tweenMap.get(g);a.kill(),this.tweenMap.delete(g)}let _=this.DynamicMaskingArr[g],{backgroundColor:S,color:b,outlineColor:I}=_.dynamicMaskingColor;var a=Vc.to(s,{duration:.8+Math.random(),color:b.alpha,outlineColor:I.alpha,backgroundColor:S.alpha,onUpdate:()=>{var D,F;_.backgroundColor.alpha=s.backgroundColor,_.color.alpha=s.color,_.outlineColor.alpha=s.outlineColor,(F=(D=window.map.getLayer(_.id,"vectorId"))==null?void 0:D.getGraphicByAttr(_.uid))==null||F.setStyle({label:{show:!0,outline:_.outline,background:_.background,color:_.color,outlineColor:_.outlineColor,backgroundColor:_.backgroundColor}})}});this.tweenMap.set(g,a)}this.oldSet=d}}switchDynamicMasking(a){if(a)window.map.getLayers().forEach(s=>{var c;if((c=s.options)!=null&&c.vectorId){let{color:d,outlineColor:u,backgroundColor:m}=s.options.symbol.styleOptions.label;s.eachGraphic(g=>{g.setStyle({label:{color:d.withAlpha(0),outlineColor:u.withAlpha(.001),backgroundColor:m.withAlpha(.001),show:!1,background:!1,outline:!1}})})}});else if(this.DynamicMaskingStyle.length>0){let s;this.DynamicMaskingStyle.forEach(c=>{let{color:d,outline:u,outlineColor:m,background:g,backgroundColor:_,vectorId:S}=c;s=window.map.getLayer(S,"vectorId"),s&&s.eachGraphic(b=>{b.setStyle({label:{color:d,outlineColor:m,backgroundColor:_,show:!0,background:g,outline:u}})})})}this.isDynamicMasking=a,window.bimVector.switchDynamicMasking(a)}}const Ig=()=>{window.planClip.clearPlanClip(),window.schemeEvnModify.clearAllEvnModify(),window.bimRotatePoint.stop(),window.bimTrafficSimulation.destruction(),window.bimMapPTV&&window.bimMapPTV.destruction(),window.romStop(),window.complete(),window.bimMapCompare.hide?window.bimMapCompare.hide():window.bimMapCompare.destroyControl(),window.updateEitor({content:""})},Dg=()=>{window.planClip.clearPlanClip(),window.bimRotatePoint.stop(),window.bimTrafficSimulation.destruction(),window.bimMapPTV&&window.bimMapPTV.destruction(),window.romStop(),window.complete(),window.bimMapCompare.hide?window.bimMapCompare.hide():window.bimMapCompare.destroyControl(),window.updateEitor({content:""})},zg=()=>{window.planClip.clearPlanClip(),window.bimRotatePoint.stop(),window.bimTrafficSimulation.destruction(),window.bimMapPTV&&window.bimMapPTV.destruction(),window.romStop(),window.complete(),window.bimMapCompare.hide?window.bimMapCompare.hide():window.bimMapCompare.destroyControl(),window.updateEitor({content:""})},kg=x=>{let a=[];if(x.forEach(s=>{let{id:c}=s,d={id:c,mockData:{nextPage:[],item:[],previousPage:[]}};s.operate.forEach((u,m)=>{let g=Wc(u,d.mockData.nextPage);d.mockData.nextPage=g,d.mockData.item=g,d.mockData.previousPage=[]}),a.push(d)}),a.length>1)for(let s=1;s<a.length;s++){let c=a[s].mockData,d=a[s-1].mockData.item;const u=new Map;d.forEach(m=>{m.type!="rotatePoint"&&m.type!="viewpoint"&&m.type!="roaming"&&m.type!="splitScreen"&&m.type!="planClip"&&m.type!="editor"?u.set(`${m.screenplayId}-${m.type}`,m):a[s].mockData.previousPage.push(m)}),c.nextPage.forEach(m=>{const g=`${m.screenplayId}-${m.type}`;let _={...u.get(g)};if(u.has(g)){if(m.type=="flight")a[s].mockData.previousPage.unshift(u.get(g)),_=m;else{let S={};Object.keys(m).forEach(b=>{if(b!="screenplayId"&&b!="type")if(u.get(g)[b])if(Object.keys(S).length==0&&(S={screenplayId:m.screenplayId,type:m.type}),b=="clip"||b=="flat"){_[b]=Wd(u.get(g)[b],m[b]);let I={screenplayId:m.screenplayId,type:m.type};I[b]={},Object.keys(m[b]).forEach(k=>{u.get(g)[b][k]?I[b][k]=u.get(g)[b][k]:m[b][k]=="true"&&(I[b][k]="false")}),S={...I,...S}}else S[b]=u.get(g)[b],_[b]=m[b];else a[s].mockData.previousPage.some(I=>I.screenplayId===m.screenplayId)||(console.log("未找到操作"),S={...jd(m,b),...S}),_[b]=m[b]}),Object.keys(S).length>0&&a[s].mockData.previousPage.push(S)}u.set(g,_)}else{console.log("未找到操作");let S=jd(m);S&&a[s].mockData.previousPage.push(S),u.set(g,m)}}),a[s].mockData.item=Array.from(u.values())}return console.log("-----------最后输出-----------"),console.log(a),console.log("-----------最后输出-----------"),a},Wc=(x,a=null)=>{let{executionProperty:s,screenplayId:c,property:d,type:u,delay:m,delayTime:g}=x;if((d=="add"||d==!0)&&(d="true"),(d=="remove"||d==!1)&&(d="false"),u=="pit"){let S=window.schemeEvnModify.getModelModifyDataForInitModelById(c);if(S){let b={};b[c]=d,d=b,c=S.modelId,s=S.type}}let _;if(c==""||c=="map")if(c="map",u=="splitScreen"){let{splitScreenMode:S,splitScreenModePercentage:b}=JSON.parse(d);a.push({screenplayId:c,type:u,executionProperty:{splitScreenMode:S,splitScreenModePercentage:b,mapClone:[]}});let{mainScreen:I,secondaryScreen:k}=JSON.parse(x.property);I.forEach(F=>{Wc(F,a)});let D=a.find(F=>F.type=="splitScreen");k.forEach(F=>{Wc(F,D.executionProperty.mapClone)})}else _={screenplayId:c,type:u,executionProperty:d},(s=="clip"||s=="flat")&&(_[s]=d),m&&(_.delay=m),g&&(_.delayTime=g),a&&(u=="flight"?a.unshift(_):a.push(_));else _=a?a.find(S=>S.screenplayId==c):null,_?(s=="clip"||s=="flat"?_[s]?_[s]=Wd(_[s],d):(_[s]=d,_.type="model"):_[s]=d,m&&(_[s].delay=m),g&&(_[s].delayTime=g)):(_={screenplayId:c,type:u},m&&(_.delay=m),g&&(_.delayTime=g),s=="clip"||s=="flat"?(_[s]=d,_.type="model"):_[s]=d,a&&(u=="flight"?a.unshift(_):a.push(_)));return a||_},Wd=(x,a)=>{const s={...x};for(const c in a)a.hasOwnProperty(c)&&(s[c]=a[c]);return s},jd=(x,a="all")=>{let{type:s,show:c,screenplayId:d,overallStaining:u,clip:m,flat:g}=x,_={};if(a=="all")switch(s){case"model":case"shp":case"plot":c&&c=="true"&&(_={screenplayId:d,type:s,show:"false"}),c&&c=="false"&&console.error("map上没有添加此对象"),u&&(_={..._,screenplayId:d,type:s,overallStaining:"false"}),m&&(_={..._,screenplayId:d,type:s,clip:"false"}),g&&(_={..._,screenplayId:d,type:s,flat:"false"});break;case"terrain":_={screenplayId:d,type:s,executionProperty:"true"};break;case"pit":_={screenplayId:d,type:s,executionProperty:"false"};break;case"underground":_={screenplayId:d,type:s,executionProperty:"1"};break}else switch(a){case"clip":case"flat":case"overallStaining":_={screenplayId:d,type:s},_[a]="false";break}return Object.keys(_).length>0?_:null},Bg=(x,a)=>{const s={};return Object.keys(a).forEach(c=>{x.hasOwnProperty(c)&&(s[c]=x[c])}),s},Ng=x=>/^rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*(0|1|0\.\d+)\s*\)$/i.test(x),Fg=x=>{let a={};(x==null?void 0:x.length)>0&&x[0].operate.forEach(s=>{let{executionProperty:c,screenplayId:d,property:u,type:m}=s;(c=="show"||c=="overallStaining")&&(a[d]||(a[d]={type:m}),a[d][u]=c)}),window.map.getLayers().forEach(s=>{if((s.type=="3dtiles"||s.type=="geojson")&&s.options.name!="国界"){let c=s.options.modelId||s.options.vectorId;a[c]?(window.bimModel.editColor(c),window.schemeEvnModify.clearAllModelModify({isClone:!1})):s.remove()}}),window.bimEntity.entityLayer.getGraphicsByAttr().forEach(s=>{s.remove()}),window.bimMapSetUp.undergroundVal(1),window.bimTerrainProvider.show(),window.bimTrafficSimulation.destruction(),window.bimRotatePoint.stop(),window.bimMapPTV.destruction(),window.romStop(),window.complete(),window.planClip.clearPlanClip()};class Ug{constructor(a){Ba(this,"getPositions",a=>a.length>1&&(Array.isArray(a[0])||typeof a[0]=="object")?a:this.getPositions(a[0]));Ba(this,"terrainCutById",(a,s,c)=>{switch(c==null?void 0:c.isClone){case!0:if(this.createTerrainModifyInstanceClone(),!this.terrainClipClone||this.terrainClipClone.list.find(d=>d.id==s))return;this.terrainClipClone.addArea(a.length>1?a:a[0],{id:s});break;case!1:if(!this.terrainClip||this.terrainClip.list.find(d=>d.id==s))return;this.terrainClip.addArea(a.length>1?a:a[0],{id:s});break}});Ba(this,"clearTerrainCutById",(a,s)=>{switch(s==null?void 0:s.isClone){case!0:if(this.createTerrainModifyInstanceClone(),!this.terrainClipClone)return;this.terrainClipClone.removeArea(a);break;case!1:if(!this.terrainClip)return;this.terrainClip.removeArea(a);break}});Ba(this,"terrainFlattenById",(a,s,c,d)=>{switch(d==null?void 0:d.isClone){case!0:if(this.createTerrainModifyInstanceClone(),!this.terrainFlatClone||this.terrainFlatClone.list.find(u=>u.id==c))return;this.terrainFlatClone.addArea(a.length>1?a:a[0],{id:c,height:s});break;case!1:if(!this.terrainFlat||this.terrainFlat.list.find(u=>u.id==c))return;this.terrainFlat.addArea(a.length>1?a:a[0],{id:c,height:s});break}});Ba(this,"clearTerrainFlattenById",(a,s)=>{switch(s==null?void 0:s.isClone){case!0:if(this.createTerrainModifyInstanceClone(),!this.terrainFlatClone)return;this.terrainFlatClone.removeArea(a);break;case!1:if(!this.terrainFlat)return;this.terrainFlat.removeArea(a);break}});this.flattenedEvnModifyData=a,this.modelIdListByModify=[],this.modelIdListByModifyClone=[],this.terrainClip=null,this.terrainFlat=null,this.terrainClipClone=null,this.terrainFlatClone=null,this.createTerrainModifyInstance()}getDataFromFlattenedEvnModifyListById(a){const s=this.flattenedEvnModifyData.find(c=>c.id==a);return s?(s.id=s.id.toString(),s):null}getModelFromMapById(a,s){let c;switch(s==null?void 0:s.isClone){case!0:c=window.mapClone?window.mapClone.mapEx.getLayers():[];break;case!1:c=window.map.getLayers();break}return c.find(u=>u.options.modelId==a)}updateFlattenedEvnModifyData(a){this.flattenedEvnModifyData=a}modelCutById(a,s,c,d){const u=bimModel.queryModel(a,d);if(u&&!u.clip.list.find(m=>m.id==c))switch(u.clip.addArea(s.length>1?s:s[0],{id:c}),d==null?void 0:d.isClone){case!0:this.modelIdListByModifyClone.push(a),this.modelIdListByModifyClone=[...new Set(this.modelIdListByModifyClone)];break;case!1:this.modelIdListByModify.push(a),this.modelIdListByModify=[...new Set(this.modelIdListByModify)];break}}modelFlattenById(a,s,c,d,u){const m=bimModel.queryModel(a,u);if(m&&!m.flat.list.find(g=>g.id==d))switch(m.flat.addArea(s.length>1?s:s[0],{height:c,id:d}),u==null?void 0:u.isClone){case!0:this.modelIdListByModifyClone.push(a),this.modelIdListByModifyClone=[...new Set(this.modelIdListByModifyClone)];break;case!1:this.modelIdListByModify.push(a),this.modelIdListByModify=[...new Set(this.modelIdListByModify)];break}}clearModelCutById(a,s,c){const d=bimModel.queryModel(a,c);if(d)switch(d.clip.removeArea(s),c.isClone){case!0:this.modelIdListByModifyClone=this.modelIdListByModifyClone.filter(u=>u!=a);break;case!1:this.modelIdListByModify=this.modelIdListByModify.filter(u=>u!=a);break}}clearModelFlattenById(a,s,c){const d=bimModel.queryModel(a,c);if(d)switch(d.flat.removeArea(s),c==null?void 0:c.isClone){case!0:this.modelIdListByModifyClone=this.modelIdListByModifyClone.filter(u=>u!=a);break;case!1:this.modelIdListByModify=this.modelIdListByModify.filter(u=>u!=a);break}}createTerrainModifyInstance(){if(window.map.thing.terrainClip)this.terrainClip=window.map.thing.terrainClip;else{const a=new mars3d.thing.TerrainClip({czm:!1,splitNum:30});window.map.addThing(a),this.terrainClip=a}if(window.map.thing.terrainFlat)this.terrainFlat=window.map.thing.terrainFlat;else{const a=new mars3d.thing.TerrainFlat({splitNum:80});window.map.addThing(a),this.terrainFlat=a}}createTerrainModifyInstanceClone(){if(window.mapClone){if(window.mapClone.mapEx.thing.terrainClip)this.terrainClipClone=window.mapClone.mapEx.thing.terrainClip;else{const a=new mars3d.thing.TerrainClip({splitNum:80});window.mapClone.mapEx.addThing(a),this.terrainClipClone=a}if(window.mapClone.mapEx.thing.terrainFlat)this.terrainFlatClone=window.mapClone.mapEx.thing.terrainFlat;else{const a=new mars3d.thing.TerrainFlat({splitNum:80});window.mapClone.mapEx.addThing(a),this.terrainFlatClone=a}}}evnModifyById(a,s){s=arguments[1]||{isClone:!1};const c=this.getDataFromFlattenedEvnModifyListById(a);if(!c)return;const{bimEnvModify:{embsId:d,dataType:u,modifyType:m}}=c;for(let g=0;g<c.bimEnvModifyData.length;g++){const _=this.getPositions(JSON.parse(c.bimEnvModifyData[g].modifyData).coordinates),S=JSON.parse(c.bimEnvModifyData[g].modifyData).depth,b=c.bimEnvModifyData[g].id.toString();u===0&&m===0?this.modelCutById(d,_,b,s):u===0&&m===1?this.modelFlattenById(d,_,S,b,s):u===1&&m===0?this.terrainCutById(_,b,s):u===1&&m===1&&this.terrainFlattenById(_,S,b,s)}}evnModifyByIdAndAddOptionsToStore(a,s){s=arguments[1]||{isClone:!1};const c=this.getDataFromFlattenedEvnModifyListById(a);if(!c)return;const{bimEnvModify:{embsId:d,dataType:u,modifyType:m}}=c;for(let g=0;g<c.bimEnvModifyData.length;g++){const _=this.getPositions(JSON.parse(c.bimEnvModifyData[g].modifyData).coordinates),S=JSON.parse(c.bimEnvModifyData[g].modifyData).depth,b=c.bimEnvModifyData[g].id.toString();u===0&&m===0?this.modelCutById(d,_,b,s):u===0&&m===1?this.modelFlattenById(d,_,S,b,s):u===1&&m===0?this.terrainCutById(_,b,s):u===1&&m===1&&this.terrainFlattenById(_,S,b,s)}}clearEvnModifyById(a,s){s=arguments[1]||{isClone:!1};const c=this.getDataFromFlattenedEvnModifyListById(a);if(!c)return;const{bimEnvModify:{embsId:d,dataType:u,modifyType:m}}=c;for(let g=0;g<c.bimEnvModifyData.length;g++){const _=c.bimEnvModifyData[g].id.toString();u===0&&m===0?this.clearModelCutById(d,_,s):u===0&&m===1?this.clearModelFlattenById(d,_,s):u===1&&m===0?this.clearTerrainCutById(_,s):u===1&&m===1&&this.clearTerrainFlattenById(_,s)}}clearAllModelModify(a){switch(a||(a={isClone:!1}),a.isClone){case!0:this.modelIdListByModifyClone.forEach(s=>{const c=bimModel.queryModel(s,a);c&&(c.clip.clear(),c.flat.clear())}),this.modelIdListByModifyClone=[];break;case!1:this.modelIdListByModify.forEach(s=>{const c=bimModel.queryModel(s,a);c&&(c.clip.clear(),c.flat.clear())}),this.modelIdListByModify=[];break}}clearAllTerrainModify(a){switch(a||(a={isClone:!1}),a.isClone){case!0:window.mapClone||(this.terrainClipClone=null,this.terrainFlatClone=null),this.terrainClipClone&&this.terrainClipClone.clear(),this.terrainFlatClone&&this.terrainFlatClone.clear();break;case!1:this.terrainClip&&this.terrainClip.clear(),this.terrainFlat&&this.terrainFlat.clear();break}}getModelModifyDataForInitModelById(a){const s=this.getDataFromFlattenedEvnModifyListById(a);if(!s)return;const{bimEnvModify:{embsId:c,dataType:d,modifyType:u}}=s;if(this.modelIdListByModify.push(c),d===0&&u===0){const m={modelId:c,type:"clip",area:[]};for(let g=0;g<s.bimEnvModifyData.length;g++){const S={positions:this.getPositions(JSON.parse(s.bimEnvModifyData[g].modifyData).coordinates),id:s.bimEnvModifyData[g].id.toString()};m.area.push(S)}return m}else if(d===0&&u===1){const m={modelId:c,type:"flat",area:[]};for(let g=0;g<s.bimEnvModifyData.length;g++){const _=this.getPositions(JSON.parse(s.bimEnvModifyData[g].modifyData).coordinates),S={id:s.bimEnvModifyData[g].id.toString(),positions:_,height:JSON.parse(s.bimEnvModifyData[g].modifyData).depth};return m.area.push(S),m}}}clearAllEvnModify(){this.clearAllModelModify({isClone:!0}),this.clearAllModelModify({isClone:!1}),this.clearAllTerrainModify({isClone:!0}),this.clearAllTerrainModify({isClone:!1})}destroyTerrainModifyInstance(){this.clearAllTerrainModify({isClone:!0}),this.clearAllTerrainModify({isClone:!1}),this.terrainClip&&window.map.removeThing(this.terrainClip,!0),this.terrainFlat&&window.map.removeThing(this.terrainFlat,!0),this.terrainClipClone&&window.mapClone.mapEx.removeThing(this.terrainClipClone,!0),this.terrainFlatClone&&window.mapClone.mapEx.removeThing(this.terrainFlatClone,!0),this.terrainClip=null,this.terrainFlat=null,this.terrainClipClone=null,this.terrainFlatClone=null}}let Hl=null,ms=null,ia=null;class Gg{constructor(){mars3d&&(this.projectId=parseInt(window.sessionStorage.getItem("nowProjectId")),this.viewPoints=new Array,this.roaming=null)}init(a,s,c){ms=new mars3d.layer.GraphicLayer({isContinued:!0});var d=this;window.map.addLayer(ms),ms.on(mars3d.EventType.drawCreated,function(u){var m=u.graphic.point;console.log(m),s(m),setTimeout(()=>{d.startDrawGraphic()},500)}),ms.on(mars3d.EventType.editStop,function(u){console.log("停止编辑",u)}),ia=c,Hl=new mars3d.layer.GraphicLayer,window.map.addLayer(Hl),a&&(this.viewPoints=a.filter((u,m)=>{if(m%(ia.smooth*1)==0)return u})),this.addGraphicLayer(this.viewPoints)}addDemoGraphic1(a,s){const c=new mars3d.graphic.PolylinePrimitive({positions:a.map(d=>[d.lng,d.lat,d.alt+1e3]),style:{width:10,materialType:mars3d.MaterialType.LineFlow,materialOptions:{color:"red",image:s+"img/line/line-arrow-blue.png",speed:10,repeat:new Cesium.Cartesian2(5,1),mixt:!0}}});Hl.addGraphic(c)}addGraphicLayer(a){var s={};ia.Viewovalue==1?s={camera:{type:"dy",followedX:ia.followedX,followedZ:ia.followedZ},interpolation:!0,interpolationDegree:6,autoMiddleDynamicPosition:!0,interpolationAlgorithm:Cesium.HermitePolynomialApproximation}:ia.Viewovalue==2?s={camera:{type:"gs",pitch:-30,radius:500},interpolation:!0,interpolationDegree:2,clockLoop:!0,path:{width:3,color:Cesium.Color.fromCssColorString("#ff0000").withAlpha(.5)}}:s={camera:{type:"sd",followedZ:ia.followedZ},polyline:{width:3,color:Cesium.Color.fromCssColorString("#ff0000").withAlpha(.5)}},a=a.map(c=>[c.lng,c.lat,c.alt]),a.length,this.fixedRoute=new mars3d.graphic.FixedRoute({name:"贴地表表面漫游",speed:ia.speed,autoStop:!0,positions:a,offsetHeight:1.6,clockLoop:!0,...s}),Hl.addGraphic(this.fixedRoute)}addDemoGraphic(a,s){const c=new mars3d.graphic.BillboardEntity({position:new mars3d.LngLatPoint(a.lng,a.lat,a.alt),style:{width:30,height:32,image:"/img/marker/markffd700.png",scale:1,scaleByDistance:!1,scaleByDistance_far:1e6,scaleByDistance_farValue:.1,scaleByDistance_near:1e3,scaleByDistance_nearValue:1,distanceDisplayCondition:!1,distanceDisplayCondition_far:2e6,distanceDisplayCondition_near:0,clampToGround:!1,visibleDepth:!1,drawShow:!0}});ms.addGraphic(c)}startDrawGraphic(a){ms.startDraw({type:"billboard",style:{width:30,height:32,image:"/img/marker/markffd700.png",scale:1,scaleByDistance:!1,scaleByDistance_far:1e6,scaleByDistance_farValue:.1,scaleByDistance_near:1e3,scaleByDistance_nearValue:1,distanceDisplayCondition:!1,distanceDisplayCondition_far:2e6,distanceDisplayCondition_near:0,clampToGround:!1,visibleDepth:!1,drawShow:!0,classificationType:Cesium.ClassificationType.TERRAIN}}).then(s=>{console.log(123)})}start(){console.log(this.fixedRoute),this.fixedRoute&&(this.fixedRoute.start(),window.map.scene.screenSpaceCameraController.enableCollisionDetection=!1)}pause(){this.fixedRoute&&this.fixedRoute.pause()}resume(){this.fixedRoute&&this.fixedRoute.proceed()}stop(){this.fixedRoute&&this.fixedRoute.stop()}remove(){this.fixedRoute&&this.fixedRoute.stop(),window.map.removeThing(this.roaming,!0),window.map.removeLayer(Hl,!0),window.map.removeLayer(ms,!0),this.viewPoints=[],window.map.scene.screenSpaceCameraController.enableCollisionDetection=!0}removeCameraRoute(){Hl.clear(),ms.clear()}removegraphicLayerpoint(){ms.clear()}}class Hg{constructor(a){window.mars3d&&(this.beginDate="",this.endDate="",this.trafficSimulationLayer,this.trafficSimulationArr=[],this.style={width:4,materialType:window.mars3d.MaterialType.LineFlow,materialOptions:{color:"#4ac2ff",image:a+"img/textures/line-arrow-right.png",repeat_x:20,repeat_y:1,speed:20},clampToGround:!1,allowDrillPick:!1},this.vehicleSum=100,this.automobileList=[{url:a+"gltf/cart/suv.gltf"},{url:a+"gltf/cart/red_car.gltf"},{url:a+"gltf/cart/benchi3.gltf"},{url:a+"gltf/cart/suv.gltf"},{url:a+"gltf/cart/red_car.gltf"},{url:a+"gltf/cart/benchi3.gltf"},{url:a+"gltf/cart/aodi1.gltf"},{url:a+"gltf/cart/kache3.gltf"},{url:a+"gltf/cart/bus2.gltf"},{url:a+"gltf/cart/jiaobanche.glb"}],this._czmlLayer,this._czmlLayerArr=[])}init(a){this.trafficSimulationLayer=new window.mars3d.layer.GraphicLayer({temporaryLayer:"trafficSimulation"}),window.map.addLayer(this.trafficSimulationLayer),window.map.bimMapEdit="1",a&&(this._czmlLayerArr=a)}addLine(a){let s=a;return new Promise(c=>{this.trafficSimulationLayer.startDraw({type:"polylineP",attr:{trafficSimulationId:s},style:{...this.style}}).then(d=>{c({id:s,pointSet:d.coordinates,speed:45,interval:1})})})}initLine(a){let s;a.forEach(c=>{let{id:d}=c;s=new window.mars3d.graphic.PolylinePrimitive({positions:c.pointSet,attr:{trafficSimulationId:d},style:{...this.style}}),this.trafficSimulationLayer.addGraphic(s)})}positionLine(a){let s=this.queryTrafficSimulationLine(a);s&&s.flyTo({scale:2})}deleteLine(a){let s=this.queryTrafficSimulationLine(a);s&&s.remove()}queryTrafficSimulationArr(){return this.trafficSimulationArr}queryTrafficSimulationLine(a){if(this.trafficSimulationLayer)return this.trafficSimulationLayer.getGraphicByAttr(a,"trafficSimulationId")}editTrafficSimulationLine(a,s=!0){let c=this.queryTrafficSimulationLine(a);s?(c.setStyle({materialOptions:{color:"#ff0000"}}),c.startEditing()):(c.setStyle({materialOptions:{color:"#4ac2ff"}}),c.stopEditing())}queryCzml(a){return this._czmlLayerArr.length==0?!1:this._czmlLayerArr.find(s=>s.id==a)}start(a="add"){this.destruction(),this.beginDate=new Date().toISOString();let s=new Date,c=s.getDate();s.setDate(c+1),this.endDate=s.toISOString(),console.log(this.queryCzml(a)),this.queryCzml(a)?this.trafficSimulationArr=JSON.parse(this.queryCzml(a).route):this.trafficSimulationArr=[],this.processingData(a)}selected(){this._czmlLayer&&this._czmlLayer.flyTo()}destruction(){this.trafficSimulationLayer.clear(),this.trafficSimulationLayer.remove(),this._czmlLayer&&(this._czmlLayer.clear(),this._czmlLayer.remove()),window.map.bimMapEdit="0"}processingData(a){let s=[{version:"1.0",id:"document",clock:{interval:`${this.beginDate}/${this.endDate}`,currentTime:this.beginDate,multiplier:1},style:{distanceDisplayCondition:!0,distanceDisplayCondition_far:1e6,distanceDisplayCondition_near:0}}],c=[],d=JSON.parse(JSON.stringify(this.trafficSimulationArr)),u=0;d.forEach((g,_)=>{let S=0,b=0,{pointSet:I,interval:k,speed:D}=g;for(let F=1;F<=this.vehicleSum;F++){let E=JSON.parse(JSON.stringify(I));E.forEach((T,M)=>{M>0&&(u=parseFloat((this.disTance(T,E[M-1].slice(1))/D).toFixed(2)),S+=u),M==0&&(S=b),T.unshift(S)}),b+=k,c=E.reduce((T,M)=>T.concat(M));let L={name:`${_}-${F}`,availability:`${this.beginDate}/${this.endDate}`,orientation:{velocityReference:"#position"},position:{epoch:this.beginDate,cartographicDegrees:c},style:{minimumPixelSize:100,distanceDisplayCondition:!0,distanceDisplayCondition_near:0,distanceDisplayCondition_far:1300,distanceDisplayPoint:{color:"#00ff00",pixelSize:8}},model:{show:!0,gltf:this.randomVehicle(),heightReference:window.Cesium.HeightReference.CLAMP_TO_GROUND,clampToGround:!0,scale:.6,minimumPixelSize:100,maximumScale:1.5}};s.push(L)}});let m={name:"交通模拟",czmlId:a,data:s,autoUpdateClock:!1};this._czmlLayer=new window.mars3d.layer.CzmlLayer(m),window.map.addLayer(this._czmlLayer)}disTance(a,s){let c,d,u;return c=window.Cesium.Cartesian3.fromDegrees(...a),d=window.Cesium.Cartesian3.fromDegrees(...s),u=window.Cesium.Cartesian3.distance(c,d),u}randomVehicle(){let a=Math.round(Math.random()*(this.automobileList.length-1));return this.automobileList[a].url}}const Vg=[Tf,Ef],Wg={continuation:null,mapModali:null,install(x){if(Vg.forEach((m,g)=>{x.component(m.name,m)}),this.continuation){x.config.globalProperties.$continuation=this.continuation;return}let a=oi.createApp(Mf),s=document.createElement("div"),c=document.body;if(c.appendChild(s),this.loading=a.mount(s),x.config.globalProperties.$loading=this.loading,window.$continuation=this.loading,this.mapModali){x.config.globalProperties.$mapModali=this.mapModali;return}let d=oi.createApp(Sf),u=document.createElement("div");c.appendChild(u),this.mapModali=d.mount(u),x.config.globalProperties.$mapModali=this.mapModali,window.$mapModali=this.mapModali}};Pi.BimBackgroundPlate=Ef,Pi.BimCutscenes=Mf,Pi.BimElevationImage=um,Pi.BimEntity=fm,Pi.BimModel=sm,Pi.BimModify=Ug,Pi.BimTerrainProvider=hm,Pi.BimTrafficSimulation=Hg,Pi.BimVector=lm,Pi.Bimroaming=Gg,Pi.Button=Tf,Pi.ChbimPlugins=Wg,Pi.DynamicMasking=Og,Pi.MapModali=Sf,Pi.PanoramicView=vm,Pi.ViewShed=cm,Pi.getSameKeyData=Bg,Pi.init=Ig,Pi.initMap=Fg,Pi.isValidRGBA=Ng,Pi.nextPage=zg,Pi.operateMapData=kg,Pi.previousPage=Dg,Object.defineProperty(Pi,Symbol.toStringTag,{value:"Module"})});
|
|
2702
|
+
*/var Sd,Qs,Nl,Ic,Wa,Ed,Dc,ug=function(){return typeof window<"u"},ds={},ja=180/Math.PI,Fl=Math.PI/180,Ul=Math.atan2,bd=1e8,zc=/([A-Z])/g,cg=/(left|right|width|margin|padding|x)/i,fg=/[\s,\(]\S/,jo={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},kc=function(a,s){return s.set(s.t,s.p,Math.round((s.s+s.c*a)*1e4)/1e4+s.u,s)},dg=function(a,s){return s.set(s.t,s.p,a===1?s.e:Math.round((s.s+s.c*a)*1e4)/1e4+s.u,s)},pg=function(a,s){return s.set(s.t,s.p,a?Math.round((s.s+s.c*a)*1e4)/1e4+s.u:s.b,s)},mg=function(a,s){var c=s.s+s.c*a;s.set(s.t,s.p,~~(c+(c<0?-.5:.5))+s.u,s)},Cd=function(a,s){return s.set(s.t,s.p,a?s.e:s.b,s)},Ad=function(a,s){return s.set(s.t,s.p,a!==1?s.b:s.e,s)},gg=function(a,s,c){return a.style[s]=c},vg=function(a,s,c){return a.style.setProperty(s,c)},yg=function(a,s,c){return a._gsap[s]=c},_g=function(a,s,c){return a._gsap.scaleX=a._gsap.scaleY=c},xg=function(a,s,c,d,u){var m=a._gsap;m.scaleX=m.scaleY=c,m.renderTransform(u,m)},wg=function(a,s,c,d,u){var m=a._gsap;m[s]=c,m.renderTransform(u,m)},pn="transform",Lr=pn+"Origin",Tg=function x(a,s){var c=this,d=this.target,u=d.style,m=d._gsap;if(a in ds&&u){if(this.tfm=this.tfm||{},a!=="transform")a=jo[a]||a,~a.indexOf(",")?a.split(",").forEach(function(g){return c.tfm[g]=ps(d,g)}):this.tfm[a]=m.x?m[a]:ps(d,a),a===Lr&&(this.tfm.zOrigin=m.zOrigin);else return jo.transform.split(",").forEach(function(g){return x.call(c,g,s)});if(this.props.indexOf(pn)>=0)return;m.svg&&(this.svgo=d.getAttribute("data-svg-origin"),this.props.push(Lr,s,"")),a=pn}(u||s)&&this.props.push(a,s,u[a])},Pd=function(a){a.translate&&(a.removeProperty("translate"),a.removeProperty("scale"),a.removeProperty("rotate"))},Mg=function(){var a=this.props,s=this.target,c=s.style,d=s._gsap,u,m;for(u=0;u<a.length;u+=3)a[u+1]?s[a[u]]=a[u+2]:a[u+2]?c[a[u]]=a[u+2]:c.removeProperty(a[u].substr(0,2)==="--"?a[u]:a[u].replace(zc,"-$1").toLowerCase());if(this.tfm){for(m in this.tfm)d[m]=this.tfm[m];d.svg&&(d.renderTransform(),s.setAttribute("data-svg-origin",this.svgo||"")),u=Dc(),(!u||!u.isStart)&&!c[pn]&&(Pd(c),d.zOrigin&&c[Lr]&&(c[Lr]+=" "+d.zOrigin+"px",d.zOrigin=0,d.renderTransform()),d.uncache=1)}},Ld=function(a,s){var c={target:a,props:[],revert:Mg,save:Tg};return a._gsap||Pr.core.getCache(a),s&&s.split(",").forEach(function(d){return c.save(d)}),c},Rd,Bc=function(a,s){var c=Qs.createElementNS?Qs.createElementNS((s||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),a):Qs.createElement(a);return c&&c.style?c:Qs.createElement(a)},Xo=function x(a,s,c){var d=getComputedStyle(a);return d[s]||d.getPropertyValue(s.replace(zc,"-$1").toLowerCase())||d.getPropertyValue(s)||!c&&x(a,Gl(s)||s,1)||""},Od="O,Moz,ms,Ms,Webkit".split(","),Gl=function(a,s,c){var d=s||Wa,u=d.style,m=5;if(a in u&&!c)return a;for(a=a.charAt(0).toUpperCase()+a.substr(1);m--&&!(Od[m]+a in u););return m<0?null:(m===3?"ms":m>=0?Od[m]:"")+a},Nc=function(){ug()&&window.document&&(Sd=window,Qs=Sd.document,Nl=Qs.documentElement,Wa=Bc("div")||{style:{}},Bc("div"),pn=Gl(pn),Lr=pn+"Origin",Wa.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",Rd=!!Gl("perspective"),Dc=Pr.core.reverting,Ic=1)},Fc=function x(a){var s=Bc("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),c=this.parentNode,d=this.nextSibling,u=this.style.cssText,m;if(Nl.appendChild(s),s.appendChild(this),this.style.display="block",a)try{m=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=x}catch{}else this._gsapBBox&&(m=this._gsapBBox());return c&&(d?c.insertBefore(this,d):c.appendChild(this)),Nl.removeChild(s),this.style.cssText=u,m},Id=function(a,s){for(var c=s.length;c--;)if(a.hasAttribute(s[c]))return a.getAttribute(s[c])},Dd=function(a){var s;try{s=a.getBBox()}catch{s=Fc.call(a,!0)}return s&&(s.width||s.height)||a.getBBox===Fc||(s=Fc.call(a,!0)),s&&!s.width&&!s.x&&!s.y?{x:+Id(a,["x","cx","x1"])||0,y:+Id(a,["y","cy","y1"])||0,width:0,height:0}:s},zd=function(a){return!!(a.getCTM&&(!a.parentNode||a.ownerSVGElement)&&Dd(a))},Xa=function(a,s){if(s){var c=a.style,d;s in ds&&s!==Lr&&(s=pn),c.removeProperty?(d=s.substr(0,2),(d==="ms"||s.substr(0,6)==="webkit")&&(s="-"+s),c.removeProperty(d==="--"?s:s.replace(zc,"-$1").toLowerCase())):c.removeAttribute(s)}},ta=function(a,s,c,d,u,m){var g=new Ar(a._pt,s,c,0,1,m?Ad:Cd);return a._pt=g,g.b=d,g.e=u,a._props.push(c),g},kd={deg:1,rad:1,turn:1},Sg={grid:1,flex:1},ea=function x(a,s,c,d){var u=parseFloat(c)||0,m=(c+"").trim().substr((u+"").length)||"px",g=Wa.style,_=cg.test(s),S=a.tagName.toLowerCase()==="svg",b=(S?"client":"offset")+(_?"Width":"Height"),I=100,k=d==="px",D=d==="%",F,E,L,T;if(d===m||!u||kd[d]||kd[m])return u;if(m!=="px"&&!k&&(u=x(a,s,c,"px")),T=a.getCTM&&zd(a),(D||m==="%")&&(ds[s]||~s.indexOf("adius")))return F=T?a.getBBox()[_?"width":"height"]:a[b],Rn(D?u/F*I:u/100*F);if(g[_?"width":"height"]=I+(k?m:d),E=~s.indexOf("adius")||d==="em"&&a.appendChild&&!S?a:a.parentNode,T&&(E=(a.ownerSVGElement||{}).parentNode),(!E||E===Qs||!E.appendChild)&&(E=Qs.body),L=E._gsap,L&&D&&L.width&&_&&L.time===Xr.time&&!L.uncache)return Rn(u/L.width*I);if(D&&(s==="height"||s==="width")){var M=a.style[s];a.style[s]=I+d,F=a[b],M?a.style[s]=M:Xa(a,s)}else(D||m==="%")&&!Sg[Xo(E,"display")]&&(g.position=Xo(a,"position")),E===a&&(g.position="static"),E.appendChild(Wa),F=Wa[b],E.removeChild(Wa),g.position="absolute";return _&&D&&(L=Na(E),L.time=Xr.time,L.width=E[b]),Rn(k?F*u/I:F&&u?I/F*u:0)},ps=function(a,s,c,d){var u;return Ic||Nc(),s in jo&&s!=="transform"&&(s=jo[s],~s.indexOf(",")&&(s=s.split(",")[0])),ds[s]&&s!=="transform"?(u=Lh(a,d),u=s!=="transformOrigin"?u[s]:u.svg?u.origin:Mu(Xo(a,Lr))+" "+u.zOrigin+"px"):(u=a.style[s],(!u||u==="auto"||d||~(u+"").indexOf("calc("))&&(u=Tu[s]&&Tu[s](a,s,c)||Xo(a,s)||Uf(a,s)||(s==="opacity"?1:0))),c&&!~(u+"").trim().indexOf(" ")?ea(a,s,u,c)+c:u},Eg=function(a,s,c,d){if(!c||c==="none"){var u=Gl(s,a,1),m=u&&Xo(a,u,1);m&&m!==c?(s=u,c=m):s==="borderColor"&&(c=Xo(a,"borderTopColor"))}var g=new Ar(this._pt,a.style,s,0,1,xd),_=0,S=0,b,I,k,D,F,E,L,T,M,R,C,U;if(g.b=c,g.e=d,c+="",d+="",d==="auto"&&(E=a.style[s],a.style[s]=d,d=Xo(a,s)||d,E?a.style[s]=E:Xa(a,s)),b=[c,d],ud(b),c=b[0],d=b[1],k=c.match(Ol)||[],U=d.match(Ol)||[],U.length){for(;I=Ol.exec(d);)L=I[0],M=d.substring(_,I.index),F?F=(F+1)%5:(M.substr(-5)==="rgba("||M.substr(-5)==="hsla(")&&(F=1),L!==(E=k[S++]||"")&&(D=parseFloat(E)||0,C=E.substr((D+"").length),L.charAt(1)==="="&&(L=Il(D,L)+C),T=parseFloat(L),R=L.substr((T+"").length),_=Ol.lastIndex-R.length,R||(R=R||Hr.units[s]||C,_===d.length&&(d+=R,g.e+=R)),C!==R&&(D=ea(a,s,E,R)||0),g._pt={_next:g._pt,p:M||S===1?M:",",s:D,c:T-D,m:F&&F<4||s==="zIndex"?Math.round:0});g.c=_<d.length?d.substring(_,d.length):""}else g.r=s==="display"&&d==="none"?Ad:Cd;return If.test(d)&&(g.e=0),this._pt=g,g},Bd={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},bg=function(a){var s=a.split(" "),c=s[0],d=s[1]||"50%";return(c==="top"||c==="bottom"||d==="left"||d==="right")&&(a=c,c=d,d=a),s[0]=Bd[c]||c,s[1]=Bd[d]||d,s.join(" ")},Cg=function(a,s){if(s.tween&&s.tween._time===s.tween._dur){var c=s.t,d=c.style,u=s.u,m=c._gsap,g,_,S;if(u==="all"||u===!0)d.cssText="",_=1;else for(u=u.split(","),S=u.length;--S>-1;)g=u[S],ds[g]&&(_=1,g=g==="transformOrigin"?Lr:pn),Xa(c,g);_&&(Xa(c,pn),m&&(m.svg&&c.removeAttribute("transform"),Lh(c,1),m.uncache=1,Pd(d)))}},Tu={clearProps:function(a,s,c,d,u){if(u.data!=="isFromStart"){var m=a._pt=new Ar(a._pt,s,c,0,0,Cg);return m.u=d,m.pr=-10,m.tween=u,a._props.push(c),1}}},Ph=[1,0,0,1,0,0],Nd={},Fd=function(a){return a==="matrix(1, 0, 0, 1, 0, 0)"||a==="none"||!a},Ud=function(a){var s=Xo(a,pn);return Fd(s)?Ph:s.substr(7).match(Of).map(Rn)},Uc=function(a,s){var c=a._gsap||Na(a),d=a.style,u=Ud(a),m,g,_,S;return c.svg&&a.getAttribute("transform")?(_=a.transform.baseVal.consolidate().matrix,u=[_.a,_.b,_.c,_.d,_.e,_.f],u.join(",")==="1,0,0,1,0,0"?Ph:u):(u===Ph&&!a.offsetParent&&a!==Nl&&!c.svg&&(_=d.display,d.display="block",m=a.parentNode,(!m||!a.offsetParent)&&(S=1,g=a.nextElementSibling,Nl.appendChild(a)),u=Ud(a),_?d.display=_:Xa(a,"display"),S&&(g?m.insertBefore(a,g):m?m.appendChild(a):Nl.removeChild(a))),s&&u.length>6?[u[0],u[1],u[4],u[5],u[12],u[13]]:u)},Gc=function(a,s,c,d,u,m){var g=a._gsap,_=u||Uc(a,!0),S=g.xOrigin||0,b=g.yOrigin||0,I=g.xOffset||0,k=g.yOffset||0,D=_[0],F=_[1],E=_[2],L=_[3],T=_[4],M=_[5],R=s.split(" "),C=parseFloat(R[0])||0,U=parseFloat(R[1])||0,N,X,K,Z;c?_!==Ph&&(X=D*L-F*E)&&(K=C*(L/X)+U*(-E/X)+(E*M-L*T)/X,Z=C*(-F/X)+U*(D/X)-(D*M-F*T)/X,C=K,U=Z):(N=Dd(a),C=N.x+(~R[0].indexOf("%")?C/100*N.width:C),U=N.y+(~(R[1]||R[0]).indexOf("%")?U/100*N.height:U)),d||d!==!1&&g.smooth?(T=C-S,M=U-b,g.xOffset=I+(T*D+M*E)-T,g.yOffset=k+(T*F+M*L)-M):g.xOffset=g.yOffset=0,g.xOrigin=C,g.yOrigin=U,g.smooth=!!d,g.origin=s,g.originIsAbsolute=!!c,a.style[Lr]="0px 0px",m&&(ta(m,g,"xOrigin",S,C),ta(m,g,"yOrigin",b,U),ta(m,g,"xOffset",I,g.xOffset),ta(m,g,"yOffset",k,g.yOffset)),a.setAttribute("data-svg-origin",C+" "+U)},Lh=function(a,s){var c=a._gsap||new pd(a);if("x"in c&&!s&&!c.uncache)return c;var d=a.style,u=c.scaleX<0,m="px",g="deg",_=getComputedStyle(a),S=Xo(a,Lr)||"0",b,I,k,D,F,E,L,T,M,R,C,U,N,X,K,Z,ct,Rt,tt,_t,G,Pt,Et,At,ce,re,Ft,It,Nt,Pe,pe,Wt;return b=I=k=E=L=T=M=R=C=0,D=F=1,c.svg=!!(a.getCTM&&zd(a)),_.translate&&((_.translate!=="none"||_.scale!=="none"||_.rotate!=="none")&&(d[pn]=(_.translate!=="none"?"translate3d("+(_.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+(_.rotate!=="none"?"rotate("+_.rotate+") ":"")+(_.scale!=="none"?"scale("+_.scale.split(" ").join(",")+") ":"")+(_[pn]!=="none"?_[pn]:"")),d.scale=d.rotate=d.translate="none"),X=Uc(a,c.svg),c.svg&&(c.uncache?(ce=a.getBBox(),S=c.xOrigin-ce.x+"px "+(c.yOrigin-ce.y)+"px",At=""):At=!s&&a.getAttribute("data-svg-origin"),Gc(a,At||S,!!At||c.originIsAbsolute,c.smooth!==!1,X)),U=c.xOrigin||0,N=c.yOrigin||0,X!==Ph&&(Rt=X[0],tt=X[1],_t=X[2],G=X[3],b=Pt=X[4],I=Et=X[5],X.length===6?(D=Math.sqrt(Rt*Rt+tt*tt),F=Math.sqrt(G*G+_t*_t),E=Rt||tt?Ul(tt,Rt)*ja:0,M=_t||G?Ul(_t,G)*ja+E:0,M&&(F*=Math.abs(Math.cos(M*Fl))),c.svg&&(b-=U-(U*Rt+N*_t),I-=N-(U*tt+N*G))):(Wt=X[6],Pe=X[7],Ft=X[8],It=X[9],Nt=X[10],pe=X[11],b=X[12],I=X[13],k=X[14],K=Ul(Wt,Nt),L=K*ja,K&&(Z=Math.cos(-K),ct=Math.sin(-K),At=Pt*Z+Ft*ct,ce=Et*Z+It*ct,re=Wt*Z+Nt*ct,Ft=Pt*-ct+Ft*Z,It=Et*-ct+It*Z,Nt=Wt*-ct+Nt*Z,pe=Pe*-ct+pe*Z,Pt=At,Et=ce,Wt=re),K=Ul(-_t,Nt),T=K*ja,K&&(Z=Math.cos(-K),ct=Math.sin(-K),At=Rt*Z-Ft*ct,ce=tt*Z-It*ct,re=_t*Z-Nt*ct,pe=G*ct+pe*Z,Rt=At,tt=ce,_t=re),K=Ul(tt,Rt),E=K*ja,K&&(Z=Math.cos(K),ct=Math.sin(K),At=Rt*Z+tt*ct,ce=Pt*Z+Et*ct,tt=tt*Z-Rt*ct,Et=Et*Z-Pt*ct,Rt=At,Pt=ce),L&&Math.abs(L)+Math.abs(E)>359.9&&(L=E=0,T=180-T),D=Rn(Math.sqrt(Rt*Rt+tt*tt+_t*_t)),F=Rn(Math.sqrt(Et*Et+Wt*Wt)),K=Ul(Pt,Et),M=Math.abs(K)>2e-4?K*ja:0,C=pe?1/(pe<0?-pe:pe):0),c.svg&&(At=a.getAttribute("transform"),c.forceCSS=a.setAttribute("transform","")||!Fd(Xo(a,pn)),At&&a.setAttribute("transform",At))),Math.abs(M)>90&&Math.abs(M)<270&&(u?(D*=-1,M+=E<=0?180:-180,E+=E<=0?180:-180):(F*=-1,M+=M<=0?180:-180)),s=s||c.uncache,c.x=b-((c.xPercent=b&&(!s&&c.xPercent||(Math.round(a.offsetWidth/2)===Math.round(-b)?-50:0)))?a.offsetWidth*c.xPercent/100:0)+m,c.y=I-((c.yPercent=I&&(!s&&c.yPercent||(Math.round(a.offsetHeight/2)===Math.round(-I)?-50:0)))?a.offsetHeight*c.yPercent/100:0)+m,c.z=k+m,c.scaleX=Rn(D),c.scaleY=Rn(F),c.rotation=Rn(E)+g,c.rotationX=Rn(L)+g,c.rotationY=Rn(T)+g,c.skewX=M+g,c.skewY=R+g,c.transformPerspective=C+m,(c.zOrigin=parseFloat(S.split(" ")[2])||!s&&c.zOrigin||0)&&(d[Lr]=Mu(S)),c.xOffset=c.yOffset=0,c.force3D=Hr.force3D,c.renderTransform=c.svg?Pg:Rd?Gd:Ag,c.uncache=0,c},Mu=function(a){return(a=a.split(" "))[0]+" "+a[1]},Hc=function(a,s,c){var d=or(s);return Rn(parseFloat(s)+parseFloat(ea(a,"x",c+"px",d)))+d},Ag=function(a,s){s.z="0px",s.rotationY=s.rotationX="0deg",s.force3D=0,Gd(a,s)},qa="0deg",Rh="0px",Ya=") ",Gd=function(a,s){var c=s||this,d=c.xPercent,u=c.yPercent,m=c.x,g=c.y,_=c.z,S=c.rotation,b=c.rotationY,I=c.rotationX,k=c.skewX,D=c.skewY,F=c.scaleX,E=c.scaleY,L=c.transformPerspective,T=c.force3D,M=c.target,R=c.zOrigin,C="",U=T==="auto"&&a&&a!==1||T===!0;if(R&&(I!==qa||b!==qa)){var N=parseFloat(b)*Fl,X=Math.sin(N),K=Math.cos(N),Z;N=parseFloat(I)*Fl,Z=Math.cos(N),m=Hc(M,m,X*Z*-R),g=Hc(M,g,-Math.sin(N)*-R),_=Hc(M,_,K*Z*-R+R)}L!==Rh&&(C+="perspective("+L+Ya),(d||u)&&(C+="translate("+d+"%, "+u+"%) "),(U||m!==Rh||g!==Rh||_!==Rh)&&(C+=_!==Rh||U?"translate3d("+m+", "+g+", "+_+") ":"translate("+m+", "+g+Ya),S!==qa&&(C+="rotate("+S+Ya),b!==qa&&(C+="rotateY("+b+Ya),I!==qa&&(C+="rotateX("+I+Ya),(k!==qa||D!==qa)&&(C+="skew("+k+", "+D+Ya),(F!==1||E!==1)&&(C+="scale("+F+", "+E+Ya),M.style[pn]=C||"translate(0, 0)"},Pg=function(a,s){var c=s||this,d=c.xPercent,u=c.yPercent,m=c.x,g=c.y,_=c.rotation,S=c.skewX,b=c.skewY,I=c.scaleX,k=c.scaleY,D=c.target,F=c.xOrigin,E=c.yOrigin,L=c.xOffset,T=c.yOffset,M=c.forceCSS,R=parseFloat(m),C=parseFloat(g),U,N,X,K,Z;_=parseFloat(_),S=parseFloat(S),b=parseFloat(b),b&&(b=parseFloat(b),S+=b,_+=b),_||S?(_*=Fl,S*=Fl,U=Math.cos(_)*I,N=Math.sin(_)*I,X=Math.sin(_-S)*-k,K=Math.cos(_-S)*k,S&&(b*=Fl,Z=Math.tan(S-b),Z=Math.sqrt(1+Z*Z),X*=Z,K*=Z,b&&(Z=Math.tan(b),Z=Math.sqrt(1+Z*Z),U*=Z,N*=Z)),U=Rn(U),N=Rn(N),X=Rn(X),K=Rn(K)):(U=I,K=k,N=X=0),(R&&!~(m+"").indexOf("px")||C&&!~(g+"").indexOf("px"))&&(R=ea(D,"x",m,"px"),C=ea(D,"y",g,"px")),(F||E||L||T)&&(R=Rn(R+F-(F*U+E*X)+L),C=Rn(C+E-(F*N+E*K)+T)),(d||u)&&(Z=D.getBBox(),R=Rn(R+d/100*Z.width),C=Rn(C+u/100*Z.height)),Z="matrix("+U+","+N+","+X+","+K+","+R+","+C+")",D.setAttribute("transform",Z),M&&(D.style[pn]=Z)},Lg=function(a,s,c,d,u){var m=360,g=Wn(u),_=parseFloat(u)*(g&&~u.indexOf("rad")?ja:1),S=_-d,b=d+S+"deg",I,k;return g&&(I=u.split("_")[1],I==="short"&&(S%=m,S!==S%(m/2)&&(S+=S<0?m:-m)),I==="cw"&&S<0?S=(S+m*bd)%m-~~(S/m)*m:I==="ccw"&&S>0&&(S=(S-m*bd)%m-~~(S/m)*m)),a._pt=k=new Ar(a._pt,s,c,d,S,dg),k.e=b,k.u="deg",a._props.push(c),k},Hd=function(a,s){for(var c in s)a[c]=s[c];return a},Rg=function(a,s,c){var d=Hd({},c._gsap),u="perspective,force3D,transformOrigin,svgOrigin",m=c.style,g,_,S,b,I,k,D,F;d.svg?(S=c.getAttribute("transform"),c.setAttribute("transform",""),m[pn]=s,g=Lh(c,1),Xa(c,pn),c.setAttribute("transform",S)):(S=getComputedStyle(c)[pn],m[pn]=s,g=Lh(c,1),m[pn]=S);for(_ in ds)S=d[_],b=g[_],S!==b&&u.indexOf(_)<0&&(D=or(S),F=or(b),I=D!==F?ea(c,_,S,F):parseFloat(S),k=parseFloat(b),a._pt=new Ar(a._pt,g,_,I,k-I,kc),a._pt.u=F||0,a._props.push(_));Hd(g,d)};Cr("padding,margin,Width,Radius",function(x,a){var s="Top",c="Right",d="Bottom",u="Left",m=(a<3?[s,c,d,u]:[s+u,s+c,d+c,d+u]).map(function(g){return a<2?x+g:"border"+g+x});Tu[a>1?"border"+x:x]=function(g,_,S,b,I){var k,D;if(arguments.length<4)return k=m.map(function(F){return ps(g,F,S)}),D=k.join(" "),D.split(k[0]).length===5?k[0]:D;k=(b+"").split(" "),D={},m.forEach(function(F,E){return D[F]=k[E]=k[E]||k[(E-1)/2|0]}),g.init(_,D,I)}});var Vd={name:"css",register:Nc,targetTest:function(a){return a.style&&a.nodeType},init:function(a,s,c,d,u){var m=this._props,g=a.style,_=c.vars.startAt,S,b,I,k,D,F,E,L,T,M,R,C,U,N,X,K;Ic||Nc(),this.styles=this.styles||Ld(a),K=this.styles.props,this.tween=c;for(E in s)if(E!=="autoRound"&&(b=s[E],!(Wr[E]&&md(E,s,c,d,a,u)))){if(D=typeof b,F=Tu[E],D==="function"&&(b=b.call(c,d,a,u),D=typeof b),D==="string"&&~b.indexOf("random(")&&(b=Mh(b)),F)F(this,a,E,b,c)&&(X=1);else if(E.substr(0,2)==="--")S=(getComputedStyle(a).getPropertyValue(E)+"").trim(),b+="",$s.lastIndex=0,$s.test(S)||(L=or(S),T=or(b)),T?L!==T&&(S=ea(a,E,S,T)+T):L&&(b+=L),this.add(g,"setProperty",S,b,d,u,0,0,E),m.push(E),K.push(E,0,g[E]);else if(D!=="undefined"){if(_&&E in _?(S=typeof _[E]=="function"?_[E].call(c,d,a,u):_[E],Wn(S)&&~S.indexOf("random(")&&(S=Mh(S)),or(S+"")||S==="auto"||(S+=Hr.units[E]||or(ps(a,E))||""),(S+"").charAt(1)==="="&&(S=ps(a,E))):S=ps(a,E),k=parseFloat(S),M=D==="string"&&b.charAt(1)==="="&&b.substr(0,2),M&&(b=b.substr(2)),I=parseFloat(b),E in jo&&(E==="autoAlpha"&&(k===1&&ps(a,"visibility")==="hidden"&&I&&(k=0),K.push("visibility",0,g.visibility),ta(this,g,"visibility",k?"inherit":"hidden",I?"inherit":"hidden",!I)),E!=="scale"&&E!=="transform"&&(E=jo[E],~E.indexOf(",")&&(E=E.split(",")[0]))),R=E in ds,R){if(this.styles.save(E),C||(U=a._gsap,U.renderTransform&&!s.parseTransform||Lh(a,s.parseTransform),N=s.smoothOrigin!==!1&&U.smooth,C=this._pt=new Ar(this._pt,g,pn,0,1,U.renderTransform,U,0,-1),C.dep=1),E==="scale")this._pt=new Ar(this._pt,U,"scaleY",U.scaleY,(M?Il(U.scaleY,M+I):I)-U.scaleY||0,kc),this._pt.u=0,m.push("scaleY",E),E+="X";else if(E==="transformOrigin"){K.push(Lr,0,g[Lr]),b=bg(b),U.svg?Gc(a,b,0,N,0,this):(T=parseFloat(b.split(" ")[2])||0,T!==U.zOrigin&&ta(this,U,"zOrigin",U.zOrigin,T),ta(this,g,E,Mu(S),Mu(b)));continue}else if(E==="svgOrigin"){Gc(a,b,1,N,0,this);continue}else if(E in Nd){Lg(this,U,E,k,M?Il(k,M+b):b);continue}else if(E==="smoothOrigin"){ta(this,U,"smooth",U.smooth,b);continue}else if(E==="force3D"){U[E]=b;continue}else if(E==="transform"){Rg(this,b,a);continue}}else E in g||(E=Gl(E)||E);if(R||(I||I===0)&&(k||k===0)&&!fg.test(b)&&E in g)L=(S+"").substr((k+"").length),I||(I=0),T=or(b)||(E in Hr.units?Hr.units[E]:L),L!==T&&(k=ea(a,E,S,T)),this._pt=new Ar(this._pt,R?U:g,E,k,(M?Il(k,M+I):I)-k,!R&&(T==="px"||E==="zIndex")&&s.autoRound!==!1?mg:kc),this._pt.u=T||0,L!==T&&T!=="%"&&(this._pt.b=S,this._pt.r=pg);else if(E in g)Eg.call(this,a,E,S,M?M+b:b);else if(E in a)this.add(a,E,S||a[E],M?M+b:b,d,u);else if(E!=="parseTransform"){uc(E,b);continue}R||(E in g?K.push(E,0,g[E]):K.push(E,1,S||a[E])),m.push(E)}}X&&wd(this)},render:function(a,s){if(s.tween._time||!Dc())for(var c=s._pt;c;)c.r(a,c.d),c=c._next;else s.styles.revert()},get:ps,aliases:jo,getSetter:function(a,s,c){var d=jo[s];return d&&d.indexOf(",")<0&&(s=d),s in ds&&s!==Lr&&(a._gsap.x||ps(a,"x"))?c&&Ed===c?s==="scale"?_g:yg:(Ed=c||{})&&(s==="scale"?xg:wg):a.style&&!rc(a.style[s])?gg:~s.indexOf("-")?vg:Ac(a,s)},core:{_removeProperty:Xa,_getMatrix:Uc}};Pr.utils.checkPrefix=Gl,Pr.core.getStyleSaver=Ld,function(x,a,s,c){var d=Cr(x+","+a+","+s,function(u){ds[u]=1});Cr(a,function(u){Hr.units[u]="deg",Nd[u]=1}),jo[d[13]]=x+","+a,Cr(c,function(u){var m=u.split(":");jo[m[1]]=d[m[0]]})}("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY"),Cr("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(x){Hr.units[x]="px"}),Pr.registerPlugin(Vd);var Vc=Pr.registerPlugin(Vd)||Pr;Vc.core.Tween;class Og{constructor(a,s=!1){window.mars3d?(this.Cesium=window.mars3d.Cesium,this.DynamicMaskingArr=[],this.DynamicMaskingStyle=[],this.canvasClientWidth=a.viewer.canvas.clientWidth,this.canvasClientHeight=a.viewer.canvas.clientHeight,this.oldSet=new Set,this.tweenMap=new Map,this.isDynamicMasking=s):console.error("未引入指定插件")}add(a,s){let c=a.options.symbol.styleOptions.label.font_size,d=a.options.vectorId,u=Number(c)*1.4,m=Number(c)*1.8,g=a.options.symbol.styleOptions.label,{color:_,outlineColor:S,backgroundColor:b}=g;a.eachGraphic(I=>{I.style.label&&this.DynamicMaskingArr.push({id:d,uid:I.id,position:I._getLablePosition(),label:I.name,width:I.name?u*I.name.length:0,height:m,color:_,outline:s.label.outline,outlineColor:S,background:s.label.background,backgroundColor:b,dynamicMaskingColor:{backgroundColor:this.Cesium.Color.fromCssColorString(s.label.backgroundColor),color:this.Cesium.Color.fromCssColorString(s.label.color),outlineColor:this.Cesium.Color.fromCssColorString(s.label.outlineColor)}})}),this.DynamicMaskingStyle.push({vectorId:a.options.vectorId,outline:s.label.outline,background:s.label.background,color:this.Cesium.Color.fromCssColorString(s.label.color),backgroundColor:this.Cesium.Color.fromCssColorString(s.label.backgroundColor),outlineColor:this.Cesium.Color.fromCssColorString(s.label.outlineColor)}),this.oldSet=new Set,this.tweenMap=new Map}remove(a){this.DynamicMaskingArr=this.DynamicMaskingArr.filter(s=>s.id!==a),this.DynamicMaskingStyle=this.DynamicMaskingStyle.filter(s=>s.vectorId!==a),this.oldSet=new Set,this.tweenMap=new Map}modify(a,s){let{label:c}=s;if(c){let{color:d,outline:u,outlineColor:m,background:g,backgroundColor:_}=c;this.DynamicMaskingArr.forEach(S=>{S.id===a&&(d!=null&&(S.color=this.Cesium.Color.fromCssColorString(d),S.dynamicMaskingColor.color=this.Cesium.Color.fromCssColorString(d)),u!=null&&(S.outline=u),m!=null&&(S.outlineColor=this.Cesium.Color.fromCssColorString(m),S.dynamicMaskingColor.outlineColor=this.Cesium.Color.fromCssColorString(m)),g!=null&&(S.background=g),_!=null&&(S.backgroundColor=this.Cesium.Color.fromCssColorString(_),S.dynamicMaskingColor.backgroundColor=this.Cesium.Color.fromCssColorString(_)))})}}getBoundingRectangle(a){var s=this.Cesium.SceneTransforms.wgs84ToWindowCoordinates(window.map.viewer.scene,a.position);return s!==void 0?new this.Cesium.BoundingRectangle(s.x,s.y,a.width,a.height):new this.Cesium.BoundingRectangle(0,0,1,1)}getNonIntersectingRectangles(){let a=[];for(var s=0;s<this.DynamicMaskingArr.length;s++){let d=!1,u=this.DynamicMaskingArr[s],m,g,_;if(g=this.getBoundingRectangle(u),!(g.x<0||g.x>this.canvasClientWidth||g.y<0||g.y>this.canvasClientHeight))if(a.length===0){a.push(s);continue}else{for(var c=0;c<a.length;c++)if(m=this.DynamicMaskingArr[a[c]],_=this.getBoundingRectangle(m),this.Cesium.Intersect.OUTSIDE!==this.Cesium.BoundingRectangle.intersect(g,_)){d=!0;break}d||a.push(s)}}return new Set(a)}ifShow(){if(this.isDynamicMasking){let s={color:.001,outlineColor:.001,backgroundColor:.001},c={color:1,outlineColor:1,backgroundColor:1},d=this.getNonIntersectingRectangles(),u=new Set([...this.oldSet].filter(g=>!d.has(g))),m=new Set([...d].filter(g=>!this.oldSet.has(g)));for(let g of u)if(this.DynamicMaskingArr[g]){if(this.tweenMap.has(g)){var a=this.tweenMap.get(g);a.kill(),this.tweenMap.delete(g)}var a=Vc.to(c,{duration:.2,color:0,outlineColor:0,backgroundColor:0,onUpdate:()=>{var S,b;var _=this.DynamicMaskingArr[g];_.backgroundColor.alpha=c.backgroundColor,_.color.alpha=c.color,_.outlineColor.alpha=c.outlineColor,(b=(S=window.map.getLayer(_.id,"vectorId"))==null?void 0:S.getGraphicByAttr(_.uid))==null||b.setStyle({label:{show:!1,outline:!1,background:!1}})}});this.tweenMap.set(g,a)}for(let g of m)if(this.DynamicMaskingArr[g]){if(this.tweenMap.has(g)){var a=this.tweenMap.get(g);a.kill(),this.tweenMap.delete(g)}let _=this.DynamicMaskingArr[g],{backgroundColor:S,color:b,outlineColor:I}=_.dynamicMaskingColor;var a=Vc.to(s,{duration:.8+Math.random(),color:b.alpha,outlineColor:I.alpha,backgroundColor:S.alpha,onUpdate:()=>{var D,F;_.backgroundColor.alpha=s.backgroundColor,_.color.alpha=s.color,_.outlineColor.alpha=s.outlineColor,(F=(D=window.map.getLayer(_.id,"vectorId"))==null?void 0:D.getGraphicByAttr(_.uid))==null||F.setStyle({label:{show:!0,outline:_.outline,background:_.background,color:_.color,outlineColor:_.outlineColor,backgroundColor:_.backgroundColor}})}});this.tweenMap.set(g,a)}this.oldSet=d}}switchDynamicMasking(a){if(a)window.map.getLayers().forEach(s=>{var c;if((c=s.options)!=null&&c.vectorId){let{color:d,outlineColor:u,backgroundColor:m}=s.options.symbol.styleOptions.label;s.eachGraphic(g=>{g.setStyle({label:{color:d.withAlpha(0),outlineColor:u.withAlpha(.001),backgroundColor:m.withAlpha(.001),show:!1,background:!1,outline:!1}})})}});else if(this.DynamicMaskingStyle.length>0){let s;this.DynamicMaskingStyle.forEach(c=>{let{color:d,outline:u,outlineColor:m,background:g,backgroundColor:_,vectorId:S}=c;s=window.map.getLayer(S,"vectorId"),s&&s.eachGraphic(b=>{b.setStyle({label:{color:d,outlineColor:m,backgroundColor:_,show:!0,background:g,outline:u}})})})}this.isDynamicMasking=a,window.bimVector.switchDynamicMasking(a)}}const Ig=()=>{window.planClip.clearPlanClip(),window.schemeEvnModify.clearAllEvnModify(),window.bimRotatePoint.stop(),window.bimTrafficSimulation.destruction(),window.bimMapPTV&&window.bimMapPTV.destruction(),window.romStop(),window.complete(),window.bimMapCompare.hide?window.bimMapCompare.hide():window.bimMapCompare.destroyControl(),window.updateEitor({content:""})},Dg=()=>{window.planClip.clearPlanClip(),window.bimRotatePoint.stop(),window.bimTrafficSimulation.destruction(),window.bimMapPTV&&window.bimMapPTV.destruction(),window.romStop(),window.complete(),window.bimMapCompare.hide?window.bimMapCompare.hide():window.bimMapCompare.destroyControl(),window.updateEitor({content:""})},zg=()=>{window.planClip.clearPlanClip(),window.bimRotatePoint.stop(),window.bimTrafficSimulation.destruction(),window.bimMapPTV&&window.bimMapPTV.destruction(),window.romStop(),window.complete(),window.bimMapCompare.hide?window.bimMapCompare.hide():window.bimMapCompare.destroyControl(),window.updateEitor({content:""})},kg=x=>{let a=[];if(x.forEach(s=>{let{id:c}=s,d={id:c,mockData:{nextPage:[],item:[],previousPage:[]}};s.operate.forEach((u,m)=>{let g=Wc(u,d.mockData.nextPage);d.mockData.nextPage=g,d.mockData.item=g,d.mockData.previousPage=[]}),a.push(d)}),a.length>1)for(let s=1;s<a.length;s++){let c=a[s].mockData,d=a[s-1].mockData.item;const u=new Map;d.forEach(m=>{m.type!="rotatePoint"&&m.type!="viewpoint"&&m.type!="roaming"&&m.type!="splitScreen"&&m.type!="planClip"&&m.type!="editor"?u.set(`${m.screenplayId}-${m.type}`,m):a[s].mockData.previousPage.push(m)}),c.nextPage.forEach(m=>{const g=`${m.screenplayId}-${m.type}`;let _={...u.get(g)};if(u.has(g)){if(m.type=="flight")a[s].mockData.previousPage.unshift(u.get(g)),_=m;else{let S={};Object.keys(m).forEach(b=>{if(b!="screenplayId"&&b!="type")if(u.get(g)[b])if(Object.keys(S).length==0&&(S={screenplayId:m.screenplayId,type:m.type}),b=="clip"||b=="flat"){_[b]=Wd(u.get(g)[b],m[b]);let I={screenplayId:m.screenplayId,type:m.type};I[b]={},Object.keys(m[b]).forEach(k=>{u.get(g)[b][k]?I[b][k]=u.get(g)[b][k]:m[b][k]=="true"&&(I[b][k]="false")}),S={...I,...S}}else S[b]=u.get(g)[b],_[b]=m[b];else a[s].mockData.previousPage.some(I=>I.screenplayId===m.screenplayId)||(console.log("未找到操作"),S={...jd(m,b),...S}),_[b]=m[b]}),Object.keys(S).length>0&&a[s].mockData.previousPage.push(S)}u.set(g,_)}else{console.log("未找到操作");let S=jd(m);S&&a[s].mockData.previousPage.push(S),u.set(g,m)}}),a[s].mockData.item=Array.from(u.values())}return console.log("-----------最后输出-----------"),console.log(a),console.log("-----------最后输出-----------"),a},Wc=(x,a=null)=>{let{executionProperty:s,screenplayId:c,property:d,type:u,delay:m,delayTime:g}=x;if((d=="add"||d==!0)&&(d="true"),(d=="remove"||d==!1)&&(d="false"),u=="pit"){let S=window.schemeEvnModify.getModelModifyDataForInitModelById(c);if(S){let b={};b[c]=d,d=b,c=S.modelId,s=S.type}}let _;if(c==""||c=="map")if(c="map",u=="splitScreen"){let{splitScreenMode:S,splitScreenModePercentage:b}=JSON.parse(d);a.push({screenplayId:c,type:u,executionProperty:{splitScreenMode:S,splitScreenModePercentage:b,mapClone:[]}});let{mainScreen:I,secondaryScreen:k}=JSON.parse(x.property);I.forEach(F=>{Wc(F,a)});let D=a.find(F=>F.type=="splitScreen");k.forEach(F=>{Wc(F,D.executionProperty.mapClone)})}else _={screenplayId:c,type:u,executionProperty:d},(s=="clip"||s=="flat")&&(_[s]=d),m&&(_.delay=m),g&&(_.delayTime=g),a&&(u=="flight"?a.unshift(_):a.push(_));else _=a?a.find(S=>S.screenplayId==c):null,_?(s=="clip"||s=="flat"?_[s]?_[s]=Wd(_[s],d):(_[s]=d,_.type="model"):_[s]=d,m&&(_[s].delay=m),g&&(_[s].delayTime=g)):(_={screenplayId:c,type:u},m&&(_.delay=m),g&&(_.delayTime=g),s=="clip"||s=="flat"?(_[s]=d,_.type="model"):_[s]=d,a&&(u=="flight"?a.unshift(_):a.push(_)));return a||_},Wd=(x,a)=>{const s={...x};for(const c in a)a.hasOwnProperty(c)&&(s[c]=a[c]);return s},jd=(x,a="all")=>{let{type:s,show:c,screenplayId:d,overallStaining:u,clip:m,flat:g}=x,_={};if(a=="all")switch(s){case"model":case"shp":case"plot":c&&c=="true"&&(_={screenplayId:d,type:s,show:"false"}),c&&c=="false"&&console.error("map上没有添加此对象"),u&&(_={..._,screenplayId:d,type:s,overallStaining:"false"}),m&&(_={..._,screenplayId:d,type:s,clip:"false"}),g&&(_={..._,screenplayId:d,type:s,flat:"false"});break;case"terrain":_={screenplayId:d,type:s,executionProperty:"true"};break;case"pit":_={screenplayId:d,type:s,executionProperty:"false"};break;case"underground":_={screenplayId:d,type:s,executionProperty:"1"};break}else switch(a){case"clip":case"flat":case"overallStaining":_={screenplayId:d,type:s},_[a]="false";break}return Object.keys(_).length>0?_:null},Bg=(x,a)=>{const s={};return Object.keys(a).forEach(c=>{x.hasOwnProperty(c)&&(s[c]=x[c])}),s},Ng=x=>/^rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*(0|1|0\.\d+)\s*\)$/i.test(x),Fg=x=>{let a={};(x==null?void 0:x.length)>0&&x[0].operate.forEach(s=>{let{executionProperty:c,screenplayId:d,property:u,type:m}=s;(c=="show"||c=="overallStaining")&&(a[d]||(a[d]={type:m}),a[d][u]=c)}),window.map.getLayers().forEach(s=>{if((s.type=="3dtiles"||s.type=="geojson")&&s.options.name!="国界"){let c=s.options.modelId||s.options.vectorId;a[c]?(window.bimModel.editColor(c),window.schemeEvnModify.clearAllModelModify({isClone:!1})):s.remove()}}),window.bimEntity.entityLayer.getGraphicsByAttr().forEach(s=>{s.remove()}),window.bimMapSetUp.undergroundVal(1),window.bimTerrainProvider.show(),window.bimTrafficSimulation.destruction(),window.bimRotatePoint.stop(),window.bimMapPTV.destruction(),window.romStop(),window.complete(),window.planClip.clearPlanClip()};class Ug{constructor(a){Ba(this,"getPositions",a=>a.length>1&&(Array.isArray(a[0])||typeof a[0]=="object")?a:this.getPositions(a[0]));Ba(this,"terrainCutById",(a,s,c)=>{switch(c==null?void 0:c.isClone){case!0:if(this.createTerrainModifyInstanceClone(),!this.terrainClipClone||this.terrainClipClone.list.find(d=>d.id==s))return;this.terrainClipClone.addArea(a.length>1?a:a[0],{id:s});break;case!1:if(!this.terrainClip||this.terrainClip.list.find(d=>d.id==s))return;this.terrainClip.addArea(a.length>1?a:a[0],{id:s});break}});Ba(this,"clearTerrainCutById",(a,s)=>{switch(s==null?void 0:s.isClone){case!0:if(this.createTerrainModifyInstanceClone(),!this.terrainClipClone)return;this.terrainClipClone.removeArea(a);break;case!1:if(!this.terrainClip)return;this.terrainClip.removeArea(a);break}});Ba(this,"terrainFlattenById",(a,s,c,d)=>{switch(d==null?void 0:d.isClone){case!0:if(this.createTerrainModifyInstanceClone(),!this.terrainFlatClone||this.terrainFlatClone.list.find(u=>u.id==c))return;this.terrainFlatClone.addArea(a.length>1?a:a[0],{id:c,height:s});break;case!1:if(!this.terrainFlat||this.terrainFlat.list.find(u=>u.id==c))return;this.terrainFlat.addArea(a.length>1?a:a[0],{id:c,height:s});break}});Ba(this,"clearTerrainFlattenById",(a,s)=>{switch(s==null?void 0:s.isClone){case!0:if(this.createTerrainModifyInstanceClone(),!this.terrainFlatClone)return;this.terrainFlatClone.removeArea(a);break;case!1:if(!this.terrainFlat)return;this.terrainFlat.removeArea(a);break}});this.flattenedEvnModifyData=a,this.modelIdListByModify=[],this.modelIdListByModifyClone=[],this.terrainClip=null,this.terrainFlat=null,this.terrainClipClone=null,this.terrainFlatClone=null,this.createTerrainModifyInstance()}getDataFromFlattenedEvnModifyListById(a){const s=this.flattenedEvnModifyData.find(c=>c.id==a);return s?(s.id=s.id.toString(),s):null}getModelFromMapById(a,s){let c;switch(s==null?void 0:s.isClone){case!0:c=window.mapClone?window.mapClone.mapEx.getLayers():[];break;case!1:c=window.map.getLayers();break}return c.find(u=>u.options.modelId==a)}updateFlattenedEvnModifyData(a){this.flattenedEvnModifyData=a}modelCutById(a,s,c,d){const u=bimModel.queryModel(a,d);if(u&&!u.clip.list.find(m=>m.id==c))switch(u.clip.addArea(s.length>1?s:s[0],{id:c}),d==null?void 0:d.isClone){case!0:this.modelIdListByModifyClone.push(a),this.modelIdListByModifyClone=[...new Set(this.modelIdListByModifyClone)];break;case!1:this.modelIdListByModify.push(a),this.modelIdListByModify=[...new Set(this.modelIdListByModify)];break}}modelFlattenById(a,s,c,d,u){const m=bimModel.queryModel(a,u);if(m&&!m.flat.list.find(g=>g.id==d))switch(m.flat.addArea(s.length>1?s:s[0],{height:c,id:d}),u==null?void 0:u.isClone){case!0:this.modelIdListByModifyClone.push(a),this.modelIdListByModifyClone=[...new Set(this.modelIdListByModifyClone)];break;case!1:this.modelIdListByModify.push(a),this.modelIdListByModify=[...new Set(this.modelIdListByModify)];break}}clearModelCutById(a,s,c){const d=bimModel.queryModel(a,c);if(d)switch(d.clip.removeArea(s),c.isClone){case!0:this.modelIdListByModifyClone=this.modelIdListByModifyClone.filter(u=>u!=a);break;case!1:this.modelIdListByModify=this.modelIdListByModify.filter(u=>u!=a);break}}clearModelFlattenById(a,s,c){const d=bimModel.queryModel(a,c);if(d)switch(d.flat.removeArea(s),c==null?void 0:c.isClone){case!0:this.modelIdListByModifyClone=this.modelIdListByModifyClone.filter(u=>u!=a);break;case!1:this.modelIdListByModify=this.modelIdListByModify.filter(u=>u!=a);break}}createTerrainModifyInstance(){if(window.map.thing.terrainClip)this.terrainClip=window.map.thing.terrainClip;else{const a=new mars3d.thing.TerrainClip({czm:!1,splitNum:30});window.map.addThing(a),this.terrainClip=a}if(window.map.thing.terrainFlat)this.terrainFlat=window.map.thing.terrainFlat;else{const a=new mars3d.thing.TerrainFlat({splitNum:80});window.map.addThing(a),this.terrainFlat=a}}createTerrainModifyInstanceClone(){if(window.mapClone){if(window.mapClone.mapEx.thing.terrainClip)this.terrainClipClone=window.mapClone.mapEx.thing.terrainClip;else{const a=new mars3d.thing.TerrainClip({splitNum:80});window.mapClone.mapEx.addThing(a),this.terrainClipClone=a}if(window.mapClone.mapEx.thing.terrainFlat)this.terrainFlatClone=window.mapClone.mapEx.thing.terrainFlat;else{const a=new mars3d.thing.TerrainFlat({splitNum:80});window.mapClone.mapEx.addThing(a),this.terrainFlatClone=a}}}evnModifyById(a,s){s=arguments[1]||{isClone:!1};const c=this.getDataFromFlattenedEvnModifyListById(a);if(!c)return;const{bimEnvModify:{embsId:d,dataType:u,modifyType:m}}=c;for(let g=0;g<c.bimEnvModifyData.length;g++){const _=this.getPositions(JSON.parse(c.bimEnvModifyData[g].modifyData).coordinates),S=JSON.parse(c.bimEnvModifyData[g].modifyData).depth,b=c.bimEnvModifyData[g].id.toString();u===0&&m===0?this.modelCutById(d,_,b,s):u===0&&m===1?this.modelFlattenById(d,_,S,b,s):u===1&&m===0?this.terrainCutById(_,b,s):u===1&&m===1&&this.terrainFlattenById(_,S,b,s)}}evnModifyByIdAndAddOptionsToStore(a,s){s=arguments[1]||{isClone:!1};const c=this.getDataFromFlattenedEvnModifyListById(a);if(!c)return;const{bimEnvModify:{embsId:d,dataType:u,modifyType:m}}=c;for(let g=0;g<c.bimEnvModifyData.length;g++){const _=this.getPositions(JSON.parse(c.bimEnvModifyData[g].modifyData).coordinates),S=JSON.parse(c.bimEnvModifyData[g].modifyData).depth,b=c.bimEnvModifyData[g].id.toString();u===0&&m===0?this.modelCutById(d,_,b,s):u===0&&m===1?this.modelFlattenById(d,_,S,b,s):u===1&&m===0?this.terrainCutById(_,b,s):u===1&&m===1&&this.terrainFlattenById(_,S,b,s)}}clearEvnModifyById(a,s){s=arguments[1]||{isClone:!1};const c=this.getDataFromFlattenedEvnModifyListById(a);if(!c)return;const{bimEnvModify:{embsId:d,dataType:u,modifyType:m}}=c;for(let g=0;g<c.bimEnvModifyData.length;g++){const _=c.bimEnvModifyData[g].id.toString();u===0&&m===0?this.clearModelCutById(d,_,s):u===0&&m===1?this.clearModelFlattenById(d,_,s):u===1&&m===0?this.clearTerrainCutById(_,s):u===1&&m===1&&this.clearTerrainFlattenById(_,s)}}clearAllModelModify(a){switch(a||(a={isClone:!1}),a.isClone){case!0:this.modelIdListByModifyClone.forEach(s=>{const c=bimModel.queryModel(s,a);c&&(c.clip.clear(),c.flat.clear())}),this.modelIdListByModifyClone=[];break;case!1:this.modelIdListByModify.forEach(s=>{const c=bimModel.queryModel(s,a);c&&(c.clip.clear(),c.flat.clear())}),this.modelIdListByModify=[];break}}clearAllTerrainModify(a){switch(a||(a={isClone:!1}),a.isClone){case!0:window.mapClone||(this.terrainClipClone=null,this.terrainFlatClone=null),this.terrainClipClone&&this.terrainClipClone.clear(),this.terrainFlatClone&&this.terrainFlatClone.clear();break;case!1:this.terrainClip&&this.terrainClip.clear(),this.terrainFlat&&this.terrainFlat.clear();break}}getModelModifyDataForInitModelById(a){const s=this.getDataFromFlattenedEvnModifyListById(a);if(!s)return;const{bimEnvModify:{embsId:c,dataType:d,modifyType:u}}=s;if(this.modelIdListByModify.push(c),d===0&&u===0){const m={modelId:c,type:"clip",area:[]};for(let g=0;g<s.bimEnvModifyData.length;g++){const S={positions:this.getPositions(JSON.parse(s.bimEnvModifyData[g].modifyData).coordinates),id:s.bimEnvModifyData[g].id.toString()};m.area.push(S)}return m}else if(d===0&&u===1){const m={modelId:c,type:"flat",area:[]};for(let g=0;g<s.bimEnvModifyData.length;g++){const _=this.getPositions(JSON.parse(s.bimEnvModifyData[g].modifyData).coordinates),S={id:s.bimEnvModifyData[g].id.toString(),positions:_,height:JSON.parse(s.bimEnvModifyData[g].modifyData).depth};return m.area.push(S),m}}}clearAllEvnModify(){this.clearAllModelModify({isClone:!0}),this.clearAllModelModify({isClone:!1}),this.clearAllTerrainModify({isClone:!0}),this.clearAllTerrainModify({isClone:!1})}destroyTerrainModifyInstance(){this.clearAllTerrainModify({isClone:!0}),this.clearAllTerrainModify({isClone:!1}),this.terrainClip&&window.map.removeThing(this.terrainClip,!0),this.terrainFlat&&window.map.removeThing(this.terrainFlat,!0),this.terrainClipClone&&window.mapClone.mapEx.removeThing(this.terrainClipClone,!0),this.terrainFlatClone&&window.mapClone.mapEx.removeThing(this.terrainFlatClone,!0),this.terrainClip=null,this.terrainFlat=null,this.terrainClipClone=null,this.terrainFlatClone=null}}let Hl=null,ms=null,ia=null;class Gg{constructor(){mars3d&&(this.projectId=parseInt(window.sessionStorage.getItem("nowProjectId")),this.viewPoints=new Array,this.roaming=null)}init(a,s,c){ms=new mars3d.layer.GraphicLayer({isContinued:!0});var d=this;window.map.addLayer(ms),ms.on(mars3d.EventType.drawCreated,function(u){var m=u.graphic.point;console.log(m),s(m),setTimeout(()=>{d.startDrawGraphic()},500)}),ms.on(mars3d.EventType.editStop,function(u){console.log("停止编辑",u)}),ia=c,Hl=new mars3d.layer.GraphicLayer,window.map.addLayer(Hl),a&&(this.viewPoints=a.filter((u,m)=>{if(m%(ia.smooth*1)==0)return u})),this.addGraphicLayer(this.viewPoints)}addDemoGraphic1(a,s){const c=new mars3d.graphic.PolylinePrimitive({positions:a.map(d=>[d.lng,d.lat,d.alt+1e3]),style:{width:10,materialType:mars3d.MaterialType.LineFlow,materialOptions:{color:"red",image:s+"img/line/line-arrow-blue.png",speed:10,repeat:new Cesium.Cartesian2(5,1),mixt:!0}}});Hl.addGraphic(c)}addGraphicLayer(a){var s={};ia.Viewovalue==1?s={camera:{type:"dy",followedX:ia.followedX,followedZ:ia.followedZ},interpolation:!0,interpolationDegree:6,autoMiddleDynamicPosition:!0,interpolationAlgorithm:Cesium.HermitePolynomialApproximation}:ia.Viewovalue==2?s={camera:{type:"gs",pitch:-30,radius:500},interpolation:!0,interpolationDegree:2,clockLoop:!0,path:{width:3,color:Cesium.Color.fromCssColorString("#ff0000").withAlpha(.5)}}:s={camera:{type:"sd",followedZ:ia.followedZ},polyline:{width:3,color:Cesium.Color.fromCssColorString("#ff0000").withAlpha(.5)}},a=a.map(c=>[c.lng,c.lat,c.alt]),a.length,this.fixedRoute=new mars3d.graphic.FixedRoute({name:"贴地表表面漫游",speed:ia.speed,autoStop:!0,positions:a,offsetHeight:1.6,clockLoop:!0,...s}),Hl.addGraphic(this.fixedRoute)}addDemoGraphic(a,s){const c=new mars3d.graphic.BillboardEntity({position:new mars3d.LngLatPoint(a.lng,a.lat,a.alt),style:{width:30,height:32,image:"/img/marker/markffd700.png",scale:1,scaleByDistance:!1,scaleByDistance_far:1e6,scaleByDistance_farValue:.1,scaleByDistance_near:1e3,scaleByDistance_nearValue:1,distanceDisplayCondition:!1,distanceDisplayCondition_far:2e6,distanceDisplayCondition_near:0,clampToGround:!1,visibleDepth:!1,drawShow:!0}});ms.addGraphic(c)}startDrawGraphic(a){ms.startDraw({type:"billboard",style:{width:30,height:32,image:"/img/marker/markffd700.png",scale:1,scaleByDistance:!1,scaleByDistance_far:1e6,scaleByDistance_farValue:.1,scaleByDistance_near:1e3,scaleByDistance_nearValue:1,distanceDisplayCondition:!1,distanceDisplayCondition_far:2e6,distanceDisplayCondition_near:0,clampToGround:!1,visibleDepth:!1,drawShow:!0,classificationType:Cesium.ClassificationType.TERRAIN}}).then(s=>{console.log(123)})}start(){console.log(this.fixedRoute),this.fixedRoute&&(this.fixedRoute.start(),window.map.scene.screenSpaceCameraController.enableCollisionDetection=!1)}pause(){this.fixedRoute&&this.fixedRoute.pause()}resume(){this.fixedRoute&&this.fixedRoute.proceed()}stop(){this.fixedRoute&&this.fixedRoute.stop()}remove(){this.fixedRoute&&this.fixedRoute.stop(),window.map.removeThing(this.roaming,!0),window.map.removeLayer(Hl,!0),window.map.removeLayer(ms,!0),this.viewPoints=[],window.map.scene.screenSpaceCameraController.enableCollisionDetection=!0}removeCameraRoute(){Hl.clear(),ms.clear()}removegraphicLayerpoint(){ms.clear()}}class Hg{constructor(a){window.mars3d&&(this.beginDate="",this.endDate="",this.trafficSimulationLayer,this.trafficSimulationArr=[],this.style={width:4,materialType:window.mars3d.MaterialType.LineFlow,materialOptions:{color:"#4ac2ff",image:a+"img/textures/line-arrow-right.png",repeat_x:20,repeat_y:1,speed:20},clampToGround:!1,allowDrillPick:!1},this.vehicleSum=100,this.automobileList=[{url:a+"gltf/cart/suv.gltf"},{url:a+"gltf/cart/red_car.gltf"},{url:a+"gltf/cart/benchi3.gltf"},{url:a+"gltf/cart/suv.gltf"},{url:a+"gltf/cart/red_car.gltf"},{url:a+"gltf/cart/benchi3.gltf"},{url:a+"gltf/cart/aodi1.gltf"},{url:a+"gltf/cart/kache3.gltf"},{url:a+"gltf/cart/bus2.gltf"},{url:a+"gltf/cart/jiaobanche.glb"}],this._czmlLayer,this._czmlLayerArr=[])}init(a){this.trafficSimulationLayer=new window.mars3d.layer.GraphicLayer({temporaryLayer:"trafficSimulation"}),window.map.addLayer(this.trafficSimulationLayer),window.map.bimMapEdit="1",a&&(this._czmlLayerArr=a)}addLine(a){let s=a;return new Promise(c=>{this.trafficSimulationLayer.startDraw({type:"polylineP",attr:{trafficSimulationId:s},style:{...this.style}}).then(d=>{c({id:s,pointSet:d.coordinates,speed:45,interval:1})})})}initLine(a){let s;a.forEach(c=>{let{id:d}=c;s=new window.mars3d.graphic.PolylinePrimitive({positions:c.pointSet,attr:{trafficSimulationId:d},style:{...this.style}}),this.trafficSimulationLayer.addGraphic(s)})}positionLine(a){let s=this.queryTrafficSimulationLine(a);s&&s.flyTo({scale:2})}deleteLine(a){let s=this.queryTrafficSimulationLine(a);s&&s.remove()}queryTrafficSimulationArr(){return this.trafficSimulationArr}queryTrafficSimulationLine(a){if(this.trafficSimulationLayer)return this.trafficSimulationLayer.getGraphicByAttr(a,"trafficSimulationId")}editTrafficSimulationLine(a,s=!0){let c=this.queryTrafficSimulationLine(a);s?(c.setStyle({materialOptions:{color:"#ff0000"}}),c.startEditing()):(c.setStyle({materialOptions:{color:"#4ac2ff"}}),c.stopEditing())}queryCzml(a){return this._czmlLayerArr.length==0?!1:this._czmlLayerArr.find(s=>s.id==a)}start(a="add"){this.destruction(),this.beginDate=new Date().toISOString();let s=new Date,c=s.getDate();s.setDate(c+1),this.endDate=s.toISOString(),console.log(this.queryCzml(a)),this.queryCzml(a)?this.trafficSimulationArr=JSON.parse(this.queryCzml(a).route):this.trafficSimulationArr=[],this.processingData(a)}selected(){this._czmlLayer&&this._czmlLayer.flyTo()}destruction(){this.trafficSimulationLayer.clear(),this.trafficSimulationLayer.remove(),this._czmlLayer&&(this._czmlLayer.clear(),this._czmlLayer.remove()),window.map.bimMapEdit="0"}processingData(a){let s=[{version:"1.0",id:"document",clock:{interval:`${this.beginDate}/${this.endDate}`,currentTime:this.beginDate,multiplier:1},style:{distanceDisplayCondition:!0,distanceDisplayCondition_far:1e6,distanceDisplayCondition_near:0}}],c=[],d=JSON.parse(JSON.stringify(this.trafficSimulationArr)),u=0;d.forEach((g,_)=>{let S=0,b=0,{pointSet:I,interval:k,speed:D}=g;for(let F=1;F<=this.vehicleSum;F++){let E=JSON.parse(JSON.stringify(I));E.forEach((T,M)=>{M>0&&(u=parseFloat((this.disTance(T,E[M-1].slice(1))/D).toFixed(2)),S+=u),M==0&&(S=b),T.unshift(S)}),b+=k,c=E.reduce((T,M)=>T.concat(M));let L={name:`${_}-${F}`,availability:`${this.beginDate}/${this.endDate}`,orientation:{velocityReference:"#position"},position:{epoch:this.beginDate,cartographicDegrees:c},style:{minimumPixelSize:100,distanceDisplayCondition:!0,distanceDisplayCondition_near:0,distanceDisplayCondition_far:1300,distanceDisplayPoint:{color:"#00ff00",pixelSize:8}},model:{show:!0,gltf:this.randomVehicle(),heightReference:window.Cesium.HeightReference.CLAMP_TO_GROUND,clampToGround:!0,scale:.6,minimumPixelSize:100,maximumScale:1.5}};s.push(L)}});let m={name:"交通模拟",czmlId:a,data:s,autoUpdateClock:!1};this._czmlLayer=new window.mars3d.layer.CzmlLayer(m),window.map.addLayer(this._czmlLayer)}disTance(a,s){let c,d,u;return c=window.Cesium.Cartesian3.fromDegrees(...a),d=window.Cesium.Cartesian3.fromDegrees(...s),u=window.Cesium.Cartesian3.distance(c,d),u}randomVehicle(){let a=Math.round(Math.random()*(this.automobileList.length-1));return this.automobileList[a].url}}const Vg=[Tf,Ef],Wg={continuation:null,mapModali:null,install(x){if(Vg.forEach((m,g)=>{x.component(m.name,m)}),this.continuation){x.config.globalProperties.$continuation=this.continuation;return}let a=oi.createApp(Mf),s=document.createElement("div"),c=document.body;if(c.appendChild(s),this.loading=a.mount(s),x.config.globalProperties.$loading=this.loading,window.$continuation=this.loading,this.mapModali){x.config.globalProperties.$mapModali=this.mapModali;return}let d=oi.createApp(Sf),u=document.createElement("div");c.appendChild(u),this.mapModali=d.mount(u),x.config.globalProperties.$mapModali=this.mapModali,window.$mapModali=this.mapModali}};Pi.BimBackgroundPlate=Ef,Pi.BimCutscenes=Mf,Pi.BimElevationImage=um,Pi.BimEntity=fm,Pi.BimModel=sm,Pi.BimModify=Ug,Pi.BimTerrainProvider=hm,Pi.BimTrafficSimulation=Hg,Pi.BimVector=lm,Pi.Bimroaming=Gg,Pi.Button=Tf,Pi.ChbimPlugins=Wg,Pi.DynamicMasking=Og,Pi.MapModali=Sf,Pi.PanoramicView=vm,Pi.ViewShed=cm,Pi.getSameKeyData=Bg,Pi.init=Ig,Pi.initMap=Fg,Pi.isValidRGBA=Ng,Pi.nextPage=zg,Pi.operateMapData=kg,Pi.previousPage=Dg,Object.defineProperty(Pi,Symbol.toStringTag,{value:"Module"})});
|