@splinetool/runtime 0.9.27 → 0.9.28

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.
Files changed (2) hide show
  1. package/build/runtime.js +2 -2
  2. package/package.json +1 -1
package/build/runtime.js CHANGED
@@ -3959,7 +3959,7 @@ vec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
3959
3959
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
3960
3960
  }
3961
3961
  `),c&&h.push(c.code,`outgoingLight = spe_blend(outgoingLight, ${c.result}, 1.0, SPE_BLENDING_NORMAL);`),u?h.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${u.result} );`):h.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),h.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=h.join(`
3962
- `)}return t}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.roughness=e.roughness.clone(),this.metalness=e.metalness.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.reflectivity&&(this.reflectivity=e.reflectivity.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}};var Hy=class extends ri{get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get roughness(){return this.fragment.roughness}set roughness(e){this.fragment.roughness=e}get metalness(){return this.fragment.metalness}set metalness(e){this.fragment.metalness=e}get reflectivity(){return this.fragment.reflectivity}set reflectivity(e){this.fragment.reflectivity=e}constructor(e=new Vy,t){super(e,e,t);this.type="StandardNodeMaterial",this.fragment=e}};var Cu=class extends Hy{constructor(e,t,r){super(t,e);this.userData.type="PhysicalMaterial",this.userData.category="Physical",this.userData.layers=r!=null?r:this._getLayerStack(e==null?void 0:e.map)}get layersList(){return this.userData.layers}set layersList(e){this.userData.layers=e}equals(e){return this.userData.type===e.userData.type&&this.userData.layers.uuid==e.userData.layers.uuid}copy(e){if(e.userData.layers!==void 0&&e.userData.layers instanceof vn){let t=e.userData.layers,r=e.fragment;super.copy(e);let n=r.clone();this.fragment=n,this.vertex=n;let s=t.clone(this);this.userData.layers=s,n.shadingAlpha.value=r.shadingAlpha.value,n.shadingBlend.value=r.shadingBlend.value}else super.copy(e);return this}static fromJSON(e,t,r){let n=r.getNode(t.vertex),s=new Cu(void 0,n);return s.fromJSON(t,r),s}dispose(){super.dispose()}};function tp(i,e){switch(i.data.type){case"light":return wi(i);case"fresnel":return aU(i,e);case"gradient":return lU(i);case"depth":return cU(i);case"normal":return uU(i);case"noise":return hU(i,e);case"texture":return dU(i,e);case"rainbow":return fU(i);case"transmission":return pU(i,e);case"matcap":return mU(i,e);case"displace":return gU(i);case"color":default:return oU(i,e)}}function AA(i){return{type:i.data.type}}function wi(i){let{alpha:e,mode:t}=i.data;return Se(ne({},AA(i)),{alpha:e,mode:t})}function oU(i,e){return Se(ne({},wi(i)),{color:wr(i.data.color,e)})}function aU(i,e){let{bias:t,scale:r,intensity:n,factor:s,color:o}=i.data;return Se(ne({},wi(i)),{color:wr(o,e),bias:t,scale:r,intensity:n,factor:s})}function lU(i){let{gradientType:e,smooth:t,colors:r,steps:n,angle:s,offset:o,morph:a}=i.data;return Se(ne({},wi(i)),{gradientType:e,smooth:t,colors:r.map(l=>new tt(l[0],l[1],l[2],l[3])),num:r.length,steps:n,offset:new B(...o),morph:new B(...a),angle:s})}function cU(i){let{gradientType:e,near:t,far:r,isVector:n,isWorldSpace:s,origin:o,direction:a,colors:l,steps:c,smooth:u,num:d}=i.data;return Se(ne({},wi(i)),{gradientType:e,near:t,far:r,isVector:n,isWorldSpace:s,origin:new A(...o),direction:a?new A(...a):new A(1,0,0),num:d,colors:l.map(h=>new tt(h[0],h[1],h[2],h[3])),steps:c,smooth:u})}function uU(i){let{cnormal:e}=i.data;return Se(ne({},wi(i)),{cnormal:new A(e[0],e[1],e[2])})}function hU(i,e){let{data:t}=i;return Se(ne({},wi(i)),{scale:t.scale,move:t.move,fA:new B(...t.fA),fB:new B(...t.fB),distortion:new B(...t.distortion),colorA:wr(t.colorA,e),colorB:wr(t.colorB,e),colorC:wr(t.colorC,e),colorD:wr(t.colorD,e),noiseType:t.noiseType})}function dU(i,e){let{projection:t,axis:r,crop:n,size:s}=i.data,{image:o,wrapping:a,repeat:l,offset:c}=i.data.texture,u=new _t,d;if(typeof o=="string")d=e==null?void 0:e.getImage(o);else{let h=new Image;h.src=o.data,h.onload=()=>{(e==null?void 0:e.onImageLoad)&&(e==null||e.onImageLoad(o.data))},d=h}return u.image=d,u.repeat.set(l[0],l[1]),u.offset.set(c[0],c[1]),u.wrapS=u.wrapT=a,Se(ne({},wi(i)),{texture:u,mat:new kt().setUvTransform(c[0],c[1],l[0],l[1],0,0,0),crop:n,projection:t,axis:["x","y","z"].indexOf(r),size:s})}function fU(i){let{data:e}=i;return Se(ne({},wi(i)),{filmThickness:e.filmThickness,movement:e.movement,wavelengths:new A(...e.wavelengths),noiseStrength:e.noiseStrength,noiseScale:e.noiseScale,offset:new A(...e.offset)})}function pU(i,e){let{data:t}=i;return Se(ne({},wi(i)),{thickness:t.thickness,ior:t.ior,roughness:t.roughness,transmissionSamplerMap:e.transmissionSamplerMap,transmissionDepthMap:e.transmissionDepthMap})}function mU(i,e){let t=new _t,{image:r}=i.data.texture,n;if(typeof r=="string")n=e==null?void 0:e.getImage(r);else{let o=new Image;o.src=r.data,o.onload=()=>{(e==null?void 0:e.onImageLoad)&&(e==null||e.onImageLoad(r.data))},n=o}t.image=n;let s=16777215;return Se(ne({},wi(i)),{color:s,texture:t})}function gU(i){let{data:e}=i,t=Se(ne({},AA(i)),{intensity:e.intensity});if(e.displacementType==="noise")return Se(ne({},t),{offset:new A(...e.offset),scale:e.scale,movement:e.movement,noiseType:e.noiseType});{let r=new _t,n=new kt().setUvTransform(0,0,1,1,0,0,0);return Se(ne({},t),{texture:r,mat:n,crop:e.crop})}}function rp(i,e,t){if(t.type==="displace"&&(i==="intensity"||i==="visible")){let r=e.uniforms[`f${e.id}_intensity`];return r?(r.value=t.intensity*(t.visible?1:0),r):void 0}if(t.type!=="displace"&&(i==="alpha"||i==="visible")){let r=e.uniforms[`f${e.id}_alpha`];return r?(r.value=t.alpha*(t.visible?1:0),r):void 0}}var Ol;(function(e){function i(t){return new be(t.x,t.y,t.z).getHex()}e.getHex=i})(Ol||(Ol={}));var TA;(function(e){function i(t){return new tt(t.r,t.g,t.b,t.a)}e.getThreeVector4=i})(TA||(TA={}));var EA;(function(t){function i(r,n){r.setRGB(n.r,n.g,n.b)}t.setThreeColor=i;function e(r){return new be(r.r,r.g,r.b).getHex()}t.getHex=e})(EA||(EA={}));function Lu(i,e){return typeof i=="string"?e.getMaterialOrDeletedPlaceholder(i):jy(i,e)}function _A(i,e){return i.map(t=>Lu(t,e))}function jy(i,e){var o,a;let t=(o=i.layers)!=null?o:Hi.defaultTwoLayerData("phong").layers,r=yU(t),n;switch(r.category){case"basic":n=new cn;break;case"lambert":{n=new Eu;break}case"toon":{n=new _u;break}case"physical":n=new Cu;break;case"phong":default:{n=new ni;break}}n.name=(a=i.name)!=null?a:"Untitled Material";let s=n.userData.layers;vU(s);for(let l=t.length-1;l>=0;l--)xU(s,t[l],e);switch(r.category){case"basic":break;case"lambert":{let u=n,h=wr(r.emissive,e);h instanceof be?u.emissive.value=h:u.emissive.value.setHex(Ol.getHex(h));break}case"toon":{let u=n,d=r;u.shininess.value=d.shininess;let h=wr(d.specular,e);h instanceof be?u.specular.value=h:u.specular.value.setHex(Ol.getHex(h));break}case"physical":let l=n,c=r;l.metalness.value=c.metalness,l.roughness.value=c.roughness,l.reflectivity.value=c.reflectivity;break;case"phong":default:{let u=n,d=r;u.shininess.value=d.shininess;let h=wr(d.specular,e);h instanceof be?u.specular.value=h:u.specular.value.setHex(Ol.getHex(h));break}}return s.blendColors(),s.blendAfterColors(),s.blendPositions(),n}function yU(i){for(let e of i)if(e.data.type==="light")return e.data;return{type:"light",category:"basic",visible:!0,alpha:1,mode:Pr.Normal}}function vU(i){for(let e of i.getLayers())i.removeLayer(e.id)}function xU(i,e,t){let r=tp(e,t);r.type==="transmission"&&(r.transmissionSamplerMap=t==null?void 0:t.transmissionSamplerMap,r.transmissionDepthMap=t==null?void 0:t.transmissionDepthMap);let n=i.addLayer(r);n.uuid=e.id;for(let s in e.data)rp(s,n,e.data)}var np=new B,Zo=class{constructor(e,t,r){this.message=[];this.endLine=!0;this.yLinePos=e,this.lineHeight=t,this.maxCharSize=r,this.nextChar3DPos=new B(0,this.yLinePos+this.maxCharSize*this.lineHeight),this.align=yn.Left}addChar3D(e,t,r=this.message.length){this.message.splice(r,0,e),e.fontSize>this.maxCharSize?(this.maxCharSize=e.fontSize,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight,this.fullUpdate(t)):(e.updatePosition(this.nextChar3DPos,t),this.nextChar3DPos.x+=e.charSize)}deleteChar3D(e=this.message.length-1){let t=this.message[e];if(t)return this.message.splice(e,1),this.nextChar3DPos.x-=t.charSize,t}isEndLine(e){this.endLine=e}fullUpdate(e,t=0){this.nextChar3DPos.x=0;for(let r=t,n=this.message.length;r<n;r+=1)this.message[r].updatePosition(this.nextChar3DPos,e),this.nextChar3DPos.x+=this.message[r].charSize}checkOverFlow(e){let t,r=this.message.length-1;if(r<=0)return!1;for(;r>=0;){if(this.message[r].char!==" "){t=this.message[r];break}r-=1}return!!(r>=0&&t&&t.localPosition.x+t.charSize>e)}containSpaceOverFlow(e=this.message.length-1){for(let t=e;t>=0;t-=1)if(this.message[t].char===" ")return!0;return!1}containSpace(e=this.message.length-1){if(this.endLine)return!0;for(let t=e;t>=0;t-=1)if(this.message[t].char===" ")return!0;return!1}popWord(e=this.message.length-1){let t=[],r=!0,n;for(n=e;n>=0;n-=1)if(this.message[n].char===" "){r=!1,t.length===0&&(n-=1,t.splice(0,0,this.message[n]));break}else t.splice(0,0,this.message[n]);return r?t=[]:this.message.splice(n+1,t.length),t}getWord(e=0,t=1){let r=[],n=e;for(n=e;;n+=t){if(!this.message[n]||this.message[n].char===" "){r.length===0&&this.message[n]&&(r.push(this.message[n]),this.message.splice(n,1));break}t>0?(r.push(this.message[n]),this.message.splice(n,1),n-=t):(r.splice(0,0,this.message[n]),this.message.splice(n,1))}return r}getWordAtIndex(e){let t=[];for(let r=e;r<this.message.length&&this.message[r].char!==" ";r++)t.push(this.message[r]);for(let r=e-1;r>=0&&this.message[r].char!==" ";r--)t.splice(0,0,this.message[r]);return t}wordSize(e=0,t=-1){let r=0,n=e;for(;n>=0&&n<this.message.length;){if(this.message[n].char===" "){r===0&&(r=this.message[n].charSize);break}r+=this.message[n].charSize,n+=t}return(n<0||n>=this.message.length)&&!this.endLine?this.message[e]?this.message[e].charSize:999999999:r===0?999999999:r}spaceLeft(e){return e-this.nextChar3DPos.x}popChar(e=this.message.length-1){return this.nextChar3DPos.x-=this.message[e].charSize,this.message.splice(e,1)}isEmpty(){return!this.message.length}updateNextCharPosY(){this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}updateYLinePos(e){this.yLinePos=e,this.updateNextCharPosY()}updatelineHeight(e){this.lineHeight=e,this.updateNextCharPosY()}updateFontSize(e,t=0,r=this.message.length-1){for(let n=t;n<=r;n+=1)this.message[n].updateFontSize(e);this.maxCharSize=e,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}countSpaces(){let e=0;for(let t=0;t<this.message.length;t++)this.message[t].char===" "&&(e+=1);return e}alignText(e,t,r,n,s){switch(r){case yn.Left:this.leftAlign(e,s);break;case yn.Center:this.centerAlign(this.spaceLeft(t),e,s);break;case yn.Right:this.rightAlign(this.spaceLeft(t),e,s);break;case yn.Justify:this.justifyAlign(this.spaceLeft(t),e,s);break}}offsetCharacters(e,t,r){np.set(t,r);let n=this.message.length;for(let s=0;s<n;s++)this.message[s].updatePosition(this.message[s].localPosition.add(np),e)}leftAlign(e,t){this.align=yn.Left,this.offsetCharacters(e,0,t)}centerAlign(e,t,r){this.align=yn.Center,this.offsetCharacters(t,e/2,r)}rightAlign(e,t,r){this.align=yn.Right,this.offsetCharacters(t,e,r)}justifyAlign(e,t,r){if(this.align=yn.Justify,this.endLine){this.offsetCharacters(t,0,r);return}let n=this.countSpaces();if(n===0){this.offsetCharacters(t,0,r);return}let s=e/n,o=0;for(let a=0;a<this.message.length;a++)this.message[a].char===" "&&(o+=s),np.set(o,r),this.message[a].updatePosition(this.message[a].localPosition.add(np),t)}clone(){let e=new Zo(this.yLinePos,this.lineHeight,this.maxCharSize);e.nextChar3DPos=this.nextChar3DPos.clone(),e.align=this.align,e.endLine=this.endLine;for(let t=0;t<this.message.length;t++)e.message.push(this.message[t].clone());return e}};var bU=new A(0,0,1),CA=new A,LA=new A,PA=new kt,$o=class extends ir{constructor(e=Wr.create({}),t=new cn({side:er})){super(e,t);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new tr;this._onShapeUpdate=()=>{if(this.geometry instanceof qo){if(this.geometry.updateFromShape()){let e=this.geometry.drawCount,t=this.geometry.userData;this.updateGeometry(Object.assign(this.geometry.userData,{parameters:Object.assign(t.parameters,{surfaceMaxCount:e+1e3})}))}}else this.updateGeometry({});this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};var r;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,(r=this.shape.eventDispatcher)==null||r.addEventListener("update",this._onShapeUpdate)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="VectorObject",t}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e){if(super.updateGeometry(e),"userData"in this.geometry){let t=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:t})}}setShape(e){var t,r;this.shape&&((t=this.shape.eventDispatcher)==null||t.removeEventListener("update",this._onShapeUpdate)),this.shape=e,(r=this.shape.eventDispatcher)==null||r.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),PA.getNormalMatrix(this.matrixWorld),CA.copy(bU).applyMatrix3(PA).normalize(),LA.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(CA,LA)}clone(e){let t=this.shape.clone(),r=this.material.clone(),n=this.geometry.userData,s=Wr.create(Object.assign({},n,{shape:t})),o=new $o(s,r).copy(this,e);return o.shape=t,t.update(),o}raycast(e,t){ir.prototype.raycast.call(this,e,t)}};var Ki=i=>{var e;return e=class extends i{constructor(){super(...arguments);this.isObjectHelper=!0}},e.geometryHelper=new On(30,30,30),e};var ip=new Li,Wy=new hn,DA=new Ae,Ji=(i,e,t,r,n=!1)=>{let s=e,o=i.matrixWorld;if(s.boundingSphere===null&&s.computeBoundingSphere(),Wy.copy(s.boundingSphere),Wy.applyMatrix4(o),t.ray.intersectsSphere(Wy)===!1||(DA.copy(o).invert(),ip.copy(t.ray).applyMatrix4(DA),s.boundingBox!==null&&ip.intersectsBox(s.boundingBox)===!1))return;let a,l,c,u,d=s.index,h=s.attributes.position,f=s.drawRange,p,g;if(n===!1){let y=Math.max(0,f.start),m=Math.min(d.count,f.start+f.count);for(p=y,g=m;p<g;p+=3)if(l=d.getX(p),c=d.getX(p+1),u=d.getX(p+2),a=v(i,t,ip,h,l,c,u),a){a.faceIndex=Math.floor(p/3),r.push(a);return}}else{let m=s.attributes.position,x=new A,w=new A,b=new A,E=new A,T=2,N=1/((i.scale.x+i.scale.y+i.scale.z)/3),C=N*N,M=Math.max(0,f.start),_=Math.min(m.count,f.start+f.count);for(let D=M,O=_-1;D<O;D+=T){if(x.fromBufferAttribute(m,D),w.fromBufferAttribute(m,D+1),ip.distanceSqToSegment(x,w,E,b)>C)continue;E.applyMatrix4(i.matrixWorld);let k=t.ray.origin.distanceTo(E);k<t.near||k>t.far||r.push({distance:k,point:b.clone().applyMatrix4(i.matrixWorld),object:i})}}function v(y,m,x,w,b,E,T){let S=new A,N=new A,C=new A,M=new A,_=new A;if(S.fromBufferAttribute(w,b),N.fromBufferAttribute(w,E),C.fromBufferAttribute(w,T),x.intersectTriangle(S,N,C,!1,M)===null)return null;_.copy(M),_.applyMatrix4(y.matrixWorld);let O=m.ray.origin.distanceTo(_);return O<m.near||O>m.far?null:{faceIndex:1,distance:O,point:_.clone(),object:y}}};var sp=new A,ii=new fi,IA=class extends Ni{constructor(e){let t=new De,r=new rn({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],s=[],o={},a=new be(Zg),l=new be(Zg),c=new be(t1);u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",l),u("p","n2",l),u("p","n3",l),u("p","n4",l),u("u1","u2",c),u("u2","u3",c),u("u3","u1",c);function u(h,f,p){d(h,p),d(f,p)}function d(h,f){n.push(0,0,0),s.push(f.r,f.g,f.b),o[h]===void 0&&(o[h]=[]),o[h].push(n.length/3-1)}t.setAttribute("position",new Te(n,3)),t.setAttribute("color",new Te(s,3));super(t,r);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=o,this.update()}update(){let e=this.geometry,t=this.pointMap,r=!0;ii.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,s=1,o=r?.8:1e-4;Si("n1",t,e,ii,-n,-s,o),Si("n2",t,e,ii,n,-s,o),Si("n3",t,e,ii,-n,s,o),Si("n4",t,e,ii,n,s,o);let a=o;Si("f1",t,e,ii,-n,-s,a),Si("f2",t,e,ii,n,-s,a),Si("f3",t,e,ii,-n,s,a),Si("f4",t,e,ii,n,s,a);let l=a,c=.5;Si("u1",t,e,ii,n*.7*c,s*1.1,l),Si("u2",t,e,ii,-n*.7*c,s*1.1,l),Si("u3",t,e,ii,0,s*(1.1+.9*c),l),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Si(i,e,t,r,n,s,o){sp.set(n,s,o).unproject(r);let a=e[i];if(a!==void 0){let l=t.getAttribute("position");for(let c=0,u=a.length;c<u;c++)l.setXYZ(a[c],sp.x,sp.y,sp.z)}}var qy=class extends Ki(IA){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,t){Ji(this.object,this.geometry,e,t,!0)}};var Pu=class extends Ki(gg){constructor(e,t=15,r=10066329){super(e,t,r);this.object=e;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,t){Ji(this.object,Pu.geometryHelper,e,t)}};var Du=class extends Ki(yg){constructor(e,t=15){super(t);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,t){Ji(this.object,Du.geometryHelper,e,t)}update(){}};var Iu=class extends Ki(mg){constructor(e,t=15,r=6710886){super(e,t,r);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,t){Ji(this.object,Iu.geometryHelper,e,t)}};var ap=class extends Ki(fg){constructor(e,t=6710886){super(e,t);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,t){Ji(this.object,ap.geometryHelper,e,t)}update(){if(this.object!==void 0){let e=ap._vector,t=this.object.distance?this.object.distance:1e3,r=t*Math.tan(this.object.angle);this.cone.scale.set(r,r,t),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,o=this.cone.material.length;s<o;s++)this.cone.material[s].color.set(n);else this.cone.material.color.set(n)}}},op=ap;op._vector=new A;var Qi=(i,e)=>class extends i{constructor(){super(...arguments);this.objectHelper=new e(this);this.enableHelper=!1}set visibility(r){this.visible=r,this.setHelperVisibility(r),this.setHelperChildrenVisibility(r)}get visibility(){return this.visible}get geometryHelper(){return e.geometryHelper}setHelperVisibility(r){this.objectHelper.visible=r}setHelperChildrenVisibility(r){for(let n of this.children)_n(n)&&n.traverseEntity(s=>{bs(s)&&s.visible&&(s.objectHelper.visible=r)})}raycast(r,n){this.objectHelper.raycast(r,n)}copy(r,n=!0){return super.copy(r,n),r.enableHelper!==void 0&&(this.enableHelper=r.enableHelper),r.objectHelper!==void 0&&(this.objectHelper.visible=r.objectHelper.visible),this}toJSON(r){let n=super.toJSON(r),s=n.object;return s.enableHelper=this.enableHelper,n}fromJSON(r){return super.fromJSON(r),r.enableHelper!==void 0&&(this.enableHelper=!0),this}fromLightState(r,n){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;r.color!==void 0&&(s.color=wr(r.color,n)),r.intensity!==void 0&&(s.intensity=r.intensity),r.depth!==void 0&&(s.shadow.camera.far=r.depth,s.shadow.needsUpdate=!0),r.shadows!==void 0&&(this.castShadow=r.shadows),r.helper!==void 0&&(this.enableHelper=r.helper,s.gizmos.shadowmap.visible=r.helper)}return this}};var Fl=new A,Xy=new A,si=class extends Qi(ti(fi),qy){constructor(e=window.innerWidth,t=window.innerHeight,r=45,n,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=zo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=t,this.orthoCamera=new Da(e*-.5,e*.5,t*.5,t*-.5,n!=null?n:-5e4,s),this.perspCamera=new mr(r,e/t,n!=null?n:50,s),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic(!0)}static createFromState(e,t){let r=new si().fromState(t);return r.enableHelper=!0,r.objectHelper.update(),r.uuid=e,r}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,t){e==="PerspectiveCamera"?this.perspCamera.near=t:this.orthoCamera.near=t}setZoom(e,t){t>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=t:this.orthoCamera.zoom=t)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(Fl),this.targetOffset=Fl.distanceTo(e)}getTarget(e=new A){return this.getWorldDirection(Xy),this.getWorldPosition(Fl),Xy.multiplyScalar(this.targetOffset),e.copy(Fl).add(Xy),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Fl),Fl.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new jt),t=new A(0,0,1).applyQuaternion(e),r=new A().copy(ot.DefaultUp);this.isUpVectorFlipped&&r.negate(),r.applyQuaternion(e);let n=new A().copy(ot.DefaultUp).projectOnPlane(t),s=new A().crossVectors(n,r).dot(t)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(r)*s}getViewFrontToObject(e){let t=e.getWorldPosition(new A),n=e.getWorldDirection(new A).multiplyScalar(this.targetOffset);return{position:t.clone().add(n),target:t}}getViewToObject(e){let t=e.getWorldPosition(new A),n=this.getWorldDirection(new A).multiplyScalar(this.targetOffset);return{position:t.clone().sub(n),target:t}}setViewplaneSize(e,t){this.left=-e*.5,this.right=e*.5,this.top=t*.5,this.bottom=-t*.5,this.aspect=e/t,this.updateProjectionMatrix()}toOrthographic(e){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",(this.enableHelper===!0||e===!0)&&this.objectHelper.update()}toPerspective(e){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",(this.enableHelper===!0||e===!0)&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,t,r,n,s,o){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,t,r,n,s,o):this.orthoCamera.setViewOffset(e,t,r,n,s,o)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(e){this._cameraType==="PerspectiveCamera"?this.toPerspective(e):this._cameraType==="OrthographicCamera"&&this.toOrthographic(e)}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,t){return super.copy(e,t),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}fromCameraRender(e){let t={near:this.orthoCamera.near,far:this.orthoCamera.far},r={near:this.perspCamera.near,far:this.perspCamera.far};return this.copy(e),this.name="",this.enableHelper=!0,this.objectHelper.visible=!0,this.orthoCamera.near=t.near,this.orthoCamera.far=t.far,this.perspCamera.near=r.near,this.perspCamera.far=r.far,this.updateProjectionMatrix(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="CombinedCamera",r.cameraType=this.cameraType,r.targetOffset=this.targetOffset,r.isUpVectorFlipped=this.isUpVectorFlipped,r.angleOffsetFromUp=this.angleOffsetFromUp,r.left=this.left,r.right=this.right,r.top=this.top,r.bottom=this.bottom,this.view!==null&&(r.view=Object.assign({},this.view)),r.zoomOrtho=this.orthoCamera.zoom,r.nearOrtho=this.orthoCamera.near,r.far=this.far,r.aspect=this.aspect,r.fov=this.fov,r.focus=this.focus,r.filmGauge=this.filmGauge,r.filmOffset=this.filmOffset,r.zoomPersp=this.perspCamera.zoom,r.nearPersp=this.perspCamera.near,t}fromJSON(e){var t;if(super.fromJSON(e),this.cameraType=e.cameraType,e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.orbitControlsTarget!==void 0){let r=this.getWorldPosition(new A),n=new A().fromArray(e.orbitControlsTarget);this.targetOffset=n.distanceTo(r)}else e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset);return this.isUpVectorFlipped=!1,this.angleOffsetFromUp=(t=e.angleOffsetFromUp)!=null?t:0,e.left!==void 0&&(this.left=e.left),e.right!==void 0&&(this.right=e.right),e.top!==void 0&&(this.top=e.top),e.bottom!==void 0&&(this.bottom=e.bottom),e.view!==void 0&&(this.view=Object.assign({},e.view)),e.zoomOrtho!==void 0&&(this.orthoCamera.zoom=e.zoomOrtho),e.nearOrtho!==void 0&&(this.orthoCamera.near=e.nearOrtho),e.far!==void 0&&(this.far=e.far),e.aspect!==void 0&&(this.aspect=e.aspect),e.fov!==void 0&&(this.fov=e.fov),e.focus!==void 0&&(this.focus=e.focus),e.filmGauge!==void 0&&(this.filmGauge=e.filmGauge),e.filmOffset!==void 0&&(this.filmOffset=e.filmOffset),e.zoomPersp!==void 0&&(this.perspCamera.zoom=e.zoomPersp),e.nearPersp!==void 0&&(this.perspCamera.near=e.nearPersp),this.updateProjectionMatrix(),this}toCameraState(e=[]){let t={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return fl(t,e)}fromCameraState(e){let{orthographic:t,perspective:r}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),t!==void 0&&(t.near!==void 0&&(this.orthoCamera.near=t.near),t.zoom!==void 0&&(this.orthoCamera.zoom=t.zoom)),r!==void 0&&(r.near!==void 0&&(this.perspCamera.near=r.near),r.fov!==void 0&&(this.perspCamera.fov=r.fov),r.zoom!==void 0&&(this.perspCamera.zoom=r.zoom)),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return Se(ne(ne({},super.toState(e)),this.toCameraState(e)),{type:this.cameraType})}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var Zi=class extends Qi(ti(Di),Du){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,t){let r=new Zi().fromState(t);return r.uuid=e,r.enableHelper=!0,r.objectHelper.update(),r}toJSON(e){let t=super.toJSON(e);return t.object.objectType="EmptyObject",t}};var Nu=class extends Qi(ti(sd),Pu){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.top=1250,r.bottom=-1250,r.right=1250,r.left=-1250,r.near=1,r.far=2500;let n=new gi(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,t,r){let n=new Nu().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&t.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightDirectional",r.color=this.color.getHex(),r.intensity=this.intensity,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.left=r.left,t.right=r.right,t.top=r.top,t.bottom=r.bottom,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromDirectionalLightState(e,t){let r=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,t),e.size!==void 0&&J1(this,e.size),r&&this.update(),this}fromState(e,t){return super.fromState(e),this.fromDirectionalLightState(e,t),this}};var Ru=class extends Qi(ti(id),Iu){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.fov=90,r.aspect=1,r.near=100,r.far=2500;let n=new A(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),s=new A(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z),o=new or(n,s),a=new Ka(o,new be(16755200));a.visible=!1,this._gizmos.shadowmap=a,this.update()}static createFromState(e,t,r){let n=new Ru().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Ka&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Ka&&(t.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let t=this._gizmos[e];if(t instanceof Ka){let r=this.shadow.camera,n=new A(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),s=new A(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z);t.box.set(n,s),t.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightPoint",r.color=this.color.getHex(),r.intensity=this.intensity,r.distance=this.distance,r.decay=this.decay,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n,s;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray((s=e.shadow.mapSize)!=null?s:[512,512]),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.fov=r.fov,t.focus=r.focus,t.aspect=r.aspect,t.filmGauge=r.filmGauge,t.filmOffset=r.filmOffset,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromPointLightState(e,t){return super.fromLightState(e,t),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,t){return super.fromState(e),this.fromPointLightState(e,t),this}};var NA=new A,RA=new A,BA=new jt,Bu=class extends Qi(ti(nd),op){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.fov=$e.RAD2DEG*2*this.angle,r.aspect=1,r.near=100,r.far=2500;let n=new gi(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,t,r){let n=new Bu().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&t.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),RA.setFromMatrixPosition(this.matrixWorld),BA.setFromRotationMatrix(this.matrixWorld),NA.copy(this.up).applyQuaternion(BA).negate().multiplyScalar(this.distance),this.target.position.copy(RA).add(NA),this.target.updateMatrixWorld(),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightSpot",r.color=this.color.getHex(),r.intensity=this.intensity,r.distance=this.distance,r.angle=this.angle,r.decay=this.decay,r.penumbra=this.penumbra,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.decay=e.decay,this.penumbra=e.penumbra,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.fov=r.fov,t.focus=r.focus,t.aspect=r.aspect,t.filmGauge=r.filmGauge,t.filmOffset=r.filmOffset,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromSpotLightState(e,t){return super.fromLightState(e,t),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),this}fromState(e,t){return super.fromState(e),this.fromSpotLightState(e,t),this}};var OA=i=>i.tagName==="VIDEO",Ul=class{static resize(e,t,r){let n=e/t,s;if(!r.image)return;let o=r.image;OA(o)?s=o.videoWidth/o.videoHeight:s=o.width/o.height,n>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/n):r.repeat.set(1,1*s/n)),n<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*n/s*-1,1):r.repeat.set(1*n/s,1)),n==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(e,t,r){let n=e/t,s=r.image!==void 0?r.image.width/r.image.height:1,o;n>s?o={x:1,y:s/n}:n<s?o={x:n/s,y:1}:o={x:1,y:1},r.repeat.set(o.x,o.y),r.updateMatrix()}static resizeTextureLayers(e,t,r){let n=r.userData.layers,s=n.getLayers();for(let o=0;o<s.length;o++){let a=s[o];MA(a)&&(Ul.resizeTextureLayer(e,t,a.uniforms[`f${a.id}_texture`].value),n.updateLayerUniform())}}static resizeComplex(e,t,r,n){let s=e/t,o,a=r.image;OA(a)?o=a.videoWidth/a.videoHeight:o=a.width/a.height,n.geometry.type.includes("Shape")?(s>o&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*-1,1/t*o/s):r.repeat.set(1/e,1/t*o/s)),s<o&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*s/o*-1,1/t):r.repeat.set(1/e*s/o,1/t)),s==o&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*-1,1/t):r.repeat.set(1/e,1/t))):(s>o&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*o/s):r.repeat.set(1,1*o/s)),s<o&&(r.imageType=="WEBCAM"?r.repeat.set(1*s/o*-1,1):r.repeat.set(1*s/o,1)),s==o&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var Ou=class extends ir{constructor(e,t=new cn){super(e,t);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e){super.updateGeometry(e),this.material.userData.layers&&Ul.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}resizeGeometry(e,t){super.resizeGeometry(e,t,0),this.material.userData.layers&&Ul.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="Mesh2D",t}clone(){let e=super.clone();return e.updateGeometry({}),e}static fromTexture(e){let t,r;if(e instanceof Jh){let o=e.image;t=o.videoWidth*.5,r=o.videoHeight*.5}else{let o=e.image;t=o.width*.5,r=o.height*.5}let n=Nf.create({parameters:{width:t,height:r}}),s=new cn;return s.layersList.changeLayer(0,{type:ut.TEXTURE,texture:e}),s.layersList.moveLayer(0,1),s.dispose(),new Ou(n,s)}};var Fu=class extends ir{constructor(e,t=new ni){super(e,t);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}toJSON(e){let t=super.toJSON(e);return t.object.objectType="Mesh3D",t}};var Uu=class extends Fu{constructor(e,t=new ni){super(e,t);this.objectType="NonParametric"}toJSON(e){let t=super.toJSON(e);return t.object.objectType="NonParametric",t}};var Gu;(function(t){t[t.TO_RIGHT=1]="TO_RIGHT",t[t.TO_LEFT=-1]="TO_LEFT"})(Gu||(Gu={}));var Yy=class extends ir{constructor(e,t=new cn({transparent:!0,opacity:1,visible:!1,side:er})){super(e,t);this.objectType="TextFrame";this.charContainer=new ot,this.add(this.charContainer),this.material.visible=!1,this._geometryUserData=e.userData,this.userData.textFrame={hexColor:null,opacity:1,visible:!0,text:"",fontSize:16,lineHeight:1.5,letterSpacing:1,fontFamily:"roboto_regular",textTransform:io.None,horizontalAlignment:1,verticalAlignment:xs.Top,LOD:16,maxLineSize:this._geometryUserData.parameters.width,textOrigin:new A(this._geometryUserData.parameters.width*-.5,this._geometryUserData.parameters.height*.5,0),textLines:[]},this.createTextLine()}static createFromState(e,t,r){let n=Rf.create({parameters:{width:t.width,height:t.height}}),s=new Yy(n).fromState(t,r);return s.uuid=e,s}async updateText(e){this.clearText();let t=this.userData.textFrame,r=t.fontFamily;await sn.loadFont(r),t.text=e;let n=t.textOrigin,s=new hi({visible:t.visible,transparent:!0,side:er}),o=e.split(`
3962
+ `)}return t}copy(e){return super.copy(e),e.color&&(this.color=e.color.clone()),this.roughness=e.roughness.clone(),this.metalness=e.metalness.clone(),e.position&&(this.position=e.position.clone()),e.afterColor&&(this.afterColor=e.afterColor.clone()),e.alpha&&(this.alpha=e.alpha.clone()),e.reflectivity&&(this.reflectivity=e.reflectivity.clone()),e.shadingAlpha&&(this.shadingAlpha=e.shadingAlpha.clone()),e.shadingBlend&&(this.shadingBlend=e.shadingBlend.clone()),this}};var Hy=class extends ri{get color(){return this.fragment.color}set color(e){this.fragment.color=e}get afterColor(){return this.fragment.afterColor}set afterColor(e){this.fragment.afterColor=e}get alpha(){return this.fragment.alpha}set alpha(e){this.fragment.alpha=e}get shadingAlpha(){return this.fragment.shadingAlpha}set shadingAlpha(e){this.fragment.shadingAlpha=e}get shadingBlend(){return this.fragment.shadingBlend}set shadingBlend(e){this.fragment.shadingBlend=e}get position(){return this.fragment.position}set position(e){this.fragment.position=e}get roughness(){return this.fragment.roughness}set roughness(e){this.fragment.roughness=e}get metalness(){return this.fragment.metalness}set metalness(e){this.fragment.metalness=e}get reflectivity(){return this.fragment.reflectivity}set reflectivity(e){this.fragment.reflectivity=e}constructor(e=new Vy,t){super(e,e,t);this.type="StandardNodeMaterial",this.fragment=e}};var Cu=class extends Hy{constructor(e,t,r){super(t,e);this.userData.type="PhysicalMaterial",this.userData.category="Physical",this.userData.layers=r!=null?r:this._getLayerStack(e==null?void 0:e.map)}get layersList(){return this.userData.layers}set layersList(e){this.userData.layers=e}equals(e){return this.userData.type===e.userData.type&&this.userData.layers.uuid==e.userData.layers.uuid}copy(e){if(e.userData.layers!==void 0&&e.userData.layers instanceof vn){let t=e.userData.layers,r=e.fragment;super.copy(e);let n=r.clone();this.fragment=n,this.vertex=n;let s=t.clone(this);this.userData.layers=s,n.shadingAlpha.value=r.shadingAlpha.value,n.shadingBlend.value=r.shadingBlend.value}else super.copy(e);return this}static fromJSON(e,t,r){let n=r.getNode(t.vertex),s=new Cu(void 0,n);return s.fromJSON(t,r),s}dispose(){super.dispose()}};function tp(i,e){switch(i.data.type){case"light":return wi(i);case"fresnel":return aU(i,e);case"gradient":return lU(i);case"depth":return cU(i);case"normal":return uU(i);case"noise":return hU(i,e);case"texture":return dU(i,e);case"rainbow":return fU(i);case"transmission":return pU(i,e);case"matcap":return mU(i,e);case"displace":return gU(i);case"color":default:return oU(i,e)}}function AA(i){return{type:i.data.type}}function wi(i){let{alpha:e,mode:t}=i.data;return Se(ne({},AA(i)),{alpha:e,mode:t})}function oU(i,e){return Se(ne({},wi(i)),{color:wr(i.data.color,e)})}function aU(i,e){let{bias:t,scale:r,intensity:n,factor:s,color:o}=i.data;return Se(ne({},wi(i)),{color:wr(o,e),bias:t,scale:r,intensity:n,factor:s})}function lU(i){let{gradientType:e,smooth:t,colors:r,steps:n,angle:s,offset:o,morph:a}=i.data;return Se(ne({},wi(i)),{gradientType:e,smooth:t,colors:r.map(l=>new tt(l[0],l[1],l[2],l[3])),num:r.length,steps:n,offset:new B(...o),morph:new B(...a),angle:s})}function cU(i){let{gradientType:e,near:t,far:r,isVector:n,isWorldSpace:s,origin:o,direction:a,colors:l,steps:c,smooth:u,num:d}=i.data;return Se(ne({},wi(i)),{gradientType:e,near:t,far:r,isVector:n,isWorldSpace:s,origin:new A(...o),direction:a?new A(...a):new A(1,0,0),num:d,colors:l.map(h=>new tt(h[0],h[1],h[2],h[3])),steps:c,smooth:u})}function uU(i){let{cnormal:e}=i.data;return Se(ne({},wi(i)),{cnormal:new A(e[0],e[1],e[2])})}function hU(i,e){let{data:t}=i;return Se(ne({},wi(i)),{scale:t.scale,move:t.move,fA:new B(...t.fA),fB:new B(...t.fB),size:new A(...t.size),distortion:new B(...t.distortion),colorA:wr(t.colorA,e),colorB:wr(t.colorB,e),colorC:wr(t.colorC,e),colorD:wr(t.colorD,e),noiseType:t.noiseType})}function dU(i,e){let{projection:t,axis:r,crop:n,size:s}=i.data,{image:o,wrapping:a,repeat:l,offset:c}=i.data.texture,u=new _t,d;if(typeof o=="string")d=e==null?void 0:e.getImage(o);else{let h=new Image;h.src=o.data,h.onload=()=>{(e==null?void 0:e.onImageLoad)&&(e==null||e.onImageLoad(o.data))},d=h}return u.image=d,u.repeat.set(l[0],l[1]),u.offset.set(c[0],c[1]),u.wrapS=u.wrapT=a,Se(ne({},wi(i)),{texture:u,mat:new kt().setUvTransform(c[0],c[1],l[0],l[1],0,0,0),crop:n,projection:t,axis:["x","y","z"].indexOf(r),size:s})}function fU(i){let{data:e}=i;return Se(ne({},wi(i)),{filmThickness:e.filmThickness,movement:e.movement,wavelengths:new A(...e.wavelengths),noiseStrength:e.noiseStrength,noiseScale:e.noiseScale,offset:new A(...e.offset)})}function pU(i,e){let{data:t}=i;return Se(ne({},wi(i)),{thickness:t.thickness,ior:t.ior,roughness:t.roughness,transmissionSamplerMap:e.transmissionSamplerMap,transmissionDepthMap:e.transmissionDepthMap})}function mU(i,e){let t=new _t,{image:r}=i.data.texture,n;if(typeof r=="string")n=e==null?void 0:e.getImage(r);else{let o=new Image;o.src=r.data,o.onload=()=>{(e==null?void 0:e.onImageLoad)&&(e==null||e.onImageLoad(r.data))},n=o}t.image=n;let s=16777215;return Se(ne({},wi(i)),{color:s,texture:t})}function gU(i){let{data:e}=i,t=Se(ne({},AA(i)),{intensity:e.intensity});if(e.displacementType==="noise")return Se(ne({},t),{offset:new A(...e.offset),scale:e.scale,movement:e.movement,noiseType:e.noiseType});{let r=new _t,n=new kt().setUvTransform(0,0,1,1,0,0,0);return Se(ne({},t),{texture:r,mat:n,crop:e.crop})}}function rp(i,e,t){if(t.type==="displace"&&(i==="intensity"||i==="visible")){let r=e.uniforms[`f${e.id}_intensity`];return r?(r.value=t.intensity*(t.visible?1:0),r):void 0}if(t.type!=="displace"&&(i==="alpha"||i==="visible")){let r=e.uniforms[`f${e.id}_alpha`];return r?(r.value=t.alpha*(t.visible?1:0),r):void 0}}var Ol;(function(e){function i(t){return new be(t.x,t.y,t.z).getHex()}e.getHex=i})(Ol||(Ol={}));var TA;(function(e){function i(t){return new tt(t.r,t.g,t.b,t.a)}e.getThreeVector4=i})(TA||(TA={}));var EA;(function(t){function i(r,n){r.setRGB(n.r,n.g,n.b)}t.setThreeColor=i;function e(r){return new be(r.r,r.g,r.b).getHex()}t.getHex=e})(EA||(EA={}));function Lu(i,e){return typeof i=="string"?e.getMaterialOrDeletedPlaceholder(i):jy(i,e)}function _A(i,e){return i.map(t=>Lu(t,e))}function jy(i,e){var o,a;let t=(o=i.layers)!=null?o:Hi.defaultTwoLayerData("phong").layers,r=yU(t),n;switch(r.category){case"basic":n=new cn;break;case"lambert":{n=new Eu;break}case"toon":{n=new _u;break}case"physical":n=new Cu;break;case"phong":default:{n=new ni;break}}n.name=(a=i.name)!=null?a:"Untitled Material";let s=n.userData.layers;vU(s);for(let l=t.length-1;l>=0;l--)xU(s,t[l],e);switch(r.category){case"basic":break;case"lambert":{let u=n,h=wr(r.emissive,e);h instanceof be?u.emissive.value=h:u.emissive.value.setHex(Ol.getHex(h));break}case"toon":{let u=n,d=r;u.shininess.value=d.shininess;let h=wr(d.specular,e);h instanceof be?u.specular.value=h:u.specular.value.setHex(Ol.getHex(h));break}case"physical":let l=n,c=r;l.metalness.value=c.metalness,l.roughness.value=c.roughness,l.reflectivity.value=c.reflectivity;break;case"phong":default:{let u=n,d=r;u.shininess.value=d.shininess;let h=wr(d.specular,e);h instanceof be?u.specular.value=h:u.specular.value.setHex(Ol.getHex(h));break}}return s.blendColors(),s.blendAfterColors(),s.blendPositions(),n}function yU(i){for(let e of i)if(e.data.type==="light")return e.data;return{type:"light",category:"basic",visible:!0,alpha:1,mode:Pr.Normal}}function vU(i){for(let e of i.getLayers())i.removeLayer(e.id)}function xU(i,e,t){let r=tp(e,t);r.type==="transmission"&&(r.transmissionSamplerMap=t==null?void 0:t.transmissionSamplerMap,r.transmissionDepthMap=t==null?void 0:t.transmissionDepthMap);let n=i.addLayer(r);n.uuid=e.id;for(let s in e.data)rp(s,n,e.data)}var np=new B,Zo=class{constructor(e,t,r){this.message=[];this.endLine=!0;this.yLinePos=e,this.lineHeight=t,this.maxCharSize=r,this.nextChar3DPos=new B(0,this.yLinePos+this.maxCharSize*this.lineHeight),this.align=yn.Left}addChar3D(e,t,r=this.message.length){this.message.splice(r,0,e),e.fontSize>this.maxCharSize?(this.maxCharSize=e.fontSize,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight,this.fullUpdate(t)):(e.updatePosition(this.nextChar3DPos,t),this.nextChar3DPos.x+=e.charSize)}deleteChar3D(e=this.message.length-1){let t=this.message[e];if(t)return this.message.splice(e,1),this.nextChar3DPos.x-=t.charSize,t}isEndLine(e){this.endLine=e}fullUpdate(e,t=0){this.nextChar3DPos.x=0;for(let r=t,n=this.message.length;r<n;r+=1)this.message[r].updatePosition(this.nextChar3DPos,e),this.nextChar3DPos.x+=this.message[r].charSize}checkOverFlow(e){let t,r=this.message.length-1;if(r<=0)return!1;for(;r>=0;){if(this.message[r].char!==" "){t=this.message[r];break}r-=1}return!!(r>=0&&t&&t.localPosition.x+t.charSize>e)}containSpaceOverFlow(e=this.message.length-1){for(let t=e;t>=0;t-=1)if(this.message[t].char===" ")return!0;return!1}containSpace(e=this.message.length-1){if(this.endLine)return!0;for(let t=e;t>=0;t-=1)if(this.message[t].char===" ")return!0;return!1}popWord(e=this.message.length-1){let t=[],r=!0,n;for(n=e;n>=0;n-=1)if(this.message[n].char===" "){r=!1,t.length===0&&(n-=1,t.splice(0,0,this.message[n]));break}else t.splice(0,0,this.message[n]);return r?t=[]:this.message.splice(n+1,t.length),t}getWord(e=0,t=1){let r=[],n=e;for(n=e;;n+=t){if(!this.message[n]||this.message[n].char===" "){r.length===0&&this.message[n]&&(r.push(this.message[n]),this.message.splice(n,1));break}t>0?(r.push(this.message[n]),this.message.splice(n,1),n-=t):(r.splice(0,0,this.message[n]),this.message.splice(n,1))}return r}getWordAtIndex(e){let t=[];for(let r=e;r<this.message.length&&this.message[r].char!==" ";r++)t.push(this.message[r]);for(let r=e-1;r>=0&&this.message[r].char!==" ";r--)t.splice(0,0,this.message[r]);return t}wordSize(e=0,t=-1){let r=0,n=e;for(;n>=0&&n<this.message.length;){if(this.message[n].char===" "){r===0&&(r=this.message[n].charSize);break}r+=this.message[n].charSize,n+=t}return(n<0||n>=this.message.length)&&!this.endLine?this.message[e]?this.message[e].charSize:999999999:r===0?999999999:r}spaceLeft(e){return e-this.nextChar3DPos.x}popChar(e=this.message.length-1){return this.nextChar3DPos.x-=this.message[e].charSize,this.message.splice(e,1)}isEmpty(){return!this.message.length}updateNextCharPosY(){this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}updateYLinePos(e){this.yLinePos=e,this.updateNextCharPosY()}updatelineHeight(e){this.lineHeight=e,this.updateNextCharPosY()}updateFontSize(e,t=0,r=this.message.length-1){for(let n=t;n<=r;n+=1)this.message[n].updateFontSize(e);this.maxCharSize=e,this.nextChar3DPos.y=this.yLinePos+this.maxCharSize*this.lineHeight}countSpaces(){let e=0;for(let t=0;t<this.message.length;t++)this.message[t].char===" "&&(e+=1);return e}alignText(e,t,r,n,s){switch(r){case yn.Left:this.leftAlign(e,s);break;case yn.Center:this.centerAlign(this.spaceLeft(t),e,s);break;case yn.Right:this.rightAlign(this.spaceLeft(t),e,s);break;case yn.Justify:this.justifyAlign(this.spaceLeft(t),e,s);break}}offsetCharacters(e,t,r){np.set(t,r);let n=this.message.length;for(let s=0;s<n;s++)this.message[s].updatePosition(this.message[s].localPosition.add(np),e)}leftAlign(e,t){this.align=yn.Left,this.offsetCharacters(e,0,t)}centerAlign(e,t,r){this.align=yn.Center,this.offsetCharacters(t,e/2,r)}rightAlign(e,t,r){this.align=yn.Right,this.offsetCharacters(t,e,r)}justifyAlign(e,t,r){if(this.align=yn.Justify,this.endLine){this.offsetCharacters(t,0,r);return}let n=this.countSpaces();if(n===0){this.offsetCharacters(t,0,r);return}let s=e/n,o=0;for(let a=0;a<this.message.length;a++)this.message[a].char===" "&&(o+=s),np.set(o,r),this.message[a].updatePosition(this.message[a].localPosition.add(np),t)}clone(){let e=new Zo(this.yLinePos,this.lineHeight,this.maxCharSize);e.nextChar3DPos=this.nextChar3DPos.clone(),e.align=this.align,e.endLine=this.endLine;for(let t=0;t<this.message.length;t++)e.message.push(this.message[t].clone());return e}};var bU=new A(0,0,1),CA=new A,LA=new A,PA=new kt,$o=class extends ir{constructor(e=Wr.create({}),t=new cn({side:er})){super(e,t);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new tr;this._onShapeUpdate=()=>{if(this.geometry instanceof qo){if(this.geometry.updateFromShape()){let e=this.geometry.drawCount,t=this.geometry.userData;this.updateGeometry(Object.assign(this.geometry.userData,{parameters:Object.assign(t.parameters,{surfaceMaxCount:e+1e3})}))}}else this.updateGeometry({});this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};var r;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,(r=this.shape.eventDispatcher)==null||r.addEventListener("update",this._onShapeUpdate)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="VectorObject",t}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e){if(super.updateGeometry(e),"userData"in this.geometry){let t=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:t})}}setShape(e){var t,r;this.shape&&((t=this.shape.eventDispatcher)==null||t.removeEventListener("update",this._onShapeUpdate)),this.shape=e,(r=this.shape.eventDispatcher)==null||r.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),PA.getNormalMatrix(this.matrixWorld),CA.copy(bU).applyMatrix3(PA).normalize(),LA.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(CA,LA)}clone(e){let t=this.shape.clone(),r=this.material.clone(),n=this.geometry.userData,s=Wr.create(Object.assign({},n,{shape:t})),o=new $o(s,r).copy(this,e);return o.shape=t,t.update(),o}raycast(e,t){ir.prototype.raycast.call(this,e,t)}};var Ki=i=>{var e;return e=class extends i{constructor(){super(...arguments);this.isObjectHelper=!0}},e.geometryHelper=new On(30,30,30),e};var ip=new Li,Wy=new hn,DA=new Ae,Ji=(i,e,t,r,n=!1)=>{let s=e,o=i.matrixWorld;if(s.boundingSphere===null&&s.computeBoundingSphere(),Wy.copy(s.boundingSphere),Wy.applyMatrix4(o),t.ray.intersectsSphere(Wy)===!1||(DA.copy(o).invert(),ip.copy(t.ray).applyMatrix4(DA),s.boundingBox!==null&&ip.intersectsBox(s.boundingBox)===!1))return;let a,l,c,u,d=s.index,h=s.attributes.position,f=s.drawRange,p,g;if(n===!1){let y=Math.max(0,f.start),m=Math.min(d.count,f.start+f.count);for(p=y,g=m;p<g;p+=3)if(l=d.getX(p),c=d.getX(p+1),u=d.getX(p+2),a=v(i,t,ip,h,l,c,u),a){a.faceIndex=Math.floor(p/3),r.push(a);return}}else{let m=s.attributes.position,x=new A,w=new A,b=new A,E=new A,T=2,N=1/((i.scale.x+i.scale.y+i.scale.z)/3),C=N*N,M=Math.max(0,f.start),_=Math.min(m.count,f.start+f.count);for(let D=M,O=_-1;D<O;D+=T){if(x.fromBufferAttribute(m,D),w.fromBufferAttribute(m,D+1),ip.distanceSqToSegment(x,w,E,b)>C)continue;E.applyMatrix4(i.matrixWorld);let k=t.ray.origin.distanceTo(E);k<t.near||k>t.far||r.push({distance:k,point:b.clone().applyMatrix4(i.matrixWorld),object:i})}}function v(y,m,x,w,b,E,T){let S=new A,N=new A,C=new A,M=new A,_=new A;if(S.fromBufferAttribute(w,b),N.fromBufferAttribute(w,E),C.fromBufferAttribute(w,T),x.intersectTriangle(S,N,C,!1,M)===null)return null;_.copy(M),_.applyMatrix4(y.matrixWorld);let O=m.ray.origin.distanceTo(_);return O<m.near||O>m.far?null:{faceIndex:1,distance:O,point:_.clone(),object:y}}};var sp=new A,ii=new fi,IA=class extends Ni{constructor(e){let t=new De,r=new rn({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],s=[],o={},a=new be(Zg),l=new be(Zg),c=new be(t1);u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",l),u("p","n2",l),u("p","n3",l),u("p","n4",l),u("u1","u2",c),u("u2","u3",c),u("u3","u1",c);function u(h,f,p){d(h,p),d(f,p)}function d(h,f){n.push(0,0,0),s.push(f.r,f.g,f.b),o[h]===void 0&&(o[h]=[]),o[h].push(n.length/3-1)}t.setAttribute("position",new Te(n,3)),t.setAttribute("color",new Te(s,3));super(t,r);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=o,this.update()}update(){let e=this.geometry,t=this.pointMap,r=!0;ii.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,s=1,o=r?.8:1e-4;Si("n1",t,e,ii,-n,-s,o),Si("n2",t,e,ii,n,-s,o),Si("n3",t,e,ii,-n,s,o),Si("n4",t,e,ii,n,s,o);let a=o;Si("f1",t,e,ii,-n,-s,a),Si("f2",t,e,ii,n,-s,a),Si("f3",t,e,ii,-n,s,a),Si("f4",t,e,ii,n,s,a);let l=a,c=.5;Si("u1",t,e,ii,n*.7*c,s*1.1,l),Si("u2",t,e,ii,-n*.7*c,s*1.1,l),Si("u3",t,e,ii,0,s*(1.1+.9*c),l),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Si(i,e,t,r,n,s,o){sp.set(n,s,o).unproject(r);let a=e[i];if(a!==void 0){let l=t.getAttribute("position");for(let c=0,u=a.length;c<u;c++)l.setXYZ(a[c],sp.x,sp.y,sp.z)}}var qy=class extends Ki(IA){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,t){Ji(this.object,this.geometry,e,t,!0)}};var Pu=class extends Ki(gg){constructor(e,t=15,r=10066329){super(e,t,r);this.object=e;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,t){Ji(this.object,Pu.geometryHelper,e,t)}};var Du=class extends Ki(yg){constructor(e,t=15){super(t);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,t){Ji(this.object,Du.geometryHelper,e,t)}update(){}};var Iu=class extends Ki(mg){constructor(e,t=15,r=6710886){super(e,t,r);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,t){Ji(this.object,Iu.geometryHelper,e,t)}};var ap=class extends Ki(fg){constructor(e,t=6710886){super(e,t);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,t){Ji(this.object,ap.geometryHelper,e,t)}update(){if(this.object!==void 0){let e=ap._vector,t=this.object.distance?this.object.distance:1e3,r=t*Math.tan(this.object.angle);this.cone.scale.set(r,r,t),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,o=this.cone.material.length;s<o;s++)this.cone.material[s].color.set(n);else this.cone.material.color.set(n)}}},op=ap;op._vector=new A;var Qi=(i,e)=>class extends i{constructor(){super(...arguments);this.objectHelper=new e(this);this.enableHelper=!1}set visibility(r){this.visible=r,this.setHelperVisibility(r),this.setHelperChildrenVisibility(r)}get visibility(){return this.visible}get geometryHelper(){return e.geometryHelper}setHelperVisibility(r){this.objectHelper.visible=r}setHelperChildrenVisibility(r){for(let n of this.children)_n(n)&&n.traverseEntity(s=>{bs(s)&&s.visible&&(s.objectHelper.visible=r)})}raycast(r,n){this.objectHelper.raycast(r,n)}copy(r,n=!0){return super.copy(r,n),r.enableHelper!==void 0&&(this.enableHelper=r.enableHelper),r.objectHelper!==void 0&&(this.objectHelper.visible=r.objectHelper.visible),this}toJSON(r){let n=super.toJSON(r),s=n.object;return s.enableHelper=this.enableHelper,n}fromJSON(r){return super.fromJSON(r),r.enableHelper!==void 0&&(this.enableHelper=!0),this}fromLightState(r,n){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;r.color!==void 0&&(s.color=wr(r.color,n)),r.intensity!==void 0&&(s.intensity=r.intensity),r.depth!==void 0&&(s.shadow.camera.far=r.depth,s.shadow.needsUpdate=!0),r.shadows!==void 0&&(this.castShadow=r.shadows),r.helper!==void 0&&(this.enableHelper=r.helper,s.gizmos.shadowmap.visible=r.helper)}return this}};var Fl=new A,Xy=new A,si=class extends Qi(ti(fi),qy){constructor(e=window.innerWidth,t=window.innerHeight,r=45,n,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=zo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=t,this.orthoCamera=new Da(e*-.5,e*.5,t*.5,t*-.5,n!=null?n:-5e4,s),this.perspCamera=new mr(r,e/t,n!=null?n:50,s),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic(!0)}static createFromState(e,t){let r=new si().fromState(t);return r.enableHelper=!0,r.objectHelper.update(),r.uuid=e,r}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,t){e==="PerspectiveCamera"?this.perspCamera.near=t:this.orthoCamera.near=t}setZoom(e,t){t>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=t:this.orthoCamera.zoom=t)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(Fl),this.targetOffset=Fl.distanceTo(e)}getTarget(e=new A){return this.getWorldDirection(Xy),this.getWorldPosition(Fl),Xy.multiplyScalar(this.targetOffset),e.copy(Fl).add(Xy),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Fl),Fl.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new jt),t=new A(0,0,1).applyQuaternion(e),r=new A().copy(ot.DefaultUp);this.isUpVectorFlipped&&r.negate(),r.applyQuaternion(e);let n=new A().copy(ot.DefaultUp).projectOnPlane(t),s=new A().crossVectors(n,r).dot(t)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(r)*s}getViewFrontToObject(e){let t=e.getWorldPosition(new A),n=e.getWorldDirection(new A).multiplyScalar(this.targetOffset);return{position:t.clone().add(n),target:t}}getViewToObject(e){let t=e.getWorldPosition(new A),n=this.getWorldDirection(new A).multiplyScalar(this.targetOffset);return{position:t.clone().sub(n),target:t}}setViewplaneSize(e,t){this.left=-e*.5,this.right=e*.5,this.top=t*.5,this.bottom=-t*.5,this.aspect=e/t,this.updateProjectionMatrix()}toOrthographic(e){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",(this.enableHelper===!0||e===!0)&&this.objectHelper.update()}toPerspective(e){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",(this.enableHelper===!0||e===!0)&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,t,r,n,s,o){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,t,r,n,s,o):this.orthoCamera.setViewOffset(e,t,r,n,s,o)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(e){this._cameraType==="PerspectiveCamera"?this.toPerspective(e):this._cameraType==="OrthographicCamera"&&this.toOrthographic(e)}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,t){return super.copy(e,t),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}fromCameraRender(e){let t={near:this.orthoCamera.near,far:this.orthoCamera.far},r={near:this.perspCamera.near,far:this.perspCamera.far};return this.copy(e),this.name="",this.enableHelper=!0,this.objectHelper.visible=!0,this.orthoCamera.near=t.near,this.orthoCamera.far=t.far,this.perspCamera.near=r.near,this.perspCamera.far=r.far,this.updateProjectionMatrix(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="CombinedCamera",r.cameraType=this.cameraType,r.targetOffset=this.targetOffset,r.isUpVectorFlipped=this.isUpVectorFlipped,r.angleOffsetFromUp=this.angleOffsetFromUp,r.left=this.left,r.right=this.right,r.top=this.top,r.bottom=this.bottom,this.view!==null&&(r.view=Object.assign({},this.view)),r.zoomOrtho=this.orthoCamera.zoom,r.nearOrtho=this.orthoCamera.near,r.far=this.far,r.aspect=this.aspect,r.fov=this.fov,r.focus=this.focus,r.filmGauge=this.filmGauge,r.filmOffset=this.filmOffset,r.zoomPersp=this.perspCamera.zoom,r.nearPersp=this.perspCamera.near,t}fromJSON(e){var t;if(super.fromJSON(e),this.cameraType=e.cameraType,e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.orbitControlsTarget!==void 0){let r=this.getWorldPosition(new A),n=new A().fromArray(e.orbitControlsTarget);this.targetOffset=n.distanceTo(r)}else e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset);return this.isUpVectorFlipped=!1,this.angleOffsetFromUp=(t=e.angleOffsetFromUp)!=null?t:0,e.left!==void 0&&(this.left=e.left),e.right!==void 0&&(this.right=e.right),e.top!==void 0&&(this.top=e.top),e.bottom!==void 0&&(this.bottom=e.bottom),e.view!==void 0&&(this.view=Object.assign({},e.view)),e.zoomOrtho!==void 0&&(this.orthoCamera.zoom=e.zoomOrtho),e.nearOrtho!==void 0&&(this.orthoCamera.near=e.nearOrtho),e.far!==void 0&&(this.far=e.far),e.aspect!==void 0&&(this.aspect=e.aspect),e.fov!==void 0&&(this.fov=e.fov),e.focus!==void 0&&(this.focus=e.focus),e.filmGauge!==void 0&&(this.filmGauge=e.filmGauge),e.filmOffset!==void 0&&(this.filmOffset=e.filmOffset),e.zoomPersp!==void 0&&(this.perspCamera.zoom=e.zoomPersp),e.nearPersp!==void 0&&(this.perspCamera.near=e.nearPersp),this.updateProjectionMatrix(),this}toCameraState(e=[]){let t={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return fl(t,e)}fromCameraState(e){let{orthographic:t,perspective:r}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),t!==void 0&&(t.near!==void 0&&(this.orthoCamera.near=t.near),t.zoom!==void 0&&(this.orthoCamera.zoom=t.zoom)),r!==void 0&&(r.near!==void 0&&(this.perspCamera.near=r.near),r.fov!==void 0&&(this.perspCamera.fov=r.fov),r.zoom!==void 0&&(this.perspCamera.zoom=r.zoom)),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return Se(ne(ne({},super.toState(e)),this.toCameraState(e)),{type:this.cameraType})}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var Zi=class extends Qi(ti(Di),Du){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,t){let r=new Zi().fromState(t);return r.uuid=e,r.enableHelper=!0,r.objectHelper.update(),r}toJSON(e){let t=super.toJSON(e);return t.object.objectType="EmptyObject",t}};var Nu=class extends Qi(ti(sd),Pu){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.top=1250,r.bottom=-1250,r.right=1250,r.left=-1250,r.near=1,r.far=2500;let n=new gi(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,t,r){let n=new Nu().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&t.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightDirectional",r.color=this.color.getHex(),r.intensity=this.intensity,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.left=r.left,t.right=r.right,t.top=r.top,t.bottom=r.bottom,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromDirectionalLightState(e,t){let r=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,t),e.size!==void 0&&J1(this,e.size),r&&this.update(),this}fromState(e,t){return super.fromState(e),this.fromDirectionalLightState(e,t),this}};var Ru=class extends Qi(ti(id),Iu){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.fov=90,r.aspect=1,r.near=100,r.far=2500;let n=new A(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),s=new A(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z),o=new or(n,s),a=new Ka(o,new be(16755200));a.visible=!1,this._gizmos.shadowmap=a,this.update()}static createFromState(e,t,r){let n=new Ru().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Ka&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof Ka&&(t.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let t=this._gizmos[e];if(t instanceof Ka){let r=this.shadow.camera,n=new A(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),s=new A(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z);t.box.set(n,s),t.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightPoint",r.color=this.color.getHex(),r.intensity=this.intensity,r.distance=this.distance,r.decay=this.decay,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n,s;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.decay=e.decay,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray((s=e.shadow.mapSize)!=null?s:[512,512]),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.fov=r.fov,t.focus=r.focus,t.aspect=r.aspect,t.filmGauge=r.filmGauge,t.filmOffset=r.filmOffset,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromPointLightState(e,t){return super.fromLightState(e,t),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,t){return super.fromState(e),this.fromPointLightState(e,t),this}};var NA=new A,RA=new A,BA=new jt,Bu=class extends Qi(ti(nd),op){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024;let r=this.shadow.camera;r.fov=$e.RAD2DEG*2*this.angle,r.aspect=1,r.near=100,r.far=2500;let n=new gi(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(e,t,r){let n=new Bu().fromState(t,r);return n.uuid=e,n}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&(t.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let t=this._gizmos[e];t instanceof gi&&t.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),RA.setFromMatrixPosition(this.matrixWorld),BA.setFromRotationMatrix(this.matrixWorld),NA.copy(this.up).applyQuaternion(BA).negate().multiplyScalar(this.distance),this.target.position.copy(RA).add(NA),this.target.updateMatrixWorld(),this.enableHelper===!0&&this.objectHelper.visible===!0&&this.objectHelper.update()}copy(e,t=!0){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}toJSON(e){let t=super.toJSON(e),r=t.object;return r.objectType="LightSpot",r.color=this.color.getHex(),r.intensity=this.intensity,r.distance=this.distance,r.angle=this.angle,r.decay=this.decay,r.penumbra=this.penumbra,r.shadow=this.shadow.toJSON(),t}fromJSON(e){var n;super.fromJSON(e),this.color.set(e.color),this.intensity=e.intensity,this.distance=e.distance,this.angle=e.angle,this.decay=e.decay,this.penumbra=e.penumbra,this.shadow.normalBias=(n=e.shadow.normalBias)!=null?n:0,this.shadow.radius=e.shadow.radius,this.shadow.mapSize.fromArray(e.shadow.mapSize);let t=this.shadow.camera,r=e.shadow.camera;return t.near=r.near,t.far=r.far,t.zoom=r.zoom,t.fov=r.fov,t.focus=r.focus,t.aspect=r.aspect,t.filmGauge=r.filmGauge,t.filmOffset=r.filmOffset,r.view!==void 0&&(t.view=Object.assign({},r.view)),this}fromSpotLightState(e,t){return super.fromLightState(e,t),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),this}fromState(e,t){return super.fromState(e),this.fromSpotLightState(e,t),this}};var OA=i=>i.tagName==="VIDEO",Ul=class{static resize(e,t,r){let n=e/t,s;if(!r.image)return;let o=r.image;OA(o)?s=o.videoWidth/o.videoHeight:s=o.width/o.height,n>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/n):r.repeat.set(1,1*s/n)),n<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*n/s*-1,1):r.repeat.set(1*n/s,1)),n==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(e,t,r){let n=e/t,s=r.image!==void 0?r.image.width/r.image.height:1,o;n>s?o={x:1,y:s/n}:n<s?o={x:n/s,y:1}:o={x:1,y:1},r.repeat.set(o.x,o.y),r.updateMatrix()}static resizeTextureLayers(e,t,r){let n=r.userData.layers,s=n.getLayers();for(let o=0;o<s.length;o++){let a=s[o];MA(a)&&(Ul.resizeTextureLayer(e,t,a.uniforms[`f${a.id}_texture`].value),n.updateLayerUniform())}}static resizeComplex(e,t,r,n){let s=e/t,o,a=r.image;OA(a)?o=a.videoWidth/a.videoHeight:o=a.width/a.height,n.geometry.type.includes("Shape")?(s>o&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*-1,1/t*o/s):r.repeat.set(1/e,1/t*o/s)),s<o&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*s/o*-1,1/t):r.repeat.set(1/e*s/o,1/t)),s==o&&(r.imageType=="WEBCAM"?r.repeat.set(1/e*-1,1/t):r.repeat.set(1/e,1/t))):(s>o&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*o/s):r.repeat.set(1,1*o/s)),s<o&&(r.imageType=="WEBCAM"?r.repeat.set(1*s/o*-1,1):r.repeat.set(1*s/o,1)),s==o&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var Ou=class extends ir{constructor(e,t=new cn){super(e,t);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e){super.updateGeometry(e),this.material.userData.layers&&Ul.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}resizeGeometry(e,t){super.resizeGeometry(e,t,0),this.material.userData.layers&&Ul.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="Mesh2D",t}clone(){let e=super.clone();return e.updateGeometry({}),e}static fromTexture(e){let t,r;if(e instanceof Jh){let o=e.image;t=o.videoWidth*.5,r=o.videoHeight*.5}else{let o=e.image;t=o.width*.5,r=o.height*.5}let n=Nf.create({parameters:{width:t,height:r}}),s=new cn;return s.layersList.changeLayer(0,{type:ut.TEXTURE,texture:e}),s.layersList.moveLayer(0,1),s.dispose(),new Ou(n,s)}};var Fu=class extends ir{constructor(e,t=new ni){super(e,t);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}toJSON(e){let t=super.toJSON(e);return t.object.objectType="Mesh3D",t}};var Uu=class extends Fu{constructor(e,t=new ni){super(e,t);this.objectType="NonParametric"}toJSON(e){let t=super.toJSON(e);return t.object.objectType="NonParametric",t}};var Gu;(function(t){t[t.TO_RIGHT=1]="TO_RIGHT",t[t.TO_LEFT=-1]="TO_LEFT"})(Gu||(Gu={}));var Yy=class extends ir{constructor(e,t=new cn({transparent:!0,opacity:1,visible:!1,side:er})){super(e,t);this.objectType="TextFrame";this.charContainer=new ot,this.add(this.charContainer),this.material.visible=!1,this._geometryUserData=e.userData,this.userData.textFrame={hexColor:null,opacity:1,visible:!0,text:"",fontSize:16,lineHeight:1.5,letterSpacing:1,fontFamily:"roboto_regular",textTransform:io.None,horizontalAlignment:1,verticalAlignment:xs.Top,LOD:16,maxLineSize:this._geometryUserData.parameters.width,textOrigin:new A(this._geometryUserData.parameters.width*-.5,this._geometryUserData.parameters.height*.5,0),textLines:[]},this.createTextLine()}static createFromState(e,t,r){let n=Rf.create({parameters:{width:t.width,height:t.height}}),s=new Yy(n).fromState(t,r);return s.uuid=e,s}async updateText(e){this.clearText();let t=this.userData.textFrame,r=t.fontFamily;await sn.loadFont(r),t.text=e;let n=t.textOrigin,s=new hi({visible:t.visible,transparent:!0,side:er}),o=e.split(`
3963
3963
  `),a=0;this.userData.textFrame.textLines=o.map((l,c)=>{let u=new Zo(a,t.lineHeight,t.fontSize);return u.message=l.split("").map(d=>{let h={char:d,fontFamily:r,letterSpacing:t.letterSpacing,fontSize:t.fontSize,LOD:16},f=s.clone();f.color=t.hexColor,f.opacity=t.opacity;let p=new sn(h,f);return u.addChar3D(p,n),this.charContainer.add(p),p}),a+=u.maxCharSize*u.lineHeight,u}),this.textFullUpdate(),this.checkOverFlow()}clearText(){let e=this.userData.textFrame.textLines;for(;this.charContainer.children.length;){let t=this.charContainer.children[0];this.charContainer.remove(t)}for(;e.length;)e.pop()}raycast(e,t){let r=[];if(super.raycast(e,r),r.length>0){t.push(r[0]);return}let n=[];for(let s=0,o=this.charContainer.children.length;s<o;++s)if(this.charContainer.children[s]instanceof sn&&(e.intersectObject(this.charContainer.children[s],!1,n),n.length>0)){n[0].object=this,t.push(n[0]);return}}updateGeometry(e){var c,u,d,h;let t=this.userData,r=this.geometry.userData,n=r.parameters.width,s=r.parameters.height,o=(u=(c=e.parameters)==null?void 0:c.width)!=null?u:n,a=(h=(d=e.parameters)==null?void 0:d.height)!=null?h:s,l=t.textFrame;super.updateGeometry(e),l.maxLineSize=o,l.textOrigin.set(-.5*o,.5*a,0),a!==s?(this.checkOverFlow(),this.checkCapacity()):o!==n&&(n<o?this.checkCapacity():n>o&&this.checkOverFlow())}checkOverFlow(e=0){let t=this.userData,r=t.textFrame.textOrigin,n=t.textFrame.textLines;for(let s=e;s<n.length;s++){n[s].updateYLinePos(this.getNewLinePosition(s)),n[s].fullUpdate(r);let o=[];for(;n[s].checkOverFlow(t.textFrame.maxLineSize);)n[s].containSpaceOverFlow()?o.unshift(n[s].getWord(n[s].message.length-1,-1)):o.unshift(n[s].popChar());if(o.length>0){n[s+1]===void 0?(n[s].isEndLine(!1),this.createTextLine()):n[s].endLine&&(this.createTextLine(s+1),n[s].isEndLine(!1),n[s+1].isEndLine(!0));let a=0;for(let l=0;l<o.length;l+=1)for(let c=0;c<o[l].length;c+=1)n[s+1].addChar3D(o[l][c],r,a),a+=1;n[s+1].fullUpdate(r)}n[s].fullUpdate(r)}this.textFullUpdate(e)}checkCapacity(e=0){let t=this.userData,r=t.textFrame.textOrigin,n=t.textFrame.maxLineSize,s=t.textFrame.textLines;for(let o=e;o<s.length;o+=1)if(s[o].updateYLinePos(this.getNewLinePosition(o)),s[o].fullUpdate(r),!!s[o-1])for(;!s[o-1].endLine;){let a,l=s[o-1].spaceLeft(n);if(s[o].wordSize(0,1)<=l){s[o].containSpace()?a=s[o].getWord(0,1):a=s[o].popChar(0);for(let c=0;c<a.length;c+=1)a[c]&&s[o-1].addChar3D(a[c],r)}else{s[o].isEmpty()?(s[o].endLine&&s[o-1].isEndLine(!0),s.splice(o,1),o-=1):(s[o].updateYLinePos(this.getNewLinePosition(o)),s[o].fullUpdate(r));break}}this.textFullUpdate(e)}createTextLine(e=this.userData.textFrame.textLines.length){let r=this.userData.textFrame;r.textLines.splice(e,0,new Zo(this.getNewLinePosition(e),r.lineHeight,r.fontSize))}textFullUpdate(e=0){let r=this.userData.textFrame,n=r.textLines,s=this.getVerticalAlignmentOffSet();for(let o=e;o<n.length;o++)n[o].updateYLinePos(this.getNewLinePosition(o)),n[o].fullUpdate(r.textOrigin),n[o].alignText(r.textOrigin,r.maxLineSize,r.horizontalAlignment,r.verticalAlignment,s)}getVerticalAlignmentOffSet(){switch(this.userData.textFrame.verticalAlignment){case xs.Top:return 0;case xs.Center:return this.getRemainingVerticalSpace()/2;case xs.Bottom:return this.getRemainingVerticalSpace();default:return 0}}getRemainingVerticalSpace(){let t=this.userData.textFrame.textLines;return this.geometry.userData.parameters.height-this.getNewLinePosition(t.length)}getNewLinePosition(e){let r=this.userData.textFrame.textLines,n=0;for(let s=0;s<e;s+=1)n+=r[s].maxCharSize*r[s].lineHeight;return n}updateColor(e){var n;let t=this.userData;t.textFrame.hexColor=e;let r=t.textFrame.textLines;for(let s=0;s<r.length;s++){let o=r[s].message;for(let a=0;a<o.length;a++){let l=o[a].material;((n=l.color)==null?void 0:n.isColor)&&(l.color=e)}}}updateOpacity(e){let t=this.userData;t.textFrame.opacity=e;let r=t.textFrame.textLines;for(let n=0;n<r.length;n++){let s=r[n].message;for(let o=0;o<s.length;o++){let a=s[o].material;a.opacity=e}}}updateVisible(e){let t=this.userData;t.textFrame.visible=e;let r=t.textFrame.textLines;for(let n=0;n<r.length;n++){let s=r[n].message;for(let o=0;o<s.length;o++){let a=s[o].material;a.visible=e}}}async updateFontFamily(e){await sn.loadFont(e);let r=this.userData.textFrame,n=r.textLines;r.fontFamily=e;for(let s=0;s<n.length;s++){let o=n[s].message;for(let a=0;a<o.length;a++)o[a].updateFontFamily(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateFontSize(e){let r=this.userData.textFrame,n=r.textLines,s=r.fontSize;r.fontSize=e;for(let o=0;o<n.length;o++)n[o].updateFontSize(e);this.textFullUpdate(),e>s?this.checkOverFlow():e<s&&this.checkCapacity()}async updateTextTransform(e){let r=this.userData.textFrame;await sn.loadFont(r.fontFamily);let n=r.textLines;switch(r.textTransform=e,e){case io.Upper:for(let s=0;s<n.length;s++){let o=n[s].message;for(let a=0;a<o.length;a++)n[s].message[a].updateChar(o[a].char.toUpperCase())}break;case io.Lower:for(let s=0;s<n.length;s++){let o=n[s].message;for(let a=0;a<o.length;a++)n[s].message[a].updateChar(o[a].char.toLowerCase())}break;default:for(let s=0;s<n.length;s++){let o=n[s].message;for(let a=0;a<o.length;a++)n[s].message[a].updateChar(o[a].originalChar)}}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLetterSpacing(e){let t=this.userData,r=t.textFrame.textLines;t.textFrame.letterSpacing=e;for(let n=0;n<r.length;n++){let s=r[n].message;for(let o=0;o<s.length;o++)s[o].updateLetterSpacing(e)}this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLOD(e){let t=this.userData;t.textFrame.LOD=e;let r=t.textFrame.textLines;for(let n=0;n<r.length;n++);this.textFullUpdate(),this.checkOverFlow(),this.checkCapacity()}updateLineHeight(e){let t=this.userData,r=t.textFrame.textLines;t.textFrame.lineHeight=e;for(let n=0;n<r.length;n++)r[n].updatelineHeight(e);this.textFullUpdate()}updateVerticalAlignment(e){let t=this.userData;t.textFrame.verticalAlignment=e,this.textFullUpdate()}updateHorizontalAlignment(e){let t=this.userData;t.textFrame.horizontalAlignment=e,this.textFullUpdate()}toJSON(e){let t=super.toJSON(e),r=t.object;r.objectType="TextFrame";let s=this.userData.textFrame.textLines.map(o=>{let a=o.message.map(l=>({char:l.char,originalChar:l.originalChar,fontFamily:l.fontFamily,letterSpacing:l.letterSpacing,fontSize:l.fontSize,LOD:l.LOD}));return{align:o.align,endLine:o.endLine,lineHeight:o.lineHeight,maxCharSize:o.maxCharSize,yLinePos:o.yLinePos,message:a}});return r.userData.textFrame.textLinesData=s,t}async fromJSONasync(e){if(super.fromJSON(e),e.userData!==void 0){let t=e.userData.textFrame;await sn.loadFont(t.fontFamily),t.textOrigin=new A(t.textOrigin.x,t.textOrigin.y,t.textOrigin.z);let r=new hi({color:t.hexColor,opacity:t.opacity,visible:t.visible,transparent:!0,side:er});t.textLinesData&&(t.textLines=t.textLinesData.map((n,s)=>{let o=new Zo(Number(n.yLinePos),Number(n.lineHeight),Number(n.maxCharSize)),a=n.message.map((l,c)=>{if(l.char===void 0){let h=t.textLines[s].message[c];if("geometries"in h){let f=h.geometries[0].userData.parameters;Object.assign(l,{LOD:f.lod,char:f.char,fontFamily:f.fontFamily,fontSize:f.fontSize,letterSpacing:f.letterSpacing,originalChar:f.char})}}let u={char:l.char,fontFamily:l.fontFamily,letterSpacing:Number(l.letterSpacing),fontSize:Number(l.fontSize),LOD:l.LOD},d=new sn(u,r.clone());return o.addChar3D(d,t.textOrigin),this.charContainer.add(d),d});return o.message=a,o}),this.userData.textFrame=t),this.textFullUpdate()}return this}fromTextFrameData(e,t){if(e.color!==void 0){let r=wr(e.color,t);this.updateColor(r),this.updateOpacity(r.a)}e.alpha!==void 0&&this.updateOpacity(e.alpha),e.font!==void 0&&this.updateFontFamily(e.font),e.horizontalAlign!==void 0&&this.updateHorizontalAlignment(e.horizontalAlign),e.verticalAlign!==void 0&&this.updateVerticalAlignment(e.verticalAlign),e.textTransform!==void 0&&this.updateTextTransform(e.textTransform),e.fontSize!==void 0&&this.updateFontSize(e.fontSize),e.lineHeight!==void 0&&this.updateLineHeight(e.lineHeight),e.letterSpacing!==void 0&&this.updateLetterSpacing(e.letterSpacing),e.text!==void 0&&e.text!==""&&this.updateText(e.text),(e.width!==void 0||e.height!==void 0)&&this.updateGeometry({parameters:{width:e.width,height:e.height}})}fromState(e,t){return super.fromState(e),this.fromTextFrameData(e,t),this}convertToVector(){let{fontFamily:e,hexColor:t}=this.userData.textFrame,r=new Zi;r.name="Text Shape";let n=sn.fontCache[e];for(let s of this.charContainer.children)s instanceof sn&&n.generateShapes(s.char,1).forEach(o=>{let a=new Pt().fromShape(o);a.applyScale(s.scale.x,s.scale.y);let l=Wr.create({shape:a}),c=new cn({side:er});c.color=t;let u=new $o(l,c);u.name=s.char,u.position.copy(s.position),u.rotation.copy(s.rotation),r.attach(u)});return r}},Gl=Yy;Gl.VerticalAlign=xs,Gl.HorizontalAlign=yn,Gl.TextTransform=io;function FA(i,e){return wU(i)}function wU(i){let e={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let r=Pt.createFromState(i.shape,i.width,i.height);e.shape=r}else i.type==="NonParametricGeometry"&&(i.data.groups&&i.data.groups.forEach(r=>{var n;return r.materialIndex=Math.max((n=r.materialIndex)!=null?n:0,0)}),e.geometry=new Bo().parse(i));let t;try{t=yu(e)}catch(r){console.error(r)}if(!t){let r=Pt.createFromState(bl.defaultData(),100,100);e.shape=r,t=yu(e)}return t}var zA=$v(GA());var Ky;Bf.then(i=>{Ky=i});var kA=new Ae,SU=new Ae,MU=new Ae,Mi=new or,uo=new A,AU=new Ae,TU=new Ae,ea=class extends ir{constructor(e,t,r,n=new ni){super(r!=null?r:t,n);this.subdivPointer=e;this.originalGeometry=t;this.subdividedGeometry=r;this.objectType="SubdivObject";this.hiddenMatrixOld=new Ae;this.smoothShading=!0;this.matrixWorldRigid=new Ae;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,t,r){let{subdivPointer:n,originalGeometry:s,subdividedGeometry:o}=Hn.build(t.geometry,void 0,void 0,!t.flatShading),a=Lu(t.material,r),l=new ea(n,s,o||void 0,a);return l.calcBoundingBox(),l.freeSubdivPointer(),l.uuid=e,l.fromState(t),l}shallowClone(e){return new Uu(this.geometry,this.material).shallowCopy(this,e)}toJSON(e){let t=super.toJSON(e);return t.object.objectType="SubdivObject",t}buildFromStore(e){var s,o,a;let{originalGeometry:t,subdividedGeometry:r,subdivPointer:n}=Hn.build(e,this.subdivPointer,void 0,this.smoothShading,this.shearScale);if(this.subdivPointer=n,t!==void 0&&((s=this.originalGeometry)==null||s.dispose(),this.originalGeometry=t),r!==void 0&&((o=this.subdividedGeometry)==null||o.dispose(),this.subdividedGeometry=r!=null?r:void 0),this.geometry=(a=this.subdividedGeometry)!=null?a:this.originalGeometry,this.cloner)for(let l of this.cloner.children)l.geometry=this.geometry;e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Hn.buildLevel(this.subdivPointer,!0,this.smoothShading,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Hn.buildLevel(this.subdivPointer,!1,this.smoothShading,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){var e;this.originalGeometry.dispose(),this.originalGeometry=Hn.buildLevel(this.subdivPointer,!0,this.smoothShading),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Hn.buildLevel(this.subdivPointer,!1,this.smoothShading)),this.geometry=(e=this.subdividedGeometry)!=null?e:this.originalGeometry}raycast(e,t){var r;this.geometry=this.originalGeometry,ir.prototype.raycast.call(this,e,t),this.geometry=(r=this.subdividedGeometry)!=null?r:this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,t=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:r,v:n,q:s}=(0,zA.SVD)(t),o=kA.set(r[0][0],r[0][1],r[0][2],0,r[1][0],r[1][1],r[1][2],0,r[2][0],r[2][1],r[2][2],0,0,0,0,1),a=SU.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),l=MU.copy(a).transpose();this.shearScale=AU.makeScale(s[0],s[1],s[2]).multiply(l).premultiply(a),this.shearScaleInv=TU.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(o,l),s.every(c=>Math.abs(s[0]-c)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new hn);let t=e.attributes.position,r=e.boundingSphere.center;Mi.setFromBufferAttribute(t),Mi.getCenter(r),e.boundingSphere.radius=r.distanceTo(Mi.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Mi.getSize(uo);let n={width:uo.x,height:uo.y,depth:uo.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(e){let t=this.originalGeometry;Mi.min.set(e[0],e[2],e[4]),Mi.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(Mi.min.applyMatrix4(this.shearScaleInv),Mi.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new hn);let r=t.boundingSphere.center;Mi.getCenter(r),t.boundingSphere.radius=r.distanceTo(Mi.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Mi.getSize(uo);let n={width:uo.x,height:uo.y,depth:uo.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(Ky.free_bvh(this.subdivPointer),Ky.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,VA(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(VA(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters=ne({},e.parameters)}};function VA(i,e,t,r){let n=i.position.array,s=i.normal.array,o=kA.makeScale(e,t,r).invert().elements,a,l,c;for(var u=0,d=n.length;u<d;u+=3)n[u]*=e,n[u+1]*=t,n[u+2]*=r,a=s[u],l=s[u+1],c=s[u+2],s[u]=o[0]*a+o[4]*l+o[8]*c,s[u+1]=o[1]*a+o[5]*l+o[9]*c,s[u+2]=o[2]*a+o[6]*l+o[10]*c}function HA(i,e){e.flatShading!==void 0&&(i.flatShading=e.flatShading,i.needsUpdate=!0),e.wireframe!==void 0&&(i.wireframe=e.wireframe),e.side!==void 0&&(e.side===yl.Front?i.side=ai:e.side===yl.Back?i.side=qt:i.side=er)}function EU(i,e){if(Array.isArray(i.material))for(let t of i.material)HA(t,e);else{let t=i.material;HA(t,e)}i.objectType==="SubdivObject"&&e.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!e.flatShading,i.updateMesh())}function jA(i,e,t){let r;if(e.geometry.type==="SubdivGeometry")r=ea.createFromState(i,e,t);else{let n=FA(e.geometry,t),s="materials"in e?_A(e.materials,t):Lu(e.material,t);yf.is2DParametricMesh(n.userData.type)?r=new Ou(n,s):(n==null?void 0:n.userData.type)==="VectorGeometry"?r=new $o(n,s):e.geometry.type==="NonParametricGeometry"?r=new Uu(n,s):r=new Fu(n,s),r.uuid=i,r.fromState(e)}return EU(r,e),r}function WA(i,e,t){return e.type==="Mesh"?jA(i,e,t):e.type==="TextFrame"?Gl.createFromState(i,e,t):e.type==="Empty"?Zi.createFromState(i,e):e.type==="PointLight"?Ru.createFromState(i,e,t):e.type==="SpotLight"?Bu.createFromState(i,e,t):e.type==="DirectionalLight"?Nu.createFromState(i,e,t):to.is(e.type)?si.createFromState(i,e):(console.error(e),new Zi)}function _U(i,e){e.uniforms[`f${e.id}_transmissionSamplerMap`].value=i.texture,e.uniforms[`f${e.id}_transmissionDepthMap`].value=i.depthTexture}function qA(i,e,t){if(!t.userData.layers)return!1;let r=!1,n=t.userData.layers.getLayersOfType(ut.TRANSMISSION);return n.length>0?(e.layers.set(3),r=!0,i!==void 0&&n.forEach(s=>_U(i,s))):e.layers.set(0),r}function XA(i,e){let t=!1;return e.traverseEntity(r=>{if(r instanceof ir)if(Array.isArray(r.material))for(let n=0;n<r.material.length;n++)qA(i,r,r.material[n])&&(t=!0);else qA(i,r,r.material)&&(t=!0)}),t}function YA(i,e){"material"in i&&CU(i.material,e),"geometry"in i&&i.geometry.dispose()}function CU(i,e){Yb(i).forEach(t=>{e.isSharedMaterial(t)||t.dispose()})}var KA=new A,Jy=class extends Gf(Vr){constructor(e,t){super();this.objectType="Scene";this.alpha=1;this.backupFog=new Ba(16777215,.1,2e3);this.fogUseBGColor=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this._needsTransmission=!1;this._color=new be(1,0,0);this.bgColor=new be(1,1,1);this.entityByUuid={};this.ambientLight=new Ro(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.sharedAssetManager=t,this.init(e,t)}needsTransmission(e){return this.needsTransmissionDirty&&(this._needsTransmission=XA(e,this),e!==void 0&&(this.needsTransmissionDirty=!1)),this._needsTransmission}find(e){if(e===""||e===void 0)return;let t=this.entityByUuid[e];return t===void 0?this.getObjectByProperty("uuid",e):t}get color(){return this._color}set color(e){this.fogUseBGColor===!0&&this.backupFog.color.copy(e),this._color.copy(e)}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,t){if(this.createChildrenObjects(e.objects,this,t),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(wr(e.backgroundColor,t)),this.updateFog(e.fog,t),this.updateAmbientLight(e.environment.ambientLight,t),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let r=this.find(e.publish.playCamera);r instanceof si&&this.switchActiveCamera(r)}}clearScene(e){this.traverseEntity(t=>{YA(t,e)});for(let t of this.children)_n(t)&&t.removeFromParent()}resetAfterClear(e,t){this.init(e,t)}createPersonalCamera(){let e=si.createFromState(Jy.PERSONAL_CAMERA_ID,Se(ne({},xf.defaultData),{name:"Personal Camera"}));return e.enableHelper=!1,e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let t=[],r=n=>{for(let s of n.children)_n(s)&&!s.raycastLock&&s.visible&&((El(s)||bs(s)&&s.enableHelper&&s.objectHelper.parent)&&e.intersectObject(s,!1,t),r(s))};return r(this),t}traverseEntity(e){for(let t of this.children)_n(t)&&t.traverseEntity(e)}updateFog(e,t){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=wr(e.color,t),this.backupFog.near=e.near,this.backupFog.far=e.far}toJSON(e){return{}}fromJSON(e){return this}dispose(){this.clearScene(this.sharedAssetManager),this.sharedAssetManager.dispose()}updateAmbientLight(e,t){K1(this.ambientLight,e,t),e.groundColor!==void 0&&(this.ambientLight.groundColor=wr(e.groundColor,t)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.enableHelper=!0),this.activeCamera=e,e.enableHelper=!1}setBackgroundColor(e){this.bgColor=e,this.alpha=e.a}createChildrenObjects(e,t,r){for(let n of e)this.createChildObject(n.id,n.data,n.children,t,r)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let t of e.children)this.unregisterObject(t)}createChildObject(e,t,r,n,s){let o=WA(e,t,s);return o&&(this.entityByUuid[e]=o,n.add(o),this.createChildrenObjects(r,o,s)),o}getCenter(e){let t=[];for(let n=0,s=e.length;n<s;++n){let{id:o,recursive:a}=e[n],l=this.find(o),c=a?l.recursiveBBox:l.singleBBox;t.push(...c.vertices)}let r=new or;return r.setFromPoints(t),r.getCenter(KA),KA}copyMatrixWorld(e,t){if(e===null){t.identity();return}let r=this.find(e);r?t.copy(r.matrixWorld):t.identity()}copyParentMatrixWorld(e,t){var n;if(e===null){t.identity();return}let r=(n=this.find(e))==null?void 0:n.parent;r?t.copy(r.matrixWorld):t.identity()}traverseMaterial(e){this.traverseEntity(t=>{if(t instanceof ir)if(Array.isArray(t.material))for(let r=0;r<t.material.length;r++)e(t.material[r]);else e(t.material)})}updateCanvasSize(e,t){this.activeCamera.setViewplaneSize(e,t);let r,n;e>=t?(r=t/e,n=1):(r=1,n=e/t),this.traverseMaterial(s=>{s.layersList.getLayersOfType(ut.TRANSMISSION).forEach(a=>{a.uniforms[`f${a.id}_aspectRatio`].value.x=r,a.uniforms[`f${a.id}_aspectRatio`].value.y=n})})}},cp=Jy;cp.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var JA={RED:0,GREEN:1,BLUE:2,ALPHA:3};var zu="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}";var LU=`#ifdef FRAMEBUFFER_PRECISION_HIGH
3964
3964
  uniform mediump sampler2D inputBuffer;
3965
3965
  #else
@@ -4236,4 +4236,4 @@ float d=distance(uv,center);color*=smoothstep(0.8,offset*0.799,d*(darkness+offse
4236
4236
  #else
4237
4237
  vec2 coord=(uv-center)*vec2(offset);color=mix(color,vec3(1.0-darkness),dot(coord,coord));
4238
4238
  #endif
4239
- outputColor=vec4(color,inputColor.a);}`,fp={DEFAULT:0,ESKIL:1},mT=class extends es{constructor({blendFunction:i=xt.NORMAL,technique:e=fp.DEFAULT,eskil:t=!1,offset:r=.5,darkness:n=.5}={}){super("VignetteEffect",RG,{blendFunction:i,defines:new Map([["VIGNETTE_TECHNIQUE",e.toFixed(0)]]),uniforms:new Map([["offset",new Ee(r)],["darkness",new Ee(n)]])})}get technique(){return Number(this.defines.get("VIGNETTE_TECHNIQUE"))}set technique(i){this.technique!==i&&(this.defines.set("VIGNETTE_TECHNIQUE",i.toFixed(0)),this.setChanged())}get eskil(){return this.technique===fp.ESKIL}set eskil(i){this.technique=i?fp.ESKIL:fp.DEFAULT}getTechnique(){return this.technique}setTechnique(i){this.technique=i}get offset(){return this.uniforms.get("offset").value}set offset(i){this.uniforms.get("offset").value=i}getOffset(){return this.offset}setOffset(i){this.offset=i}get darkness(){return this.uniforms.get("darkness").value}set darkness(i){this.uniforms.get("darkness").value=i}getDarkness(){return this.darkness}setDarkness(i){this.darkness=i}},doe=[new Float32Array(3),new Float32Array(3)],foe=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],poe=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];var moe=[new Float32Array(2),new Float32Array(2)];var goe=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),yoe=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],voe=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],xoe=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];var boe=new Map([[un(0,0,0,0),new Float32Array([0,0,0,0])],[un(0,0,0,1),new Float32Array([0,0,0,1])],[un(0,0,1,0),new Float32Array([0,0,1,0])],[un(0,0,1,1),new Float32Array([0,0,1,1])],[un(0,1,0,0),new Float32Array([0,1,0,0])],[un(0,1,0,1),new Float32Array([0,1,0,1])],[un(0,1,1,0),new Float32Array([0,1,1,0])],[un(0,1,1,1),new Float32Array([0,1,1,1])],[un(1,0,0,0),new Float32Array([1,0,0,0])],[un(1,0,0,1),new Float32Array([1,0,0,1])],[un(1,0,1,0),new Float32Array([1,0,1,0])],[un(1,0,1,1),new Float32Array([1,0,1,1])],[un(1,1,0,0),new Float32Array([1,1,0,0])],[un(1,1,0,1),new Float32Array([1,1,0,1])],[un(1,1,1,0),new Float32Array([1,1,1,0])],[un(1,1,1,1),new Float32Array([1,1,1,1])]]);function av(i,e,t){return i+(e-i)*t}function un(i,e,t,r){let n=av(i,e,1-.25),s=av(t,r,1-.25);return av(n,s,1-.125)}var _r=class{constructor(e,t){this.enabled=!1;this.effect=new e(t),Object.defineProperty(this,"opacity",{enumerable:!0,set(r){this.effect.blendMode.opacity.value=r},get(){return this.effect.blendMode.opacity.value}}),Object.defineProperty(this,"blendFunction",{enumerable:!0,set(r){this.effect.blendMode.setBlendFunction(Number(r))},get(){return this.effect.blendMode.blendFunction}}),this.blendFunction=xt.NORMAL}toJSON(){let e=["constructor","effect","subscriptions"],t=ne({},this),r=Object.getPrototypeOf(this),n=Object.getOwnPropertyNames(r);for(let s of n){let o=Object.getOwnPropertyDescriptor(r,s);o&&typeof o.get=="function"&&(t[s]=this[s])}return e.forEach(s=>delete t[s]),t}};var ku=class extends _r{constructor(){super(iT);this.blendFunction=xt.SCREEN}set intensity(e){this.effect.intensity=e}get intensity(){return this.effect.intensity}set luminanceThreshold(e){this.effect.luminanceMaterial.threshold=e}get luminanceThreshold(){return this.effect.luminanceMaterial.threshold}set luminanceSmoothing(e){this.effect.luminanceMaterial.smoothing=e}get luminanceSmoothing(){return this.effect.luminanceMaterial.smoothing}set blurScale(e){this.effect.blurPass.scale=e}get blurScale(){return this.effect.blurPass.scale}set kernelSize(e){this.effect.blurPass.kernelSize=e}get kernelSize(){return this.effect.blurPass.kernelSize}};var Vu=class extends _r{constructor(){super(sT)}set contrast(e){this.effect.uniforms.get("contrast").value=e}get contrast(){return this.effect.uniforms.get("contrast").value}set brightness(e){this.effect.uniforms.get("brightness").value=e}get brightness(){return this.effect.uniforms.get("brightness").value}};var Hu=class extends _r{constructor(){super(aT);this.effect.offset=new B(.01,.01)}set offset(e){this.effect.offset.set(e[0]/1e3,e[1]/1e3)}get offset(){return[this.effect.offset.x*1e3,this.effect.offset.y*1e3]}};var ju=class extends _r{constructor(){super(oT)}};var Wu=class extends _r{constructor(){super(cT);this._hue=0}set hue(e){this._hue=e,this.effect.setHue(e)}get hue(){return this._hue}set saturation(e){this.effect.uniforms.get("saturation").value=e}get saturation(){return this.effect.uniforms.get("saturation").value}};var qu=class extends _r{constructor(){super(uT);this.blendFunction=xt.OVERLAY}};var Xu=class extends _r{constructor(){super(mT)}get eskil(){return this.effect.eskil}set eskil(e){this.effect.eskil=e}get darkness(){return this.effect.uniforms.get("darkness").value}set darkness(e){this.effect.uniforms.get("darkness").value=e}get offset(){return this.effect.uniforms.get("offset").value}set offset(e){this.effect.uniforms.get("offset").value=e}};var Yu=class extends _r{constructor(e){super(lT,e)}set focalLength(e){this.effect.circleOfConfusionMaterial.uniforms.focalLength.value=e}get focalLength(){return this.effect.circleOfConfusionMaterial.uniforms.focalLength.value}set focusDistance(e){this.effect.circleOfConfusionMaterial.uniforms.focusDistance.value=e}get focusDistance(){return this.effect.circleOfConfusionMaterial.uniforms.focusDistance.value}get bokehScale(){return this.effect.bokehScale}set bokehScale(e){this.effect.bokehScale=e}};var Ku=class extends _r{constructor(){super(hT)}get granularity(){return this.effect.getGranularity()}set granularity(e){this.effect.setGranularity(e)}};function gT(i,e){return e&&e.enabled&&i.push(e.effect),i}var pp=class extends tr{constructor(){super();this._scene=new Vr;this._camera=new si;this.effects=new Map;this.loadingManager=new Xa;this.renderPass=new iv;this._renderToScreen=!0;this._hasSmaa=!1;this.clock=new lg,this.enabled=!1,this.debug=!1,this.effects.set("bloom",new ku),this.effects.set("chromaticAberration",new Hu),this.effects.set("vignette",new Xu),this.effects.set("noise",new qu),this.effects.set("colorAverage",new ju),this.effects.set("hueSaturation",new Wu),this.effects.set("brightnessContrast",new Vu),this.effects.set("depthOfField",new Yu),this.effects.set("pixelation",new Ku)}get scene(){return this._scene}set scene(e){this._scene=e}get camera(){return this._camera}set camera(e){this._camera=e}_initSmaa(){if(!this.effectComposer)return;let e=this.effectComposer.passes.length,t=new pT({preset:ta.ULTRA,edgeDetectionMode:hp.COLOR}),r=()=>{t.removeEventListener("load",r),this.dispatchEvent({type:"smaaloaded"})};t.addEventListener("load",r),t.edgeDetectionMaterial.setPredicationMode(Zy.DEPTH),t.edgeDetectionMaterial.setEdgeDetectionThreshold(.05),t.edgeDetectionMaterial.setPredicationThreshold(.002),t.edgeDetectionMaterial.setPredicationScale(1),this.effectComposer.addPass(new dp(this.camera,t),e),this._hasSmaa=!0}_initPasses(){if(!this.effectComposer||!this.renderer)return;let e;if(this.effectComposer.removeAllPasses(),this._hasSmaa=!1,this.renderPass=new iv(this.scene,this.camera),this.enabled){this.effectComposer.addPass(this.renderPass),this._initSmaa();let t=[this.effects.get("chromaticAberration"),this.effects.get("bloom"),this.effects.get("colorAverage"),this.effects.get("hueSaturation"),this.effects.get("brightnessContrast"),this.effects.get("vignette"),this.effects.get("noise")].reduce(gT,[]),r=[this.effects.get("pixelation")].reduce(gT,[]);r.length>0&&this.effectComposer.addPass(new dp(this.camera,...r)),this.effectComposer.addPass(new dp(this.camera,...t))}else this.effectComposer.addPass(this.renderPass);if(e)return e}reinit(){if(!this.renderer)return Promise.all([]);this.effectComposer=new nT(this.renderer),this._initPasses()}init({renderer:e,camera:t,scene:r}){this.renderer=e,this.scene=r,this.camera=t,this._initCopyPass(),this.reinit()}_initCopyPass(){if(this._savePass)return;let e=new B;this.renderer.getDrawingBufferSize(e),this._rt=new gt(e.x,e.y,{depthBuffer:!1,stencilBuffer:!1,wrapS:Ps,wrapT:Ps}),this._rt.samples=this.renderer.capabilities.isWebGL2?4:0,this._savePass=new ev(this._rt,!1),this._savePass.renderToScreen=!1}get renderToScreen(){return this._renderToScreen}set renderToScreen(e){var r,n;let t=this.effectComposer;!t||(e===!0?(((r=this.renderer)==null?void 0:r.capabilities.isWebGL2)&&(t.multisampling=0),t.removePass(this._savePass),t.passes[t.passes.length-1].renderToScreen=!0,t.autoRenderToScreen=!0):(((n=this.renderer)==null?void 0:n.capabilities.isWebGL2)&&!this._hasSmaa&&(t.multisampling=4),t.autoRenderToScreen=!1,t.passes[t.passes.length-1].renderToScreen=!1,this._savePass.renderToScreen=!1,this.enabled||(this._savePass.needsDepthTexture=!0),t.addPass(this._savePass)),this._renderToScreen=e)}get texture(){return this._rt&&this._rt.texture}get renderTarget(){return this._rt}fromJSON(e){e&&(Object.keys(e).forEach(t=>{let r=e[t],n=this.effects.get(t);Object.keys(r).forEach(s=>{n[s]=r[s]})}),this.enabled=e.enabled)}toJSON(){let e={};return this.effects.forEach((t,r)=>{e[r]=t.toJSON()},e),ne({enabled:this.enabled},e)}render(){var e;(e=this.effectComposer)==null||e.render(this.clock.getDelta())}setScissor(e,t,r,n){if(!this.effectComposer||!this.renderer)return;e instanceof tt?(this.effectComposer.inputBuffer.scissor.set(e.x,e.y,e.z,e.w),this.effectComposer.outputBuffer.scissor.set(e.x,e.y,e.z,e.w)):(this.effectComposer.inputBuffer.scissor.set(e,t,r,n),this.effectComposer.outputBuffer.scissor.set(e,t,r,n));let s=this.renderer.getPixelRatio();this.effectComposer.inputBuffer.scissor.multiplyScalar(s),this.effectComposer.outputBuffer.scissor.multiplyScalar(s),this.renderer.setScissor(e,t,r,n)}setScissorTest(e){!this.effectComposer||!this.renderer||(this.effectComposer.inputBuffer.scissorTest=e,this.effectComposer.outputBuffer.scissorTest=e,this.renderer.setScissorTest(e))}setViewport(e,t,r,n){!this.effectComposer||(e instanceof tt?(this.effectComposer.inputBuffer.viewport.copy(e),this.effectComposer.outputBuffer.viewport.copy(e)):(this.effectComposer.inputBuffer.viewport.set(e,t,r,n),this.effectComposer.outputBuffer.viewport.set(e,t,r,n)))}resize(e,t){var r,n;if((r=this.effectComposer)==null||r.setSize(e,t),this._rt){let s=((n=this.renderer)==null?void 0:n.getPixelRatio())||window.devicePixelRatio;this._rt.setSize(e*s,t*s)}}dispose(){var e;this._listeners=void 0,(e=this.effectComposer)==null||e.dispose()}};var lv=class extends cp{constructor(e,t){super(e,t);this.postprocessing=new pp;this.initPostprocessing(e.postprocessing)}resetAfterClear(e,t){super.resetAfterClear(e,t),this.initPostprocessing(e.postprocessing)}initPostprocessing(e){let n=e,{enabled:t}=n,r=Qv(n,["enabled"]);for(let s of Object.entries(r)){let o=s[1],a=this.postprocessing.effects.get(s[0]);if(a){a.enabled=o.enabled;for(let[l,c]of Object.entries(o))a[l]=c}}this.postprocessing.enabled=t,this.postprocessing.reinit()}dispose(){super.dispose(),this.postprocessing.dispose()}switchActiveCamera(e){super.switchActiveCamera(e),this.postprocessing&&(this.postprocessing.camera=e)}};"use strict";var yT={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0,rewind:!0},cv={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},BG=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],mp={CSS:{},springs:{}};function ts(i,e,t){return Math.min(Math.max(i,e),t)}function Ju(i,e){return i.indexOf(e)>-1}function uv(i,e){return i.apply(null,e)}var Ke={arr:function(i){return Array.isArray(i)},obj:function(i){return Ju(Object.prototype.toString.call(i),"Object")},pth:function(i){return Ke.obj(i)&&i.hasOwnProperty("totalLength")},svg:function(i){return i instanceof SVGElement},inp:function(i){return i instanceof HTMLInputElement},dom:function(i){return!("isNode"in i)&&(i.nodeType||Ke.svg(i))},str:function(i){return typeof i=="string"},fnc:function(i){return typeof i=="function"},und:function(i){return typeof i=="undefined"},hex:function(i){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(i)},rgb:function(i){return/^rgb/.test(i)},hsl:function(i){return/^hsl/.test(i)},col:function(i){return Ke.hex(i)||Ke.rgb(i)||Ke.hsl(i)},key:function(i){return!yT.hasOwnProperty(i)&&!cv.hasOwnProperty(i)&&i!=="targets"&&i!=="keyframes"}};function vT(i){var e=/\(([^)]+)\)/.exec(i);return e?e[1].split(",").map(function(t){return parseFloat(t)}):[]}function xT(i,e){var t=vT(i),r=ts(Ke.und(t[0])?1:t[0],.1,100),n=ts(Ke.und(t[1])?100:t[1],.1,100),s=ts(Ke.und(t[2])?10:t[2],.1,100),o=ts(Ke.und(t[3])?0:t[3],.1,100),a=Math.sqrt(n/r),l=s/(2*Math.sqrt(n*r)),c=l<1?a*Math.sqrt(1-l*l):0,u=1,d=l<1?(l*a+-o)/c:-o+a;function h(p){var g=e?e*p/1e3:p;return l<1?g=Math.exp(-g*l*a)*(u*Math.cos(c*g)+d*Math.sin(c*g)):g=(u+d*g)*Math.exp(-g*a),p===0||p===1?p:1-g}function f(){var p=mp.springs[i];if(p)return p;for(var g=1/6,v=0,y=0;;)if(v+=g,h(v)===1){if(y++,y>=16)break}else y=0;var m=v*g*1e3;return mp.springs[i]=m,m}return e?h:f}function OG(i){return i===void 0&&(i=10),function(e){return Math.ceil(ts(e,1e-6,1)*i)*(1/i)}}var FG=function(){var i=11,e=1/(i-1);function t(u,d){return 1-3*d+3*u}function r(u,d){return 3*d-6*u}function n(u){return 3*u}function s(u,d,h){return((t(d,h)*u+r(d,h))*u+n(d))*u}function o(u,d,h){return 3*t(d,h)*u*u+2*r(d,h)*u+n(d)}function a(u,d,h,f,p){var g,v,y=0;do v=d+(h-d)/2,g=s(v,f,p)-u,g>0?h=v:d=v;while(Math.abs(g)>1e-7&&++y<10);return v}function l(u,d,h,f){for(var p=0;p<4;++p){var g=o(d,h,f);if(g===0)return d;var v=s(d,h,f)-u;d-=v/g}return d}function c(u,d,h,f){if(!(0<=u&&u<=1&&0<=h&&h<=1))return;var p=new Float32Array(i);if(u!==d||h!==f)for(var g=0;g<i;++g)p[g]=s(g*e,u,h);function v(y){for(var m=0,x=1,w=i-1;x!==w&&p[x]<=y;++x)m+=e;--x;var b=(y-p[x])/(p[x+1]-p[x]),E=m+b*e,T=o(E,u,h);return T>=.001?l(y,E,u,h):T===0?E:a(y,m,m+e,u,h)}return function(y){return u===d&&h===f||y===0||y===1?y:s(v(y),d,f)}}return c}(),bT=function(){var i={linear:function(){return function(r){return r}}},e={Sine:function(){return function(r){return 1-Math.cos(r*Math.PI/2)}},Circ:function(){return function(r){return 1-Math.sqrt(1-r*r)}},Back:function(){return function(r){return r*r*(3*r-2)}},Bounce:function(){return function(r){for(var n,s=4;r<((n=Math.pow(2,--s))-1)/11;);return 1/Math.pow(4,3-s)-7.5625*Math.pow((n*3-2)/22-r,2)}},Elastic:function(r,n){r===void 0&&(r=1),n===void 0&&(n=.5);var s=ts(r,1,10),o=ts(n,.1,2);return function(a){return a===0||a===1?a:-s*Math.pow(2,10*(a-1))*Math.sin((a-1-o/(Math.PI*2)*Math.asin(1/s))*(Math.PI*2)/o)}}},t=["Quad","Cubic","Quart","Quint","Expo"];return t.forEach(function(r,n){e[r]=function(){return function(s){return Math.pow(s,n+2)}}}),Object.keys(e).forEach(function(r){var n=e[r];i["easeIn"+r]=n,i["easeOut"+r]=function(s,o){return function(a){return 1-n(s,o)(1-a)}},i["easeInOut"+r]=function(s,o){return function(a){return a<.5?n(s,o)(a*2)/2:1-n(s,o)(a*-2+2)/2}}}),i}();function hv(i,e){if(Ke.fnc(i))return i;var t=i.split("(")[0],r=bT[t],n=vT(i);switch(t){case"spring":return xT(i,e);case"cubicBezier":return uv(FG,n);case"steps":return uv(OG,n);default:return uv(r,n)}}function wT(i){try{var e=document.querySelectorAll(i);return e}catch(t){return}}function gp(i,e){for(var t=i.length,r=arguments.length>=2?arguments[1]:void 0,n=[],s=0;s<t;s++)if(s in i){var o=i[s];e.call(r,o,s,i)&&n.push(o)}return n}function yp(i){return i.reduce(function(e,t){return e.concat(Ke.arr(t)?yp(t):t)},[])}function ST(i){return Ke.arr(i)?i:(Ke.str(i)&&(i=wT(i)||i),i instanceof NodeList||i instanceof HTMLCollection?[].slice.call(i):[i])}function dv(i,e){return i.some(function(t){return t===e})}function fv(i){var e={};for(var t in i)e[t]=i[t];return e}function pv(i,e){var t=fv(i);for(var r in i)t[r]=e.hasOwnProperty(r)?e[r]:i[r];return t}function vp(i,e){var t=fv(i);for(var r in e)t[r]=Ke.und(i[r])?e[r]:i[r];return t}function UG(i){var e=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(i);return e?"rgba("+e[1]+",1)":i}function GG(i){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,t=i.replace(e,function(a,l,c,u){return l+l+c+c+u+u}),r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t),n=parseInt(r[1],16),s=parseInt(r[2],16),o=parseInt(r[3],16);return"rgba("+n+","+s+","+o+",1)"}function zG(i){var e=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(i)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(i),t=parseInt(e[1],10)/360,r=parseInt(e[2],10)/100,n=parseInt(e[3],10)/100,s=e[4]||1;function o(h,f,p){return p<0&&(p+=1),p>1&&(p-=1),p<1/6?h+(f-h)*6*p:p<1/2?f:p<2/3?h+(f-h)*(2/3-p)*6:h}var a,l,c;if(r==0)a=l=c=n;else{var u=n<.5?n*(1+r):n+r-n*r,d=2*n-u;a=o(d,u,t+1/3),l=o(d,u,t),c=o(d,u,t-1/3)}return"rgba("+a*255+","+l*255+","+c*255+","+s+")"}function kG(i){if(Ke.rgb(i))return UG(i);if(Ke.hex(i))return GG(i);if(Ke.hsl(i))return zG(i)}function As(i){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(i);if(e)return e[1]}function VG(i){if(Ju(i,"translate")||i==="perspective")return"px";if(Ju(i,"rotate")||Ju(i,"skew"))return"deg"}function mv(i,e){return Ke.fnc(i)?i(e.target,e.id,e.total):i}function rs(i,e){return i.getAttribute(e)}function gv(i,e,t){var r=As(e);if(dv([t,"deg","rad","turn"],r))return e;var n=mp.CSS[e+t];if(!Ke.und(n))return n;var s=100,o=document.createElement(i.tagName),a=i.parentNode&&i.parentNode!==document?i.parentNode:document.body;a.appendChild(o),o.style.position="absolute",o.style.width=s+t;var l=s/o.offsetWidth;a.removeChild(o);var c=l*parseFloat(e);return mp.CSS[e+t]=c,c}function MT(i,e,t){if(e in i.style){var r=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),n=i.style[e]||getComputedStyle(i).getPropertyValue(r)||"0";return t?gv(i,n,t):n}}function yv(i,e){if(Ke.dom(i)&&!Ke.inp(i)&&(rs(i,e)||Ke.svg(i)&&i[e]))return"attribute";if(Ke.dom(i)&&dv(BG,e))return"transform";if(Ke.dom(i)&&e!=="transform"&&MT(i,e))return"css";if(i[e]!=null)return"object"}function AT(i){if(!!Ke.dom(i)){for(var e=i.style.transform||"",t=/(\w+)\(([^)]*)\)/g,r=new Map,n;n=t.exec(e);)r.set(n[1],n[2]);return r}}function HG(i,e,t,r){var n=Ju(e,"scale")?1:0+VG(e),s=AT(i).get(e)||n;return t&&(t.transforms.list.set(e,s),t.transforms.last=e),r?gv(i,s,r):s}function vv(i,e,t,r){switch(yv(i,e)){case"transform":return HG(i,e,r,t);case"css":return MT(i,e,t);case"attribute":return rs(i,e);default:return i[e]||0}}function xv(i,e){var t=/^(\*=|\+=|-=)/.exec(i);if(!t)return i;var r=As(i)||0,n=parseFloat(e),s=parseFloat(i.replace(t[0],""));switch(t[0][0]){case"+":return n+s+r;case"-":return n-s+r;case"*":return n*s+r}}function TT(i,e){if(Ke.col(i))return kG(i);if(/\s/g.test(i))return i;var t=As(i),r=t?i.substr(0,i.length-t.length):i;return e?r+e:r}function bv(i,e){return Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2))}function jG(i){return Math.PI*2*rs(i,"r")}function WG(i){return rs(i,"width")*2+rs(i,"height")*2}function qG(i){return bv({x:rs(i,"x1"),y:rs(i,"y1")},{x:rs(i,"x2"),y:rs(i,"y2")})}function ET(i){for(var e=i.points,t=0,r,n=0;n<e.numberOfItems;n++){var s=e.getItem(n);n>0&&(t+=bv(r,s)),r=s}return t}function XG(i){var e=i.points;return ET(i)+bv(e.getItem(e.numberOfItems-1),e.getItem(0))}function _T(i){if(i.getTotalLength)return i.getTotalLength();switch(i.tagName.toLowerCase()){case"circle":return jG(i);case"rect":return WG(i);case"line":return qG(i);case"polyline":return ET(i);case"polygon":return XG(i)}}function YG(i){var e=_T(i);return i.setAttribute("stroke-dasharray",e),e}function KG(i){for(var e=i.parentNode;Ke.svg(e)&&Ke.svg(e.parentNode);)e=e.parentNode;return e}function CT(i,e){var t=e||{},r=t.el||KG(i),n=r.getBoundingClientRect(),s=rs(r,"viewBox"),o=n.width,a=n.height,l=t.viewBox||(s?s.split(" "):[0,0,o,a]);return{el:r,viewBox:l,x:l[0]/1,y:l[1]/1,w:o/l[2],h:a/l[3]}}function JG(i,e){var t=Ke.str(i)?wT(i)[0]:i,r=e||100;return function(n){return{property:n,el:t,svg:CT(t),totalLength:_T(t)*(r/100)}}}function QG(i,e){function t(a){a===void 0&&(a=0);var l=e+a>=1?e+a:0;return i.el.getPointAtLength(l)}var r=CT(i.el,i.svg),n=t(),s=t(-1),o=t(1);switch(i.property){case"x":return(n.x-r.x)*r.w;case"y":return(n.y-r.y)*r.h;case"angle":return Math.atan2(o.y-s.y,o.x-s.x)*180/Math.PI}}function LT(i,e){var t=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,r=TT(Ke.pth(i)?i.totalLength:i,e)+"";return{original:r,numbers:r.match(t)?r.match(t).map(Number):[0],strings:Ke.str(i)||e?r.split(t):[]}}function PT(i){var e=i?yp(Ke.arr(i)?i.map(ST):ST(i)):[];return gp(e,function(t,r,n){return n.indexOf(t)===r})}function DT(i){var e=PT(i);return e.map(function(t,r){return{target:t,id:r,total:e.length,transforms:{list:AT(t)}}})}function ZG(i,e){var t=fv(e);if(/^spring/.test(t.easing)&&(t.duration=xT(t.easing)),Ke.arr(i)){var r=i.length,n=r===2&&!Ke.obj(i[0]);n?i={value:i}:Ke.fnc(e.duration)||(t.duration=e.duration/r)}var s=Ke.arr(i)?i:[i];return s.map(function(o,a){var l=Ke.obj(o)&&!Ke.pth(o)?o:{value:o};return Ke.und(l.delay)&&(l.delay=a?0:e.delay),Ke.und(l.endDelay)&&(l.endDelay=a===s.length-1?e.endDelay:0),l}).map(function(o){return vp(o,t)})}function $G(i){for(var e=gp(yp(i.map(function(s){return Object.keys(s)})),function(s){return Ke.key(s)}).reduce(function(s,o){return s.indexOf(o)<0&&s.push(o),s},[]),t={},r=function(s){var o=e[s];t[o]=i.map(function(a){var l={};for(var c in a)Ke.key(c)?c==o&&(l.value=a[c]):l[c]=a[c];return l})},n=0;n<e.length;n++)r(n);return t}function ez(i,e){var t=[],r=e.keyframes;r&&(e=vp($G(r),e));for(var n in e)Ke.key(n)&&t.push({name:n,tweens:ZG(e[n],i)});return t}function tz(i,e){var t={};for(var r in i){var n=mv(i[r],e);Ke.arr(n)&&(n=n.map(function(s){return mv(s,e)}),n.length===1&&(n=n[0])),t[r]=n}return t.duration=parseFloat(t.duration),t.delay=parseFloat(t.delay),t}function rz(i,e){var t;return i.tweens.map(function(r){var n=tz(r,e),s=n.value,o=Ke.arr(s)?s[1]:s,a=As(o),l=vv(e.target,i.name,a,e),c=t?t.to.original:l,u=Ke.arr(s)?s[0]:c,d=As(u)||As(l),h=a||d;return Ke.und(o)&&(o=c),n.from=LT(u,h),n.to=LT(xv(o,u),h),n.start=t?t.end:0,n.end=n.start+n.delay+n.duration+n.endDelay,n.easing=hv(n.easing,n.duration),n.isPath=Ke.pth(s),n.isColor=Ke.col(n.from.original),n.isColor&&(n.round=1),t=n,n})}var IT={css:function(i,e,t){return i.style[e]=t},attribute:function(i,e,t){return i.setAttribute(e,t)},object:function(i,e,t){return i[e]=t},transform:function(i,e,t,r,n){if(r.list.set(e,t),e===r.last||n){var s="";r.list.forEach(function(o,a){s+=a+"("+o+") "}),i.style.transform=s}}};function NT(i,e){var t=DT(i);t.forEach(function(r){for(var n in e){var s=mv(e[n],r),o=r.target,a=As(s),l=vv(o,n,a,r),c=a||As(l),u=xv(TT(s,c),l),d=yv(o,n);IT[d](o,n,u,r.transforms,!0)}})}function nz(i,e){var t=yv(i.target,e.name);if(t){var r=rz(e,i),n=r[r.length-1];return{type:t,property:e.name,animatable:i,tweens:r,duration:n.end,delay:r[0].delay,endDelay:n.endDelay}}}function iz(i,e){return gp(yp(i.map(function(t){return e.map(function(r){return nz(t,r)})})),function(t){return!Ke.und(t)})}function RT(i,e){var t=i.length,r=function(s){return s.timelineOffset?s.timelineOffset:0},n={};return n.duration=t?Math.max.apply(Math,i.map(function(s){return r(s)+s.duration})):e.duration,n.delay=t?Math.min.apply(Math,i.map(function(s){return r(s)+s.delay})):e.delay,n.endDelay=t?n.duration-Math.max.apply(Math,i.map(function(s){return r(s)+s.duration-s.endDelay})):e.endDelay,n}var BT=0;function sz(i){var e=pv(yT,i),t=pv(cv,i),r=ez(t,i),n=DT(i.targets),s=iz(n,r),o=RT(s,t),a=BT;return BT++,vp(e,{id:a,children:[],animatables:n,animations:s,duration:o.duration,delay:o.delay,endDelay:o.endDelay})}var Pn=[],OT=[],xp,oz=function(){function i(){xp=requestAnimationFrame(e)}function e(t){var r=Pn.length;if(r){for(var n=0;n<r;){var s=Pn[n];if(!s.paused)s.tick(t);else{var o=Pn.indexOf(s);o>-1&&(Pn.splice(o,1),r=Pn.length)}n++}i()}else xp=cancelAnimationFrame(xp)}return i}();function az(){document.hidden?(Pn.forEach(function(i){return i.pause()}),OT=Pn.slice(0),Cr.running=Pn=[]):OT.forEach(function(i){return i.play()})}typeof document!="undefined"&&document.addEventListener("visibilitychange",az);function Cr(i){i===void 0&&(i={});var e=0,t=0,r=0,n,s=0,o=null;function a(x){var w=window.Promise&&new Promise(function(b){return o=b});return x.finished=w,w}var l=sz(i),c=a(l);function u(){var x=l.direction;x!=="alternate"&&(l.direction=x!=="normal"?"normal":"reverse"),l.reversed=!l.reversed,n.forEach(function(w){return w.reversed=l.reversed})}function d(x){return l.reversed?l.duration-x:x}function h(){e=0,t=d(l.currentTime)*(1/Cr.speed)}function f(x,w){w&&w.seek(x-w.timelineOffset)}function p(x){if(l.reversePlayback)for(var b=s;b--;)f(x,n[b]);else for(var w=0;w<s;w++)f(x,n[w])}function g(x){var w=0,b=l.animations,E=b.length;for(l.reversePlayback===!0&&l.rewind===!1&&(x=l.duration-x);w<E;){var T=b[w],S=T.animatable,N=T.tweens,C=N.length-1,M=N[C];C&&(M=gp(N,function(ce){return x<ce.end})[0]||M);for(var _=ts(x-M.start-M.delay,0,M.duration)/M.duration,D=isNaN(_)?1:M.easing(_),O=M.to.strings,F=M.round,k=[],W=M.to.numbers.length,j=void 0,Z=0;Z<W;Z++){var U=void 0;if(l.reversePlayback===!0&&l.rewind===!1)var G=M.to.numbers[Z],R=M.from.numbers[Z]||0;else var R=M.to.numbers[Z],G=M.from.numbers[Z]||0;M.isPath?U=QG(M.value,D*R):U=G+D*(R-G),F&&(M.isColor&&Z>2||(U=Math.round(U*F)/F)),k.push(U)}var K=O.length;if(!K)j=k[0];else{j=O[0];for(var re=0;re<K;re++){var se=O[re],V=O[re+1],he=k[re];isNaN(he)||(V?j+=he+V:j+=he+" ")}}IT[T.type](S.target,T.property,j,S.transforms),T.currentValue=j,w++}}function v(x){l[x]&&!l.passThrough&&l[x](l)}function y(){l.remaining&&l.remaining!==!0&&l.remaining--}function m(x){var w=l.duration,b=l.delay,E=w-l.endDelay,T=d(x);l.progress=ts(T/w*100,0,100),l.reversePlayback=T<l.currentTime,n&&p(T),!l.began&&l.currentTime>=0&&(l.began=!0,v("begin")),!l.loopBegan&&l.currentTime>0&&(l.loopBegan=!0,v("loopBegin")),T<=b&&l.currentTime!==0&&g(0),(T>=E&&l.currentTime!==w||!w)&&g(w),T>b&&T<E?(l.changeBegan||(l.changeBegan=!0,l.changeCompleted=!1,v("changeBegin")),v("change"),g(T)):l.changeBegan?(l.changeCompleted=!0,l.changeBegan=!1,v("change"),v("changeComplete")):l.began&&T>E&&(v("change"),v("changeComplete")),l.currentTime=ts(T,0,w),l.began&&v("update"),x>=w&&(t=0,y(),l.remaining?(e=r,v("loopComplete"),l.loopBegan=!1,l.direction==="alternate"&&u()):(l.paused=!0,l.completed||(l.completed=!0,v("loopComplete"),v("complete"),!l.passThrough&&"Promise"in window&&(o(),c=a(l)))))}return l.reset=function(){var x=l.direction;l.passThrough=!1,l.currentTime=0,l.progress=0,l.paused=!0,l.began=!1,l.loopBegan=!1,l.changeBegan=!1,l.completed=!1,l.changeCompleted=!1,l.reversePlayback=!1,l.reversed=x==="reverse",l.remaining=l.loop,n=l.children,s=n.length;for(var w=s;w--;)l.children[w].reset();(l.reversed&&l.loop!==!0||x==="alternate"&&l.loop===1)&&l.remaining++,g(l.reversed?l.duration:0)},l.set=function(x,w){return NT(x,w),l},l.tick=function(x){r=x,e||(e=r),m((r+(t-e))*Cr.speed)},l.seek=function(x){m(d(x))},l.pause=function(){l.paused=!0,h()},l.play=function(){!l.paused||(l.completed&&l.reset(),l.paused=!1,Pn.push(l),h(),xp||oz())},l.reverse=function(){u(),l.completed=!l.reversed,h()},l.restart=function(){l.reset(),l.play()},l.reset(),l.autoplay&&l.play(),l}function FT(i,e){for(var t=e.length;t--;)dv(i,e[t].animatable.target)&&e.splice(t,1)}function lz(i){for(var e=PT(i),t=Pn.length;t--;){var r=Pn[t],n=r.animations,s=r.children;FT(e,n);for(var o=s.length;o--;){var a=s[o],l=a.animations;FT(e,l),!l.length&&!a.children.length&&s.splice(o,1)}!n.length&&!s.length&&r.pause()}}function cz(i,e){e===void 0&&(e={});var t=e.direction||"normal",r=e.easing?hv(e.easing):null,n=e.grid,s=e.axis,o=e.from||0,a=o==="first",l=o==="center",c=o==="last",u=Ke.arr(i),d=parseFloat(u?i[0]:i),h=u?parseFloat(i[1]):0,f=As(u?i[1]:i)||0,p=e.start||0+(u?d:0),g=[],v=0;return function(y,m,x){if(a&&(o=0),l&&(o=(x-1)/2),c&&(o=x-1),!g.length){for(var w=0;w<x;w++){if(!n)g.push(Math.abs(o-w));else{var b=l?(n[0]-1)/2:o%n[0],E=l?(n[1]-1)/2:Math.floor(o/n[0]),T=w%n[0],S=Math.floor(w/n[0]),N=b-T,C=E-S,M=Math.sqrt(N*N+C*C);s==="x"&&(M=-N),s==="y"&&(M=-C),g.push(M)}v=Math.max.apply(Math,g)}r&&(g=g.map(function(D){return r(D/v)*v})),t==="reverse"&&(g=g.map(function(D){return s?D<0?D*-1:-D:Math.abs(v-D)}))}var _=u?(h-d)/v:d;return p+_*(Math.round(g[m]*100)/100)+f}}function uz(i){i===void 0&&(i={});var e=Cr(i);return e.duration=0,e.add=function(t,r){var n=Pn.indexOf(e),s=e.children;n>-1&&Pn.splice(n,1);function o(h){h.passThrough=!0}for(var a=0;a<s.length;a++)o(s[a]);var l=vp(t,pv(cv,i));l.targets=l.targets||i.targets;var c=e.duration;l.autoplay=!1,l.direction=e.direction,l.timelineOffset=Ke.und(r)?c:xv(r,c),o(e),l.rewind=e.rewind,e.seek(l.timelineOffset);var u=Cr(l);o(u),s.push(u);var d=RT(s,i);return e.delay=d.delay,e.endDelay=d.endDelay,e.duration=d.duration,e.seek(0),e.reset(),e.autoplay&&e.play(),e},e}Cr.version="3.2.0";Cr.speed=1;Cr.running=Pn;Cr.remove=lz;Cr.get=vv;Cr.set=NT;Cr.convertPx=gv;Cr.path=JG;Cr.setDashoffset=YG;Cr.stagger=cz;Cr.timeline=uz;Cr.easing=hv;Cr.penner=bT;Cr.random=function(i,e){return Math.floor(Math.random()*(e-i+1))+i};var Qu=Cr;function Zu(i,e,t){switch(i){case mn.LINEAR:return"cubicBezier( 0, 0, 1, 1 )";case mn.EASE:return"cubicBezier( .25, .1, .25, 1 )";case mn.EASE_IN:return"cubicBezier( .42, 0, 1, 1 )";case mn.EASE_OUT:return"cubicBezier( 0, 0, .58, 1 )";case mn.EASE_IN_OUT:return"cubicBezier( .42, 0, .58, 1 )";case mn.CUBIC:let{control1:r,control2:n}=e;return`cubicBezier( ${r[0]}, ${r[1]}, ${n[0]}, ${n[1]} )`;case mn.SPRING:let{mass:s,stiffness:o,damping:a,velocity:l}=t;return`spring( ${s}, ${o}, ${a}, ${l} )`}}function UT(i,e,t){var n,s;let r=i.cameraType==="OrthographicCamera"?(n=e.orthographic)==null?void 0:n.zoom:(s=e.perspective)==null?void 0:s.zoom;if(r!==void 0){let o=i.zoom;o!==r&&t.push({change:a=>{i.zoom=$e.lerp(o,r,a),i.updateProjectionMatrix()}})}if(e.targetOffset!==void 0){let o=i.targetOffset,a=e.targetOffset;o!==a&&t.push({change:l=>{i.targetOffset=$e.lerp(o,a,l)}})}}function GT(i,e,t){if(e.width!==void 0&&e.height!==void 0&&e.depth!==void 0){let{width:r,height:n,depth:s}=i.geometry.userData.parameters,o=[r,n,s],a=[e.width,e.height,e.depth];Tr.isEqual(o,a)||t.push({change:l=>{let[c,u,d]=Tr.lerp(o,a,l);i.updateGeometry({parameters:{width:c,height:u,depth:d}})}})}}function zT(i,e,t,r){if(e.intensity!==void 0){let n=i.intensity,s=e.intensity;n!==s&&t.push({change:o=>{i.intensity=$e.lerp(n,s,o)}})}if(e.color!==void 0){let n=i.color.clone(),s=typeof e.color=="string"?r.getColor(e.color):e.color;Lr.equals(n,s)||t.push({change:o=>{let{r:a,g:l,b:c}=Lr.lerp(n,s,o);i.color.setRGB(a,l,c)}})}}function kT(i,e,t,r){let n=i.layersList.head;for(;n;){let s=e.layers.data(n.uuid);if((s==null?void 0:s.visible)&&n.visible){let o=n.getNames().filter(a=>!FM.some(l=>a.includes(l)));for(let a of o)try{let l=n.getValue(a);if(a==="steps")mz(n,s,a,t);else if(a==="colors")gz(n,s,a,t);else if(typeof l=="number")hz(n,s,a,t);else{if(typeof l=="boolean")continue;"isVector2"in l?dz(n,s,a,t):"isVector3"in l?fz(n,s,a,t):"isColor"in l?pz(n,s,a,t,r):"isTexture"in l&&yz(n,s,a,t)}}catch(l){console.error(`animateMaterial: unexpected material layer for ${a}`,l)}}n=n.next}}function hz(i,e,t,r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue(t),s=e[t];n!==s&&r.push({change:o=>{i.setValue(t,$e.lerp(n,s,o))}})}function dz(i,e,t,r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue(t),s=n.toArray(),o=e[t];gs.isEqual(s,o)||r.push({change:a=>{n.fromArray(gs.lerp(s,o,a))}})}function fz(i,e,t,r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue(t),s=n.toArray(),o=e[t];Tr.isEqual(s,o)||r.push({change:a=>{n.fromArray(Tr.lerp(s,o,a))}})}function pz(i,e,t,r,n){if(!i.hasValue(t)||!(t in e))return;let s=i.getValue(t),o=s.clone(),a=e[t],l=typeof a=="string"?n.getColor(a):a;Lr.equals(o,l)||r.push({change:c=>{let{r:u,g:d,b:h}=Lr.lerp(o,l,c);s.setRGB(u,d,h)}})}function mz(i,e,t="steps",r){if(!i.hasValue(t)||!(t in e))return;let n=[...i.getValue(t)],s=e[t];for(let o=0;o<n.length;++o){let a=n[o],l=s[o];a!==l&&r.push({change:c=>{n[o]=$e.lerp(a,l,c),i.setValue("steps",n)}})}}function gz(i,e,t="colors",r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue(t),s=e[t];for(let o=0;o<n.length;++o){let a=n[o].toArray(),l=s[o];Zc.isEqual(a,l)||r.push({change:c=>{n[o].fromArray(Zc.lerp(a,l,c))}})}}function yz(i,e,t="texture",r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue("texture"),s=e[t],o=n.repeat.toArray(),a=n.offset.toArray(),l=s.repeat,c=s.offset;(!gs.isEqual(o,l)||!gs.isEqual(a,c))&&r.push({change:u=>{n.repeat.fromArray(gs.lerp(o,l,u)),n.offset.fromArray(gs.lerp(a,c,u)),n.updateMatrix(),n.needsUpdate=!0}})}function VT(i,e,t,r){if(r===0)return t.copy(i);if(r===1)return t.copy(e);let n=i.w*e.w+i.x*e.x+i.y*e.y+i.z*e.z;if(n>=1)return t.copy(i);let s=1-n*n;if(s<=Number.EPSILON){let u=1-r;return t.w=u*i.w+r*e.w,t.x=u*i.x+r*e.x,t.y=u*i.y+r*e.y,t.z=u*i.z+r*e.z,t.normalize(),t}let o=Math.sqrt(s),a=Math.atan2(o,n),l=Math.sin((1-r)*a)/o,c=Math.sin(r*a)/o;return t.w=i.w*l+e.w*c,t.x=i.x*l+e.x*c,t.y=i.y*l+e.y*c,t.z=i.z*l+e.z*c,t}function HT(i,e,t=0){let r=Array.isArray(i.material)?i.material[t]:i.material,n;return"materials"in e?n=e.materials[t]:"material"in e&&(n=e.material),[r,n]}var wv=new A,Sv=new A,jT=new jt,vz=new Rn,xz=new Ae;function WT(i,e,t,r){if(t.position!==void 0){let n=i.position.toArray(),s=t.position;Tr.isEqual(n,s)||r.push({change:o=>{i.position.fromArray(Tr.lerp(n,s,o)),i.updateMatrix()}})}if(t.scale!==void 0){let n=i.scale.toArray(),s=t.scale;Tr.isEqual(n,s)||r.push({change:o=>{i.scale.fromArray(Tr.lerp(n,s,o)),i.updateMatrix()}})}bz(i,e,t,r),wz(i,t,r)}function bz(i,e,t,r){if(t.rotation===void 0)return;let n=wv.setFromEuler(i.rotation).toArray(),s=t.rotation;if(Tr.isEqual(n,s))return;if(Tr.sub(t.rotation,e?e.rotation:i.rotation).every(a=>Math.abs(a)<2*Math.PI)){let a=i.quaternion.clone(),l=new jt().setFromEuler(vz.set(t.rotation[0],t.rotation[1],t.rotation[2]));r.push({change:c=>{VT(a,l,i.quaternion,c),i.updateMatrix()}})}else r.push({change:a=>{i.rotation.setFromVector3(Sv.fromArray(Tr.lerp(n,s,a))),i.updateMatrix()}})}function wz(i,e,t){if(e.hiddenMatrix!==void 0&&!Oi.isEqual(i.hiddenMatrix.toArray(),e.hiddenMatrix)){let r=new A,n=new jt,s=new A;i.hiddenMatrix.decompose(r,n,s);let o=new A,a=new jt,l=new A;xz.fromArray(e.hiddenMatrix).decompose(o,a,l),t.push({change:c=>{jT.slerpQuaternions(n,a,c),wv.lerpVectors(r,o,c),Sv.lerpVectors(s,l,c),i.hiddenMatrix.compose(wv,jT,Sv)}})}}function qT(i,e,t,r){let n=[];if(WT(i,e==null?void 0:e.objectState,t.objectState,n),El(i)){if("geometry"in t.objectState&&GT(i,t.objectState.geometry,n),"material"in t.objectState||"materials"in t.objectState){let[s,o]=HT(i,t.objectState,i.selectedMaterial);s&&o&&typeof o!="string"&&kT(s,o,n,r)}}else Y1(i)?zT(i,t.objectState,n,r):X1(i)&&UT(i,t.objectState,n);return{change:s=>{n.forEach(o=>{o.change&&o.change(s)})}}}var Mv=class{constructor(e,t){this.object=e;this.sharedAssets=t;this.uuid=$e.generateUUID();this.states=[];this.events={};this._scrollCounter=null}get animation(){return this._animation}start(){this._animation!==void 0&&(this._animation.pause(),this._animation=void 0,this._scrollCounter=null),this.states.length>1&&(this.states[0].execute(this.object,this.sharedAssets),this._currentState=this.states[0],this._prevState=void 0)}end(){this._animation!==void 0&&(this._animation.pause(),this._animation=void 0),this.states.length>1&&this.states[0].execute(this.object,this.sharedAssets),this._currentState=void 0,this._prevState=void 0}play(e,t){this.object.visible&&e.state!==void 0&&this.animate(e.state,e,!0,t)}reverse(e,t){this.object.visible&&this._prevState!==void 0&&this.animate(this._prevState,e,!0,t)}seek(e,t,r,n){var s;this._scrollCounter===null&&(this.object.visible&&e.state!==void 0&&this.animate(e.state,e,!1,n),this._scrollCounter=0),this._scrollCounter+=t,this._scrollCounter=Math.min(Math.max(this._scrollCounter,0),r),(s=this._animation)==null||s.seek(this._scrollCounter/r*e.duration)}animate(e,t,r=!0,n){var s,o,a,l,c,u;if(this._currentState===e){if((s=this._animation)==null?void 0:s.reversed){let d=(a=(o=this._animation)==null?void 0:o.currentTime)!=null?a:0;(l=this._animation)==null||l.reset(),(c=this._animation)==null||c.seek(d),(u=this._animation)==null||u.play()}}else{this._prevState=this._currentState,this._currentState=e,this._animation!==void 0&&this._animation.pause(),t.cycle===!0&&t.repeat===!0?this._animation=Qu.timeline({duration:t.duration,delay:t.delay/2,endDelay:t.delay/2,direction:"alternate",loop:!0,rewind:t.rewind,easing:Zu(t.easing,t.cubicControls,t.springParameters),autoplay:r}):t.cycle===!0&&t.repeat===!1?this._animation=Qu.timeline({duration:t.duration,delay:t.delay,endDelay:t.delay/2,direction:"alternate",rewind:t.rewind,easing:Zu(t.easing,t.cubicControls,t.springParameters),autoplay:r}):t.cycle===!1&&t.repeat===!0?this._animation=Qu.timeline({duration:t.duration,delay:t.delay,direction:"normal",loop:!0,easing:Zu(t.easing,t.cubicControls,t.springParameters),autoplay:r}):this._animation=Qu.timeline({duration:t.duration,delay:t.delay,direction:"normal",easing:Zu(t.easing,t.cubicControls,t.springParameters),autoplay:r}),r&&this._animation.finished.then(()=>{this._animation=void 0});let d=qT(this.object,this._prevState,this._currentState,this.sharedAssets),h={t:0};this._animation.add({targets:h,t:1,change:()=>{var f;d.change&&(d.change(h.t),(f=n==null?void 0:n.change)==null||f.call(this,h.t))}},0)}}emitEvent(e){if(e==="keyDown"||e==="keyUp"||e==="mouseDown"||e==="mouseUp"||e==="mouseHover"||e==="scroll"||e==="start"){let t=this.events[e];if(t)for(let r of t)r.targets.forEach(n=>this.play(n))}}emitEventReverse(e){if(e==="keyDown"||e==="keyUp"||e==="mouseDown"||e==="mouseUp"||e==="mouseHover"||e==="scroll"||e==="start"){let t=this.events[e];if(t)for(let r of t)r.targets.forEach(n=>this.reverse(n))}}};var $u=class{constructor(e){this.targetState=e}static create(e,t){var n;let r=new $u(e);if(e.object){let s=t.find(e.object);if(r.object=s,s==null?void 0:s.interaction){let o=s.interaction.states;r.state=e.state&&(n=o.find(a=>a.uuid===e.state))!=null?n:o[0]}}return r}get cubicControls(){let e=this.targetState;return e.easing===mn.CUBIC?{control1:e.control1,control2:e.control2}:ne({},Wd.defaultData)}get springParameters(){let e=this.targetState;return e.easing===mn.SPRING?e:ne({},jd.defaultData)}get easing(){return this.targetState.easing}get duration(){return this.targetState.duration}get delay(){return this.targetState.delay}get repeat(){return this.targetState.repeat}get cycle(){return this.targetState.cycle}get rewind(){return this.targetState.rewind}};var XT=new cn,zl=class extends on{},Av=class{constructor(e){this.materials={};this.images={};this.colors={};this.transmissionRenderTarget=new gt(2048,2048,{generateMipmaps:!0,minFilter:Ci,magFilter:st,wrapS:Mr,wrapT:Mr}),this.transmissionRenderTarget.depthTexture=new Ii(2048,2048),this.reset(e)}reset(e){for(let[t,r]of Object.entries(e.images))this.addImage(t,r.data);for(let[t,r]of Object.entries(e.colors))this.addColor(t,r);for(let[t,r]of Object.entries(e.materials))this.addMaterial(t,jy(r,this))}get transmissionSamplerMap(){return this.transmissionRenderTarget.texture}get transmissionDepthMap(){return this.transmissionRenderTarget.depthTexture}addMaterial(e,t){t.uuid=e,this.materials[e]=t}deleteMaterial(e){this.materials[e]&&(this.materials[e].dispose(),delete this.materials[e])}isSharedMaterial(e){return e.uuid in this.materials||e===XT}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){var t;return(t=this.materials[e])!=null?t:XT}getMaterials(){return this.materials}addImage(e,t){if(this.images[e])return this.images[e].onload=()=>{this.onImageLoad&&this.onImageLoad(e)},this.images[e].src=t,!0;{let r=new Image;return r.src=t,r.onload=()=>{this.onImageLoad&&this.onImageLoad(e)},this.images[e]=r,!1}}deleteImage(e){this.images[e]&&delete this.images[e]}getDefaultImage(){return this.images.image_0}getImage(e){return this.images[e]}getImages(){return this.images}addColor(e,t){return this.colors[e]?("a"in t?this.colors[e].setRGBA(t.r,t.g,t.b,t.a):this.colors[e].setRGBA(t.r,t.g,t.b,1),!0):("a"in t?this.colors[e]=new zl(t.r,t.g,t.b,t.a):this.colors[e]=new zl(t.r,t.g,t.b,1),!1)}updateColor(e,t){var r,n,s,o;if(this.colors[e]){let a=this.colors[e];return this.colors[e].r=(r=t.r)!=null?r:a.r,this.colors[e].g=(n=t.g)!=null?n:a.g,this.colors[e].b=(s=t.b)!=null?s:a.b,this.colors[e].a=(o=t.a)!=null?o:a.a,!0}return!1}deleteColor(e){this.colors[e]&&delete this.colors[e]}getColor(e){return this.colors[e]}dispose(){Object.keys(this.materials).forEach(t=>this.deleteMaterial(t)),this.transmissionRenderTarget.depthTexture.dispose(),this.transmissionRenderTarget.dispose(),this.onImageLoad=void 0}};function Sz(i,e){switch(i.type){case ut.NOISE:return e==="noiseType";case ut.TEXTURE:return e==="projection"||e==="axis";case ut.DISPLACE:return e==="noiseType";case ut.DEPTH:return e==="num"||e==="smooth"||e==="isWorldSpace"||e==="gradientType";default:return!1}}function Tv(i,e,t,r,n){var o;let s=!1;for(let[a,l]of Object.entries(i)){if(!a||l===void 0||rp(a,t,n))continue;t.visible=n.visible;let c=t.uniforms[`f${t.id}_${a}`];if(!!c)switch(c.constructor){case Ft:if(typeof l=="string"){let u=e.getColor(l);u&&(c.value=u);break}else{let u=l;c.value instanceof zl?c.value=new on(u.r,u.g,u.b,u.a):c.setRGBA(u);break}case Xi:if(typeof l=="string"){let u=e.getColor(l);u&&(c.value=u);break}else{let u=l;c.value instanceof zl?c.value=new on(u.r,u.g,u.b,u.a):c.value.setRGBA(u.r,u.g,u.b,u.a);break}case Xr:{let u=l;c.value.setX(u[0]),c.value.setY(u[1]);break}case Yr:{let u=l;c.value.setX(u[0]),c.value.setY(u[1]),c.value.setZ(u[2]);break}case an:{let u=l;"image"in u&&(c.value.image=e.getImage(u.image)),"wrapping"in u&&(c.value.wrapS=c.value.wrapT=u.wrapping),"repeat"in u&&c.value.repeat.fromArray(u.repeat),"offset"in u&&c.value.offset.fromArray(u.offset),c.value.needsUpdate=!0;break}case co:{l.forEach((u,d)=>{c.value[d].setX(u[0]),c.value[d].setY(u[1]),c.value[d].setZ(u[2]),c.value[d].setW(u[3])});break}default:{s=s||Sz(t,a),c.value=l;break}}}if(s&&n){let a=tp({id:"0",fi:0,data:n},e);(o=r.userData.layers)==null||o.changeLayer(t.id,ne({},a)),r.dispose(),r.needsUpdate=!0}}var Ev=new A,YT=new en,KT=new Ae,kl={type:"follow",normal:new A,raycaster:new Ho},Vl;(function(t){function i(r){if(r.type===Mt.FOLLOW)return{type:"follow",targets:[]}}t.create=i;function e({target:r,normal:n,raycaster:s,begin:o,change:a}){!r||!r.interaction||!n||!s||(o&&o("follow",r.uuid),YT.setFromNormalAndCoplanarPoint(n,r.getWorldPosition(Ev)),s.ray.intersectPlane(YT,Ev),r.position.copy(Ev),r.parent!==null&&r.position.applyMatrix4(KT.copy(r.parent.matrixWorld).invert()),r.position.applyMatrix4(KT.copy(r.hiddenMatrix).invert()),r.updateMatrix(),a&&a())}t.listener=e})(Vl||(Vl={}));var bp={type:"keyDown"},wp={type:"keyUp"},Hl;(function(t){function i(r){if(r.type===Mt.KEY_DOWN&&r.key)return{type:"keyDown",targets:[],key:r.key}}t.create=i;function e({target:r,begin:n,change:s,domEvent:o}){if(!r||!r.interaction||!o)return;let a=r.interaction.events.keyDown;if(!(a==null?void 0:a.length))return;let l=!1;for(let c of a)c.key===o.key&&(c.targets.forEach(u=>{var d,h;return(h=(d=u.object)==null?void 0:d.interaction)==null?void 0:h.play(u,{change:s})}),l=!0);l&&n&&n("keyDown",r.uuid)}t.listener=e})(Hl||(Hl={}));var jl;(function(t){function i(r){if(!(r.type!==Mt.KEY_UP||!r.key))return{type:"keyUp",targets:[],key:r.key}}t.create=i;function e({target:r,begin:n,change:s,domEvent:o}){if(!r||!r.interaction||!o)return;let a=r.interaction.events.keyUp;if(!(a==null?void 0:a.length))return;let l=!1;for(let c of a)c.key===o.key&&(c.targets.forEach(u=>{var d,h;return(h=(d=u.object)==null?void 0:d.interaction)==null?void 0:h.play(u,{change:s})}),l=!0);l&&n&&n("keyUp",r.uuid)}t.listener=e})(jl||(jl={}));var _v=new A,JT=new en,Wl={type:"lookAt",normal:new A,raycaster:new Ho},ql;(function(t){function i(r){if(r.type===Mt.LOOK_AT&&r.distance)return{type:"lookAt",distance:r.distance}}t.create=i;function e({target:r,normal:n,raycaster:s,begin:o,change:a}){var u;if(!r||!r.interaction||!n||!s)return;let l=r.interaction.events.lookAt;if(!(l==null?void 0:l.length))return;o&&o("lookAt",r.uuid);let c=l[0].distance;JT.set(n,-c),s.ray.intersectPlane(JT,_v),r.lookAt(_v),r.updateMatrix(),(u=r.interaction.animation)==null||u.finished.then(()=>{r.lookAt(_v),r.updateMatrix()}),a&&a()}t.listener=e})(ql||(ql={}));var Sp={type:"mouseDown"},Mp={type:"mouseUp"},Xl;(function(t){function i(r){if(r.type===Mt.MOUSE_DOWN)return{type:"mouseDown",targets:[]}}t.create=i;function e({target:r,begin:n,change:s}){if(!r||!r.interaction)return;let o=r.interaction.events.mouseDown;!(o==null?void 0:o.length)||(n&&n("mouseDown",r.uuid),o.forEach(a=>{a.targets.forEach(l=>{var c,u;return(u=(c=l.object)==null?void 0:c.interaction)==null?void 0:u.play(l,{change:s})})}))}t.listener=e})(Xl||(Xl={}));var Yl;(function(t){function i(r){if(r.type===Mt.MOUSE_UP)return{type:"mouseUp",targets:[]}}t.create=i;function e({target:r,begin:n,change:s}){if(!r||!r.interaction)return;let o=r.interaction.events.mouseUp;!(o==null?void 0:o.length)||(n&&n("mouseUp",r.uuid),o.forEach(a=>{a.targets.forEach(l=>{var c,u;return(u=(c=l.object)==null?void 0:c.interaction)==null?void 0:u.play(l,{change:s})})}))}t.listener=e})(Yl||(Yl={}));var Cv={type:"start"},Kl;(function(t){function i(r){if(r.type===Mt.START)return{type:"start",targets:[]}}t.create=i;function e({target:r,begin:n,change:s}){if(!r||!r.interaction)return;let o=r.interaction.events.start;!(o==null?void 0:o.length)||(n&&n("start",r.uuid),o.forEach(a=>{a.targets.forEach(l=>{var c,u;return(u=(c=l.object)==null?void 0:c.interaction)==null?void 0:u.play(l,{change:s})})}))}t.listener=e})(Kl||(Kl={}));function QT(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}var Dn={type:"link"},Jl;(function(t){function i(r){let n;if(r.type===Mt.MOUSE_DOWN)n={type:"mousedown"};else if(r.type===Mt.MOUSE_UP)n={type:"mouseup"};else if(r.type===Mt.KEY_DOWN){if(!r.key)return;n={type:"keydown",key:r.key}}else if(r.type===Mt.KEY_UP){if(!r.key)return;n={type:"keyup",key:r.key}}else return;if(r.url)return{type:"link",subEvent:n,url:r.url}}t.create=i;function e({target:r,begin:n,domEvent:s,subType:o}){var c;if(!r||!r.interaction||!o||!s)return;let a=r.interaction.events.link;if(!a)return;let l;if(o==="keydown"||o==="keyup"){let u=s.key;l=(c=a[o])==null?void 0:c.filter(d=>d.subEvent.type===o&&d.subEvent.key===u)}else l=a[o];if(!!(l==null?void 0:l.length)){n&&n("link",r.uuid);for(let u of l)QT()?window.location.assign(u.url):window.open(u.url,"_blank")}}t.listener=e})(Jl||(Jl={}));var Ap={type:"scroll"},Ql;(function(t){function i(r){if(!(r.type!==Mt.SCROLL||r.steps===void 0))return{type:"scroll",targets:[],steps:r.steps}}t.create=i;function e({target:r,begin:n,change:s,domEvent:o}){if(!r||!r.interaction||!o)return;let a=r.interaction.events.scroll;if(!(a==null?void 0:a.length))return;n&&n("scroll",r.uuid);let l=o.deltaY>0?1:-1;a.forEach(c=>{c.targets.forEach(u=>{var d,h;return(h=(d=u.object)==null?void 0:d.interaction)==null?void 0:h.seek(u,l,c.steps,{change:s})})})}t.listener=e})(Ql||(Ql={}));var mo={type:"mouseHover"},Zl;(function(t){function i(r){if(r.type===Mt.MOUSE_HOVER)return{type:"mouseHover",targets:[]}}t.create=i;function e({target:r,begin:n,change:s,enter:o}){if(!r||!r.interaction||o===void 0)return;let a=r.interaction.events.mouseHover;!(a==null?void 0:a.length)||(n&&n("mouseHover",r.uuid),o?a.forEach(l=>{l.targets.forEach(c=>{var u,d;return(d=(u=c.object)==null?void 0:u.interaction)==null?void 0:d.play(c,{change:s})})}):a.forEach(l=>{l.targets.forEach(c=>{var u,d;return(d=(u=c.object)==null?void 0:u.interaction)==null?void 0:d.reverse(c,{change:s})})}))}t.listener=e})(Zl||(Zl={}));function Mz(i){let e,{type:t}=i;return t===Mt.FOLLOW?e=Vl.create(i):t===Mt.KEY_DOWN?e=Hl.create(i):t===Mt.KEY_UP?e=jl.create(i):t===Mt.LOOK_AT?e=ql.create(i):t===Mt.MOUSE_DOWN?e=Xl.create(i):t===Mt.MOUSE_UP?e=Yl.create(i):t===Mt.MOUSE_HOVER?e=Zl.create(i):t===Mt.SCROLL?e=Ql.create(i):t===Mt.START&&(e=Kl.create(i)),e}function ZT(i,e,t){let r=[];i.objects.traverse((n,s)=>{var u;if(s.states===void 0)return;let o=e.find(n),a=new Mv(o,t),l=a.states;l.push($l.create(n,s));for(let d of s.states){let h=su.patch(s,d.data);l.push($l.create(d.id,h))}let c=a.events;if(s.events)for(let{data:d}of s.events){let h=Mz(d);if(!h)continue;let f=h.type;c[f]?(u=c[f])==null||u.push(h):c[f]=[h],"targets"in d&&r.push([d,h]);let p=Jl.create(d);if(p){c.link||(c.link={});let g=p.subEvent.type;c.link[g]?c.link[g].push(p):c.link[g]=[p]}}l.length>0||Object.keys(c).length>0?(o.interaction=a,Lv(o,s,null,t)):delete o.interaction});for(let[n,s]of r)if("targets"in n&&"targets"in s)for(let{data:o}of n.targets){let a=$u.create(o,e);s.targets.push(a)}}function Lv(i,e,t,r,n=!1){if(!n&&e.states.length===0)return;let s=t===null?e:su.patch(e,e.states.data(t));if(vy(i,s),i instanceof ir&&s.type==="Mesh"){if(i instanceof ea?i.buildFromStore(s.geometry):i.updateGeometry({parameters:s.geometry}),"material"in s){if(i.material instanceof Array)return;if(typeof s.material!="string"){let a=s.material.layers;for(let l of a){let c=i.material.userData.layers.getLayerByUuid(l.id);Tv(l.data,r,c,i.material,l.data)}}}else if("materials"in s){if(!(i.material instanceof Array))return;var o=0;for(let a of s.materials){if(typeof a!="string"){let l=a.layers;for(let c of l){let u=i.material[o].userData.layers.getLayerByUuid(c.id);Tv(c.data,r,u,i.material[o],c.data)}}o++}}}else if(s.type==="DirectionalLight")i.fromDirectionalLightState(s,r);else if(s.type==="PointLight")i.fromPointLightState(s,r);else if(s.type==="SpotLight")i.fromSpotLightState(s,r);else if(i instanceof si&&to.is(s.type)){let a=s;i.setZoom("PerspectiveCamera",a.perspective.zoom),i.setZoom("OrthographicCamera",a.orthographic.zoom)}}var $l=class{constructor(e){this.objectState=e;this.uuid=$e.generateUUID()}static create(e,t){let r=new $l(t);return r.uuid=e,r}execute(e,t){Lv(e,this.objectState,null,t,!0)}};var Jr;(function(e){function i(t,r,n=!0){r.dispatchEvent(t),n&&(r==null||r.traverseAncestors(s=>{s instanceof Zi&&s.dispatchEvent(t)}))}e.dispatchEvent=i})(Jr||(Jr={}));var Pv;(function(t){function i(){return{mousedown:[],mouseup:[],keydown:[],keyup:[]}}t.defaultData=i;function e(r){let n=[];return Object.keys(r).forEach(s=>{let a=r[s];a&&n.push(...a)}),n}t.toArray=e})(Pv||(Pv={}));var Tp;(function(e){function i(){return{keyDown:[],keyUp:[],start:[],lookAt:[],follow:[],scroll:[],link:Pv.defaultData()}}e.defaultData=i})(Tp||(Tp={}));var ns=new Ho,go=new A;function Dv(i,e){let t=[],r=n=>{for(let s of n.children)_n(s)&&!s.raycastLock&&s.visible&&(vA(s)&&i.intersectObject(s,!1,t),r(s))};return r(e),t}var Iv={follow:Vl.listener,keyDown:Hl.listener,keyUp:jl.listener,link:Jl.listener,lookAt:ql.listener,mouseDown:Xl.listener,mouseUp:Yl.listener,mouseHover:Zl.listener,scroll:Ql.listener,start:Kl.listener},$T={follow:kl,keyDown:bp,keyUp:wp,link:Dn,lookAt:Wl,mouseDown:Sp,mouseUp:Mp,mouseHover:mo,scroll:Ap,start:Cv},Nv=class{constructor(e,t,r,n){this.isEnable=!1;this.splineEvents={};this._map={};this._prevObjects=[];this._onMouseDown=e=>{ns.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseDownEvent(e)};this._onMouseUp=e=>{ns.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseUpEvent(e)};this._onMouseMove=e=>{ns.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._camera.getWorldDirection(go),go.negate(),this._handleMouseHoverEvent(void 0,e),this._handleLookAtEvent(e),this._handleFollowEvent(e)};this._onWheel=e=>{this._handleWheelEvent(e)};this._onTouchStart=e=>{e.touches.length===1&&(ns.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(go),go.negate(),this._handleMouseDownEvent(e),this._handleMouseHoverEvent(void 0,e),this._handleLookAtEvent(e),this._handleFollowEvent(e))};this._onTouchEnd=e=>{this._handleMouseUpEvent(e),this._handleMouseHoverEvent(!0,e)};this._onTouchMove=e=>{e.touches.length===1&&(ns.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(go),go.negate(),this._handleMouseHoverEvent(void 0,e),this._handleLookAtEvent(e),this._handleFollowEvent(e))};this._onKeyDown=e=>{this._handleKeyDownEvent(e)};this._onKeyUp=e=>{this._handleKeyUpEvent(e)};this._domElement=e,this._scene=t,this._camera=r,this._app=n}activate(){this.isEnable=!0,this._map=Tp.defaultData(),this._scene.traverseEntity(e=>{e.interaction!==void 0&&(e.interaction.start(),Object.keys(e.interaction.events).forEach(t=>{let r=t;this._addDOMCustomEvent(r,e),this._addSPEEvent(r,Iv[r],e)}))}),this._domElement.addEventListener("pointerdown",this._onMouseDown,!1),this._domElement.addEventListener("pointerup",this._onMouseUp,!1),this._domElement.addEventListener("touchstart",this._onTouchStart,!1),this._domElement.addEventListener("touchend",this._onTouchEnd,!1),this._domElement.addEventListener("wheel",this._onWheel,!1),this._domElement.addEventListener("pointermove",this._onMouseMove,!1),this._domElement.addEventListener("touchmove",this._onTouchMove,!1),document.addEventListener("keydown",this._onKeyDown,!1),document.addEventListener("keyup",this._onKeyUp,!1),this._handleStartEvent()}deactivate(){this._scene.traverseEntity(e=>{if(!e.interaction)return;e.interaction.end();let t=e;Object.keys(Iv).forEach(r=>{let n=r;t.removeEventListener(n,Iv[n])})}),this._domElement.removeEventListener("pointerdown",this._onMouseDown),this._domElement.removeEventListener("pointerup",this._onMouseUp),this._domElement.removeEventListener("pointermove",this._onMouseMove),this._domElement.removeEventListener("touchstart",this._onTouchStart),this._domElement.removeEventListener("touchend",this._onTouchEnd),this._domElement.removeEventListener("touchmove",this._onTouchMove),this._domElement.removeEventListener("wheel",this._onWheel),document.removeEventListener("keydown",this._onKeyDown),document.removeEventListener("keyup",this._onKeyUp),this._map={},this.isEnable=!1}reset(){this._scene.traverseEntity(e=>{var t;(t=e.interaction)==null||t.start()}),this._handleStartEvent()}_getPointer(e,t){let r=this._domElement.getBoundingClientRect();return{x:(e-r.left)/r.width*2-1,y:-((t-r.top)/r.height)*2+1}}_handleStartEvent(){var e;(e=this._map.start)==null||e.forEach(t=>Jr.dispatchEvent(Cv,t))}_handleWheelEvent(e){var t;((t=this._map.scroll)==null?void 0:t.length)&&(Ap.domEvent=e,this._map.scroll.forEach(r=>{Jr.dispatchEvent(Ap,r)}))}_handleMouseDownEvent(e){let t=Dv(ns,this._scene);if(t.length){Sp.domEvent=e,Dn.domEvent=e,Dn.subType="mousedown";for(let{object:r}of t)Jr.dispatchEvent(Sp,r),Jr.dispatchEvent(Dn,r)}}_handleMouseUpEvent(e){let t=Dv(ns,this._scene);if(t.length){Mp.domEvent=e,Dn.domEvent=e,Dn.subType="mouseup";for(let{object:r}of t)Jr.dispatchEvent(Mp,r),Jr.dispatchEvent(Dn,r)}}_handleMouseHoverEvent(e=!1,t){let r=[];if(!e){let n=Dv(ns,this._scene);n&&(r=n==null?void 0:n.map(s=>s.object))}this._prevObjects.length&&(mo.domEvent=t,mo.enter=!1,this._prevObjects.forEach(n=>{r.includes(n)||Jr.dispatchEvent(mo,n)})),r.length&&(mo.domEvent=t,mo.enter=!0,r.forEach(n=>Jr.dispatchEvent(mo,n))),this._prevObjects=r}_handleLookAtEvent(e){var t;((t=this._map.lookAt)==null?void 0:t.length)&&(Wl.domEvent=e,Wl.normal=go,Wl.raycaster=ns,this._map.lookAt.forEach(r=>Jr.dispatchEvent(Wl,r)))}_handleFollowEvent(e){this._map.follow&&(kl.domEvent=e,kl.normal=go,kl.raycaster=ns,this._map.follow.forEach(t=>Jr.dispatchEvent(kl,t)))}_handleKeyDownEvent(e){var t,r,n;((t=this._map.keyDown)==null?void 0:t.length)&&(bp.domEvent=e,this._map.keyDown.forEach(s=>Jr.dispatchEvent(bp,s))),((n=(r=this._map.link)==null?void 0:r.keydown)==null?void 0:n.length)&&(Dn.domEvent=e,Dn.subType="keydown",this._map.link.keydown.forEach(s=>Jr.dispatchEvent(Dn,s)))}_handleKeyUpEvent(e){var t,r,n;((t=this._map.keyUp)==null?void 0:t.length)&&(wp.domEvent=e,this._map.keyUp.forEach(s=>{Jr.dispatchEvent(wp,s)})),((n=(r=this._map.link)==null?void 0:r.keyup)==null?void 0:n.length)&&(Dn.domEvent=e,Dn.subType="keyup",this._map.link.keyup.forEach(s=>Jr.dispatchEvent(Dn,s)))}_addSPEEvent(e,t,r){var n,s;if(!!r.interaction)if($T[e].begin=this._dispatchDOMCustomEvent.bind(this),$T[e].change=this._app.requestRender.bind(this),e==="link"){let o=r.interaction.events[e];if(o){let a=!1;Object.keys(o).forEach(l=>{var u,d,h;let c=l;((u=o[c])==null?void 0:u.length)&&((h=(d=this._map[e])==null?void 0:d[c])==null||h.push(r),a=!0)}),a&&r.addEventListener(e,t)}}else((n=r.interaction.events[e])==null?void 0:n.length)&&(r.addEventListener(e,t),(s=this._map[e])==null||s.push(r))}_addDOMCustomEvent(e,t){if(e){let r=new CustomEvent(e,{bubbles:!0});Object.defineProperty(r,"target",{writable:!1,value:{id:t.uuid,name:t.name}}),this.splineEvents[e]?this.splineEvents[e][t.uuid]=r:this.splineEvents[e]={[t.uuid]:r}}}_dispatchDOMCustomEvent(e,t){var n;let r=(n=this.splineEvents[e])==null?void 0:n[t];r&&this._domElement.dispatchEvent(r)}};var Rv=class{constructor(e,t,r,n,s){this._aspect=1;this._renderer=e,this._camera=t,this._frameSize=new B().copy(r),this._editorSize=new B().copy(n),this._aspect=t.aspect,this._fov=s!=null?s:t.fov}set frameSize(e){this._frameSize.copy(e)}updateRenderer(){!this._renderer||this._renderer.setSize(this._frameSize.x,this._frameSize.y)}updateViewportForImageExport(){if(!this._renderer||!this._camera||this._camera.cameraType!=="PerspectiveCamera")return;let e=this._frameSize.x,t=this._frameSize.y,r=this._editorSize.x,n=this._editorSize.y;this._aspect=e/t,this._camera.zoom*=Math.min(r/e,n/t),this._renderer.setViewport(0,0,e,t)}updateViewport(){if(!this._renderer||!this._camera||this._camera.cameraType!=="PerspectiveCamera")return;let e=this._frameSize.x,t=this._frameSize.y,r=this._editorSize.x,n=this._editorSize.y,s=0,o=0,a=e,l=t;e<r&&(s=(r-e)*.5,s=-s,a=r),t<n&&(o=(n-t)*.5,o=-o,l=n),this._aspect=a/l,this._renderer.setViewport(s,o,a,l)}updateCamera(){if(!!this._camera)if(this._camera.cameraType==="PerspectiveCamera"){let e=this._frameSize.y,t=this._editorSize.y,r=this._fov;if(e>t){let n=Az(e,1080,2160,1,15)/100;r*=e/t,r*=1-n}this._camera.aspect=this._aspect,this._camera.fov=r,this._camera.updateProjectionMatrix()}else this._camera.setViewplaneSize(this._frameSize.x,this._frameSize.y)}revert(){let e=window.innerWidth,t=window.innerHeight;this._renderer&&(this._renderer.setViewport(0,0,e,t),this._renderer.setSize(e,t)),this._camera&&(this._camera.aspect=e/t,this._camera.fov=this._fov,this._camera.setViewplaneSize(e,t),this._camera.updateProjectionMatrix())}};function Az(i,e,t,r,n){return(i-e)/(t-e)*(n-r)+r}var Bv=class{constructor(e){this.sharedAssets=new Av(e.shared),this.scene=new lv(e.scene,this.sharedAssets),this.scene.switchActiveCamera(this.scene.activeCamera)}reset(e,t){this.scene.clearScene(this.sharedAssets),this.sharedAssets.reset(e.shared),this.scene.resetAfterClear(e.scene,this.sharedAssets)}dispose(){this.scene.dispose()}};var Ov=class{constructor({x:e=10,y:t=10}){this._startTime=0;let r=document.getElementById("spe-perfs");r?this.element=r:(this.element=document.createElement("div"),document.body.appendChild(this.element),this.element.style.position="absolute",this.element.style.zIndex="10000",this.element.style.fontFamily="monospace",this.element.style.background="black",this.element.style.color="white",this.element.style.padding="10px",this.element.style.opacity="0.5",this.element.style.fontSize="11px",this.element.setAttribute("id","spe-perfs")),this.element.style.left=`${e}px`,this.element.style.top=`${t}px`}dispose(){var e;(e=this.element.parentElement)==null||e.removeChild(this.element)}start(){this._startTime=performance.now()}end(){let t=performance.now()-this._startTime;this.element.innerHTML=t.toFixed(3)+" ms"}};function Tz(i){let e;if(!!i.index)for(let t=0;t<i.index.array.length;t+=3)e=i.index.array[t],i.index.array[t]=i.index.array[t+2],i.index.array[t+2]=e}function Fv(i){return i==="SubdivObject"||i==="NonParametric"?i:"Mesh"}function Ez(i,e){let t={};return i.traverseEntity(r=>{var c;if(r.type!=="Mesh"||!("material"in r)||!r.visible||!(r instanceof ir)||Array.isArray(r.material)||r&&r.interaction&&r.interaction.states.length>0)return;let n=r.parent;for(;n;){if(n instanceof ir&&n.interaction&&n.interaction.states.length>1)return;n=n.parent}let s=r.material.uuid,o=e.shared.materials[s];if(o){if(!Hi.isMergable(o))return}else{let u=(c=e.scene.objects.get(r.uuid))==null?void 0:c.data;if(u&&"material"in u&&typeof u.material!="string"){if(!Hi.isMergable(u.material))return;s=Hi.getHash(u.material)}}t[s]||(t[s]={});let l=t[s][Fv(r.objectType)];if(l){if(l.push(r),r.cloner)for(let u of r.cloner.children)l.push(u)}else if(t[s][Fv(r.objectType)]=[r],r.cloner)for(let u of r.cloner.children)t[s][Fv(r.objectType)].push(u)}),t}function _z(i){let e=0;return Object.values(i).forEach(t=>{Object.values(t).forEach(r=>{let n=r.length;n>e&&(e=n)})}),e}function eE(i,e){let t=Ez(e,i),r=_z(t),n=new Array(r),s=0,o=new Array(r),a=0,l=new Array(r),c=0,u=new Array(r),d=0;for(let h of Object.values(t))for(let f of Object.values(h)){if(a=0,c=0,f.forEach(g=>{g instanceof ir&&(o[a++]=g.geometry.clone(),l[c++]=g)}),c<2)continue;for(let g=0;g<c;g++)l[g].updateWorldMatrix(!0,!1),o[g].applyMatrix4(l[g].matrixWorld),l[g].matrixWorld.determinant()<0&&Tz(o[g]);let p=jM(o.slice(0,a),!1);if(p){let g;switch(f[0].objectType){case"SubdivObject":{console.warn("Turning subdiv object into mesh"),g=new Vt(p,l[0].material);break}default:{g=new Vt(p,l[0].material);break}}g.castShadow=l[0].castShadow,g.receiveShadow=l[0].receiveShadow,e.add(g);let v=y=>{d=0;for(let m of y)m.children&&v(m.children),m instanceof ir&&(Array.isArray(m.material)||t[m.material.uuid]&&t[m.material.uuid][m.objectType]&&t[m.material.uuid][m.objectType].length>1||(u[d++]=m));for(let m=0;m<d;m++)e.attach(u[m])};for(let y=0;y<c;y++){let m=l[y];v(m.children),n[s++]=m}}}for(let h=0;h<s;h++)n[h].removeFromParent()}var ec=".",eh=Symbol("target"),Uv=Symbol("unsubscribe");function th(i){return i instanceof Date||i instanceof Set||i instanceof Map||i instanceof WeakSet||i instanceof WeakMap||ArrayBuffer.isView(i)}function tE(i){return(typeof i=="object"?i===null:typeof i!="function")||i instanceof RegExp}var qn=Array.isArray;function ra(i){return typeof i=="symbol"}var Cz={after:(i,e)=>qn(i)?i.slice(e.length):e===""?i:i.slice(e.length+1),concat:(i,e)=>qn(i)?(i=[...i],e&&i.push(e),i):e&&e.toString!==void 0?(i!==""&&(i+=ec),ra(e)?i+e.toString():i+e):i,initial:i=>{if(qn(i))return i.slice(0,-1);if(i==="")return i;let e=i.lastIndexOf(ec);return e===-1?"":i.slice(0,e)},last:i=>{if(qn(i))return i[i.length-1]||"";if(i==="")return i;let e=i.lastIndexOf(ec);return e===-1?i:i.slice(e+1)},walk:(i,e)=>{if(qn(i))for(let t of i)e(t);else if(i!==""){let t=0,r=i.indexOf(ec);if(r===-1)e(i);else for(;t<i.length;)r===-1&&(r=i.length),e(i.slice(t,r)),t=r+1,r=i.indexOf(ec,t)}},get(i,e){return this.walk(e,t=>{i&&(i=i[t])}),i}},xn=Cz;function Gv(i){return typeof i=="object"&&typeof i.next=="function"}function zv(i,e,t,r,n){let s=i.next;if(e.name==="entries")i.next=function(){let o=s.call(this);return o.done===!1&&(o.value[0]=n(o.value[0],e,o.value[0],r),o.value[1]=n(o.value[1],e,o.value[0],r)),o};else if(e.name==="values"){let o=t[eh].keys();i.next=function(){let a=s.call(this);return a.done===!1&&(a.value=n(a.value,e,o.next().value,r)),a}}else i.next=function(){let o=s.call(this);return o.done===!1&&(o.value=n(o.value,e,o.value,r)),o};return i}function Ep(i,e,t){return i.isUnsubscribed||e.ignoreSymbols&&ra(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var _p=class{constructor(e){this._equals=e,this._proxyCache=new WeakMap,this._pathCache=new WeakMap,this.isUnsubscribed=!1}_getDescriptorCache(){return this._descriptorCache===void 0&&(this._descriptorCache=new WeakMap),this._descriptorCache}_getProperties(e){let t=this._getDescriptorCache(),r=t.get(e);return r===void 0&&(r={},t.set(e,r)),r}_getOwnPropertyDescriptor(e,t){if(this.isUnsubscribed)return Reflect.getOwnPropertyDescriptor(e,t);let r=this._getProperties(e),n=r[t];return n===void 0&&(n=Reflect.getOwnPropertyDescriptor(e,t),r[t]=n),n}getProxy(e,t,r,n){if(this.isUnsubscribed)return e;let s=e[n],o=s||e;this._pathCache.set(o,t);let a=this._proxyCache.get(o);return a===void 0&&(a=s===void 0?new Proxy(e,r):e,this._proxyCache.set(o,a)),a}getPath(e){return this.isUnsubscribed?void 0:this._pathCache.get(e)}isDetached(e,t){return!Object.is(e,xn.get(t,this.getPath(e)))}defineProperty(e,t,r){return Reflect.defineProperty(e,t,r)?(this.isUnsubscribed||(this._getProperties(e)[t]=r),!0):!1}setProperty(e,t,r,n,s){if(!this._equals(s,r)||!(t in e)){let o=this._getOwnPropertyDescriptor(e,t);return o!==void 0&&"set"in o?Reflect.set(e,t,r,n):Reflect.set(e,t,r)}return!0}deleteProperty(e,t,r){if(Reflect.deleteProperty(e,t)){if(!this.isUnsubscribed){let n=this._getDescriptorCache().get(e);n&&(delete n[t],this._pathCache.delete(r))}return!0}return!1}isSameDescriptor(e,t,r){let n=this._getOwnPropertyDescriptor(t,r);return e!==void 0&&n!==void 0&&Object.is(e.value,n.value)&&(e.writable||!1)===(n.writable||!1)&&(e.enumerable||!1)===(n.enumerable||!1)&&(e.configurable||!1)===(n.configurable||!1)&&e.get===n.get&&e.set===n.set}isGetInvariant(e,t){let r=this._getOwnPropertyDescriptor(e,t);return r!==void 0&&r.configurable!==!0&&r.writable!==!0}unsubscribe(){this._descriptorCache=null,this._pathCache=null,this._proxyCache=null,this.isUnsubscribed=!0}};function tc(i){return toString.call(i)==="[object Object]"}function rc(){return!0}function yo(i,e){return i.length!==e.length||i.some((t,r)=>e[r]!==t)}var Cp=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var Lz=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),kv={push:rc,pop:rc,shift:rc,unshift:rc,copyWithin:yo,reverse:yo,sort:yo,splice:yo,flat:yo,fill:yo},rE=new Set([...Cp,...Lz,...Object.keys(kv)]);function nc(i,e){if(i.size!==e.size)return!0;for(let t of i)if(!e.has(t))return!0;return!1}var Vv=["keys","values","entries"],Hv=new Set(["has","toString"]),jv={add:nc,clear:nc,delete:nc,forEach:nc},nE=new Set([...Hv,...Object.keys(jv),...Vv]);function ic(i,e){if(i.size!==e.size)return!0;let t;for(let[r,n]of i)if(t=e.get(r),t!==n||t===void 0&&!e.has(r))return!0;return!1}var Pz=new Set([...Hv,"get"]),Wv={set:ic,clear:ic,delete:ic,forEach:ic},iE=new Set([...Pz,...Object.keys(Wv),...Vv]);var Qr=class{constructor(e,t,r,n){this._path=t,this._isChanged=!1,this._clonedCache=new Set,this._hasOnValidate=n,this._changes=n?[]:null,this.clone=t===void 0?e:this._shallowClone(e)}static isHandledMethod(e){return Cp.has(e)}_shallowClone(e){let t=e;if(tc(e))t=ne({},e);else if(qn(e))t=[...e];else if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set([...e].map(r=>this._shallowClone(r)));else if(e instanceof Map){t=new Map;for(let[r,n]of e.entries())t.set(r,this._shallowClone(n))}return this._clonedCache.add(t),t}preferredThisArg(e,t,r,n){return e?(qn(n)?this._onIsChanged=kv[t]:n instanceof Set?this._onIsChanged=jv[t]:n instanceof Map&&(this._onIsChanged=Wv[t]),n):r}update(e,t,r){let n=xn.after(e,this._path);if(t!=="length"){let s=this.clone;xn.walk(n,o=>{s&&s[o]&&(this._clonedCache.has(s[o])||(s[o]=this._shallowClone(s[o])),s=s[o])}),this._hasOnValidate&&this._changes.push({path:n,property:t,previous:r}),s&&s[t]&&(s[t]=r)}this._isChanged=!0}undo(e){let t;for(let r=this._changes.length-1;r!==-1;r--)t=this._changes[r],xn.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var rh=class extends Qr{static isHandledMethod(e){return rE.has(e)}};var Lp=class extends Qr{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var nh=class extends Qr{static isHandledMethod(e){return nE.has(e)}undo(e){for(let t of this.clone)e.add(t);for(let t of e)this.clone.has(t)||e.delete(t)}};var ih=class extends Qr{static isHandledMethod(e){return iE.has(e)}undo(e){for(let[t,r]of this.clone.entries())e.set(t,r);for(let t of e.keys())this.clone.has(t)||e.delete(t)}};var Pp=class extends Qr{constructor(e,t,r,n){super(void 0,t,r,n);this._arg1=r[0],this._weakValue=e.has(this._arg1)}isChanged(e){return this._weakValue!==e.has(this._arg1)}undo(e){this._weakValue&&!e.has(this._arg1)?e.add(this._arg1):e.delete(this._arg1)}};var Dp=class extends Qr{constructor(e,t,r,n){super(void 0,t,r,n);this._weakKey=r[0],this._weakHas=e.has(this._weakKey),this._weakValue=e.get(this._weakKey)}isChanged(e){return this._weakValue!==e.get(this._weakKey)}undo(e){let t=e.has(this._weakKey);this._weakHas&&!t?e.set(this._weakKey,this._weakValue):!this._weakHas&&t?e.delete(this._weakKey):this._weakValue!==e.get(this._weakKey)&&e.set(this._weakKey,this._weakValue)}};var is=class{constructor(e){this._stack=[],this._hasOnValidate=e}static isHandledType(e){return tc(e)||qn(e)||th(e)}static isHandledMethod(e,t){return tc(e)?Qr.isHandledMethod(t):qn(e)?rh.isHandledMethod(t):e instanceof Set?nh.isHandledMethod(t):e instanceof Map?ih.isHandledMethod(t):th(e)}get isCloning(){return this._stack.length>0}start(e,t,r){let n=Qr;qn(e)?n=rh:e instanceof Date?n=Lp:e instanceof Set?n=nh:e instanceof Map?n=ih:e instanceof WeakSet?n=Pp:e instanceof WeakMap&&(n=Dp),this._stack.push(new n(e,t,r,this._hasOnValidate))}update(e,t,r){this._stack[this._stack.length-1].update(e,t,r)}preferredThisArg(e,t,r){let{name:n}=e,s=is.isHandledMethod(r,n);return this._stack[this._stack.length-1].preferredThisArg(s,n,t,r)}isChanged(e,t,r){return this._stack[this._stack.length-1].isChanged(e,t,r)}undo(e){this._previousClone!==void 0&&this._previousClone.undo(e)}stop(){return this._previousClone=this._stack.pop(),this._previousClone.clone}};var Dz={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},qv=(i,e,t={})=>{t=ne(ne({},Dz),t);let r=Symbol("ProxyTarget"),{equals:n,isShallow:s,ignoreDetached:o,details:a}=t,l=new _p(n),c=typeof t.onValidate=="function",u=new is(c),d=(m,x,w,b,E)=>!c||u.isCloning||t.onValidate(xn.concat(l.getPath(m),x),w,b,E)===!0,h=(m,x,w,b)=>{!Ep(l,t,x)&&!(o&&l.isDetached(m,i))&&f(l.getPath(m),x,w,b)},f=(m,x,w,b,E)=>{u.isCloning?u.update(m,x,b):e(xn.concat(m,x),w,b,E)},p=m=>m&&(m[r]||m),g=(m,x,w,b)=>tE(m)||w==="constructor"||s&&!is.isHandledMethod(x,w)||Ep(l,t,w)||l.isGetInvariant(x,w)||o&&l.isDetached(x,i)?m:(b===void 0&&(b=l.getPath(x)),l.getProxy(m,xn.concat(b,w),v,r)),v={get(m,x,w){if(ra(x)){if(x===r||x===eh)return m;if(x===Uv&&!l.isUnsubscribed&&l.getPath(m).length===0)return l.unsubscribe(),m}let b=th(m)?Reflect.get(m,x):Reflect.get(m,x,w);return g(b,m,x)},set(m,x,w,b){w=p(w);let E=m[r]||m,T=E[x];if(n(T,w)&&x in m)return!0;let S=d(m,x,w,T);return S&&l.setProperty(E,x,w,b,T)?(h(m,x,m[x],T),!0):!S},defineProperty(m,x,w){if(!l.isSameDescriptor(w,m,x)){let b=m[x];d(m,x,w.value,b)&&l.defineProperty(m,x,w,b)&&h(m,x,w.value,b)}return!0},deleteProperty(m,x){if(!Reflect.has(m,x))return!0;let w=Reflect.get(m,x),b=d(m,x,void 0,w);return b&&l.deleteProperty(m,x,w)?(h(m,x,void 0,w),!0):!b},apply(m,x,w){let b=x[r]||x;if(l.isUnsubscribed)return Reflect.apply(m,b,w);if((a===!1||a!==!0&&!a.includes(m.name))&&is.isHandledType(b)){let E=xn.initial(l.getPath(m)),T=is.isHandledMethod(b,m.name);u.start(b,E,w);let S=Reflect.apply(m,u.preferredThisArg(m,x,b),T?w.map(M=>p(M)):w),N=u.isChanged(b,n),C=u.stop();if(is.isHandledType(S)&&T&&(x instanceof Map&&m.name==="get"&&(E=xn.concat(E,w[0])),S=l.getProxy(S,E,v)),N){let M={name:m.name,args:w,result:S},_=u.isCloning?xn.initial(E):E,D=u.isCloning?xn.last(E):"";d(xn.get(i,_),D,b,C,M)?f(_,D,b,C,M):u.undo(b)}return(x instanceof Map||x instanceof Set)&&Gv(S)?zv(S,m,x,E,g):S}return Reflect.apply(m,x,w)}},y=l.getProxy(i,t.pathAsArray?[]:"",v);return e=e.bind(y),c&&(t.onValidate=t.onValidate.bind(y)),y};qv.target=i=>i&&i[eh]||i;qv.unsubscribe=i=>i[Uv]||i;var Xv=qv;var vo;(function(t){t[t.FULLSCREEN=1]="FULLSCREEN",t[t.CUSTOM=2]="CUSTOM"})(vo||(vo={}));var Iz=class{constructor(e,{autoRender:t=!1}={}){this._viewportMode=1;this._viewportWidth=window.innerWidth;this._viewportHeight=window.innerHeight;this._proxyObjectCache=new Map;this._skipRender=!0;this.autoRender=!1;this.requestRender=()=>{this._skipRender=!1};this.render=()=>{var e,t,r;!this._renderer||(this._rafId=requestAnimationFrame(this.render),(e=this._perfs)==null||e.start(),!(!this.autoRender&&this._skipRender)&&(this._controls&&(this._controls.enableDamping||this._controls.autoRotate)?this._skipRender=!this._controls.update():this._skipRender=!0,this._playmode&&!this._playmode.isEnable&&this._playmode.activate(),this._scene&&this._camera&&(this._renderer.autoClear=!1,this._transmissionRenderTarget&&(this._renderer.setRenderTarget(this._transmissionRenderTarget),this._renderer.clear(),this._camera.layers.enable(0),this._camera.layers.disable(3),this._renderer.render(this._scene,this._camera),this._renderer.setRenderTarget(null),this._camera.layers.enable(3)),((t=this._scene.postprocessing)==null?void 0:t.enabled)?(this._renderer.autoClear=!1,this._scene.postprocessing.render()):(this._renderer.autoClear=!0,this._renderer.render(this._scene,this._camera))),(r=this._perfs)==null||r.end()))};this.resize=()=>{var e,t,r,n;!this._renderer||(this._viewportMode===1&&(this._viewportWidth=window.innerWidth,this._viewportHeight=window.innerHeight,this._frameView&&(this._frameView.frameSize=new B(this._viewportWidth,this._viewportHeight))),(e=this._frameView)==null||e.updateRenderer(),((t=this._scene)==null?void 0:t.postprocessing)&&this._scene.postprocessing.resize(this._viewportWidth,this._viewportHeight),this._viewportMode!==1&&((r=this._frameView)==null||r.updateViewport()),this._camera&&((n=this._frameView)==null||n.updateCamera(),this._camera.cameraType==="PerspectiveCamera"&&this._viewportMode===1&&(this._camera.aspect=this._viewportWidth/this._viewportHeight),this._camera.updateProjectionMatrix()),this.requestRender())};this.canvas=e,this.autoRender=t,window.addEventListener("resize",Kc(this.resize,200)),window.location.search.includes("perfs")&&(this._perfs=new Ov({x:10,y:10}))}async load(e){let r=await(await fetch(e)).arrayBuffer();this.start(r)}start(e){var o;let t=cf.deserialize(new Uint8Array(e));this._publishData=t.scene.publish;let r=new Bv(t);if(window.location.search.includes("merge-geometries")){let a=performance.now();eE(t,r.scene);let l=performance.now();console.log("Merged geometries in ",l-a," ms")}this._scene=r.scene,this._sharedAssetsManager=r.sharedAssets,this._sharedAssetsManager.onImageLoad=()=>{this.requestRender()},ZT(t.scene,this._scene,this._sharedAssetsManager),this._camera=this._scene.activeCamera;let n=Object.values(t.frames)[0];n&&(n.preset==="fullscreen"?(this._viewportMode=1,this._viewportWidth=window.innerWidth,this._viewportHeight=window.innerHeight):(this._viewportMode=2,this._viewportWidth=n.size[0],this._viewportHeight=n.size[1])),((o=this._scene.postprocessing)==null?void 0:o.enabled)?(this._renderer=new Dt({canvas:this.canvas,antialias:!1,alpha:!0,stencil:!1,depth:!1,powerPreference:"high-performance"}),this._scene.postprocessing.init({renderer:this._renderer,camera:this._camera,scene:this._scene}),this._scene.postprocessing.addEventListener("smaaloaded",this.requestRender)):this._renderer=new Dt({canvas:this.canvas,antialias:!0,alpha:!0,stencil:!0,depth:!0,powerPreference:"high-performance"}),this._scene.needsTransmission(void 0)&&(this._transmissionRenderTarget=new gt(2048,2048,{generateMipmaps:!0,minFilter:Ci,magFilter:st,wrapS:Mr,wrapT:Mr}),this._transmissionRenderTarget.depthTexture=new Ii(2048,2048),this._scene.needsTransmission(this._transmissionRenderTarget)),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(this._viewportWidth,this._viewportHeight),this._scene.postprocessing&&this._scene.postprocessing.resize(this._viewportWidth,this._viewportHeight),this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=Bp,this._renderer.setClearColor(this._scene.bgColor,this._scene.alpha),this._frameView=new Rv(this._renderer,this._camera,new B(this._viewportWidth,this._viewportHeight),new B(window.innerWidth,window.innerHeight)),!0&&(this._controls=new Jg(this._camera,this._renderer.domElement),this._publishData&&(this._controls.fromJSON(this._publishData.orbitControls),this._controls.useKeyEvents=!1),this._controls.addEventListener("change",this.requestRender),this._controls.addEventListener("start",this.requestRender)),this._playmode=new Nv(this._renderer.domElement,this._scene,this._camera,this),this.resize(),this.render()}findObjectById(e){var r;let t=(r=this._scene)==null?void 0:r.getObjectByProperty("uuid",e);return this._createProxyObject(t)}findObjectByName(e){var r;let t=(r=this._scene)==null?void 0:r.getObjectByName(e);return this._createProxyObject(t)}getSplineEvents(){var e;return(e=this._playmode)==null?void 0:e.splineEvents}emitEvent(e,t){let r=this.findObjectById(t);r==null||r.emitEvent(e)}emitEventReverse(e,t){let r=this.findObjectById(t);r==null||r.emitEventReverse(e)}addEventListener(e,t){var r;(r=this._renderer)==null||r.domElement.addEventListener(e,t)}removeEventListener(e,t){var r;(r=this._renderer)==null||r.domElement.removeEventListener(e,t)}setZoom(e){var t;(t=this._controls)==null||t.zoomOut(e)}dispose(){var e,t,r,n,s,o,a;(e=this._playmode)==null||e.deactivate(),(t=this._scene)==null||t.dispose(),this._rafId&&cancelAnimationFrame(this._rafId),this._proxyObjectCache.forEach(l=>{Xv.unsubscribe(l)}),(r=this._renderer)==null||r.dispose(),(n=this._transmissionRenderTarget)==null||n.dispose(),(o=(s=this._transmissionRenderTarget)==null?void 0:s.depthTexture)==null||o.dispose(),(a=this._sharedAssetsManager)==null||a.dispose()}_createProxyObject(e){if(e==null)return;if(this._proxyObjectCache.has(e.uuid))return this._proxyObjectCache.get(e.uuid);let t={name:e.name,uuid:e.uuid,visible:e.visible,intensity:e.intensity,position:e.position,rotation:e.rotation,scale:e.scale,emitEvent(n){var s;(s=e.interaction)==null||s.emitEvent(n)},emitEventReverse(n){var s;(s=e.interaction)==null||s.emitEventReverse(n)}},r=Xv(t,(n,s)=>{var a;typeof e[n]!="object"&&((a=Object.getOwnPropertyDescriptor(e,n))==null?void 0:a.writable)&&(e[n]=s),this.requestRender(),e.updateMatrix()});return this._proxyObjectCache.set(e.uuid,r),r}};sn.FONTS_PATH="_assets/_fonts/";export{Iz as Application};
4239
+ outputColor=vec4(color,inputColor.a);}`,fp={DEFAULT:0,ESKIL:1},mT=class extends es{constructor({blendFunction:i=xt.NORMAL,technique:e=fp.DEFAULT,eskil:t=!1,offset:r=.5,darkness:n=.5}={}){super("VignetteEffect",RG,{blendFunction:i,defines:new Map([["VIGNETTE_TECHNIQUE",e.toFixed(0)]]),uniforms:new Map([["offset",new Ee(r)],["darkness",new Ee(n)]])})}get technique(){return Number(this.defines.get("VIGNETTE_TECHNIQUE"))}set technique(i){this.technique!==i&&(this.defines.set("VIGNETTE_TECHNIQUE",i.toFixed(0)),this.setChanged())}get eskil(){return this.technique===fp.ESKIL}set eskil(i){this.technique=i?fp.ESKIL:fp.DEFAULT}getTechnique(){return this.technique}setTechnique(i){this.technique=i}get offset(){return this.uniforms.get("offset").value}set offset(i){this.uniforms.get("offset").value=i}getOffset(){return this.offset}setOffset(i){this.offset=i}get darkness(){return this.uniforms.get("darkness").value}set darkness(i){this.uniforms.get("darkness").value=i}getDarkness(){return this.darkness}setDarkness(i){this.darkness=i}},doe=[new Float32Array(3),new Float32Array(3)],foe=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],poe=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];var moe=[new Float32Array(2),new Float32Array(2)];var goe=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),yoe=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],voe=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],xoe=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];var boe=new Map([[un(0,0,0,0),new Float32Array([0,0,0,0])],[un(0,0,0,1),new Float32Array([0,0,0,1])],[un(0,0,1,0),new Float32Array([0,0,1,0])],[un(0,0,1,1),new Float32Array([0,0,1,1])],[un(0,1,0,0),new Float32Array([0,1,0,0])],[un(0,1,0,1),new Float32Array([0,1,0,1])],[un(0,1,1,0),new Float32Array([0,1,1,0])],[un(0,1,1,1),new Float32Array([0,1,1,1])],[un(1,0,0,0),new Float32Array([1,0,0,0])],[un(1,0,0,1),new Float32Array([1,0,0,1])],[un(1,0,1,0),new Float32Array([1,0,1,0])],[un(1,0,1,1),new Float32Array([1,0,1,1])],[un(1,1,0,0),new Float32Array([1,1,0,0])],[un(1,1,0,1),new Float32Array([1,1,0,1])],[un(1,1,1,0),new Float32Array([1,1,1,0])],[un(1,1,1,1),new Float32Array([1,1,1,1])]]);function av(i,e,t){return i+(e-i)*t}function un(i,e,t,r){let n=av(i,e,1-.25),s=av(t,r,1-.25);return av(n,s,1-.125)}var _r=class{constructor(e,t){this.enabled=!1;this.effect=new e(t),Object.defineProperty(this,"opacity",{enumerable:!0,set(r){this.effect.blendMode.opacity.value=r},get(){return this.effect.blendMode.opacity.value}}),Object.defineProperty(this,"blendFunction",{enumerable:!0,set(r){this.effect.blendMode.setBlendFunction(Number(r))},get(){return this.effect.blendMode.blendFunction}}),this.blendFunction=xt.NORMAL}toJSON(){let e=["constructor","effect","subscriptions"],t=ne({},this),r=Object.getPrototypeOf(this),n=Object.getOwnPropertyNames(r);for(let s of n){let o=Object.getOwnPropertyDescriptor(r,s);o&&typeof o.get=="function"&&(t[s]=this[s])}return e.forEach(s=>delete t[s]),t}};var ku=class extends _r{constructor(){super(iT);this.blendFunction=xt.SCREEN}set intensity(e){this.effect.intensity=e}get intensity(){return this.effect.intensity}set luminanceThreshold(e){this.effect.luminanceMaterial.threshold=e}get luminanceThreshold(){return this.effect.luminanceMaterial.threshold}set luminanceSmoothing(e){this.effect.luminanceMaterial.smoothing=e}get luminanceSmoothing(){return this.effect.luminanceMaterial.smoothing}set blurScale(e){this.effect.blurPass.scale=e}get blurScale(){return this.effect.blurPass.scale}set kernelSize(e){this.effect.blurPass.kernelSize=e}get kernelSize(){return this.effect.blurPass.kernelSize}};var Vu=class extends _r{constructor(){super(sT)}set contrast(e){this.effect.uniforms.get("contrast").value=e}get contrast(){return this.effect.uniforms.get("contrast").value}set brightness(e){this.effect.uniforms.get("brightness").value=e}get brightness(){return this.effect.uniforms.get("brightness").value}};var Hu=class extends _r{constructor(){super(aT);this.effect.offset=new B(.01,.01)}set offset(e){this.effect.offset.set(e[0]/1e3,e[1]/1e3)}get offset(){return[this.effect.offset.x*1e3,this.effect.offset.y*1e3]}};var ju=class extends _r{constructor(){super(oT)}};var Wu=class extends _r{constructor(){super(cT);this._hue=0}set hue(e){this._hue=e,this.effect.setHue(e)}get hue(){return this._hue}set saturation(e){this.effect.uniforms.get("saturation").value=e}get saturation(){return this.effect.uniforms.get("saturation").value}};var qu=class extends _r{constructor(){super(uT);this.blendFunction=xt.OVERLAY}};var Xu=class extends _r{constructor(){super(mT)}get eskil(){return this.effect.eskil}set eskil(e){this.effect.eskil=e}get darkness(){return this.effect.uniforms.get("darkness").value}set darkness(e){this.effect.uniforms.get("darkness").value=e}get offset(){return this.effect.uniforms.get("offset").value}set offset(e){this.effect.uniforms.get("offset").value=e}};var Yu=class extends _r{constructor(e){super(lT,e)}set focalLength(e){this.effect.circleOfConfusionMaterial.uniforms.focalLength.value=e}get focalLength(){return this.effect.circleOfConfusionMaterial.uniforms.focalLength.value}set focusDistance(e){this.effect.circleOfConfusionMaterial.uniforms.focusDistance.value=e}get focusDistance(){return this.effect.circleOfConfusionMaterial.uniforms.focusDistance.value}get bokehScale(){return this.effect.bokehScale}set bokehScale(e){this.effect.bokehScale=e}};var Ku=class extends _r{constructor(){super(hT)}get granularity(){return this.effect.getGranularity()}set granularity(e){this.effect.setGranularity(e)}};function gT(i,e){return e&&e.enabled&&i.push(e.effect),i}var pp=class extends tr{constructor(){super();this._scene=new Vr;this._camera=new si;this.effects=new Map;this.loadingManager=new Xa;this.renderPass=new iv;this._renderToScreen=!0;this._hasSmaa=!1;this.clock=new lg,this.enabled=!1,this.debug=!1,this.effects.set("bloom",new ku),this.effects.set("chromaticAberration",new Hu),this.effects.set("vignette",new Xu),this.effects.set("noise",new qu),this.effects.set("colorAverage",new ju),this.effects.set("hueSaturation",new Wu),this.effects.set("brightnessContrast",new Vu),this.effects.set("depthOfField",new Yu),this.effects.set("pixelation",new Ku)}get scene(){return this._scene}set scene(e){this._scene=e}get camera(){return this._camera}set camera(e){this._camera=e}_initSmaa(){if(!this.effectComposer)return;let e=this.effectComposer.passes.length,t=new pT({preset:ta.ULTRA,edgeDetectionMode:hp.COLOR}),r=()=>{t.removeEventListener("load",r),this.dispatchEvent({type:"smaaloaded"})};t.addEventListener("load",r),t.edgeDetectionMaterial.setPredicationMode(Zy.DEPTH),t.edgeDetectionMaterial.setEdgeDetectionThreshold(.05),t.edgeDetectionMaterial.setPredicationThreshold(.002),t.edgeDetectionMaterial.setPredicationScale(1),this.effectComposer.addPass(new dp(this.camera,t),e),this._hasSmaa=!0}_initPasses(){if(!this.effectComposer||!this.renderer)return;let e;if(this.effectComposer.removeAllPasses(),this._hasSmaa=!1,this.renderPass=new iv(this.scene,this.camera),this.enabled){this.effectComposer.addPass(this.renderPass),this._initSmaa();let t=[this.effects.get("chromaticAberration"),this.effects.get("bloom"),this.effects.get("colorAverage"),this.effects.get("hueSaturation"),this.effects.get("brightnessContrast"),this.effects.get("vignette"),this.effects.get("noise")].reduce(gT,[]),r=[this.effects.get("pixelation")].reduce(gT,[]);r.length>0&&this.effectComposer.addPass(new dp(this.camera,...r)),this.effectComposer.addPass(new dp(this.camera,...t))}else this.effectComposer.addPass(this.renderPass);if(e)return e}reinit(){if(!this.renderer)return Promise.all([]);this.effectComposer=new nT(this.renderer),this._initPasses()}init({renderer:e,camera:t,scene:r}){this.renderer=e,this.scene=r,this.camera=t,this._initCopyPass(),this.reinit()}_initCopyPass(){if(this._savePass)return;let e=new B;this.renderer.getDrawingBufferSize(e),this._rt=new gt(e.x,e.y,{depthBuffer:!1,stencilBuffer:!1,wrapS:Ps,wrapT:Ps}),this._rt.samples=this.renderer.capabilities.isWebGL2?4:0,this._savePass=new ev(this._rt,!1),this._savePass.renderToScreen=!1}get renderToScreen(){return this._renderToScreen}set renderToScreen(e){var r,n;let t=this.effectComposer;!t||(e===!0?(((r=this.renderer)==null?void 0:r.capabilities.isWebGL2)&&(t.multisampling=0),t.removePass(this._savePass),t.passes[t.passes.length-1].renderToScreen=!0,t.autoRenderToScreen=!0):(((n=this.renderer)==null?void 0:n.capabilities.isWebGL2)&&!this._hasSmaa&&(t.multisampling=4),t.autoRenderToScreen=!1,t.passes[t.passes.length-1].renderToScreen=!1,this._savePass.renderToScreen=!1,this.enabled||(this._savePass.needsDepthTexture=!0),t.addPass(this._savePass)),this._renderToScreen=e)}get texture(){return this._rt&&this._rt.texture}get renderTarget(){return this._rt}fromJSON(e){e&&(Object.keys(e).forEach(t=>{let r=e[t],n=this.effects.get(t);Object.keys(r).forEach(s=>{n[s]=r[s]})}),this.enabled=e.enabled)}toJSON(){let e={};return this.effects.forEach((t,r)=>{e[r]=t.toJSON()},e),ne({enabled:this.enabled},e)}render(){var e;(e=this.effectComposer)==null||e.render(this.clock.getDelta())}setScissor(e,t,r,n){if(!this.effectComposer||!this.renderer)return;e instanceof tt?(this.effectComposer.inputBuffer.scissor.set(e.x,e.y,e.z,e.w),this.effectComposer.outputBuffer.scissor.set(e.x,e.y,e.z,e.w)):(this.effectComposer.inputBuffer.scissor.set(e,t,r,n),this.effectComposer.outputBuffer.scissor.set(e,t,r,n));let s=this.renderer.getPixelRatio();this.effectComposer.inputBuffer.scissor.multiplyScalar(s),this.effectComposer.outputBuffer.scissor.multiplyScalar(s),this.renderer.setScissor(e,t,r,n)}setScissorTest(e){!this.effectComposer||!this.renderer||(this.effectComposer.inputBuffer.scissorTest=e,this.effectComposer.outputBuffer.scissorTest=e,this.renderer.setScissorTest(e))}setViewport(e,t,r,n){!this.effectComposer||(e instanceof tt?(this.effectComposer.inputBuffer.viewport.copy(e),this.effectComposer.outputBuffer.viewport.copy(e)):(this.effectComposer.inputBuffer.viewport.set(e,t,r,n),this.effectComposer.outputBuffer.viewport.set(e,t,r,n)))}resize(e,t){var r,n;if((r=this.effectComposer)==null||r.setSize(e,t),this._rt){let s=((n=this.renderer)==null?void 0:n.getPixelRatio())||window.devicePixelRatio;this._rt.setSize(e*s,t*s)}}dispose(){var e;this._listeners=void 0,(e=this.effectComposer)==null||e.dispose()}};var lv=class extends cp{constructor(e,t){super(e,t);this.postprocessing=new pp;this.initPostprocessing(e.postprocessing)}resetAfterClear(e,t){super.resetAfterClear(e,t),this.initPostprocessing(e.postprocessing)}initPostprocessing(e){let n=e,{enabled:t}=n,r=Qv(n,["enabled"]);for(let s of Object.entries(r)){let o=s[1],a=this.postprocessing.effects.get(s[0]);if(a){a.enabled=o.enabled;for(let[l,c]of Object.entries(o))a[l]=c}}this.postprocessing.enabled=t,this.postprocessing.reinit()}dispose(){super.dispose(),this.postprocessing.dispose()}switchActiveCamera(e){super.switchActiveCamera(e),this.postprocessing&&(this.postprocessing.camera=e)}};"use strict";var yT={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0,rewind:!0},cv={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},BG=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],mp={CSS:{},springs:{}};function ts(i,e,t){return Math.min(Math.max(i,e),t)}function Ju(i,e){return i.indexOf(e)>-1}function uv(i,e){return i.apply(null,e)}var Ke={arr:function(i){return Array.isArray(i)},obj:function(i){return Ju(Object.prototype.toString.call(i),"Object")},pth:function(i){return Ke.obj(i)&&i.hasOwnProperty("totalLength")},svg:function(i){return i instanceof SVGElement},inp:function(i){return i instanceof HTMLInputElement},dom:function(i){return!("isNode"in i)&&(i.nodeType||Ke.svg(i))},str:function(i){return typeof i=="string"},fnc:function(i){return typeof i=="function"},und:function(i){return typeof i=="undefined"},hex:function(i){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(i)},rgb:function(i){return/^rgb/.test(i)},hsl:function(i){return/^hsl/.test(i)},col:function(i){return Ke.hex(i)||Ke.rgb(i)||Ke.hsl(i)},key:function(i){return!yT.hasOwnProperty(i)&&!cv.hasOwnProperty(i)&&i!=="targets"&&i!=="keyframes"}};function vT(i){var e=/\(([^)]+)\)/.exec(i);return e?e[1].split(",").map(function(t){return parseFloat(t)}):[]}function xT(i,e){var t=vT(i),r=ts(Ke.und(t[0])?1:t[0],.1,100),n=ts(Ke.und(t[1])?100:t[1],.1,100),s=ts(Ke.und(t[2])?10:t[2],.1,100),o=ts(Ke.und(t[3])?0:t[3],.1,100),a=Math.sqrt(n/r),l=s/(2*Math.sqrt(n*r)),c=l<1?a*Math.sqrt(1-l*l):0,u=1,d=l<1?(l*a+-o)/c:-o+a;function h(p){var g=e?e*p/1e3:p;return l<1?g=Math.exp(-g*l*a)*(u*Math.cos(c*g)+d*Math.sin(c*g)):g=(u+d*g)*Math.exp(-g*a),p===0||p===1?p:1-g}function f(){var p=mp.springs[i];if(p)return p;for(var g=1/6,v=0,y=0;;)if(v+=g,h(v)===1){if(y++,y>=16)break}else y=0;var m=v*g*1e3;return mp.springs[i]=m,m}return e?h:f}function OG(i){return i===void 0&&(i=10),function(e){return Math.ceil(ts(e,1e-6,1)*i)*(1/i)}}var FG=function(){var i=11,e=1/(i-1);function t(u,d){return 1-3*d+3*u}function r(u,d){return 3*d-6*u}function n(u){return 3*u}function s(u,d,h){return((t(d,h)*u+r(d,h))*u+n(d))*u}function o(u,d,h){return 3*t(d,h)*u*u+2*r(d,h)*u+n(d)}function a(u,d,h,f,p){var g,v,y=0;do v=d+(h-d)/2,g=s(v,f,p)-u,g>0?h=v:d=v;while(Math.abs(g)>1e-7&&++y<10);return v}function l(u,d,h,f){for(var p=0;p<4;++p){var g=o(d,h,f);if(g===0)return d;var v=s(d,h,f)-u;d-=v/g}return d}function c(u,d,h,f){if(!(0<=u&&u<=1&&0<=h&&h<=1))return;var p=new Float32Array(i);if(u!==d||h!==f)for(var g=0;g<i;++g)p[g]=s(g*e,u,h);function v(y){for(var m=0,x=1,w=i-1;x!==w&&p[x]<=y;++x)m+=e;--x;var b=(y-p[x])/(p[x+1]-p[x]),E=m+b*e,T=o(E,u,h);return T>=.001?l(y,E,u,h):T===0?E:a(y,m,m+e,u,h)}return function(y){return u===d&&h===f||y===0||y===1?y:s(v(y),d,f)}}return c}(),bT=function(){var i={linear:function(){return function(r){return r}}},e={Sine:function(){return function(r){return 1-Math.cos(r*Math.PI/2)}},Circ:function(){return function(r){return 1-Math.sqrt(1-r*r)}},Back:function(){return function(r){return r*r*(3*r-2)}},Bounce:function(){return function(r){for(var n,s=4;r<((n=Math.pow(2,--s))-1)/11;);return 1/Math.pow(4,3-s)-7.5625*Math.pow((n*3-2)/22-r,2)}},Elastic:function(r,n){r===void 0&&(r=1),n===void 0&&(n=.5);var s=ts(r,1,10),o=ts(n,.1,2);return function(a){return a===0||a===1?a:-s*Math.pow(2,10*(a-1))*Math.sin((a-1-o/(Math.PI*2)*Math.asin(1/s))*(Math.PI*2)/o)}}},t=["Quad","Cubic","Quart","Quint","Expo"];return t.forEach(function(r,n){e[r]=function(){return function(s){return Math.pow(s,n+2)}}}),Object.keys(e).forEach(function(r){var n=e[r];i["easeIn"+r]=n,i["easeOut"+r]=function(s,o){return function(a){return 1-n(s,o)(1-a)}},i["easeInOut"+r]=function(s,o){return function(a){return a<.5?n(s,o)(a*2)/2:1-n(s,o)(a*-2+2)/2}}}),i}();function hv(i,e){if(Ke.fnc(i))return i;var t=i.split("(")[0],r=bT[t],n=vT(i);switch(t){case"spring":return xT(i,e);case"cubicBezier":return uv(FG,n);case"steps":return uv(OG,n);default:return uv(r,n)}}function wT(i){try{var e=document.querySelectorAll(i);return e}catch(t){return}}function gp(i,e){for(var t=i.length,r=arguments.length>=2?arguments[1]:void 0,n=[],s=0;s<t;s++)if(s in i){var o=i[s];e.call(r,o,s,i)&&n.push(o)}return n}function yp(i){return i.reduce(function(e,t){return e.concat(Ke.arr(t)?yp(t):t)},[])}function ST(i){return Ke.arr(i)?i:(Ke.str(i)&&(i=wT(i)||i),i instanceof NodeList||i instanceof HTMLCollection?[].slice.call(i):[i])}function dv(i,e){return i.some(function(t){return t===e})}function fv(i){var e={};for(var t in i)e[t]=i[t];return e}function pv(i,e){var t=fv(i);for(var r in i)t[r]=e.hasOwnProperty(r)?e[r]:i[r];return t}function vp(i,e){var t=fv(i);for(var r in e)t[r]=Ke.und(i[r])?e[r]:i[r];return t}function UG(i){var e=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(i);return e?"rgba("+e[1]+",1)":i}function GG(i){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,t=i.replace(e,function(a,l,c,u){return l+l+c+c+u+u}),r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t),n=parseInt(r[1],16),s=parseInt(r[2],16),o=parseInt(r[3],16);return"rgba("+n+","+s+","+o+",1)"}function zG(i){var e=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(i)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(i),t=parseInt(e[1],10)/360,r=parseInt(e[2],10)/100,n=parseInt(e[3],10)/100,s=e[4]||1;function o(h,f,p){return p<0&&(p+=1),p>1&&(p-=1),p<1/6?h+(f-h)*6*p:p<1/2?f:p<2/3?h+(f-h)*(2/3-p)*6:h}var a,l,c;if(r==0)a=l=c=n;else{var u=n<.5?n*(1+r):n+r-n*r,d=2*n-u;a=o(d,u,t+1/3),l=o(d,u,t),c=o(d,u,t-1/3)}return"rgba("+a*255+","+l*255+","+c*255+","+s+")"}function kG(i){if(Ke.rgb(i))return UG(i);if(Ke.hex(i))return GG(i);if(Ke.hsl(i))return zG(i)}function As(i){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(i);if(e)return e[1]}function VG(i){if(Ju(i,"translate")||i==="perspective")return"px";if(Ju(i,"rotate")||Ju(i,"skew"))return"deg"}function mv(i,e){return Ke.fnc(i)?i(e.target,e.id,e.total):i}function rs(i,e){return i.getAttribute(e)}function gv(i,e,t){var r=As(e);if(dv([t,"deg","rad","turn"],r))return e;var n=mp.CSS[e+t];if(!Ke.und(n))return n;var s=100,o=document.createElement(i.tagName),a=i.parentNode&&i.parentNode!==document?i.parentNode:document.body;a.appendChild(o),o.style.position="absolute",o.style.width=s+t;var l=s/o.offsetWidth;a.removeChild(o);var c=l*parseFloat(e);return mp.CSS[e+t]=c,c}function MT(i,e,t){if(e in i.style){var r=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),n=i.style[e]||getComputedStyle(i).getPropertyValue(r)||"0";return t?gv(i,n,t):n}}function yv(i,e){if(Ke.dom(i)&&!Ke.inp(i)&&(rs(i,e)||Ke.svg(i)&&i[e]))return"attribute";if(Ke.dom(i)&&dv(BG,e))return"transform";if(Ke.dom(i)&&e!=="transform"&&MT(i,e))return"css";if(i[e]!=null)return"object"}function AT(i){if(!!Ke.dom(i)){for(var e=i.style.transform||"",t=/(\w+)\(([^)]*)\)/g,r=new Map,n;n=t.exec(e);)r.set(n[1],n[2]);return r}}function HG(i,e,t,r){var n=Ju(e,"scale")?1:0+VG(e),s=AT(i).get(e)||n;return t&&(t.transforms.list.set(e,s),t.transforms.last=e),r?gv(i,s,r):s}function vv(i,e,t,r){switch(yv(i,e)){case"transform":return HG(i,e,r,t);case"css":return MT(i,e,t);case"attribute":return rs(i,e);default:return i[e]||0}}function xv(i,e){var t=/^(\*=|\+=|-=)/.exec(i);if(!t)return i;var r=As(i)||0,n=parseFloat(e),s=parseFloat(i.replace(t[0],""));switch(t[0][0]){case"+":return n+s+r;case"-":return n-s+r;case"*":return n*s+r}}function TT(i,e){if(Ke.col(i))return kG(i);if(/\s/g.test(i))return i;var t=As(i),r=t?i.substr(0,i.length-t.length):i;return e?r+e:r}function bv(i,e){return Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2))}function jG(i){return Math.PI*2*rs(i,"r")}function WG(i){return rs(i,"width")*2+rs(i,"height")*2}function qG(i){return bv({x:rs(i,"x1"),y:rs(i,"y1")},{x:rs(i,"x2"),y:rs(i,"y2")})}function ET(i){for(var e=i.points,t=0,r,n=0;n<e.numberOfItems;n++){var s=e.getItem(n);n>0&&(t+=bv(r,s)),r=s}return t}function XG(i){var e=i.points;return ET(i)+bv(e.getItem(e.numberOfItems-1),e.getItem(0))}function _T(i){if(i.getTotalLength)return i.getTotalLength();switch(i.tagName.toLowerCase()){case"circle":return jG(i);case"rect":return WG(i);case"line":return qG(i);case"polyline":return ET(i);case"polygon":return XG(i)}}function YG(i){var e=_T(i);return i.setAttribute("stroke-dasharray",e),e}function KG(i){for(var e=i.parentNode;Ke.svg(e)&&Ke.svg(e.parentNode);)e=e.parentNode;return e}function CT(i,e){var t=e||{},r=t.el||KG(i),n=r.getBoundingClientRect(),s=rs(r,"viewBox"),o=n.width,a=n.height,l=t.viewBox||(s?s.split(" "):[0,0,o,a]);return{el:r,viewBox:l,x:l[0]/1,y:l[1]/1,w:o/l[2],h:a/l[3]}}function JG(i,e){var t=Ke.str(i)?wT(i)[0]:i,r=e||100;return function(n){return{property:n,el:t,svg:CT(t),totalLength:_T(t)*(r/100)}}}function QG(i,e){function t(a){a===void 0&&(a=0);var l=e+a>=1?e+a:0;return i.el.getPointAtLength(l)}var r=CT(i.el,i.svg),n=t(),s=t(-1),o=t(1);switch(i.property){case"x":return(n.x-r.x)*r.w;case"y":return(n.y-r.y)*r.h;case"angle":return Math.atan2(o.y-s.y,o.x-s.x)*180/Math.PI}}function LT(i,e){var t=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,r=TT(Ke.pth(i)?i.totalLength:i,e)+"";return{original:r,numbers:r.match(t)?r.match(t).map(Number):[0],strings:Ke.str(i)||e?r.split(t):[]}}function PT(i){var e=i?yp(Ke.arr(i)?i.map(ST):ST(i)):[];return gp(e,function(t,r,n){return n.indexOf(t)===r})}function DT(i){var e=PT(i);return e.map(function(t,r){return{target:t,id:r,total:e.length,transforms:{list:AT(t)}}})}function ZG(i,e){var t=fv(e);if(/^spring/.test(t.easing)&&(t.duration=xT(t.easing)),Ke.arr(i)){var r=i.length,n=r===2&&!Ke.obj(i[0]);n?i={value:i}:Ke.fnc(e.duration)||(t.duration=e.duration/r)}var s=Ke.arr(i)?i:[i];return s.map(function(o,a){var l=Ke.obj(o)&&!Ke.pth(o)?o:{value:o};return Ke.und(l.delay)&&(l.delay=a?0:e.delay),Ke.und(l.endDelay)&&(l.endDelay=a===s.length-1?e.endDelay:0),l}).map(function(o){return vp(o,t)})}function $G(i){for(var e=gp(yp(i.map(function(s){return Object.keys(s)})),function(s){return Ke.key(s)}).reduce(function(s,o){return s.indexOf(o)<0&&s.push(o),s},[]),t={},r=function(s){var o=e[s];t[o]=i.map(function(a){var l={};for(var c in a)Ke.key(c)?c==o&&(l.value=a[c]):l[c]=a[c];return l})},n=0;n<e.length;n++)r(n);return t}function ez(i,e){var t=[],r=e.keyframes;r&&(e=vp($G(r),e));for(var n in e)Ke.key(n)&&t.push({name:n,tweens:ZG(e[n],i)});return t}function tz(i,e){var t={};for(var r in i){var n=mv(i[r],e);Ke.arr(n)&&(n=n.map(function(s){return mv(s,e)}),n.length===1&&(n=n[0])),t[r]=n}return t.duration=parseFloat(t.duration),t.delay=parseFloat(t.delay),t}function rz(i,e){var t;return i.tweens.map(function(r){var n=tz(r,e),s=n.value,o=Ke.arr(s)?s[1]:s,a=As(o),l=vv(e.target,i.name,a,e),c=t?t.to.original:l,u=Ke.arr(s)?s[0]:c,d=As(u)||As(l),h=a||d;return Ke.und(o)&&(o=c),n.from=LT(u,h),n.to=LT(xv(o,u),h),n.start=t?t.end:0,n.end=n.start+n.delay+n.duration+n.endDelay,n.easing=hv(n.easing,n.duration),n.isPath=Ke.pth(s),n.isColor=Ke.col(n.from.original),n.isColor&&(n.round=1),t=n,n})}var IT={css:function(i,e,t){return i.style[e]=t},attribute:function(i,e,t){return i.setAttribute(e,t)},object:function(i,e,t){return i[e]=t},transform:function(i,e,t,r,n){if(r.list.set(e,t),e===r.last||n){var s="";r.list.forEach(function(o,a){s+=a+"("+o+") "}),i.style.transform=s}}};function NT(i,e){var t=DT(i);t.forEach(function(r){for(var n in e){var s=mv(e[n],r),o=r.target,a=As(s),l=vv(o,n,a,r),c=a||As(l),u=xv(TT(s,c),l),d=yv(o,n);IT[d](o,n,u,r.transforms,!0)}})}function nz(i,e){var t=yv(i.target,e.name);if(t){var r=rz(e,i),n=r[r.length-1];return{type:t,property:e.name,animatable:i,tweens:r,duration:n.end,delay:r[0].delay,endDelay:n.endDelay}}}function iz(i,e){return gp(yp(i.map(function(t){return e.map(function(r){return nz(t,r)})})),function(t){return!Ke.und(t)})}function RT(i,e){var t=i.length,r=function(s){return s.timelineOffset?s.timelineOffset:0},n={};return n.duration=t?Math.max.apply(Math,i.map(function(s){return r(s)+s.duration})):e.duration,n.delay=t?Math.min.apply(Math,i.map(function(s){return r(s)+s.delay})):e.delay,n.endDelay=t?n.duration-Math.max.apply(Math,i.map(function(s){return r(s)+s.duration-s.endDelay})):e.endDelay,n}var BT=0;function sz(i){var e=pv(yT,i),t=pv(cv,i),r=ez(t,i),n=DT(i.targets),s=iz(n,r),o=RT(s,t),a=BT;return BT++,vp(e,{id:a,children:[],animatables:n,animations:s,duration:o.duration,delay:o.delay,endDelay:o.endDelay})}var Pn=[],OT=[],xp,oz=function(){function i(){xp=requestAnimationFrame(e)}function e(t){var r=Pn.length;if(r){for(var n=0;n<r;){var s=Pn[n];if(!s.paused)s.tick(t);else{var o=Pn.indexOf(s);o>-1&&(Pn.splice(o,1),r=Pn.length)}n++}i()}else xp=cancelAnimationFrame(xp)}return i}();function az(){document.hidden?(Pn.forEach(function(i){return i.pause()}),OT=Pn.slice(0),Cr.running=Pn=[]):OT.forEach(function(i){return i.play()})}typeof document!="undefined"&&document.addEventListener("visibilitychange",az);function Cr(i){i===void 0&&(i={});var e=0,t=0,r=0,n,s=0,o=null;function a(x){var w=window.Promise&&new Promise(function(b){return o=b});return x.finished=w,w}var l=sz(i),c=a(l);function u(){var x=l.direction;x!=="alternate"&&(l.direction=x!=="normal"?"normal":"reverse"),l.reversed=!l.reversed,n.forEach(function(w){return w.reversed=l.reversed})}function d(x){return l.reversed?l.duration-x:x}function h(){e=0,t=d(l.currentTime)*(1/Cr.speed)}function f(x,w){w&&w.seek(x-w.timelineOffset)}function p(x){if(l.reversePlayback)for(var b=s;b--;)f(x,n[b]);else for(var w=0;w<s;w++)f(x,n[w])}function g(x){var w=0,b=l.animations,E=b.length;for(l.reversePlayback===!0&&l.rewind===!1&&(x=l.duration-x);w<E;){var T=b[w],S=T.animatable,N=T.tweens,C=N.length-1,M=N[C];C&&(M=gp(N,function(ce){return x<ce.end})[0]||M);for(var _=ts(x-M.start-M.delay,0,M.duration)/M.duration,D=isNaN(_)?1:M.easing(_),O=M.to.strings,F=M.round,k=[],W=M.to.numbers.length,j=void 0,Z=0;Z<W;Z++){var U=void 0;if(l.reversePlayback===!0&&l.rewind===!1)var G=M.to.numbers[Z],R=M.from.numbers[Z]||0;else var R=M.to.numbers[Z],G=M.from.numbers[Z]||0;M.isPath?U=QG(M.value,D*R):U=G+D*(R-G),F&&(M.isColor&&Z>2||(U=Math.round(U*F)/F)),k.push(U)}var K=O.length;if(!K)j=k[0];else{j=O[0];for(var re=0;re<K;re++){var se=O[re],V=O[re+1],he=k[re];isNaN(he)||(V?j+=he+V:j+=he+" ")}}IT[T.type](S.target,T.property,j,S.transforms),T.currentValue=j,w++}}function v(x){l[x]&&!l.passThrough&&l[x](l)}function y(){l.remaining&&l.remaining!==!0&&l.remaining--}function m(x){var w=l.duration,b=l.delay,E=w-l.endDelay,T=d(x);l.progress=ts(T/w*100,0,100),l.reversePlayback=T<l.currentTime,n&&p(T),!l.began&&l.currentTime>=0&&(l.began=!0,v("begin")),!l.loopBegan&&l.currentTime>0&&(l.loopBegan=!0,v("loopBegin")),T<=b&&l.currentTime!==0&&g(0),(T>=E&&l.currentTime!==w||!w)&&g(w),T>b&&T<E?(l.changeBegan||(l.changeBegan=!0,l.changeCompleted=!1,v("changeBegin")),v("change"),g(T)):l.changeBegan?(l.changeCompleted=!0,l.changeBegan=!1,v("change"),v("changeComplete")):l.began&&T>E&&(v("change"),v("changeComplete")),l.currentTime=ts(T,0,w),l.began&&v("update"),x>=w&&(t=0,y(),l.remaining?(e=r,v("loopComplete"),l.loopBegan=!1,l.direction==="alternate"&&u()):(l.paused=!0,l.completed||(l.completed=!0,v("loopComplete"),v("complete"),!l.passThrough&&"Promise"in window&&(o(),c=a(l)))))}return l.reset=function(){var x=l.direction;l.passThrough=!1,l.currentTime=0,l.progress=0,l.paused=!0,l.began=!1,l.loopBegan=!1,l.changeBegan=!1,l.completed=!1,l.changeCompleted=!1,l.reversePlayback=!1,l.reversed=x==="reverse",l.remaining=l.loop,n=l.children,s=n.length;for(var w=s;w--;)l.children[w].reset();(l.reversed&&l.loop!==!0||x==="alternate"&&l.loop===1)&&l.remaining++,g(l.reversed?l.duration:0)},l.set=function(x,w){return NT(x,w),l},l.tick=function(x){r=x,e||(e=r),m((r+(t-e))*Cr.speed)},l.seek=function(x){m(d(x))},l.pause=function(){l.paused=!0,h()},l.play=function(){!l.paused||(l.completed&&l.reset(),l.paused=!1,Pn.push(l),h(),xp||oz())},l.reverse=function(){u(),l.completed=!l.reversed,h()},l.restart=function(){l.reset(),l.play()},l.reset(),l.autoplay&&l.play(),l}function FT(i,e){for(var t=e.length;t--;)dv(i,e[t].animatable.target)&&e.splice(t,1)}function lz(i){for(var e=PT(i),t=Pn.length;t--;){var r=Pn[t],n=r.animations,s=r.children;FT(e,n);for(var o=s.length;o--;){var a=s[o],l=a.animations;FT(e,l),!l.length&&!a.children.length&&s.splice(o,1)}!n.length&&!s.length&&r.pause()}}function cz(i,e){e===void 0&&(e={});var t=e.direction||"normal",r=e.easing?hv(e.easing):null,n=e.grid,s=e.axis,o=e.from||0,a=o==="first",l=o==="center",c=o==="last",u=Ke.arr(i),d=parseFloat(u?i[0]:i),h=u?parseFloat(i[1]):0,f=As(u?i[1]:i)||0,p=e.start||0+(u?d:0),g=[],v=0;return function(y,m,x){if(a&&(o=0),l&&(o=(x-1)/2),c&&(o=x-1),!g.length){for(var w=0;w<x;w++){if(!n)g.push(Math.abs(o-w));else{var b=l?(n[0]-1)/2:o%n[0],E=l?(n[1]-1)/2:Math.floor(o/n[0]),T=w%n[0],S=Math.floor(w/n[0]),N=b-T,C=E-S,M=Math.sqrt(N*N+C*C);s==="x"&&(M=-N),s==="y"&&(M=-C),g.push(M)}v=Math.max.apply(Math,g)}r&&(g=g.map(function(D){return r(D/v)*v})),t==="reverse"&&(g=g.map(function(D){return s?D<0?D*-1:-D:Math.abs(v-D)}))}var _=u?(h-d)/v:d;return p+_*(Math.round(g[m]*100)/100)+f}}function uz(i){i===void 0&&(i={});var e=Cr(i);return e.duration=0,e.add=function(t,r){var n=Pn.indexOf(e),s=e.children;n>-1&&Pn.splice(n,1);function o(h){h.passThrough=!0}for(var a=0;a<s.length;a++)o(s[a]);var l=vp(t,pv(cv,i));l.targets=l.targets||i.targets;var c=e.duration;l.autoplay=!1,l.direction=e.direction,l.timelineOffset=Ke.und(r)?c:xv(r,c),o(e),l.rewind=e.rewind,e.seek(l.timelineOffset);var u=Cr(l);o(u),s.push(u);var d=RT(s,i);return e.delay=d.delay,e.endDelay=d.endDelay,e.duration=d.duration,e.seek(0),e.reset(),e.autoplay&&e.play(),e},e}Cr.version="3.2.0";Cr.speed=1;Cr.running=Pn;Cr.remove=lz;Cr.get=vv;Cr.set=NT;Cr.convertPx=gv;Cr.path=JG;Cr.setDashoffset=YG;Cr.stagger=cz;Cr.timeline=uz;Cr.easing=hv;Cr.penner=bT;Cr.random=function(i,e){return Math.floor(Math.random()*(e-i+1))+i};var Qu=Cr;function Zu(i,e,t){switch(i){case mn.LINEAR:return"cubicBezier( 0, 0, 1, 1 )";case mn.EASE:return"cubicBezier( .25, .1, .25, 1 )";case mn.EASE_IN:return"cubicBezier( .42, 0, 1, 1 )";case mn.EASE_OUT:return"cubicBezier( 0, 0, .58, 1 )";case mn.EASE_IN_OUT:return"cubicBezier( .42, 0, .58, 1 )";case mn.CUBIC:let{control1:r,control2:n}=e;return`cubicBezier( ${r[0]}, ${r[1]}, ${n[0]}, ${n[1]} )`;case mn.SPRING:let{mass:s,stiffness:o,damping:a,velocity:l}=t;return`spring( ${s}, ${o}, ${a}, ${l} )`}}function UT(i,e,t){var n,s;let r=i.cameraType==="OrthographicCamera"?(n=e.orthographic)==null?void 0:n.zoom:(s=e.perspective)==null?void 0:s.zoom;if(r!==void 0){let o=i.zoom;o!==r&&t.push({change:a=>{i.zoom=$e.lerp(o,r,a),i.updateProjectionMatrix()}})}if(e.targetOffset!==void 0){let o=i.targetOffset,a=e.targetOffset;o!==a&&t.push({change:l=>{i.targetOffset=$e.lerp(o,a,l)}})}}function GT(i,e,t){if(e.width!==void 0&&e.height!==void 0&&e.depth!==void 0){let{width:r,height:n,depth:s}=i.geometry.userData.parameters,o=[r,n,s],a=[e.width,e.height,e.depth];Tr.isEqual(o,a)||t.push({change:l=>{let[c,u,d]=Tr.lerp(o,a,l);i.updateGeometry({parameters:{width:c,height:u,depth:d}})}})}}function zT(i,e,t,r){if(e.intensity!==void 0){let n=i.intensity,s=e.intensity;n!==s&&t.push({change:o=>{i.intensity=$e.lerp(n,s,o)}})}if(e.color!==void 0){let n=i.color.clone(),s=typeof e.color=="string"?r.getColor(e.color):e.color;if(!Lr.equals(n,s)){let o=n.clone();i.color=o,t.push({change:a=>{let{r:l,g:c,b:u}=Lr.lerp(n,s,a);o.setRGB(l,c,u)}})}}}function kT(i,e,t,r){var s,o;let n=i.layersList.head;for(;n;){let a=e.layers.data(n.uuid);if(a&&((s=n.visible)!=null?s:!0)&&((o=a.visible)!=null?o:!0)){let l=n.getNames().filter(c=>!FM.some(u=>c.includes(u)));for(let c of l)try{let u=n.getValue(c);if(c==="steps")mz(n,a,c,t);else if(c==="colors")gz(n,a,c,t);else if(typeof u=="number")hz(n,a,c,t);else{if(typeof u=="boolean")continue;"isVector2"in u?dz(n,a,c,t):"isVector3"in u?fz(n,a,c,t):"isColor"in u?pz(n,a,c,t,r):"isTexture"in u&&yz(n,a,c,t)}}catch(u){console.error(`animateMaterial: unexpected material layer for ${c}`,u)}}n=n.next}}function hz(i,e,t,r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue(t),s=e[t];n!==s&&r.push({change:o=>{i.setValue(t,$e.lerp(n,s,o))}})}function dz(i,e,t,r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue(t),s=n.toArray(),o=e[t];gs.isEqual(s,o)||r.push({change:a=>{n.fromArray(gs.lerp(s,o,a))}})}function fz(i,e,t,r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue(t),s=n.toArray(),o=e[t];Tr.isEqual(s,o)||r.push({change:a=>{n.fromArray(Tr.lerp(s,o,a))}})}function pz(i,e,t,r,n){if(!i.hasValue(t)||!(t in e))return;let s=i.getValue(t).clone(),o=e[t],a=typeof o=="string"?n.getColor(o):o;if(Lr.equals(s,a))return;let l=s.clone();i.setValue(t,l),r.push({change:c=>{let{r:u,g:d,b:h}=Lr.lerp(s,a,c);l.setRGB(u,d,h)}})}function mz(i,e,t="steps",r){if(!i.hasValue(t)||!(t in e))return;let n=[...i.getValue(t)],s=e[t];for(let o=0;o<n.length;++o){let a=n[o],l=s[o];a!==l&&r.push({change:c=>{n[o]=$e.lerp(a,l,c),i.setValue("steps",n)}})}}function gz(i,e,t="colors",r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue(t),s=e[t];for(let o=0;o<n.length;++o){let a=n[o].toArray(),l=s[o];Zc.isEqual(a,l)||r.push({change:c=>{n[o].fromArray(Zc.lerp(a,l,c))}})}}function yz(i,e,t="texture",r){if(!i.hasValue(t)||!(t in e))return;let n=i.getValue("texture"),s=e[t],o=n.repeat.toArray(),a=n.offset.toArray(),l=s.repeat,c=s.offset;(!gs.isEqual(o,l)||!gs.isEqual(a,c))&&r.push({change:u=>{n.repeat.fromArray(gs.lerp(o,l,u)),n.offset.fromArray(gs.lerp(a,c,u)),n.updateMatrix(),n.needsUpdate=!0}})}function VT(i,e,t,r){if(r===0)return t.copy(i);if(r===1)return t.copy(e);let n=i.w*e.w+i.x*e.x+i.y*e.y+i.z*e.z;if(n>=1)return t.copy(i);let s=1-n*n;if(s<=Number.EPSILON){let u=1-r;return t.w=u*i.w+r*e.w,t.x=u*i.x+r*e.x,t.y=u*i.y+r*e.y,t.z=u*i.z+r*e.z,t.normalize(),t}let o=Math.sqrt(s),a=Math.atan2(o,n),l=Math.sin((1-r)*a)/o,c=Math.sin(r*a)/o;return t.w=i.w*l+e.w*c,t.x=i.x*l+e.x*c,t.y=i.y*l+e.y*c,t.z=i.z*l+e.z*c,t}function HT(i,e,t=0){let r=Array.isArray(i.material)?i.material[t]:i.material,n;return"materials"in e?n=e.materials[t]:"material"in e&&(n=e.material),[r,n]}var wv=new A,Sv=new A,jT=new jt,vz=new Rn,xz=new Ae;function WT(i,e,t,r){if(t.position!==void 0){let n=i.position.toArray(),s=t.position;Tr.isEqual(n,s)||r.push({change:o=>{i.position.fromArray(Tr.lerp(n,s,o)),i.updateMatrix()}})}if(t.scale!==void 0){let n=i.scale.toArray(),s=t.scale;Tr.isEqual(n,s)||r.push({change:o=>{i.scale.fromArray(Tr.lerp(n,s,o)),i.updateMatrix()}})}bz(i,e,t,r),wz(i,t,r)}function bz(i,e,t,r){if(t.rotation===void 0)return;let n=wv.setFromEuler(i.rotation).toArray(),s=t.rotation;if(Tr.isEqual(n,s))return;if(Tr.sub(t.rotation,e?e.rotation:i.rotation).every(a=>Math.abs(a)<2*Math.PI)){let a=i.quaternion.clone(),l=new jt().setFromEuler(vz.set(t.rotation[0],t.rotation[1],t.rotation[2]));r.push({change:c=>{VT(a,l,i.quaternion,c),i.updateMatrix()}})}else r.push({change:a=>{i.rotation.setFromVector3(Sv.fromArray(Tr.lerp(n,s,a))),i.updateMatrix()}})}function wz(i,e,t){if(e.hiddenMatrix!==void 0&&!Oi.isEqual(i.hiddenMatrix.toArray(),e.hiddenMatrix)){let r=new A,n=new jt,s=new A;i.hiddenMatrix.decompose(r,n,s);let o=new A,a=new jt,l=new A;xz.fromArray(e.hiddenMatrix).decompose(o,a,l),t.push({change:c=>{jT.slerpQuaternions(n,a,c),wv.lerpVectors(r,o,c),Sv.lerpVectors(s,l,c),i.hiddenMatrix.compose(wv,jT,Sv)}})}}function qT(i,e,t,r){let n=[];if(WT(i,e==null?void 0:e.objectState,t.objectState,n),El(i)){if("geometry"in t.objectState&&GT(i,t.objectState.geometry,n),"material"in t.objectState||"materials"in t.objectState){let[s,o]=HT(i,t.objectState,i.selectedMaterial);s&&o&&typeof o!="string"&&kT(s,o,n,r)}}else Y1(i)?zT(i,t.objectState,n,r):X1(i)&&UT(i,t.objectState,n);return{change:s=>{n.forEach(o=>{o.change&&o.change(s)})}}}var Mv=class{constructor(e,t){this.object=e;this.sharedAssets=t;this.uuid=$e.generateUUID();this.states=[];this.events={};this._scrollCounter=null}get animation(){return this._animation}start(){this._animation!==void 0&&(this._animation.pause(),this._animation=void 0,this._scrollCounter=null),this.states.length>1&&(this.states[0].execute(this.object,this.sharedAssets),this._currentState=this.states[0],this._prevState=void 0)}end(){this._animation!==void 0&&(this._animation.pause(),this._animation=void 0),this.states.length>1&&this.states[0].execute(this.object,this.sharedAssets),this._currentState=void 0,this._prevState=void 0}play(e,t){this.object.visible&&e.state!==void 0&&this.animate(e.state,e,!0,t)}reverse(e,t){this.object.visible&&this._prevState!==void 0&&this.animate(this._prevState,e,!0,t)}seek(e,t,r,n){var s;this._scrollCounter===null&&(this.object.visible&&e.state!==void 0&&this.animate(e.state,e,!1,n),this._scrollCounter=0),this._scrollCounter+=t,this._scrollCounter=Math.min(Math.max(this._scrollCounter,0),r),(s=this._animation)==null||s.seek(this._scrollCounter/r*e.duration)}animate(e,t,r=!0,n){var s,o,a,l,c,u;if(this._currentState===e){if((s=this._animation)==null?void 0:s.reversed){let d=(a=(o=this._animation)==null?void 0:o.currentTime)!=null?a:0;(l=this._animation)==null||l.reset(),(c=this._animation)==null||c.seek(d),(u=this._animation)==null||u.play()}}else{this._prevState=this._currentState,this._currentState=e,this._animation!==void 0&&this._animation.pause(),t.cycle===!0&&t.repeat===!0?this._animation=Qu.timeline({duration:t.duration,delay:t.delay/2,endDelay:t.delay/2,direction:"alternate",loop:!0,rewind:t.rewind,easing:Zu(t.easing,t.cubicControls,t.springParameters),autoplay:r}):t.cycle===!0&&t.repeat===!1?this._animation=Qu.timeline({duration:t.duration,delay:t.delay,endDelay:t.delay/2,direction:"alternate",rewind:t.rewind,easing:Zu(t.easing,t.cubicControls,t.springParameters),autoplay:r}):t.cycle===!1&&t.repeat===!0?this._animation=Qu.timeline({duration:t.duration,delay:t.delay,direction:"normal",loop:!0,easing:Zu(t.easing,t.cubicControls,t.springParameters),autoplay:r}):this._animation=Qu.timeline({duration:t.duration,delay:t.delay,direction:"normal",easing:Zu(t.easing,t.cubicControls,t.springParameters),autoplay:r}),r&&this._animation.finished.then(()=>{this._animation=void 0});let d=qT(this.object,this._prevState,this._currentState,this.sharedAssets),h={t:0};this._animation.add({targets:h,t:1,change:()=>{var f;d.change&&(d.change(h.t),(f=n==null?void 0:n.change)==null||f.call(this,h.t))}},0)}}emitEvent(e){if(e==="keyDown"||e==="keyUp"||e==="mouseDown"||e==="mouseUp"||e==="mouseHover"||e==="scroll"||e==="start"){let t=this.events[e];if(t)for(let r of t)r.targets.forEach(n=>this.play(n))}}emitEventReverse(e){if(e==="keyDown"||e==="keyUp"||e==="mouseDown"||e==="mouseUp"||e==="mouseHover"||e==="scroll"||e==="start"){let t=this.events[e];if(t)for(let r of t)r.targets.forEach(n=>this.reverse(n))}}};var $u=class{constructor(e){this.targetState=e}static create(e,t){var n;let r=new $u(e);if(e.object){let s=t.find(e.object);if(r.object=s,s==null?void 0:s.interaction){let o=s.interaction.states;r.state=e.state&&(n=o.find(a=>a.uuid===e.state))!=null?n:o[0]}}return r}get cubicControls(){let e=this.targetState;return e.easing===mn.CUBIC?{control1:e.control1,control2:e.control2}:ne({},Wd.defaultData)}get springParameters(){let e=this.targetState;return e.easing===mn.SPRING?e:ne({},jd.defaultData)}get easing(){return this.targetState.easing}get duration(){return this.targetState.duration}get delay(){return this.targetState.delay}get repeat(){return this.targetState.repeat}get cycle(){return this.targetState.cycle}get rewind(){return this.targetState.rewind}};var XT=new cn,zl=class extends on{},Av=class{constructor(e){this.materials={};this.images={};this.colors={};this.transmissionRenderTarget=new gt(2048,2048,{generateMipmaps:!0,minFilter:Ci,magFilter:st,wrapS:Mr,wrapT:Mr}),this.transmissionRenderTarget.depthTexture=new Ii(2048,2048),this.reset(e)}reset(e){for(let[t,r]of Object.entries(e.images))this.addImage(t,r.data);for(let[t,r]of Object.entries(e.colors))this.addColor(t,r);for(let[t,r]of Object.entries(e.materials))this.addMaterial(t,jy(r,this))}get transmissionSamplerMap(){return this.transmissionRenderTarget.texture}get transmissionDepthMap(){return this.transmissionRenderTarget.depthTexture}addMaterial(e,t){t.uuid=e,this.materials[e]=t}deleteMaterial(e){this.materials[e]&&(this.materials[e].dispose(),delete this.materials[e])}isSharedMaterial(e){return e.uuid in this.materials||e===XT}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){var t;return(t=this.materials[e])!=null?t:XT}getMaterials(){return this.materials}addImage(e,t){if(this.images[e])return this.images[e].onload=()=>{this.onImageLoad&&this.onImageLoad(e)},this.images[e].src=t,!0;{let r=new Image;return r.src=t,r.onload=()=>{this.onImageLoad&&this.onImageLoad(e)},this.images[e]=r,!1}}deleteImage(e){this.images[e]&&delete this.images[e]}getDefaultImage(){return this.images.image_0}getImage(e){return this.images[e]}getImages(){return this.images}addColor(e,t){return this.colors[e]?("a"in t?this.colors[e].setRGBA(t.r,t.g,t.b,t.a):this.colors[e].setRGBA(t.r,t.g,t.b,1),!0):("a"in t?this.colors[e]=new zl(t.r,t.g,t.b,t.a):this.colors[e]=new zl(t.r,t.g,t.b,1),!1)}updateColor(e,t){var r,n,s,o;if(this.colors[e]){let a=this.colors[e];return this.colors[e].r=(r=t.r)!=null?r:a.r,this.colors[e].g=(n=t.g)!=null?n:a.g,this.colors[e].b=(s=t.b)!=null?s:a.b,this.colors[e].a=(o=t.a)!=null?o:a.a,!0}return!1}deleteColor(e){this.colors[e]&&delete this.colors[e]}getColor(e){return this.colors[e]}dispose(){Object.keys(this.materials).forEach(t=>this.deleteMaterial(t)),this.transmissionRenderTarget.depthTexture.dispose(),this.transmissionRenderTarget.dispose(),this.onImageLoad=void 0}};function Sz(i,e){switch(i.type){case ut.NOISE:return e==="noiseType";case ut.TEXTURE:return e==="projection"||e==="axis";case ut.DISPLACE:return e==="noiseType";case ut.DEPTH:return e==="num"||e==="smooth"||e==="isWorldSpace"||e==="gradientType";default:return!1}}function Tv(i,e,t,r,n){var o;let s=!1;for(let[a,l]of Object.entries(i)){if(!a||l===void 0||rp(a,t,n))continue;t.visible=n.visible;let c=t.uniforms[`f${t.id}_${a}`];if(!!c)switch(c.constructor){case Ft:if(typeof l=="string"){let u=e.getColor(l);u&&(c.value=u);break}else{let u=l;c.value instanceof zl?c.value=new on(u.r,u.g,u.b,u.a):c.setRGBA(u);break}case Xi:if(typeof l=="string"){let u=e.getColor(l);u&&(c.value=u);break}else{let u=l;c.value instanceof zl?c.value=new on(u.r,u.g,u.b,u.a):c.value.setRGBA(u.r,u.g,u.b,u.a);break}case Xr:{let u=l;c.value.setX(u[0]),c.value.setY(u[1]);break}case Yr:{let u=l;c.value.setX(u[0]),c.value.setY(u[1]),c.value.setZ(u[2]);break}case an:{let u=l;"image"in u&&(c.value.image=e.getImage(u.image)),"wrapping"in u&&(c.value.wrapS=c.value.wrapT=u.wrapping),"repeat"in u&&c.value.repeat.fromArray(u.repeat),"offset"in u&&c.value.offset.fromArray(u.offset),c.value.needsUpdate=!0;break}case co:{l.forEach((u,d)=>{c.value[d].setX(u[0]),c.value[d].setY(u[1]),c.value[d].setZ(u[2]),c.value[d].setW(u[3])});break}default:{s=s||Sz(t,a),c.value=l;break}}}if(s&&n){let a=tp({id:"0",fi:0,data:n},e);(o=r.userData.layers)==null||o.changeLayer(t.id,ne({},a)),r.dispose(),r.needsUpdate=!0}}var Ev=new A,YT=new en,KT=new Ae,kl={type:"follow",normal:new A,raycaster:new Ho},Vl;(function(t){function i(r){if(r.type===Mt.FOLLOW)return{type:"follow",targets:[]}}t.create=i;function e({target:r,normal:n,raycaster:s,begin:o,change:a}){!r||!r.interaction||!n||!s||(o&&o("follow",r.uuid),YT.setFromNormalAndCoplanarPoint(n,r.getWorldPosition(Ev)),s.ray.intersectPlane(YT,Ev),r.position.copy(Ev),r.parent!==null&&r.position.applyMatrix4(KT.copy(r.parent.matrixWorld).invert()),r.position.applyMatrix4(KT.copy(r.hiddenMatrix).invert()),r.updateMatrix(),a&&a())}t.listener=e})(Vl||(Vl={}));var bp={type:"keyDown"},wp={type:"keyUp"},Hl;(function(t){function i(r){if(r.type===Mt.KEY_DOWN&&r.key)return{type:"keyDown",targets:[],key:r.key}}t.create=i;function e({target:r,begin:n,change:s,domEvent:o}){if(!r||!r.interaction||!o)return;let a=r.interaction.events.keyDown;if(!(a==null?void 0:a.length))return;let l=!1;for(let c of a)c.key===o.key&&(c.targets.forEach(u=>{var d,h;return(h=(d=u.object)==null?void 0:d.interaction)==null?void 0:h.play(u,{change:s})}),l=!0);l&&n&&n("keyDown",r.uuid)}t.listener=e})(Hl||(Hl={}));var jl;(function(t){function i(r){if(!(r.type!==Mt.KEY_UP||!r.key))return{type:"keyUp",targets:[],key:r.key}}t.create=i;function e({target:r,begin:n,change:s,domEvent:o}){if(!r||!r.interaction||!o)return;let a=r.interaction.events.keyUp;if(!(a==null?void 0:a.length))return;let l=!1;for(let c of a)c.key===o.key&&(c.targets.forEach(u=>{var d,h;return(h=(d=u.object)==null?void 0:d.interaction)==null?void 0:h.play(u,{change:s})}),l=!0);l&&n&&n("keyUp",r.uuid)}t.listener=e})(jl||(jl={}));var _v=new A,JT=new en,Wl={type:"lookAt",normal:new A,raycaster:new Ho},ql;(function(t){function i(r){if(r.type===Mt.LOOK_AT&&r.distance)return{type:"lookAt",distance:r.distance}}t.create=i;function e({target:r,normal:n,raycaster:s,begin:o,change:a}){var u;if(!r||!r.interaction||!n||!s)return;let l=r.interaction.events.lookAt;if(!(l==null?void 0:l.length))return;o&&o("lookAt",r.uuid);let c=l[0].distance;JT.set(n,-c),s.ray.intersectPlane(JT,_v),r.lookAt(_v),r.updateMatrix(),(u=r.interaction.animation)==null||u.finished.then(()=>{r.lookAt(_v),r.updateMatrix()}),a&&a()}t.listener=e})(ql||(ql={}));var Sp={type:"mouseDown"},Mp={type:"mouseUp"},Xl;(function(t){function i(r){if(r.type===Mt.MOUSE_DOWN)return{type:"mouseDown",targets:[]}}t.create=i;function e({target:r,begin:n,change:s}){if(!r||!r.interaction)return;let o=r.interaction.events.mouseDown;!(o==null?void 0:o.length)||(n&&n("mouseDown",r.uuid),o.forEach(a=>{a.targets.forEach(l=>{var c,u;return(u=(c=l.object)==null?void 0:c.interaction)==null?void 0:u.play(l,{change:s})})}))}t.listener=e})(Xl||(Xl={}));var Yl;(function(t){function i(r){if(r.type===Mt.MOUSE_UP)return{type:"mouseUp",targets:[]}}t.create=i;function e({target:r,begin:n,change:s}){if(!r||!r.interaction)return;let o=r.interaction.events.mouseUp;!(o==null?void 0:o.length)||(n&&n("mouseUp",r.uuid),o.forEach(a=>{a.targets.forEach(l=>{var c,u;return(u=(c=l.object)==null?void 0:c.interaction)==null?void 0:u.play(l,{change:s})})}))}t.listener=e})(Yl||(Yl={}));var Cv={type:"start"},Kl;(function(t){function i(r){if(r.type===Mt.START)return{type:"start",targets:[]}}t.create=i;function e({target:r,begin:n,change:s}){if(!r||!r.interaction)return;let o=r.interaction.events.start;!(o==null?void 0:o.length)||(n&&n("start",r.uuid),o.forEach(a=>{a.targets.forEach(l=>{var c,u;return(u=(c=l.object)==null?void 0:c.interaction)==null?void 0:u.play(l,{change:s})})}))}t.listener=e})(Kl||(Kl={}));function QT(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}var Dn={type:"link"},Jl;(function(t){function i(r){let n;if(r.type===Mt.MOUSE_DOWN)n={type:"mousedown"};else if(r.type===Mt.MOUSE_UP)n={type:"mouseup"};else if(r.type===Mt.KEY_DOWN){if(!r.key)return;n={type:"keydown",key:r.key}}else if(r.type===Mt.KEY_UP){if(!r.key)return;n={type:"keyup",key:r.key}}else return;if(r.url)return{type:"link",subEvent:n,url:r.url}}t.create=i;function e({target:r,begin:n,domEvent:s,subType:o}){var c;if(!r||!r.interaction||!o||!s)return;let a=r.interaction.events.link;if(!a)return;let l;if(o==="keydown"||o==="keyup"){let u=s.key;l=(c=a[o])==null?void 0:c.filter(d=>d.subEvent.type===o&&d.subEvent.key===u)}else l=a[o];if(!!(l==null?void 0:l.length)){n&&n("link",r.uuid);for(let u of l)QT()?window.location.assign(u.url):window.open(u.url,"_blank")}}t.listener=e})(Jl||(Jl={}));var Ap={type:"scroll"},Ql;(function(t){function i(r){if(!(r.type!==Mt.SCROLL||r.steps===void 0))return{type:"scroll",targets:[],steps:r.steps}}t.create=i;function e({target:r,begin:n,change:s,domEvent:o}){if(!r||!r.interaction||!o)return;let a=r.interaction.events.scroll;if(!(a==null?void 0:a.length))return;n&&n("scroll",r.uuid);let l=o.deltaY>0?1:-1;a.forEach(c=>{c.targets.forEach(u=>{var d,h;return(h=(d=u.object)==null?void 0:d.interaction)==null?void 0:h.seek(u,l,c.steps,{change:s})})})}t.listener=e})(Ql||(Ql={}));var mo={type:"mouseHover"},Zl;(function(t){function i(r){if(r.type===Mt.MOUSE_HOVER)return{type:"mouseHover",targets:[]}}t.create=i;function e({target:r,begin:n,change:s,enter:o}){if(!r||!r.interaction||o===void 0)return;let a=r.interaction.events.mouseHover;!(a==null?void 0:a.length)||(n&&n("mouseHover",r.uuid),o?a.forEach(l=>{l.targets.forEach(c=>{var u,d;return(d=(u=c.object)==null?void 0:u.interaction)==null?void 0:d.play(c,{change:s})})}):a.forEach(l=>{l.targets.forEach(c=>{var u,d;return(d=(u=c.object)==null?void 0:u.interaction)==null?void 0:d.reverse(c,{change:s})})}))}t.listener=e})(Zl||(Zl={}));function Mz(i){let e,{type:t}=i;return t===Mt.FOLLOW?e=Vl.create(i):t===Mt.KEY_DOWN?e=Hl.create(i):t===Mt.KEY_UP?e=jl.create(i):t===Mt.LOOK_AT?e=ql.create(i):t===Mt.MOUSE_DOWN?e=Xl.create(i):t===Mt.MOUSE_UP?e=Yl.create(i):t===Mt.MOUSE_HOVER?e=Zl.create(i):t===Mt.SCROLL?e=Ql.create(i):t===Mt.START&&(e=Kl.create(i)),e}function ZT(i,e,t){let r=[];i.objects.traverse((n,s)=>{var u;if(s.states===void 0)return;let o=e.find(n),a=new Mv(o,t),l=a.states;l.push($l.create(n,s));for(let d of s.states){let h=su.patch(s,d.data);l.push($l.create(d.id,h))}let c=a.events;if(s.events)for(let{data:d}of s.events){let h=Mz(d);if(!h)continue;let f=h.type;c[f]?(u=c[f])==null||u.push(h):c[f]=[h],"targets"in d&&r.push([d,h]);let p=Jl.create(d);if(p){c.link||(c.link={});let g=p.subEvent.type;c.link[g]?c.link[g].push(p):c.link[g]=[p]}}l.length>0||Object.keys(c).length>0?(o.interaction=a,Lv(o,s,null,t)):delete o.interaction});for(let[n,s]of r)if("targets"in n&&"targets"in s)for(let{data:o}of n.targets){let a=$u.create(o,e);s.targets.push(a)}}function Lv(i,e,t,r,n=!1){if(!n&&e.states.length===0)return;let s=t===null?e:su.patch(e,e.states.data(t));if(vy(i,s),i instanceof ir&&s.type==="Mesh"){if(i instanceof ea?i.buildFromStore(s.geometry):i.updateGeometry({parameters:s.geometry}),"material"in s){if(i.material instanceof Array)return;if(typeof s.material!="string"){let a=s.material.layers;for(let l of a){let c=i.material.userData.layers.getLayerByUuid(l.id);Tv(l.data,r,c,i.material,l.data)}}}else if("materials"in s){if(!(i.material instanceof Array))return;var o=0;for(let a of s.materials){if(typeof a!="string"){let l=a.layers;for(let c of l){let u=i.material[o].userData.layers.getLayerByUuid(c.id);Tv(c.data,r,u,i.material[o],c.data)}}o++}}}else if(s.type==="DirectionalLight")i.fromDirectionalLightState(s,r);else if(s.type==="PointLight")i.fromPointLightState(s,r);else if(s.type==="SpotLight")i.fromSpotLightState(s,r);else if(i instanceof si&&to.is(s.type)){let a=s;i.setZoom("PerspectiveCamera",a.perspective.zoom),i.setZoom("OrthographicCamera",a.orthographic.zoom)}}var $l=class{constructor(e){this.objectState=e;this.uuid=$e.generateUUID()}static create(e,t){let r=new $l(t);return r.uuid=e,r}execute(e,t){Lv(e,this.objectState,null,t,!0)}};var Jr;(function(e){function i(t,r,n=!0){r.dispatchEvent(t),n&&(r==null||r.traverseAncestors(s=>{s instanceof Zi&&s.dispatchEvent(t)}))}e.dispatchEvent=i})(Jr||(Jr={}));var Pv;(function(t){function i(){return{mousedown:[],mouseup:[],keydown:[],keyup:[]}}t.defaultData=i;function e(r){let n=[];return Object.keys(r).forEach(s=>{let a=r[s];a&&n.push(...a)}),n}t.toArray=e})(Pv||(Pv={}));var Tp;(function(e){function i(){return{keyDown:[],keyUp:[],start:[],lookAt:[],follow:[],scroll:[],link:Pv.defaultData()}}e.defaultData=i})(Tp||(Tp={}));var ns=new Ho,go=new A;function Dv(i,e){let t=[],r=n=>{for(let s of n.children)_n(s)&&!s.raycastLock&&s.visible&&(vA(s)&&i.intersectObject(s,!1,t),r(s))};return r(e),t}var Iv={follow:Vl.listener,keyDown:Hl.listener,keyUp:jl.listener,link:Jl.listener,lookAt:ql.listener,mouseDown:Xl.listener,mouseUp:Yl.listener,mouseHover:Zl.listener,scroll:Ql.listener,start:Kl.listener},$T={follow:kl,keyDown:bp,keyUp:wp,link:Dn,lookAt:Wl,mouseDown:Sp,mouseUp:Mp,mouseHover:mo,scroll:Ap,start:Cv},Nv=class{constructor(e,t,r,n){this.isEnable=!1;this.splineEvents={};this._map={};this._prevObjects=[];this._onMouseDown=e=>{ns.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseDownEvent(e)};this._onMouseUp=e=>{ns.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseUpEvent(e)};this._onMouseMove=e=>{ns.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._camera.getWorldDirection(go),go.negate(),this._handleMouseHoverEvent(void 0,e),this._handleLookAtEvent(e),this._handleFollowEvent(e)};this._onWheel=e=>{this._handleWheelEvent(e)};this._onTouchStart=e=>{e.touches.length===1&&(ns.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(go),go.negate(),this._handleMouseDownEvent(e),this._handleMouseHoverEvent(void 0,e),this._handleLookAtEvent(e),this._handleFollowEvent(e))};this._onTouchEnd=e=>{this._handleMouseUpEvent(e),this._handleMouseHoverEvent(!0,e)};this._onTouchMove=e=>{e.touches.length===1&&(ns.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(go),go.negate(),this._handleMouseHoverEvent(void 0,e),this._handleLookAtEvent(e),this._handleFollowEvent(e))};this._onKeyDown=e=>{this._handleKeyDownEvent(e)};this._onKeyUp=e=>{this._handleKeyUpEvent(e)};this._domElement=e,this._scene=t,this._camera=r,this._app=n}activate(){this.isEnable=!0,this._map=Tp.defaultData(),this._scene.traverseEntity(e=>{e.interaction!==void 0&&(e.interaction.start(),Object.keys(e.interaction.events).forEach(t=>{let r=t;this._addDOMCustomEvent(r,e),this._addSPEEvent(r,Iv[r],e)}))}),this._domElement.addEventListener("pointerdown",this._onMouseDown,!1),this._domElement.addEventListener("pointerup",this._onMouseUp,!1),this._domElement.addEventListener("touchstart",this._onTouchStart,!1),this._domElement.addEventListener("touchend",this._onTouchEnd,!1),this._domElement.addEventListener("wheel",this._onWheel,!1),this._domElement.addEventListener("pointermove",this._onMouseMove,!1),this._domElement.addEventListener("touchmove",this._onTouchMove,!1),document.addEventListener("keydown",this._onKeyDown,!1),document.addEventListener("keyup",this._onKeyUp,!1),this._handleStartEvent()}deactivate(){this._scene.traverseEntity(e=>{if(!e.interaction)return;e.interaction.end();let t=e;Object.keys(Iv).forEach(r=>{let n=r;t.removeEventListener(n,Iv[n])})}),this._domElement.removeEventListener("pointerdown",this._onMouseDown),this._domElement.removeEventListener("pointerup",this._onMouseUp),this._domElement.removeEventListener("pointermove",this._onMouseMove),this._domElement.removeEventListener("touchstart",this._onTouchStart),this._domElement.removeEventListener("touchend",this._onTouchEnd),this._domElement.removeEventListener("touchmove",this._onTouchMove),this._domElement.removeEventListener("wheel",this._onWheel),document.removeEventListener("keydown",this._onKeyDown),document.removeEventListener("keyup",this._onKeyUp),this._map={},this.isEnable=!1}reset(){this._scene.traverseEntity(e=>{var t;(t=e.interaction)==null||t.start()}),this._handleStartEvent()}_getPointer(e,t){let r=this._domElement.getBoundingClientRect();return{x:(e-r.left)/r.width*2-1,y:-((t-r.top)/r.height)*2+1}}_handleStartEvent(){var e;(e=this._map.start)==null||e.forEach(t=>Jr.dispatchEvent(Cv,t))}_handleWheelEvent(e){var t;((t=this._map.scroll)==null?void 0:t.length)&&(Ap.domEvent=e,this._map.scroll.forEach(r=>{Jr.dispatchEvent(Ap,r)}))}_handleMouseDownEvent(e){let t=Dv(ns,this._scene);if(t.length){Sp.domEvent=e,Dn.domEvent=e,Dn.subType="mousedown";for(let{object:r}of t)Jr.dispatchEvent(Sp,r),Jr.dispatchEvent(Dn,r)}}_handleMouseUpEvent(e){let t=Dv(ns,this._scene);if(t.length){Mp.domEvent=e,Dn.domEvent=e,Dn.subType="mouseup";for(let{object:r}of t)Jr.dispatchEvent(Mp,r),Jr.dispatchEvent(Dn,r)}}_handleMouseHoverEvent(e=!1,t){let r=[];if(!e){let n=Dv(ns,this._scene);n&&(r=n==null?void 0:n.map(s=>s.object))}this._prevObjects.length&&(mo.domEvent=t,mo.enter=!1,this._prevObjects.forEach(n=>{r.includes(n)||Jr.dispatchEvent(mo,n)})),r.length&&(mo.domEvent=t,mo.enter=!0,r.forEach(n=>Jr.dispatchEvent(mo,n))),this._prevObjects=r}_handleLookAtEvent(e){var t;((t=this._map.lookAt)==null?void 0:t.length)&&(Wl.domEvent=e,Wl.normal=go,Wl.raycaster=ns,this._map.lookAt.forEach(r=>Jr.dispatchEvent(Wl,r)))}_handleFollowEvent(e){this._map.follow&&(kl.domEvent=e,kl.normal=go,kl.raycaster=ns,this._map.follow.forEach(t=>Jr.dispatchEvent(kl,t)))}_handleKeyDownEvent(e){var t,r,n;((t=this._map.keyDown)==null?void 0:t.length)&&(bp.domEvent=e,this._map.keyDown.forEach(s=>Jr.dispatchEvent(bp,s))),((n=(r=this._map.link)==null?void 0:r.keydown)==null?void 0:n.length)&&(Dn.domEvent=e,Dn.subType="keydown",this._map.link.keydown.forEach(s=>Jr.dispatchEvent(Dn,s)))}_handleKeyUpEvent(e){var t,r,n;((t=this._map.keyUp)==null?void 0:t.length)&&(wp.domEvent=e,this._map.keyUp.forEach(s=>{Jr.dispatchEvent(wp,s)})),((n=(r=this._map.link)==null?void 0:r.keyup)==null?void 0:n.length)&&(Dn.domEvent=e,Dn.subType="keyup",this._map.link.keyup.forEach(s=>Jr.dispatchEvent(Dn,s)))}_addSPEEvent(e,t,r){var n,s;if(!!r.interaction)if($T[e].begin=this._dispatchDOMCustomEvent.bind(this),$T[e].change=this._app.requestRender.bind(this),e==="link"){let o=r.interaction.events[e];if(o){let a=!1;Object.keys(o).forEach(l=>{var u,d,h;let c=l;((u=o[c])==null?void 0:u.length)&&((h=(d=this._map[e])==null?void 0:d[c])==null||h.push(r),a=!0)}),a&&r.addEventListener(e,t)}}else((n=r.interaction.events[e])==null?void 0:n.length)&&(r.addEventListener(e,t),(s=this._map[e])==null||s.push(r))}_addDOMCustomEvent(e,t){if(e){let r=new CustomEvent(e,{bubbles:!0});Object.defineProperty(r,"target",{writable:!1,value:{id:t.uuid,name:t.name}}),this.splineEvents[e]?this.splineEvents[e][t.uuid]=r:this.splineEvents[e]={[t.uuid]:r}}}_dispatchDOMCustomEvent(e,t){var n;let r=(n=this.splineEvents[e])==null?void 0:n[t];r&&this._domElement.dispatchEvent(r)}};var Rv=class{constructor(e,t,r,n,s){this._aspect=1;this._renderer=e,this._camera=t,this._frameSize=new B().copy(r),this._editorSize=new B().copy(n),this._aspect=t.aspect,this._fov=s!=null?s:t.fov}set frameSize(e){this._frameSize.copy(e)}updateRenderer(){!this._renderer||this._renderer.setSize(this._frameSize.x,this._frameSize.y)}updateViewportForImageExport(){if(!this._renderer||!this._camera||this._camera.cameraType!=="PerspectiveCamera")return;let e=this._frameSize.x,t=this._frameSize.y,r=this._editorSize.x,n=this._editorSize.y;this._aspect=e/t,this._camera.zoom*=Math.min(r/e,n/t),this._renderer.setViewport(0,0,e,t)}updateViewport(){if(!this._renderer||!this._camera||this._camera.cameraType!=="PerspectiveCamera")return;let e=this._frameSize.x,t=this._frameSize.y,r=this._editorSize.x,n=this._editorSize.y,s=0,o=0,a=e,l=t;e<r&&(s=(r-e)*.5,s=-s,a=r),t<n&&(o=(n-t)*.5,o=-o,l=n),this._aspect=a/l,this._renderer.setViewport(s,o,a,l)}updateCamera(){if(!!this._camera)if(this._camera.cameraType==="PerspectiveCamera"){let e=this._frameSize.y,t=this._editorSize.y,r=this._fov;if(e>t){let n=Az(e,1080,2160,1,15)/100;r*=e/t,r*=1-n}this._camera.aspect=this._aspect,this._camera.fov=r,this._camera.updateProjectionMatrix()}else this._camera.setViewplaneSize(this._frameSize.x,this._frameSize.y)}revert(){let e=window.innerWidth,t=window.innerHeight;this._renderer&&(this._renderer.setViewport(0,0,e,t),this._renderer.setSize(e,t)),this._camera&&(this._camera.aspect=e/t,this._camera.fov=this._fov,this._camera.setViewplaneSize(e,t),this._camera.updateProjectionMatrix())}};function Az(i,e,t,r,n){return(i-e)/(t-e)*(n-r)+r}var Bv=class{constructor(e){this.sharedAssets=new Av(e.shared),this.scene=new lv(e.scene,this.sharedAssets),this.scene.switchActiveCamera(this.scene.activeCamera)}reset(e,t){this.scene.clearScene(this.sharedAssets),this.sharedAssets.reset(e.shared),this.scene.resetAfterClear(e.scene,this.sharedAssets)}dispose(){this.scene.dispose()}};var Ov=class{constructor({x:e=10,y:t=10}){this._startTime=0;let r=document.getElementById("spe-perfs");r?this.element=r:(this.element=document.createElement("div"),document.body.appendChild(this.element),this.element.style.position="absolute",this.element.style.zIndex="10000",this.element.style.fontFamily="monospace",this.element.style.background="black",this.element.style.color="white",this.element.style.padding="10px",this.element.style.opacity="0.5",this.element.style.fontSize="11px",this.element.setAttribute("id","spe-perfs")),this.element.style.left=`${e}px`,this.element.style.top=`${t}px`}dispose(){var e;(e=this.element.parentElement)==null||e.removeChild(this.element)}start(){this._startTime=performance.now()}end(){let t=performance.now()-this._startTime;this.element.innerHTML=t.toFixed(3)+" ms"}};function Tz(i){let e;if(!!i.index)for(let t=0;t<i.index.array.length;t+=3)e=i.index.array[t],i.index.array[t]=i.index.array[t+2],i.index.array[t+2]=e}function Fv(i){return i==="SubdivObject"||i==="NonParametric"?i:"Mesh"}function Ez(i,e){let t={};return i.traverseEntity(r=>{var c;if(r.type!=="Mesh"||!("material"in r)||!r.visible||!(r instanceof ir)||Array.isArray(r.material)||r&&r.interaction&&r.interaction.states.length>0)return;let n=r.parent;for(;n;){if(n instanceof ir&&n.interaction&&n.interaction.states.length>1)return;n=n.parent}let s=r.material.uuid,o=e.shared.materials[s];if(o){if(!Hi.isMergable(o))return}else{let u=(c=e.scene.objects.get(r.uuid))==null?void 0:c.data;if(u&&"material"in u&&typeof u.material!="string"){if(!Hi.isMergable(u.material))return;s=Hi.getHash(u.material)}}t[s]||(t[s]={});let l=t[s][Fv(r.objectType)];if(l){if(l.push(r),r.cloner)for(let u of r.cloner.children)l.push(u)}else if(t[s][Fv(r.objectType)]=[r],r.cloner)for(let u of r.cloner.children)t[s][Fv(r.objectType)].push(u)}),t}function _z(i){let e=0;return Object.values(i).forEach(t=>{Object.values(t).forEach(r=>{let n=r.length;n>e&&(e=n)})}),e}function eE(i,e){let t=Ez(e,i),r=_z(t),n=new Array(r),s=0,o=new Array(r),a=0,l=new Array(r),c=0,u=new Array(r),d=0;for(let h of Object.values(t))for(let f of Object.values(h)){if(a=0,c=0,f.forEach(g=>{g instanceof ir&&(o[a++]=g.geometry.clone(),l[c++]=g)}),c<2)continue;for(let g=0;g<c;g++)l[g].updateWorldMatrix(!0,!1),o[g].applyMatrix4(l[g].matrixWorld),l[g].matrixWorld.determinant()<0&&Tz(o[g]);let p=jM(o.slice(0,a),!1);if(p){let g;switch(f[0].objectType){case"SubdivObject":{console.warn("Turning subdiv object into mesh"),g=new Vt(p,l[0].material);break}default:{g=new Vt(p,l[0].material);break}}g.castShadow=l[0].castShadow,g.receiveShadow=l[0].receiveShadow,e.add(g);let v=y=>{d=0;for(let m of y)m.children&&v(m.children),m instanceof ir&&(Array.isArray(m.material)||t[m.material.uuid]&&t[m.material.uuid][m.objectType]&&t[m.material.uuid][m.objectType].length>1||(u[d++]=m));for(let m=0;m<d;m++)e.attach(u[m])};for(let y=0;y<c;y++){let m=l[y];v(m.children),n[s++]=m}}}for(let h=0;h<s;h++)n[h].removeFromParent()}var ec=".",eh=Symbol("target"),Uv=Symbol("unsubscribe");function th(i){return i instanceof Date||i instanceof Set||i instanceof Map||i instanceof WeakSet||i instanceof WeakMap||ArrayBuffer.isView(i)}function tE(i){return(typeof i=="object"?i===null:typeof i!="function")||i instanceof RegExp}var qn=Array.isArray;function ra(i){return typeof i=="symbol"}var Cz={after:(i,e)=>qn(i)?i.slice(e.length):e===""?i:i.slice(e.length+1),concat:(i,e)=>qn(i)?(i=[...i],e&&i.push(e),i):e&&e.toString!==void 0?(i!==""&&(i+=ec),ra(e)?i+e.toString():i+e):i,initial:i=>{if(qn(i))return i.slice(0,-1);if(i==="")return i;let e=i.lastIndexOf(ec);return e===-1?"":i.slice(0,e)},last:i=>{if(qn(i))return i[i.length-1]||"";if(i==="")return i;let e=i.lastIndexOf(ec);return e===-1?i:i.slice(e+1)},walk:(i,e)=>{if(qn(i))for(let t of i)e(t);else if(i!==""){let t=0,r=i.indexOf(ec);if(r===-1)e(i);else for(;t<i.length;)r===-1&&(r=i.length),e(i.slice(t,r)),t=r+1,r=i.indexOf(ec,t)}},get(i,e){return this.walk(e,t=>{i&&(i=i[t])}),i}},xn=Cz;function Gv(i){return typeof i=="object"&&typeof i.next=="function"}function zv(i,e,t,r,n){let s=i.next;if(e.name==="entries")i.next=function(){let o=s.call(this);return o.done===!1&&(o.value[0]=n(o.value[0],e,o.value[0],r),o.value[1]=n(o.value[1],e,o.value[0],r)),o};else if(e.name==="values"){let o=t[eh].keys();i.next=function(){let a=s.call(this);return a.done===!1&&(a.value=n(a.value,e,o.next().value,r)),a}}else i.next=function(){let o=s.call(this);return o.done===!1&&(o.value=n(o.value,e,o.value,r)),o};return i}function Ep(i,e,t){return i.isUnsubscribed||e.ignoreSymbols&&ra(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var _p=class{constructor(e){this._equals=e,this._proxyCache=new WeakMap,this._pathCache=new WeakMap,this.isUnsubscribed=!1}_getDescriptorCache(){return this._descriptorCache===void 0&&(this._descriptorCache=new WeakMap),this._descriptorCache}_getProperties(e){let t=this._getDescriptorCache(),r=t.get(e);return r===void 0&&(r={},t.set(e,r)),r}_getOwnPropertyDescriptor(e,t){if(this.isUnsubscribed)return Reflect.getOwnPropertyDescriptor(e,t);let r=this._getProperties(e),n=r[t];return n===void 0&&(n=Reflect.getOwnPropertyDescriptor(e,t),r[t]=n),n}getProxy(e,t,r,n){if(this.isUnsubscribed)return e;let s=e[n],o=s||e;this._pathCache.set(o,t);let a=this._proxyCache.get(o);return a===void 0&&(a=s===void 0?new Proxy(e,r):e,this._proxyCache.set(o,a)),a}getPath(e){return this.isUnsubscribed?void 0:this._pathCache.get(e)}isDetached(e,t){return!Object.is(e,xn.get(t,this.getPath(e)))}defineProperty(e,t,r){return Reflect.defineProperty(e,t,r)?(this.isUnsubscribed||(this._getProperties(e)[t]=r),!0):!1}setProperty(e,t,r,n,s){if(!this._equals(s,r)||!(t in e)){let o=this._getOwnPropertyDescriptor(e,t);return o!==void 0&&"set"in o?Reflect.set(e,t,r,n):Reflect.set(e,t,r)}return!0}deleteProperty(e,t,r){if(Reflect.deleteProperty(e,t)){if(!this.isUnsubscribed){let n=this._getDescriptorCache().get(e);n&&(delete n[t],this._pathCache.delete(r))}return!0}return!1}isSameDescriptor(e,t,r){let n=this._getOwnPropertyDescriptor(t,r);return e!==void 0&&n!==void 0&&Object.is(e.value,n.value)&&(e.writable||!1)===(n.writable||!1)&&(e.enumerable||!1)===(n.enumerable||!1)&&(e.configurable||!1)===(n.configurable||!1)&&e.get===n.get&&e.set===n.set}isGetInvariant(e,t){let r=this._getOwnPropertyDescriptor(e,t);return r!==void 0&&r.configurable!==!0&&r.writable!==!0}unsubscribe(){this._descriptorCache=null,this._pathCache=null,this._proxyCache=null,this.isUnsubscribed=!0}};function tc(i){return toString.call(i)==="[object Object]"}function rc(){return!0}function yo(i,e){return i.length!==e.length||i.some((t,r)=>e[r]!==t)}var Cp=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var Lz=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),kv={push:rc,pop:rc,shift:rc,unshift:rc,copyWithin:yo,reverse:yo,sort:yo,splice:yo,flat:yo,fill:yo},rE=new Set([...Cp,...Lz,...Object.keys(kv)]);function nc(i,e){if(i.size!==e.size)return!0;for(let t of i)if(!e.has(t))return!0;return!1}var Vv=["keys","values","entries"],Hv=new Set(["has","toString"]),jv={add:nc,clear:nc,delete:nc,forEach:nc},nE=new Set([...Hv,...Object.keys(jv),...Vv]);function ic(i,e){if(i.size!==e.size)return!0;let t;for(let[r,n]of i)if(t=e.get(r),t!==n||t===void 0&&!e.has(r))return!0;return!1}var Pz=new Set([...Hv,"get"]),Wv={set:ic,clear:ic,delete:ic,forEach:ic},iE=new Set([...Pz,...Object.keys(Wv),...Vv]);var Qr=class{constructor(e,t,r,n){this._path=t,this._isChanged=!1,this._clonedCache=new Set,this._hasOnValidate=n,this._changes=n?[]:null,this.clone=t===void 0?e:this._shallowClone(e)}static isHandledMethod(e){return Cp.has(e)}_shallowClone(e){let t=e;if(tc(e))t=ne({},e);else if(qn(e))t=[...e];else if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set([...e].map(r=>this._shallowClone(r)));else if(e instanceof Map){t=new Map;for(let[r,n]of e.entries())t.set(r,this._shallowClone(n))}return this._clonedCache.add(t),t}preferredThisArg(e,t,r,n){return e?(qn(n)?this._onIsChanged=kv[t]:n instanceof Set?this._onIsChanged=jv[t]:n instanceof Map&&(this._onIsChanged=Wv[t]),n):r}update(e,t,r){let n=xn.after(e,this._path);if(t!=="length"){let s=this.clone;xn.walk(n,o=>{s&&s[o]&&(this._clonedCache.has(s[o])||(s[o]=this._shallowClone(s[o])),s=s[o])}),this._hasOnValidate&&this._changes.push({path:n,property:t,previous:r}),s&&s[t]&&(s[t]=r)}this._isChanged=!0}undo(e){let t;for(let r=this._changes.length-1;r!==-1;r--)t=this._changes[r],xn.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var rh=class extends Qr{static isHandledMethod(e){return rE.has(e)}};var Lp=class extends Qr{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var nh=class extends Qr{static isHandledMethod(e){return nE.has(e)}undo(e){for(let t of this.clone)e.add(t);for(let t of e)this.clone.has(t)||e.delete(t)}};var ih=class extends Qr{static isHandledMethod(e){return iE.has(e)}undo(e){for(let[t,r]of this.clone.entries())e.set(t,r);for(let t of e.keys())this.clone.has(t)||e.delete(t)}};var Pp=class extends Qr{constructor(e,t,r,n){super(void 0,t,r,n);this._arg1=r[0],this._weakValue=e.has(this._arg1)}isChanged(e){return this._weakValue!==e.has(this._arg1)}undo(e){this._weakValue&&!e.has(this._arg1)?e.add(this._arg1):e.delete(this._arg1)}};var Dp=class extends Qr{constructor(e,t,r,n){super(void 0,t,r,n);this._weakKey=r[0],this._weakHas=e.has(this._weakKey),this._weakValue=e.get(this._weakKey)}isChanged(e){return this._weakValue!==e.get(this._weakKey)}undo(e){let t=e.has(this._weakKey);this._weakHas&&!t?e.set(this._weakKey,this._weakValue):!this._weakHas&&t?e.delete(this._weakKey):this._weakValue!==e.get(this._weakKey)&&e.set(this._weakKey,this._weakValue)}};var is=class{constructor(e){this._stack=[],this._hasOnValidate=e}static isHandledType(e){return tc(e)||qn(e)||th(e)}static isHandledMethod(e,t){return tc(e)?Qr.isHandledMethod(t):qn(e)?rh.isHandledMethod(t):e instanceof Set?nh.isHandledMethod(t):e instanceof Map?ih.isHandledMethod(t):th(e)}get isCloning(){return this._stack.length>0}start(e,t,r){let n=Qr;qn(e)?n=rh:e instanceof Date?n=Lp:e instanceof Set?n=nh:e instanceof Map?n=ih:e instanceof WeakSet?n=Pp:e instanceof WeakMap&&(n=Dp),this._stack.push(new n(e,t,r,this._hasOnValidate))}update(e,t,r){this._stack[this._stack.length-1].update(e,t,r)}preferredThisArg(e,t,r){let{name:n}=e,s=is.isHandledMethod(r,n);return this._stack[this._stack.length-1].preferredThisArg(s,n,t,r)}isChanged(e,t,r){return this._stack[this._stack.length-1].isChanged(e,t,r)}undo(e){this._previousClone!==void 0&&this._previousClone.undo(e)}stop(){return this._previousClone=this._stack.pop(),this._previousClone.clone}};var Dz={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},qv=(i,e,t={})=>{t=ne(ne({},Dz),t);let r=Symbol("ProxyTarget"),{equals:n,isShallow:s,ignoreDetached:o,details:a}=t,l=new _p(n),c=typeof t.onValidate=="function",u=new is(c),d=(m,x,w,b,E)=>!c||u.isCloning||t.onValidate(xn.concat(l.getPath(m),x),w,b,E)===!0,h=(m,x,w,b)=>{!Ep(l,t,x)&&!(o&&l.isDetached(m,i))&&f(l.getPath(m),x,w,b)},f=(m,x,w,b,E)=>{u.isCloning?u.update(m,x,b):e(xn.concat(m,x),w,b,E)},p=m=>m&&(m[r]||m),g=(m,x,w,b)=>tE(m)||w==="constructor"||s&&!is.isHandledMethod(x,w)||Ep(l,t,w)||l.isGetInvariant(x,w)||o&&l.isDetached(x,i)?m:(b===void 0&&(b=l.getPath(x)),l.getProxy(m,xn.concat(b,w),v,r)),v={get(m,x,w){if(ra(x)){if(x===r||x===eh)return m;if(x===Uv&&!l.isUnsubscribed&&l.getPath(m).length===0)return l.unsubscribe(),m}let b=th(m)?Reflect.get(m,x):Reflect.get(m,x,w);return g(b,m,x)},set(m,x,w,b){w=p(w);let E=m[r]||m,T=E[x];if(n(T,w)&&x in m)return!0;let S=d(m,x,w,T);return S&&l.setProperty(E,x,w,b,T)?(h(m,x,m[x],T),!0):!S},defineProperty(m,x,w){if(!l.isSameDescriptor(w,m,x)){let b=m[x];d(m,x,w.value,b)&&l.defineProperty(m,x,w,b)&&h(m,x,w.value,b)}return!0},deleteProperty(m,x){if(!Reflect.has(m,x))return!0;let w=Reflect.get(m,x),b=d(m,x,void 0,w);return b&&l.deleteProperty(m,x,w)?(h(m,x,void 0,w),!0):!b},apply(m,x,w){let b=x[r]||x;if(l.isUnsubscribed)return Reflect.apply(m,b,w);if((a===!1||a!==!0&&!a.includes(m.name))&&is.isHandledType(b)){let E=xn.initial(l.getPath(m)),T=is.isHandledMethod(b,m.name);u.start(b,E,w);let S=Reflect.apply(m,u.preferredThisArg(m,x,b),T?w.map(M=>p(M)):w),N=u.isChanged(b,n),C=u.stop();if(is.isHandledType(S)&&T&&(x instanceof Map&&m.name==="get"&&(E=xn.concat(E,w[0])),S=l.getProxy(S,E,v)),N){let M={name:m.name,args:w,result:S},_=u.isCloning?xn.initial(E):E,D=u.isCloning?xn.last(E):"";d(xn.get(i,_),D,b,C,M)?f(_,D,b,C,M):u.undo(b)}return(x instanceof Map||x instanceof Set)&&Gv(S)?zv(S,m,x,E,g):S}return Reflect.apply(m,x,w)}},y=l.getProxy(i,t.pathAsArray?[]:"",v);return e=e.bind(y),c&&(t.onValidate=t.onValidate.bind(y)),y};qv.target=i=>i&&i[eh]||i;qv.unsubscribe=i=>i[Uv]||i;var Xv=qv;var vo;(function(t){t[t.FULLSCREEN=1]="FULLSCREEN",t[t.CUSTOM=2]="CUSTOM"})(vo||(vo={}));var Iz=class{constructor(e,{autoRender:t=!1}={}){this._viewportMode=1;this._viewportWidth=window.innerWidth;this._viewportHeight=window.innerHeight;this._proxyObjectCache=new Map;this._skipRender=!0;this.autoRender=!1;this.requestRender=()=>{this._skipRender=!1};this.render=()=>{var e,t,r;!this._renderer||(this._rafId=requestAnimationFrame(this.render),(e=this._perfs)==null||e.start(),!(!this.autoRender&&this._skipRender)&&(this._controls&&(this._controls.enableDamping||this._controls.autoRotate)?this._skipRender=!this._controls.update():this._skipRender=!0,this._playmode&&!this._playmode.isEnable&&this._playmode.activate(),this._scene&&this._camera&&(this._renderer.autoClear=!1,this._transmissionRenderTarget&&(this._renderer.setRenderTarget(this._transmissionRenderTarget),this._renderer.clear(),this._camera.layers.enable(0),this._camera.layers.disable(3),this._renderer.render(this._scene,this._camera),this._renderer.setRenderTarget(null),this._camera.layers.enable(3)),((t=this._scene.postprocessing)==null?void 0:t.enabled)?(this._renderer.autoClear=!1,this._scene.postprocessing.render()):(this._renderer.autoClear=!0,this._renderer.render(this._scene,this._camera))),(r=this._perfs)==null||r.end()))};this.resize=()=>{var e,t,r,n;!this._renderer||(this._viewportMode===1&&(this._viewportWidth=window.innerWidth,this._viewportHeight=window.innerHeight,this._frameView&&(this._frameView.frameSize=new B(this._viewportWidth,this._viewportHeight))),(e=this._frameView)==null||e.updateRenderer(),((t=this._scene)==null?void 0:t.postprocessing)&&this._scene.postprocessing.resize(this._viewportWidth,this._viewportHeight),this._viewportMode!==1&&((r=this._frameView)==null||r.updateViewport()),this._camera&&((n=this._frameView)==null||n.updateCamera(),this._camera.cameraType==="PerspectiveCamera"&&this._viewportMode===1&&(this._camera.aspect=this._viewportWidth/this._viewportHeight),this._camera.updateProjectionMatrix()),this.requestRender())};this.canvas=e,this.autoRender=t,window.addEventListener("resize",Kc(this.resize,200)),window.location.search.includes("perfs")&&(this._perfs=new Ov({x:10,y:10}))}async load(e){let r=await(await fetch(e)).arrayBuffer();this.start(r)}start(e){var o;let t=cf.deserialize(new Uint8Array(e));this._publishData=t.scene.publish;let r=new Bv(t);if(window.location.search.includes("merge-geometries")){let a=performance.now();eE(t,r.scene);let l=performance.now();console.log("Merged geometries in ",l-a," ms")}this._scene=r.scene,this._sharedAssetsManager=r.sharedAssets,this._sharedAssetsManager.onImageLoad=()=>{this.requestRender()},ZT(t.scene,this._scene,this._sharedAssetsManager),this._camera=this._scene.activeCamera;let n=Object.values(t.frames)[0];n&&(n.preset==="fullscreen"?(this._viewportMode=1,this._viewportWidth=window.innerWidth,this._viewportHeight=window.innerHeight):(this._viewportMode=2,this._viewportWidth=n.size[0],this._viewportHeight=n.size[1])),((o=this._scene.postprocessing)==null?void 0:o.enabled)?(this._renderer=new Dt({canvas:this.canvas,antialias:!1,alpha:!0,stencil:!1,depth:!1,powerPreference:"high-performance"}),this._scene.postprocessing.init({renderer:this._renderer,camera:this._camera,scene:this._scene}),this._scene.postprocessing.addEventListener("smaaloaded",this.requestRender)):this._renderer=new Dt({canvas:this.canvas,antialias:!0,alpha:!0,stencil:!0,depth:!0,powerPreference:"high-performance"}),this._scene.needsTransmission(void 0)&&(this._transmissionRenderTarget=new gt(2048,2048,{generateMipmaps:!0,minFilter:Ci,magFilter:st,wrapS:Mr,wrapT:Mr}),this._transmissionRenderTarget.depthTexture=new Ii(2048,2048),this._scene.needsTransmission(this._transmissionRenderTarget)),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.setSize(this._viewportWidth,this._viewportHeight),this._scene.postprocessing&&this._scene.postprocessing.resize(this._viewportWidth,this._viewportHeight),this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=Bp,this._renderer.setClearColor(this._scene.bgColor,this._scene.alpha),this._frameView=new Rv(this._renderer,this._camera,new B(this._viewportWidth,this._viewportHeight),new B(window.innerWidth,window.innerHeight)),!0&&(this._controls=new Jg(this._camera,this._renderer.domElement),this._publishData&&(this._controls.fromJSON(this._publishData.orbitControls),this._controls.useKeyEvents=!1),this._controls.addEventListener("change",this.requestRender),this._controls.addEventListener("start",this.requestRender)),this._playmode=new Nv(this._renderer.domElement,this._scene,this._camera,this),this.resize(),this.render()}findObjectById(e){var r;let t=(r=this._scene)==null?void 0:r.getObjectByProperty("uuid",e);return this._createProxyObject(t)}findObjectByName(e){var r;let t=(r=this._scene)==null?void 0:r.getObjectByName(e);return this._createProxyObject(t)}getSplineEvents(){var e;return(e=this._playmode)==null?void 0:e.splineEvents}emitEvent(e,t){let r=this.findObjectById(t);r==null||r.emitEvent(e)}emitEventReverse(e,t){let r=this.findObjectById(t);r==null||r.emitEventReverse(e)}addEventListener(e,t){var r;(r=this._renderer)==null||r.domElement.addEventListener(e,t)}removeEventListener(e,t){var r;(r=this._renderer)==null||r.domElement.removeEventListener(e,t)}setZoom(e){var t;(t=this._controls)==null||t.zoomOut(e)}dispose(){var e,t,r,n,s,o,a;(e=this._playmode)==null||e.deactivate(),(t=this._scene)==null||t.dispose(),this._rafId&&cancelAnimationFrame(this._rafId),this._proxyObjectCache.forEach(l=>{Xv.unsubscribe(l)}),(r=this._renderer)==null||r.dispose(),(n=this._transmissionRenderTarget)==null||n.dispose(),(o=(s=this._transmissionRenderTarget)==null?void 0:s.depthTexture)==null||o.dispose(),(a=this._sharedAssetsManager)==null||a.dispose()}_createProxyObject(e){if(e==null)return;if(this._proxyObjectCache.has(e.uuid))return this._proxyObjectCache.get(e.uuid);let t={name:e.name,uuid:e.uuid,visible:e.visible,intensity:e.intensity,position:e.position,rotation:e.rotation,scale:e.scale,emitEvent(n){var s;(s=e.interaction)==null||s.emitEvent(n)},emitEventReverse(n){var s;(s=e.interaction)==null||s.emitEventReverse(n)}},r=Xv(t,(n,s)=>{var a;typeof e[n]!="object"&&((a=Object.getOwnPropertyDescriptor(e,n))==null?void 0:a.writable)&&(e[n]=s),this.requestRender(),e.updateMatrix()});return this._proxyObjectCache.set(e.uuid,r),r}};sn.FONTS_PATH="_assets/_fonts/";export{Iz as Application};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@splinetool/runtime",
3
- "version": "0.9.27",
3
+ "version": "0.9.28",
4
4
  "main": "build/runtime.js",
5
5
  "files": [
6
6
  "build",