@splinetool/runtime 0.9.14 → 0.9.17

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 +1 -1
  2. package/package.json +1 -1
package/build/runtime.js CHANGED
@@ -4414,4 +4414,4 @@ vec2 coord=(uv-center)*vec2(offset);color=mix(color,vec3(1.0-darkness),dot(coord
4414
4414
  #else
4415
4415
  float d=distance(uv,center);color*=smoothstep(0.8,offset*0.799,d*(darkness+offset));
4416
4416
  #endif
4417
- outputColor=vec4(color,inputColor.a);}`,A1=class extends Yi{constructor(i={}){let e=Object.assign({blendFunction:pt.NORMAL,eskil:!1,offset:.5,darkness:.5},i);super("VignetteEffect",uz,{blendFunction:e.blendFunction,uniforms:new Map([["offset",new Te(e.offset)],["darkness",new Te(e.darkness)]])});this.eskil=e.eskil}get eskil(){return this.defines.has("ESKIL")}set eskil(i){this.eskil!==i&&(i?this.defines.set("ESKIL","1"):this.defines.delete("ESKIL"),this.setChanged())}},Mie=[new Float32Array(3),new Float32Array(3)],Aie=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],Tie=[[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 _ie=[new Float32Array(2),new Float32Array(2)];var Eie=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),Cie=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],Lie=[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])],Nie=[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 Pie=new Map([[$r(0,0,0,0),new Float32Array([0,0,0,0])],[$r(0,0,0,1),new Float32Array([0,0,0,1])],[$r(0,0,1,0),new Float32Array([0,0,1,0])],[$r(0,0,1,1),new Float32Array([0,0,1,1])],[$r(0,1,0,0),new Float32Array([0,1,0,0])],[$r(0,1,0,1),new Float32Array([0,1,0,1])],[$r(0,1,1,0),new Float32Array([0,1,1,0])],[$r(0,1,1,1),new Float32Array([0,1,1,1])],[$r(1,0,0,0),new Float32Array([1,0,0,0])],[$r(1,0,0,1),new Float32Array([1,0,0,1])],[$r(1,0,1,0),new Float32Array([1,0,1,0])],[$r(1,0,1,1),new Float32Array([1,0,1,1])],[$r(1,1,0,0),new Float32Array([1,1,0,0])],[$r(1,1,0,1),new Float32Array([1,1,0,1])],[$r(1,1,1,0),new Float32Array([1,1,1,0])],[$r(1,1,1,1),new Float32Array([1,1,1,1])]]);function zy(i,e,t){return i+(e-i)*t}function $r(i,e,t,r){let n=zy(i,e,1-.25),s=zy(t,r,1-.25);return zy(n,s,1-.125)}var T1=class extends Cn{load(i=()=>{},e=null){arguments.length===4?(i=arguments[1],e=arguments[3]):(arguments.length===3||typeof arguments[0]!="function")&&(i=arguments[1],e=null);let t=this.manager,r=new Xa;return new Promise((n,s)=>{let o=new Image,a=new Image;r.onError=l=>{t.itemError(l),e!==null?(e(`Failed to load ${l}`),n()):s(`Failed to load ${l}`)},r.onLoad=()=>{let l=[o,a];i(l),n(l)},o.addEventListener("error",l=>{r.itemError("smaa-search")}),a.addEventListener("error",l=>{r.itemError("smaa-area")}),o.addEventListener("load",()=>{t.itemEnd("smaa-search"),r.itemEnd("smaa-search")}),a.addEventListener("load",()=>{t.itemEnd("smaa-area"),r.itemEnd("smaa-area")}),t.itemStart("smaa-search"),t.itemStart("smaa-area"),r.itemStart("smaa-search"),r.itemStart("smaa-area"),o.src=w1,a.src=S1})}};var wr=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=pt.NORMAL}toJSON(){let e=["constructor","effect","subscriptions"],t=re({},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 _h=class extends wr{constructor(){super(f1);this.blendFunction=pt.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 Eh=class extends wr{constructor(){super(p1)}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 Ch=class extends wr{constructor(){super(g1);this.effect.offset=new F(.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 Lh=class extends wr{constructor(){super(m1)}};var Nh=class extends wr{constructor(){super(v1);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 Ph=class extends wr{constructor(){super(x1);this.blendFunction=pt.OVERLAY}};var Dh=class extends wr{constructor(){super(A1)}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 Ih=class extends wr{constructor(e){super(y1,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 Rh=class extends wr{constructor(){super(b1)}get granularity(){return this.effect.getGranularity()}set granularity(e){this.effect.setGranularity(e)}};function _1(i,e){return e&&e.enabled&&i.push(e.effect),i}var Zf=class{constructor(){this._scene=new Or;this._camera=new Kn;this.effects=new Map;this.loadingManager=new Xa;this.smaaImageLoader=new T1(this.loadingManager);this.renderPass=new Fy;this._renderToScreen=!0;this._hasSmaa=!1;this.search=null;this.area=null;this.clock=new Im,this.enabled=!1,this.debug=!1,this.effects.set("bloom",new _h),this.effects.set("chromaticAberration",new Ch),this.effects.set("vignette",new Dh),this.effects.set("noise",new Ph),this.effects.set("colorAverage",new Lh),this.effects.set("hueSaturation",new Nh),this.effects.set("brightnessContrast",new Eh),this.effects.set("depthOfField",new Ih),this.effects.set("pixelation",new Rh),this.smaaPromise=this.loadSmaaImages()}get scene(){return this._scene}set scene(e){this._scene=e}get camera(){return this._camera}set camera(e){this._camera=e}loadSmaaImages(){return new Promise(e=>{this.smaaImageLoader.load(([t,r])=>{this.search=t,this.area=r,e()})})}async _initSmaa(){if(!this.effectComposer)return;let e=this.effectComposer.passes.length;(!this.area||!this.search)&&await this.smaaPromise;let t=new M1(this.search,this.area,Zo.ULTRA,Qf.COLOR);t.edgeDetectionMaterial.setPredicationMode(o1.DEPTH),t.edgeDetectionMaterial.setEdgeDetectionThreshold(.05),t.edgeDetectionMaterial.setPredicationThreshold(.002),t.edgeDetectionMaterial.setPredicationScale(1),this.effectComposer.addPass(new Kf(this.camera,t),e),this._hasSmaa=!0}async _initPasses(){if(!(!this.effectComposer||!this.renderer))if(this.effectComposer.removeAllPasses(),this._hasSmaa=!1,this.renderPass=new Fy(this.scene,this.camera),this.enabled){this.effectComposer.addPass(this.renderPass),await this._initSmaa();let e=[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(_1,[]),t=[this.effects.get("pixelation")].reduce(_1,[]);t.length>0&&this.effectComposer.addPass(new Kf(this.camera,...t)),this.effectComposer.addPass(new Kf(this.camera,...e))}else this.effectComposer.addPass(this.renderPass)}async reinit(){!this.renderer||(this.effectComposer=new d1(this.renderer),await this._initPasses())}async init({renderer:e,camera:t,scene:r}){this.renderer=e,this.scene=r,this.camera=t,this._initSavePass(),await this.reinit()}_initSavePass(){if(this._savePass)return;let e=new F;this.renderer.getDrawingBufferSize(e);let t=this.renderer.capabilities.isWebGL2?Ns:xt;this._rt=new t(e.x,e.y,{depthBuffer:!1,stencilBuffer:!1,wrapS:Es,wrapT:Es}),this._savePass=new l1(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,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),re({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 Qe?(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 Qe?(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;(e=this.effectComposer)==null||e.dispose()}};function E1(i,e){return dz(i)}function dz(i){let e={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let r=wt.createFromState(i.shape,i.width,i.height);e.shape=r}else i.type==="NonParametricGeometry"&&(e.geometry=new Ro().parse(i));let t;try{t=th(e)}catch(r){console.error(r)}if(!t){let r=wt.createFromState(Ml.defaultData(),100,100);e.shape=r,t=th(e)}return t}var N1=av(L1());var Uy;ff.then(i=>{Uy=i});var P1=new Me,fz=new Me,pz=new Me,bi=new tr,uo=new A,mz=new Me,gz=new Me,$o=class extends Er{constructor(e,t,r,n=new qn){super(r!=null?r:t,n);this.subdivPointer=e;this.originalGeometry=t;this.subdividedGeometry=r;this.objectType="SubdivObject";this.hiddenMatrixOld=new Me;this.smoothShading=!0;this.matrixWorldRigid=new Me;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,t,r){let{subdivPointer:n,originalGeometry:s,subdividedGeometry:o}=Wn.build(t.geometry,void 0,void 0,!t.flatShading),a=ao(t.material,r),l=new $o(n,s,o||void 0,a);return l.calcBoundingBox(),l.freeSubdivPointer(),l.uuid=e,l.fromState(t),l}shallowClone(e){return new Mh(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}=Wn.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){Wn.buildLevel(this.subdivPointer,!0,this.smoothShading,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Wn.buildLevel(this.subdivPointer,!1,this.smoothShading,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){var e;this.originalGeometry.dispose(),this.originalGeometry=Wn.buildLevel(this.subdivPointer,!0,this.smoothShading),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Wn.buildLevel(this.subdivPointer,!1,this.smoothShading)),this.geometry=(e=this.subdividedGeometry)!=null?e:this.originalGeometry}raycast(e,t){var r;this.geometry=this.originalGeometry,Er.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,N1.SVD)(t),o=P1.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=fz.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=pz.copy(a).transpose();this.shearScale=mz.makeScale(s[0],s[1],s[2]).multiply(l).premultiply(a),this.shearScaleInv=gz.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 tn);let t=e.attributes.position,r=e.boundingSphere.center;bi.setFromBufferAttribute(t),bi.getCenter(r),e.boundingSphere.radius=r.distanceTo(bi.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),bi.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;bi.min.set(e[0],e[2],e[4]),bi.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(bi.min.applyMatrix4(this.shearScaleInv),bi.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new tn);let r=t.boundingSphere.center;bi.getCenter(r),t.boundingSphere.radius=r.distanceTo(bi.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),bi.getSize(uo);let n={width:uo.x,height:uo.y,depth:uo.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(Uy.free_bvh(this.subdivPointer),Uy.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,D1(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(D1(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters=re({},e.parameters)}};function D1(i,e,t,r){let n=i.position.array,s=i.normal.array,o=P1.makeScale(e,t,r).invert().elements,a,l,c;for(var h=0,d=n.length;h<d;h+=3)n[h]*=e,n[h+1]*=t,n[h+2]*=r,a=s[h],l=s[h+1],c=s[h+2],s[h]=o[0]*a+o[4]*l+o[8]*c,s[h+1]=o[1]*a+o[5]*l+o[9]*c,s[h+2]=o[2]*a+o[6]*l+o[10]*c}function I1(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===bl.Front?i.side=ei:e.side===bl.Back?i.side=Gt:i.side=Xt)}function yz(i,e){if(Array.isArray(i.material))for(let t of i.material)I1(t,e);else{let t=i.material;I1(t,e)}i.objectType==="SubdivObject"&&e.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!e.flatShading,i.updateMesh())}function R1(i,e,t){let r;if(e.geometry.type==="SubdivGeometry")r=$o.createFromState(i,e,t);else{let n=E1(e.geometry,t),s="materials"in e?sA(e.materials,t):ao(e.material,t);Xd.is2DParametricMesh(n.userData.type)?r=new wh(n,s):(n==null?void 0:n.userData.type)==="VectorGeometry"?r=new Ko(n,s):e.geometry.type==="NonParametricGeometry"?r=new Mh(n,s):r=new Sh(n,s),r.uuid=i,r.fromState(e)}return yz(r,e),r}function O1(i,e,t){return e.type==="Mesh"?R1(i,e,t):e.type==="TextFrame"?zl.createFromState(i,e,t):e.type==="Empty"?Zn.createFromState(i,e):e.type==="PointLight"?xh.createFromState(i,e,t):e.type==="SpotLight"?bh.createFromState(i,e,t):e.type==="DirectionalLight"?vh.createFromState(i,e,t):Ks.is(e.type)?Kn.createFromState(i,e):(console.error(e),new Zn)}function vz(i,e){e.uniforms[`f${e.id}_transmissionSamplerMap`].value=i.texture,e.uniforms[`f${e.id}_transmissionDepthMap`].value=i.depthTexture}function B1(i,e,t){if(!t.userData.layers)return!1;let r=!1,n=t.userData.layers.getLayersOfType(at.TRANSMISSION);return n.length>0?(e.layers.set(3),r=!0,i!==void 0&&n.forEach(s=>vz(i,s))):e.layers.set(0),r}function F1(i,e){let t=!1;return e.traverseEntity(r=>{if(r instanceof Er)if(Array.isArray(r.material))for(let n=0;n<r.material.length;n++)B1(i,r,r.material[n])&&(t=!0);else B1(i,r,r.material)&&(t=!0)}),t}function G1(i,e){"material"in i&&xz(i.material,e),"geometry"in i&&i.geometry.dispose()}function xz(i,e){tb(i).forEach(t=>{e.isSharedMaterial(t)||t.dispose()})}var z1=new A,ky=class extends kf(Or){constructor(e,t){super();this.objectType="Scene";this.alpha=1;this.backupFog=new Oa(16777215,.1,2e3);this.fogUseBGColor=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this._needsTransmission=!1;this._color=new ve(1,0,0);this.bgColor=new ve(1,1,1);this.entityByUuid={};this.postprocessing=new Zf,this.ambientLight=new Io(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.init(e,t)}needsTransmission(e){return this.needsTransmissionDirty&&(this._needsTransmission=F1(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.initPostprocessing(e.postprocessing),this.createChildrenObjects(e.objects,this,t),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(ir(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 Kn&&this.switchActiveCamera(r)}}initPostprocessing(e){let n=e,{enabled:t}=n,r=sv(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()}clearScene(e){this.traverseEntity(t=>{G1(t,e)});for(let t of this.children)wn(t)&&t.removeFromParent()}resetAfterClear(e,t){this.init(e,t)}createPersonalCamera(){let e=Kn.createFromState(ky.PERSONAL_CAMERA_ID,xe(re({},Qd.defaultData),{name:"personal"}));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)wn(s)&&!s.raycastLock&&s.visible&&((mf(s)||ps(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)wn(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=ir(e.color,t),this.backupFog.near=e.near,this.backupFog.far=e.far}toJSON(e){return{}}fromJSON(e){return this}dispose(){this.traverseEntity(e=>{"geometry"in e&&e.geometry.dispose(),"material"in e&&(e.material instanceof Array?e.material.forEach(t=>t.dispose()):e.material.dispose())}),this.postprocessing.dispose()}updateAmbientLight(e,t){XM(this.ambientLight,e,t),e.groundColor!==void 0&&(this.ambientLight.groundColor=ir(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,this.postprocessing.camera=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=O1(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 tr;return r.setFromPoints(t),r.getCenter(z1),z1}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 Er)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(at.TRANSMISSION).forEach(a=>{a.uniforms[`f${a.id}_aspectRatio`].value.x=r,a.uniforms[`f${a.id}_aspectRatio`].value.y=n})})}},ep=ky;ep.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var Vy=class{constructor(e,t,r,n){this.isEnable=!1;this.splineEvents={};this._enableEvent={};this._map={};this._prevAncestors=[];this._raycaster=new Tg;this._intersection=new A;this._plane=new fn;this._normal=new A;this._position=new A;this._onMouseDown=e=>{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseDownEvent()};this._onMouseUp=e=>{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseUpEvent()};this._onMouseMove=e=>{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent()};this._onWheel=e=>{this._handleWheelEvent(e)};this._onTouchStart=e=>{e.touches.length===1&&(this._raycaster.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseDownEvent(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent())};this._onTouchEnd=()=>{this._handleMouseUpEvent(),this._handleMouseHoverEvent(!0)};this._onTouchMove=e=>{e.touches.length===1&&(this._raycaster.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent())};this._onKeyDown=e=>{this._handleKeyDownEvent(e.key)};this._onKeyUp=e=>{this._handleKeyUpEvent(e.key)};this._domElement=e,this._scene=t,this._camera=r,this._app=n}activate(){this.isEnable=!0,this._scene.traverseEntity(e=>{if(e.interaction!==void 0){e.interaction.start();for(let t of e.interaction.events){let r=t.type;this._addCustomEvent(r,e),this._enableEvent[r]=!0,(r===Je.KEY_DOWN||r===Je.KEY_UP||r===Je.START||r===Je.LOOK_AT||r===Je.FOLLOW||r===Je.SCROLL)&&(this._map[r]===void 0&&(this._map[r]=[]),this._map[r].push(e))}}}),this._enableEvent[Je.START]!==void 0&&this._handleStartEvent(),this._enableEvent[Je.MOUSE_DOWN]!==void 0&&(this._domElement.addEventListener("pointerdown",this._onMouseDown,!1),this._domElement.addEventListener("touchstart",this._onTouchStart,!1)),this._enableEvent[Je.MOUSE_UP]!==void 0&&(this._domElement.addEventListener("pointerup",this._onMouseUp,!1),this._domElement.addEventListener("touchend",this._onTouchEnd,!1)),(this._enableEvent[Je.MOUSE_HOVER]!==void 0||this._enableEvent[Je.LOOK_AT]!==void 0||this._enableEvent[Je.FOLLOW]!==void 0)&&(this._domElement.addEventListener("pointermove",this._onMouseMove,!1),this._domElement.addEventListener("touchstart",this._onTouchStart,!1),this._domElement.addEventListener("touchend",this._onTouchEnd,!1),this._domElement.addEventListener("touchmove",this._onTouchMove,!1)),this._enableEvent[Je.KEY_DOWN]!==void 0&&document.addEventListener("keydown",this._onKeyDown,!1),this._enableEvent[Je.KEY_UP]!==void 0&&document.addEventListener("keyup",this._onKeyUp,!1),this._enableEvent[Je.SCROLL]!==void 0&&this._domElement.addEventListener("wheel",this._onWheel,!1)}deactivate(){this._scene.traverseEntity(e=>{e.interaction!==void 0&&e.interaction.end(),e.interaction.cache=void 0}),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._enableEvent={},this._map={},this.isEnable=!1}reset(){this._scene.traverseEntity(e=>{e.interaction.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[Je.START])==null||e.forEach(t=>{var r;(r=t.interactionCache.start)==null||r.dispatch()})}_handleWheelEvent(e){var t;(t=this._map[Je.SCROLL])==null||t.forEach(r=>{var n;this._dispatchDOMCustomEvent("scroll",r.uuid),(n=r.interactionCache.scroll)==null||n.dispatch(e.deltaY>0?1:-1)})}_handleMouseDownEvent(){var t;let e=this._raycastMesh(this._raycaster);for(let r=0,n=e.length;r<n;++r){let s=e[r].object;if(this._dispatchDOMCustomEvent("mouseDown",s.uuid),(t=s.interactionCache.mouseDown)==null||t.dispatch(),s.traverseAncestors(o=>{var a;o instanceof Zn&&(this._dispatchDOMCustomEvent("mouseDown",o.uuid),(a=o.interactionCache.mouseDown)==null||a.dispatch())}),!s.interactionCache.follow)break}}_handleMouseUpEvent(){var t;let e=this._raycastMesh(this._raycaster);for(let r=0,n=e.length;r<n;++r){let s=e[r].object;if(this._dispatchDOMCustomEvent("mouseUp",s.uuid),(t=s.interactionCache.mouseUp)==null||t.dispatch(),s.traverseAncestors(o=>{var a;o instanceof Zn&&(this._dispatchDOMCustomEvent("mouseUp",o.uuid),(a=o.interactionCache.mouseUp)==null||a.dispatch())}),!s.interactionCache.follow)break}}_handleMouseHoverEvent(e=!1){var t,r;if(this._enableEvent[Je.MOUSE_HOVER]!==void 0){let n;if(!e){let o=this._raycastMesh(this._raycaster).find(a=>!a.object.interactionCache.follow);n=o?o.object:void 0}if(this._prevObject!==n){this._prevObject!==void 0&&((t=this._prevObject.interactionCache.mouseHover)==null||t.dispatchReverse()),n!==void 0&&(this._dispatchDOMCustomEvent("mouseHover",n.uuid),(r=n.interactionCache.mouseHover)==null||r.dispatch());let s=[];n==null||n.traverseAncestors(l=>{l instanceof Zn&&l.interactionCache.mouseHover&&s.push(l)}),this._prevAncestors.filter(l=>{var c;return s.includes(l)?!1:((c=l.interactionCache.mouseHover)==null||c.dispatchReverse(),!0)});let o=s.filter(l=>{var c;return this._prevAncestors.includes(l)?!1:((c=l.interactionCache.mouseHover)==null||c.dispatch(),!0)}),a=this._prevAncestors.filter(l=>s.includes(l));this._prevAncestors=[...a,...o]}this._prevObject=n}}_handleLookAtEvent(){var e;(e=this._map[Je.LOOK_AT])==null||e.forEach(t=>{var n;let r=(n=t.interactionCache.lookAt)==null?void 0:n.distance;this._dispatchDOMCustomEvent("lookAt",t.uuid),r!==void 0&&(this._plane.set(this._normal,-r),this._raycaster.ray.intersectPlane(this._plane,this._intersection),t.interaction.lookAt(this._intersection))}),this._app.requestRender()}_handleFollowEvent(){var e;(e=this._map[Je.FOLLOW])==null||e.forEach(t=>{this._dispatchDOMCustomEvent("follow",t.uuid),this._plane.setFromNormalAndCoplanarPoint(this._normal,t.getWorldPosition(this._position)),this._raycaster.ray.intersectPlane(this._plane,this._intersection),t.interaction.follow(this._intersection)}),this._app.requestRender()}_handleKeyDownEvent(e){var t;(t=this._map[Je.KEY_DOWN])==null||t.forEach(r=>{var s;let n=(s=r.interactionCache.keyDown)==null?void 0:s.find(o=>o.key===e);this._dispatchDOMCustomEvent("keyDown",r.uuid),n==null||n.dispatch()})}_handleKeyUpEvent(e){var t;(t=this._map[Je.KEY_UP])==null||t.forEach(r=>{var s;let n=(s=r.interactionCache.keyUp)==null?void 0:s.find(o=>o.key===e);this._dispatchDOMCustomEvent("keyUp",r.uuid),n==null||n.dispatch()})}_raycastMesh(e){let t=[],r=n=>{for(let s of n.children)wn(s)&&!s.raycastLock&&s.visible&&(qA(s)&&e.intersectObject(s,!1,t),r(s))};return r(this._scene),t}_addCustomEvent(e,t){let r=(()=>{switch(e){case 0:return"mouseDown";case 1:return"mouseUp";case 2:return"mouseHover";case 5:return"keyDown";case 6:return"keyUp";case 7:return"start";case 9:return"lookAt";case 10:return"follow";case 11:return"scroll"}})();if(r){let n=new CustomEvent(r,{bubbles:!0});Object.defineProperty(n,"target",{writable:!1,value:{id:t.uuid,name:t.name}}),this.splineEvents[r]?this.splineEvents[r][t.uuid]=n:this.splineEvents[r]={[t.uuid]:n}}}_dispatchDOMCustomEvent(e,t){var n;let r=(n=this.splineEvents[e])==null?void 0:n[t];r&&this._domElement.dispatchEvent(r)}};var Hy=class{constructor(e,t,r,n,s){this._aspect=1;this._renderer=e,this._camera=t,this._frameSize=new F().copy(r),this._editorSize=new F().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=bz(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 bz(i,e,t,r,n){return(i-e)/(t-e)*(n-r)+r}var U1=new Zr,Ul=class extends Yr{},Oh=class{constructor(e){this.materials={};this.images={};this.colors={};this.transmissionRenderTarget=new xt(2048,2048,{generateMipmaps:!0,minFilter:Si,magFilter:tt,wrapS:or,wrapT:or}),this.transmissionRenderTarget.depthTexture=new ss(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,my(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===U1}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){var t;return(t=this.materials[e])!=null?t:U1}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 Ul(t.r,t.g,t.b,t.a):this.colors[e]=new Ul(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 wz(i,e){switch(i.type){case at.NOISE:return e==="noiseType";case at.TEXTURE:return e==="projection"||e==="axis";case at.DISPLACE:return e==="noiseType";default:return!1}}function jy(i,e,t,r,n){var o;let s=!1;for(let[a,l]of Object.entries(i)){if(!a||l===void 0||If(a,t,n))continue;let c=t.uniforms[`f${t.id}_${a}`];if(!!c)switch(c.constructor){case Lt:if(typeof l=="string"){let h=e.getColor(l);h&&(c.value=h);break}else{let h=l;c.value instanceof Ul?c.value=new Yr(h.r,h.g,h.b,h.a):c.setRGBA(h);break}case Ui:if(typeof l=="string"){let h=e.getColor(l);h&&(c.value=h);break}else{let h=l;c.value instanceof Ul?c.value=new Yr(h.r,h.g,h.b,h.a):c.value.setRGBA(h.r,h.g,h.b,h.a);break}case kr:{let h=l;c.value.setX(h[0]),c.value.setY(h[1]);break}case Vr:{let h=l;c.value.setX(h[0]),c.value.setY(h[1]),c.value.setZ(h[2]);break}case Qr:{let h=l;"image"in h&&(c.value.image=e.getImage(h.image)),"wrapping"in h&&(c.value.wrapS=c.value.wrapT=h.wrapping),"repeat"in h&&c.value.repeat.fromArray(h.repeat),"offset"in h&&c.value.offset.fromArray(h.offset),c.value.needsUpdate=!0;break}case oo:{l.forEach((h,d)=>{c.value[d].setX(h[0]),c.value[d].setY(h[1]),c.value[d].setZ(h[2]),c.value[d].setW(h[3])});break}default:{s=s||wz(t,a),c.value=l;break}}}if(s&&n){let a=Df({id:"0",fi:0,data:n},e);(o=r.userData.layers)==null||o.changeLayer(t.id,re({},a)),r.dispose(),r.needsUpdate=!0}}function k1(i,e,t){var n;let r=[];i.objects.traverse((s,o)=>{var c;if(o.states===void 0)return;let a=e.find(s),l=a.interaction=new co(a);Sz(a,o,null,t),l.states.push(Vi.create(s,o,t));for(let h of o.states){let d=Hc.patch(o,h.data);l.states.push(Vi.create(h.id,d,t))}if(o.events)for(let h of o.events){let d=h.data,u=new lo(d.type);if("key"in d&&(u.key=d.key),"url"in d&&(u.url=(c=d.url)!=null?c:void 0),"distance"in d&&(u.distance=d.distance),"steps"in d&&(u.steps=d.steps),"targets"in d)for(let{data:p}of d.targets){let f=ys.create(p);p.object?(f.object=e.find(p.object),r.push([f,p.object,p.state])):f.object=void 0,u.addTarget(f)}l.events.push(u)}});for(let[s,o,a]of r){let l=e.find(o);l&&(a?s.state=(n=l.interaction.states.find(c=>c.uuid===a))!=null?n:l.interaction.states[0]:s.state=l.interaction.states[0])}}function Sz(i,e,t,r,n=!1){if(!n&&e.states.length===0)return;let s=t===null?e:Hc.patch(e,e.states.data(t));if(jg(i,s),i instanceof Kn&&Ks.is(s.type)){let a=s;i.setZoom("PerspectiveCamera",a.perspective.zoom),i.setZoom("OrthographicCamera",a.orthographic.zoom)}else if(i instanceof Er&&s.type==="Mesh"){if(i instanceof $o?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);jy(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 h=i.material[o].userData.layers.getLayerByUuid(c.id);jy(c.data,r,h,i.material[o],c.data)}}o++}}}else s.type==="DirectionalLight"?i.fromDirectionalLightState(s,r):s.type==="PointLight"?i.fromPointLightState(s,r):s.type==="SpotLight"&&i.fromSpotLightState(s,r)}var Wy=class{constructor(e){this.sharedAssets=new Oh(e.shared),this.scene=new ep(e.scene,this.sharedAssets)}reset(e,t){this.scene.clearScene(this.sharedAssets),this.sharedAssets.reset(e.shared),this.scene.resetAfterClear(e.scene,this.sharedAssets)}dispose(){this.scene.clearScene(this.sharedAssets),this.sharedAssets.dispose()}};var kl=".",Bh=Symbol("target"),Jy=Symbol("unsubscribe");function Fh(i){return i instanceof Date||i instanceof Set||i instanceof Map||i instanceof WeakSet||i instanceof WeakMap||ArrayBuffer.isView(i)}function V1(i){return(typeof i=="object"?i===null:typeof i!="function")||i instanceof RegExp}var Bn=Array.isArray;function ea(i){return typeof i=="symbol"}var Mz={after:(i,e)=>Bn(i)?i.slice(e.length):e===""?i:i.slice(e.length+1),concat:(i,e)=>Bn(i)?(i=[...i],e&&i.push(e),i):e&&e.toString!==void 0?(i!==""&&(i+=kl),ea(e)?i+e.toString():i+e):i,initial:i=>{if(Bn(i))return i.slice(0,-1);if(i==="")return i;let e=i.lastIndexOf(kl);return e===-1?"":i.slice(0,e)},last:i=>{if(Bn(i))return i[i.length-1]||"";if(i==="")return i;let e=i.lastIndexOf(kl);return e===-1?i:i.slice(e+1)},walk:(i,e)=>{if(Bn(i))for(let t of i)e(t);else if(i!==""){let t=0,r=i.indexOf(kl);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(kl,t)}},get(i,e){return this.walk(e,t=>{i&&(i=i[t])}),i}},hn=Mz;function qy(i){return typeof i=="object"&&typeof i.next=="function"}function Xy(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[Bh].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 tp(i,e,t){return i.isUnsubscribed||e.ignoreSymbols&&ea(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var rp=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,hn.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 Vl(i){return toString.call(i)==="[object Object]"}function Hl(){return!0}function fo(i,e){return i.length!==e.length||i.some((t,r)=>e[r]!==t)}var np=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var Az=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),Yy={push:Hl,pop:Hl,shift:Hl,unshift:Hl,copyWithin:fo,reverse:fo,sort:fo,splice:fo,flat:fo,fill:fo},H1=new Set([...np,...Az,...Object.keys(Yy)]);function jl(i,e){if(i.size!==e.size)return!0;for(let t of i)if(!e.has(t))return!0;return!1}var Qy=["keys","values","entries"],Ky=new Set(["has","toString"]),Zy={add:jl,clear:jl,delete:jl,forEach:jl},j1=new Set([...Ky,...Object.keys(Zy),...Qy]);function Wl(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 Tz=new Set([...Ky,"get"]),$y={set:Wl,clear:Wl,delete:Wl,forEach:Wl},W1=new Set([...Tz,...Object.keys($y),...Qy]);var jr=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 np.has(e)}_shallowClone(e){let t=e;if(Vl(e))t=re({},e);else if(Bn(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?(Bn(n)?this._onIsChanged=Yy[t]:n instanceof Set?this._onIsChanged=Zy[t]:n instanceof Map&&(this._onIsChanged=$y[t]),n):r}update(e,t,r){let n=hn.after(e,this._path);if(t!=="length"){let s=this.clone;hn.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],hn.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var Gh=class extends jr{static isHandledMethod(e){return H1.has(e)}};var ip=class extends jr{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var zh=class extends jr{static isHandledMethod(e){return j1.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 Uh=class extends jr{static isHandledMethod(e){return W1.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 sp=class extends jr{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 op=class extends jr{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 Qi=class{constructor(e){this._stack=[],this._hasOnValidate=e}static isHandledType(e){return Vl(e)||Bn(e)||Fh(e)}static isHandledMethod(e,t){return Vl(e)?jr.isHandledMethod(t):Bn(e)?Gh.isHandledMethod(t):e instanceof Set?zh.isHandledMethod(t):e instanceof Map?Uh.isHandledMethod(t):Fh(e)}get isCloning(){return this._stack.length>0}start(e,t,r){let n=jr;Bn(e)?n=Gh:e instanceof Date?n=ip:e instanceof Set?n=zh:e instanceof Map?n=Uh:e instanceof WeakSet?n=sp:e instanceof WeakMap&&(n=op),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=Qi.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 _z={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},ev=(i,e,t={})=>{t=re(re({},_z),t);let r=Symbol("ProxyTarget"),{equals:n,isShallow:s,ignoreDetached:o,details:a}=t,l=new rp(n),c=typeof t.onValidate=="function",h=new Qi(c),d=(m,x,b,w,T)=>!c||h.isCloning||t.onValidate(hn.concat(l.getPath(m),x),b,w,T)===!0,u=(m,x,b,w)=>{!tp(l,t,x)&&!(o&&l.isDetached(m,i))&&p(l.getPath(m),x,b,w)},p=(m,x,b,w,T)=>{h.isCloning?h.update(m,x,w):e(hn.concat(m,x),b,w,T)},f=m=>m&&(m[r]||m),g=(m,x,b,w)=>V1(m)||b==="constructor"||s&&!Qi.isHandledMethod(x,b)||tp(l,t,b)||l.isGetInvariant(x,b)||o&&l.isDetached(x,i)?m:(w===void 0&&(w=l.getPath(x)),l.getProxy(m,hn.concat(w,b),v,r)),v={get(m,x,b){if(ea(x)){if(x===r||x===Bh)return m;if(x===Jy&&!l.isUnsubscribed&&l.getPath(m).length===0)return l.unsubscribe(),m}let w=Fh(m)?Reflect.get(m,x):Reflect.get(m,x,b);return g(w,m,x)},set(m,x,b,w){b=f(b);let T=m[r]||m,S=T[x];if(n(S,b)&&x in m)return!0;let M=d(m,x,b,S);return M&&l.setProperty(T,x,b,w,S)?(u(m,x,m[x],S),!0):!M},defineProperty(m,x,b){if(!l.isSameDescriptor(b,m,x)){let w=m[x];d(m,x,b.value,w)&&l.defineProperty(m,x,b,w)&&u(m,x,b.value,w)}return!0},deleteProperty(m,x){if(!Reflect.has(m,x))return!0;let b=Reflect.get(m,x),w=d(m,x,void 0,b);return w&&l.deleteProperty(m,x,b)?(u(m,x,void 0,b),!0):!w},apply(m,x,b){let w=x[r]||x;if(l.isUnsubscribed)return Reflect.apply(m,w,b);if((a===!1||a!==!0&&!a.includes(m.name))&&Qi.isHandledType(w)){let T=hn.initial(l.getPath(m)),S=Qi.isHandledMethod(w,m.name);h.start(w,T,b);let M=Reflect.apply(m,h.preferredThisArg(m,x,w),S?b.map(_=>f(_)):b),E=h.isChanged(w,n),C=h.stop();if(Qi.isHandledType(M)&&S&&(x instanceof Map&&m.name==="get"&&(T=hn.concat(T,b[0])),M=l.getProxy(M,T,v)),E){let _={name:m.name,args:b,result:M},O=h.isCloning?hn.initial(T):T,P=h.isCloning?hn.last(T):"";d(hn.get(i,O),P,w,C,_)?p(O,P,w,C,_):h.undo(w)}return(x instanceof Map||x instanceof Set)&&qy(M)?Xy(M,m,x,T,g):M}return Reflect.apply(m,x,b)}},y=l.getProxy(i,t.pathAsArray?[]:"",v);return e=e.bind(y),c&&(t.onValidate=t.onValidate.bind(y)),y};ev.target=i=>i&&i[Bh]||i;ev.unsubscribe=i=>i[Jy]||i;var tv=ev;var po;(function(t){t[t.FULLSCREEN=1]="FULLSCREEN",t[t.CUSTOM=2]="CUSTOM"})(po||(po={}));var Ez=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 t;if(!this._renderer)return;this._rafId=requestAnimationFrame(this.render);let e=co.isAllAnimationsEnded;!this.autoRender&&this._skipRender&&(e===void 0||e)||(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))))};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 F(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",Ic(this.resize,200))}async load(e){let r=await(await fetch(e,{credentials:"include",mode:"no-cors"})).arrayBuffer();this.start(r)}start(e){var a;let t=Ud.deserialize(new Uint8Array(e));this._publishData=t.scene.publish;let n=new Wy(t).scene;this._scene=n,this._sharedAssetsManager=new Oh(t.shared),this._sharedAssetsManager.onImageLoad=()=>{this.requestRender()},k1(t.scene,this._scene,this._sharedAssetsManager),this._camera=this._scene.activeCamera;let s=Object.values(t.frames)[0];s&&(s.preset==="fullscreen"?(this._viewportMode=1,this._viewportWidth=window.innerWidth,this._viewportHeight=window.innerHeight):(this._viewportMode=2,this._viewportWidth=s.size[0],this._viewportHeight=s.size[1])),((a=this._scene.postprocessing)==null?void 0:a.enabled)?(this._renderer=new _t({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}).then(this.requestRender)):this._renderer=new _t({canvas:this.canvas,antialias:!0,alpha:!0,stencil:!0,depth:!0,powerPreference:"high-performance"}),this._scene.needsTransmission(void 0)&&(this._transmissionRenderTarget=new xt(2048,2048,{generateMipmaps:!0,minFilter:Si,magFilter:tt,wrapS:or,wrapT:or}),this._transmissionRenderTarget.depthTexture=new ss(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=lp,this._renderer.setClearColor(this._scene.bgColor,this._scene.alpha),this._frameView=new Hy(this._renderer,this._camera,new F(this._viewportWidth,this._viewportHeight),new F(window.innerWidth,window.innerHeight)),!0&&(this._controls=new Sg(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 Vy(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=>{tv.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 o;let s=(o=e.interactionCache)==null?void 0:o[n];Array.isArray(s)?s.forEach(a=>{a==null||a.dispatch()}):s==null||s.dispatch()},emitEventReverse(n){var o;let s=(o=e.interactionCache)==null?void 0:o[n];Array.isArray(s)?s.forEach(a=>{a==null||a.dispatchReverse()}):s==null||s.dispatchReverse()}},r=tv(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}};Xr.FONTS_PATH="_assets/_fonts/";export{Ez as Application};
4417
+ outputColor=vec4(color,inputColor.a);}`,A1=class extends Yi{constructor(i={}){let e=Object.assign({blendFunction:pt.NORMAL,eskil:!1,offset:.5,darkness:.5},i);super("VignetteEffect",uz,{blendFunction:e.blendFunction,uniforms:new Map([["offset",new Te(e.offset)],["darkness",new Te(e.darkness)]])});this.eskil=e.eskil}get eskil(){return this.defines.has("ESKIL")}set eskil(i){this.eskil!==i&&(i?this.defines.set("ESKIL","1"):this.defines.delete("ESKIL"),this.setChanged())}},Mie=[new Float32Array(3),new Float32Array(3)],Aie=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],Tie=[[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 _ie=[new Float32Array(2),new Float32Array(2)];var Eie=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),Cie=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],Lie=[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])],Nie=[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 Pie=new Map([[$r(0,0,0,0),new Float32Array([0,0,0,0])],[$r(0,0,0,1),new Float32Array([0,0,0,1])],[$r(0,0,1,0),new Float32Array([0,0,1,0])],[$r(0,0,1,1),new Float32Array([0,0,1,1])],[$r(0,1,0,0),new Float32Array([0,1,0,0])],[$r(0,1,0,1),new Float32Array([0,1,0,1])],[$r(0,1,1,0),new Float32Array([0,1,1,0])],[$r(0,1,1,1),new Float32Array([0,1,1,1])],[$r(1,0,0,0),new Float32Array([1,0,0,0])],[$r(1,0,0,1),new Float32Array([1,0,0,1])],[$r(1,0,1,0),new Float32Array([1,0,1,0])],[$r(1,0,1,1),new Float32Array([1,0,1,1])],[$r(1,1,0,0),new Float32Array([1,1,0,0])],[$r(1,1,0,1),new Float32Array([1,1,0,1])],[$r(1,1,1,0),new Float32Array([1,1,1,0])],[$r(1,1,1,1),new Float32Array([1,1,1,1])]]);function zy(i,e,t){return i+(e-i)*t}function $r(i,e,t,r){let n=zy(i,e,1-.25),s=zy(t,r,1-.25);return zy(n,s,1-.125)}var T1=class extends Cn{load(i=()=>{},e=null){arguments.length===4?(i=arguments[1],e=arguments[3]):(arguments.length===3||typeof arguments[0]!="function")&&(i=arguments[1],e=null);let t=this.manager,r=new Xa;return new Promise((n,s)=>{let o=new Image,a=new Image;r.onError=l=>{t.itemError(l),e!==null?(e(`Failed to load ${l}`),n()):s(`Failed to load ${l}`)},r.onLoad=()=>{let l=[o,a];i(l),n(l)},o.addEventListener("error",l=>{r.itemError("smaa-search")}),a.addEventListener("error",l=>{r.itemError("smaa-area")}),o.addEventListener("load",()=>{t.itemEnd("smaa-search"),r.itemEnd("smaa-search")}),a.addEventListener("load",()=>{t.itemEnd("smaa-area"),r.itemEnd("smaa-area")}),t.itemStart("smaa-search"),t.itemStart("smaa-area"),r.itemStart("smaa-search"),r.itemStart("smaa-area"),o.src=w1,a.src=S1})}};var wr=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=pt.NORMAL}toJSON(){let e=["constructor","effect","subscriptions"],t=re({},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 _h=class extends wr{constructor(){super(f1);this.blendFunction=pt.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 Eh=class extends wr{constructor(){super(p1)}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 Ch=class extends wr{constructor(){super(g1);this.effect.offset=new F(.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 Lh=class extends wr{constructor(){super(m1)}};var Nh=class extends wr{constructor(){super(v1);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 Ph=class extends wr{constructor(){super(x1);this.blendFunction=pt.OVERLAY}};var Dh=class extends wr{constructor(){super(A1)}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 Ih=class extends wr{constructor(e){super(y1,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 Rh=class extends wr{constructor(){super(b1)}get granularity(){return this.effect.getGranularity()}set granularity(e){this.effect.setGranularity(e)}};function _1(i,e){return e&&e.enabled&&i.push(e.effect),i}var Zf=class{constructor(){this._scene=new Or;this._camera=new Kn;this.effects=new Map;this.loadingManager=new Xa;this.smaaImageLoader=new T1(this.loadingManager);this.renderPass=new Fy;this._renderToScreen=!0;this._hasSmaa=!1;this.search=null;this.area=null;this.clock=new Im,this.enabled=!1,this.debug=!1,this.effects.set("bloom",new _h),this.effects.set("chromaticAberration",new Ch),this.effects.set("vignette",new Dh),this.effects.set("noise",new Ph),this.effects.set("colorAverage",new Lh),this.effects.set("hueSaturation",new Nh),this.effects.set("brightnessContrast",new Eh),this.effects.set("depthOfField",new Ih),this.effects.set("pixelation",new Rh),this.smaaPromise=this.loadSmaaImages()}get scene(){return this._scene}set scene(e){this._scene=e}get camera(){return this._camera}set camera(e){this._camera=e}loadSmaaImages(){return new Promise(e=>{this.smaaImageLoader.load(([t,r])=>{this.search=t,this.area=r,e()})})}async _initSmaa(){if(!this.effectComposer)return;let e=this.effectComposer.passes.length;(!this.area||!this.search)&&await this.smaaPromise;let t=new M1(this.search,this.area,Zo.ULTRA,Qf.COLOR);t.edgeDetectionMaterial.setPredicationMode(o1.DEPTH),t.edgeDetectionMaterial.setEdgeDetectionThreshold(.05),t.edgeDetectionMaterial.setPredicationThreshold(.002),t.edgeDetectionMaterial.setPredicationScale(1),this.effectComposer.addPass(new Kf(this.camera,t),e),this._hasSmaa=!0}async _initPasses(){if(!(!this.effectComposer||!this.renderer))if(this.effectComposer.removeAllPasses(),this._hasSmaa=!1,this.renderPass=new Fy(this.scene,this.camera),this.enabled){this.effectComposer.addPass(this.renderPass),await this._initSmaa();let e=[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(_1,[]),t=[this.effects.get("pixelation")].reduce(_1,[]);t.length>0&&this.effectComposer.addPass(new Kf(this.camera,...t)),this.effectComposer.addPass(new Kf(this.camera,...e))}else this.effectComposer.addPass(this.renderPass)}async reinit(){!this.renderer||(this.effectComposer=new d1(this.renderer),await this._initPasses())}async init({renderer:e,camera:t,scene:r}){this.renderer=e,this.scene=r,this.camera=t,this._initSavePass(),await this.reinit()}_initSavePass(){if(this._savePass)return;let e=new F;this.renderer.getDrawingBufferSize(e);let t=this.renderer.capabilities.isWebGL2?Ns:xt;this._rt=new t(e.x,e.y,{depthBuffer:!1,stencilBuffer:!1,wrapS:Es,wrapT:Es}),this._savePass=new l1(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,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),re({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 Qe?(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 Qe?(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;(e=this.effectComposer)==null||e.dispose()}};function E1(i,e){return dz(i)}function dz(i){let e={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let r=wt.createFromState(i.shape,i.width,i.height);e.shape=r}else i.type==="NonParametricGeometry"&&(e.geometry=new Ro().parse(i));let t;try{t=th(e)}catch(r){console.error(r)}if(!t){let r=wt.createFromState(Ml.defaultData(),100,100);e.shape=r,t=th(e)}return t}var N1=av(L1());var Uy;ff.then(i=>{Uy=i});var P1=new Me,fz=new Me,pz=new Me,bi=new tr,uo=new A,mz=new Me,gz=new Me,$o=class extends Er{constructor(e,t,r,n=new qn){super(r!=null?r:t,n);this.subdivPointer=e;this.originalGeometry=t;this.subdividedGeometry=r;this.objectType="SubdivObject";this.hiddenMatrixOld=new Me;this.smoothShading=!0;this.matrixWorldRigid=new Me;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,t,r){let{subdivPointer:n,originalGeometry:s,subdividedGeometry:o}=Wn.build(t.geometry,void 0,void 0,!t.flatShading),a=ao(t.material,r),l=new $o(n,s,o||void 0,a);return l.calcBoundingBox(),l.freeSubdivPointer(),l.uuid=e,l.fromState(t),l}shallowClone(e){return new Mh(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}=Wn.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){Wn.buildLevel(this.subdivPointer,!0,this.smoothShading,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Wn.buildLevel(this.subdivPointer,!1,this.smoothShading,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){var e;this.originalGeometry.dispose(),this.originalGeometry=Wn.buildLevel(this.subdivPointer,!0,this.smoothShading),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Wn.buildLevel(this.subdivPointer,!1,this.smoothShading)),this.geometry=(e=this.subdividedGeometry)!=null?e:this.originalGeometry}raycast(e,t){var r;this.geometry=this.originalGeometry,Er.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,N1.SVD)(t),o=P1.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=fz.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=pz.copy(a).transpose();this.shearScale=mz.makeScale(s[0],s[1],s[2]).multiply(l).premultiply(a),this.shearScaleInv=gz.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 tn);let t=e.attributes.position,r=e.boundingSphere.center;bi.setFromBufferAttribute(t),bi.getCenter(r),e.boundingSphere.radius=r.distanceTo(bi.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),bi.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;bi.min.set(e[0],e[2],e[4]),bi.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(bi.min.applyMatrix4(this.shearScaleInv),bi.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new tn);let r=t.boundingSphere.center;bi.getCenter(r),t.boundingSphere.radius=r.distanceTo(bi.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),bi.getSize(uo);let n={width:uo.x,height:uo.y,depth:uo.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(Uy.free_bvh(this.subdivPointer),Uy.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,D1(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(D1(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters=re({},e.parameters)}};function D1(i,e,t,r){let n=i.position.array,s=i.normal.array,o=P1.makeScale(e,t,r).invert().elements,a,l,c;for(var h=0,d=n.length;h<d;h+=3)n[h]*=e,n[h+1]*=t,n[h+2]*=r,a=s[h],l=s[h+1],c=s[h+2],s[h]=o[0]*a+o[4]*l+o[8]*c,s[h+1]=o[1]*a+o[5]*l+o[9]*c,s[h+2]=o[2]*a+o[6]*l+o[10]*c}function I1(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===bl.Front?i.side=ei:e.side===bl.Back?i.side=Gt:i.side=Xt)}function yz(i,e){if(Array.isArray(i.material))for(let t of i.material)I1(t,e);else{let t=i.material;I1(t,e)}i.objectType==="SubdivObject"&&e.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!e.flatShading,i.updateMesh())}function R1(i,e,t){let r;if(e.geometry.type==="SubdivGeometry")r=$o.createFromState(i,e,t);else{let n=E1(e.geometry,t),s="materials"in e?sA(e.materials,t):ao(e.material,t);Xd.is2DParametricMesh(n.userData.type)?r=new wh(n,s):(n==null?void 0:n.userData.type)==="VectorGeometry"?r=new Ko(n,s):e.geometry.type==="NonParametricGeometry"?r=new Mh(n,s):r=new Sh(n,s),r.uuid=i,r.fromState(e)}return yz(r,e),r}function O1(i,e,t){return e.type==="Mesh"?R1(i,e,t):e.type==="TextFrame"?zl.createFromState(i,e,t):e.type==="Empty"?Zn.createFromState(i,e):e.type==="PointLight"?xh.createFromState(i,e,t):e.type==="SpotLight"?bh.createFromState(i,e,t):e.type==="DirectionalLight"?vh.createFromState(i,e,t):Ks.is(e.type)?Kn.createFromState(i,e):(console.error(e),new Zn)}function vz(i,e){e.uniforms[`f${e.id}_transmissionSamplerMap`].value=i.texture,e.uniforms[`f${e.id}_transmissionDepthMap`].value=i.depthTexture}function B1(i,e,t){if(!t.userData.layers)return!1;let r=!1,n=t.userData.layers.getLayersOfType(at.TRANSMISSION);return n.length>0?(e.layers.set(3),r=!0,i!==void 0&&n.forEach(s=>vz(i,s))):e.layers.set(0),r}function F1(i,e){let t=!1;return e.traverseEntity(r=>{if(r instanceof Er)if(Array.isArray(r.material))for(let n=0;n<r.material.length;n++)B1(i,r,r.material[n])&&(t=!0);else B1(i,r,r.material)&&(t=!0)}),t}function G1(i,e){"material"in i&&xz(i.material,e),"geometry"in i&&i.geometry.dispose()}function xz(i,e){tb(i).forEach(t=>{e.isSharedMaterial(t)||t.dispose()})}var z1=new A,ky=class extends kf(Or){constructor(e,t){super();this.objectType="Scene";this.alpha=1;this.backupFog=new Oa(16777215,.1,2e3);this.fogUseBGColor=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this._needsTransmission=!1;this._color=new ve(1,0,0);this.bgColor=new ve(1,1,1);this.entityByUuid={};this.postprocessing=new Zf,this.ambientLight=new Io(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.init(e,t)}needsTransmission(e){return this.needsTransmissionDirty&&(this._needsTransmission=F1(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.initPostprocessing(e.postprocessing),this.createChildrenObjects(e.objects,this,t),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(ir(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 Kn&&this.switchActiveCamera(r)}}initPostprocessing(e){let n=e,{enabled:t}=n,r=sv(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()}clearScene(e){this.traverseEntity(t=>{G1(t,e)});for(let t of this.children)wn(t)&&t.removeFromParent()}resetAfterClear(e,t){this.init(e,t)}createPersonalCamera(){let e=Kn.createFromState(ky.PERSONAL_CAMERA_ID,xe(re({},Qd.defaultData),{name:"personal"}));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)wn(s)&&!s.raycastLock&&s.visible&&((mf(s)||ps(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)wn(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=ir(e.color,t),this.backupFog.near=e.near,this.backupFog.far=e.far}toJSON(e){return{}}fromJSON(e){return this}dispose(){this.traverseEntity(e=>{"geometry"in e&&e.geometry.dispose(),"material"in e&&(e.material instanceof Array?e.material.forEach(t=>t.dispose()):e.material.dispose())}),this.postprocessing.dispose()}updateAmbientLight(e,t){XM(this.ambientLight,e,t),e.groundColor!==void 0&&(this.ambientLight.groundColor=ir(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,this.postprocessing.camera=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=O1(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 tr;return r.setFromPoints(t),r.getCenter(z1),z1}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 Er)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(at.TRANSMISSION).forEach(a=>{a.uniforms[`f${a.id}_aspectRatio`].value.x=r,a.uniforms[`f${a.id}_aspectRatio`].value.y=n})})}},ep=ky;ep.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var Vy=class{constructor(e,t,r,n){this.isEnable=!1;this.splineEvents={};this._enableEvent={};this._map={};this._prevAncestors=[];this._raycaster=new Tg;this._intersection=new A;this._plane=new fn;this._normal=new A;this._position=new A;this._onMouseDown=e=>{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseDownEvent()};this._onMouseUp=e=>{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._handleMouseUpEvent()};this._onMouseMove=e=>{this._raycaster.setFromCamera(this._getPointer(e.clientX,e.clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent()};this._onWheel=e=>{this._handleWheelEvent(e)};this._onTouchStart=e=>{e.touches.length===1&&(this._raycaster.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseDownEvent(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent())};this._onTouchEnd=()=>{this._handleMouseUpEvent(),this._handleMouseHoverEvent(!0)};this._onTouchMove=e=>{e.touches.length===1&&(this._raycaster.setFromCamera(this._getPointer(e.touches[0].clientX,e.touches[0].clientY),this._camera),this._camera.getWorldDirection(this._normal),this._normal.negate(),this._handleMouseHoverEvent(),this._handleLookAtEvent(),this._handleFollowEvent())};this._onKeyDown=e=>{this._handleKeyDownEvent(e.key)};this._onKeyUp=e=>{this._handleKeyUpEvent(e.key)};this._domElement=e,this._scene=t,this._camera=r,this._app=n}activate(){this.isEnable=!0,this._scene.traverseEntity(e=>{if(e.interaction!==void 0){e.interaction.start();for(let t of e.interaction.events){let r=t.type;this._addCustomEvent(r,e),this._enableEvent[r]=!0,(r===Je.KEY_DOWN||r===Je.KEY_UP||r===Je.START||r===Je.LOOK_AT||r===Je.FOLLOW||r===Je.SCROLL)&&(this._map[r]===void 0&&(this._map[r]=[]),this._map[r].push(e))}}}),this._enableEvent[Je.START]!==void 0&&this._handleStartEvent(),this._enableEvent[Je.MOUSE_DOWN]!==void 0&&(this._domElement.addEventListener("pointerdown",this._onMouseDown,!1),this._domElement.addEventListener("touchstart",this._onTouchStart,!1)),this._enableEvent[Je.MOUSE_UP]!==void 0&&(this._domElement.addEventListener("pointerup",this._onMouseUp,!1),this._domElement.addEventListener("touchend",this._onTouchEnd,!1)),(this._enableEvent[Je.MOUSE_HOVER]!==void 0||this._enableEvent[Je.LOOK_AT]!==void 0||this._enableEvent[Je.FOLLOW]!==void 0)&&(this._domElement.addEventListener("pointermove",this._onMouseMove,!1),this._domElement.addEventListener("touchstart",this._onTouchStart,!1),this._domElement.addEventListener("touchend",this._onTouchEnd,!1),this._domElement.addEventListener("touchmove",this._onTouchMove,!1)),this._enableEvent[Je.KEY_DOWN]!==void 0&&document.addEventListener("keydown",this._onKeyDown,!1),this._enableEvent[Je.KEY_UP]!==void 0&&document.addEventListener("keyup",this._onKeyUp,!1),this._enableEvent[Je.SCROLL]!==void 0&&this._domElement.addEventListener("wheel",this._onWheel,!1)}deactivate(){this._scene.traverseEntity(e=>{e.interaction!==void 0&&e.interaction.end(),e.interaction.cache=void 0}),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._enableEvent={},this._map={},this.isEnable=!1}reset(){this._scene.traverseEntity(e=>{e.interaction.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[Je.START])==null||e.forEach(t=>{var r;(r=t.interactionCache.start)==null||r.dispatch()})}_handleWheelEvent(e){var t;(t=this._map[Je.SCROLL])==null||t.forEach(r=>{var n;this._dispatchDOMCustomEvent("scroll",r.uuid),(n=r.interactionCache.scroll)==null||n.dispatch(e.deltaY>0?1:-1)})}_handleMouseDownEvent(){var t;let e=this._raycastMesh(this._raycaster);for(let r=0,n=e.length;r<n;++r){let s=e[r].object;if(this._dispatchDOMCustomEvent("mouseDown",s.uuid),(t=s.interactionCache.mouseDown)==null||t.dispatch(),s.traverseAncestors(o=>{var a;o instanceof Zn&&(this._dispatchDOMCustomEvent("mouseDown",o.uuid),(a=o.interactionCache.mouseDown)==null||a.dispatch())}),!s.interactionCache.follow)break}}_handleMouseUpEvent(){var t;let e=this._raycastMesh(this._raycaster);for(let r=0,n=e.length;r<n;++r){let s=e[r].object;if(this._dispatchDOMCustomEvent("mouseUp",s.uuid),(t=s.interactionCache.mouseUp)==null||t.dispatch(),s.traverseAncestors(o=>{var a;o instanceof Zn&&(this._dispatchDOMCustomEvent("mouseUp",o.uuid),(a=o.interactionCache.mouseUp)==null||a.dispatch())}),!s.interactionCache.follow)break}}_handleMouseHoverEvent(e=!1){var t,r;if(this._enableEvent[Je.MOUSE_HOVER]!==void 0){let n;if(!e){let o=this._raycastMesh(this._raycaster).find(a=>!a.object.interactionCache.follow);n=o?o.object:void 0}if(this._prevObject!==n){this._prevObject!==void 0&&((t=this._prevObject.interactionCache.mouseHover)==null||t.dispatchReverse()),n!==void 0&&(this._dispatchDOMCustomEvent("mouseHover",n.uuid),(r=n.interactionCache.mouseHover)==null||r.dispatch());let s=[];n==null||n.traverseAncestors(l=>{l instanceof Zn&&l.interactionCache.mouseHover&&s.push(l)}),this._prevAncestors.filter(l=>{var c;return s.includes(l)?!1:((c=l.interactionCache.mouseHover)==null||c.dispatchReverse(),!0)});let o=s.filter(l=>{var c;return this._prevAncestors.includes(l)?!1:((c=l.interactionCache.mouseHover)==null||c.dispatch(),!0)}),a=this._prevAncestors.filter(l=>s.includes(l));this._prevAncestors=[...a,...o]}this._prevObject=n}}_handleLookAtEvent(){var e;(e=this._map[Je.LOOK_AT])==null||e.forEach(t=>{var n;let r=(n=t.interactionCache.lookAt)==null?void 0:n.distance;this._dispatchDOMCustomEvent("lookAt",t.uuid),r!==void 0&&(this._plane.set(this._normal,-r),this._raycaster.ray.intersectPlane(this._plane,this._intersection),t.interaction.lookAt(this._intersection))}),this._app.requestRender()}_handleFollowEvent(){var e;(e=this._map[Je.FOLLOW])==null||e.forEach(t=>{this._dispatchDOMCustomEvent("follow",t.uuid),this._plane.setFromNormalAndCoplanarPoint(this._normal,t.getWorldPosition(this._position)),this._raycaster.ray.intersectPlane(this._plane,this._intersection),t.interaction.follow(this._intersection)}),this._app.requestRender()}_handleKeyDownEvent(e){var t;(t=this._map[Je.KEY_DOWN])==null||t.forEach(r=>{var s;let n=(s=r.interactionCache.keyDown)==null?void 0:s.find(o=>o.key===e);this._dispatchDOMCustomEvent("keyDown",r.uuid),n==null||n.dispatch()})}_handleKeyUpEvent(e){var t;(t=this._map[Je.KEY_UP])==null||t.forEach(r=>{var s;let n=(s=r.interactionCache.keyUp)==null?void 0:s.find(o=>o.key===e);this._dispatchDOMCustomEvent("keyUp",r.uuid),n==null||n.dispatch()})}_raycastMesh(e){let t=[],r=n=>{for(let s of n.children)wn(s)&&!s.raycastLock&&s.visible&&(qA(s)&&e.intersectObject(s,!1,t),r(s))};return r(this._scene),t}_addCustomEvent(e,t){let r=(()=>{switch(e){case 0:return"mouseDown";case 1:return"mouseUp";case 2:return"mouseHover";case 5:return"keyDown";case 6:return"keyUp";case 7:return"start";case 9:return"lookAt";case 10:return"follow";case 11:return"scroll"}})();if(r){let n=new CustomEvent(r,{bubbles:!0});Object.defineProperty(n,"target",{writable:!1,value:{id:t.uuid,name:t.name}}),this.splineEvents[r]?this.splineEvents[r][t.uuid]=n:this.splineEvents[r]={[t.uuid]:n}}}_dispatchDOMCustomEvent(e,t){var n;let r=(n=this.splineEvents[e])==null?void 0:n[t];r&&this._domElement.dispatchEvent(r)}};var Hy=class{constructor(e,t,r,n,s){this._aspect=1;this._renderer=e,this._camera=t,this._frameSize=new F().copy(r),this._editorSize=new F().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=bz(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 bz(i,e,t,r,n){return(i-e)/(t-e)*(n-r)+r}var U1=new Zr,Ul=class extends Yr{},Oh=class{constructor(e){this.materials={};this.images={};this.colors={};this.transmissionRenderTarget=new xt(2048,2048,{generateMipmaps:!0,minFilter:Si,magFilter:tt,wrapS:or,wrapT:or}),this.transmissionRenderTarget.depthTexture=new ss(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,my(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===U1}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){var t;return(t=this.materials[e])!=null?t:U1}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 Ul(t.r,t.g,t.b,t.a):this.colors[e]=new Ul(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 wz(i,e){switch(i.type){case at.NOISE:return e==="noiseType";case at.TEXTURE:return e==="projection"||e==="axis";case at.DISPLACE:return e==="noiseType";default:return!1}}function jy(i,e,t,r,n){var o;let s=!1;for(let[a,l]of Object.entries(i)){if(!a||l===void 0||If(a,t,n))continue;let c=t.uniforms[`f${t.id}_${a}`];if(!!c)switch(c.constructor){case Lt:if(typeof l=="string"){let h=e.getColor(l);h&&(c.value=h);break}else{let h=l;c.value instanceof Ul?c.value=new Yr(h.r,h.g,h.b,h.a):c.setRGBA(h);break}case Ui:if(typeof l=="string"){let h=e.getColor(l);h&&(c.value=h);break}else{let h=l;c.value instanceof Ul?c.value=new Yr(h.r,h.g,h.b,h.a):c.value.setRGBA(h.r,h.g,h.b,h.a);break}case kr:{let h=l;c.value.setX(h[0]),c.value.setY(h[1]);break}case Vr:{let h=l;c.value.setX(h[0]),c.value.setY(h[1]),c.value.setZ(h[2]);break}case Qr:{let h=l;"image"in h&&(c.value.image=e.getImage(h.image)),"wrapping"in h&&(c.value.wrapS=c.value.wrapT=h.wrapping),"repeat"in h&&c.value.repeat.fromArray(h.repeat),"offset"in h&&c.value.offset.fromArray(h.offset),c.value.needsUpdate=!0;break}case oo:{l.forEach((h,d)=>{c.value[d].setX(h[0]),c.value[d].setY(h[1]),c.value[d].setZ(h[2]),c.value[d].setW(h[3])});break}default:{s=s||wz(t,a),c.value=l;break}}}if(s&&n){let a=Df({id:"0",fi:0,data:n},e);(o=r.userData.layers)==null||o.changeLayer(t.id,re({},a)),r.dispose(),r.needsUpdate=!0}}function k1(i,e,t){var n;let r=[];i.objects.traverse((s,o)=>{var c;if(o.states===void 0)return;let a=e.find(s),l=a.interaction=new co(a);Sz(a,o,null,t),l.states.push(Vi.create(s,o,t));for(let h of o.states){let d=Hc.patch(o,h.data);l.states.push(Vi.create(h.id,d,t))}if(o.events)for(let h of o.events){let d=h.data,u=new lo(d.type);if("key"in d&&(u.key=d.key),"url"in d&&(u.url=(c=d.url)!=null?c:void 0),"distance"in d&&(u.distance=d.distance),"steps"in d&&(u.steps=d.steps),"targets"in d)for(let{data:p}of d.targets){let f=ys.create(p);p.object?(f.object=e.find(p.object),r.push([f,p.object,p.state])):f.object=void 0,u.addTarget(f)}l.events.push(u)}});for(let[s,o,a]of r){let l=e.find(o);l&&(a?s.state=(n=l.interaction.states.find(c=>c.uuid===a))!=null?n:l.interaction.states[0]:s.state=l.interaction.states[0])}}function Sz(i,e,t,r,n=!1){if(!n&&e.states.length===0)return;let s=t===null?e:Hc.patch(e,e.states.data(t));if(jg(i,s),i instanceof Kn&&Ks.is(s.type)){let a=s;i.setZoom("PerspectiveCamera",a.perspective.zoom),i.setZoom("OrthographicCamera",a.orthographic.zoom)}else if(i instanceof Er&&s.type==="Mesh"){if(i instanceof $o?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);jy(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 h=i.material[o].userData.layers.getLayerByUuid(c.id);jy(c.data,r,h,i.material[o],c.data)}}o++}}}else s.type==="DirectionalLight"?i.fromDirectionalLightState(s,r):s.type==="PointLight"?i.fromPointLightState(s,r):s.type==="SpotLight"&&i.fromSpotLightState(s,r)}var Wy=class{constructor(e){this.sharedAssets=new Oh(e.shared),this.scene=new ep(e.scene,this.sharedAssets)}reset(e,t){this.scene.clearScene(this.sharedAssets),this.sharedAssets.reset(e.shared),this.scene.resetAfterClear(e.scene,this.sharedAssets)}dispose(){this.scene.clearScene(this.sharedAssets),this.sharedAssets.dispose()}};var kl=".",Bh=Symbol("target"),Jy=Symbol("unsubscribe");function Fh(i){return i instanceof Date||i instanceof Set||i instanceof Map||i instanceof WeakSet||i instanceof WeakMap||ArrayBuffer.isView(i)}function V1(i){return(typeof i=="object"?i===null:typeof i!="function")||i instanceof RegExp}var Bn=Array.isArray;function ea(i){return typeof i=="symbol"}var Mz={after:(i,e)=>Bn(i)?i.slice(e.length):e===""?i:i.slice(e.length+1),concat:(i,e)=>Bn(i)?(i=[...i],e&&i.push(e),i):e&&e.toString!==void 0?(i!==""&&(i+=kl),ea(e)?i+e.toString():i+e):i,initial:i=>{if(Bn(i))return i.slice(0,-1);if(i==="")return i;let e=i.lastIndexOf(kl);return e===-1?"":i.slice(0,e)},last:i=>{if(Bn(i))return i[i.length-1]||"";if(i==="")return i;let e=i.lastIndexOf(kl);return e===-1?i:i.slice(e+1)},walk:(i,e)=>{if(Bn(i))for(let t of i)e(t);else if(i!==""){let t=0,r=i.indexOf(kl);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(kl,t)}},get(i,e){return this.walk(e,t=>{i&&(i=i[t])}),i}},hn=Mz;function qy(i){return typeof i=="object"&&typeof i.next=="function"}function Xy(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[Bh].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 tp(i,e,t){return i.isUnsubscribed||e.ignoreSymbols&&ea(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var rp=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,hn.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 Vl(i){return toString.call(i)==="[object Object]"}function Hl(){return!0}function fo(i,e){return i.length!==e.length||i.some((t,r)=>e[r]!==t)}var np=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var Az=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),Yy={push:Hl,pop:Hl,shift:Hl,unshift:Hl,copyWithin:fo,reverse:fo,sort:fo,splice:fo,flat:fo,fill:fo},H1=new Set([...np,...Az,...Object.keys(Yy)]);function jl(i,e){if(i.size!==e.size)return!0;for(let t of i)if(!e.has(t))return!0;return!1}var Qy=["keys","values","entries"],Ky=new Set(["has","toString"]),Zy={add:jl,clear:jl,delete:jl,forEach:jl},j1=new Set([...Ky,...Object.keys(Zy),...Qy]);function Wl(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 Tz=new Set([...Ky,"get"]),$y={set:Wl,clear:Wl,delete:Wl,forEach:Wl},W1=new Set([...Tz,...Object.keys($y),...Qy]);var jr=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 np.has(e)}_shallowClone(e){let t=e;if(Vl(e))t=re({},e);else if(Bn(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?(Bn(n)?this._onIsChanged=Yy[t]:n instanceof Set?this._onIsChanged=Zy[t]:n instanceof Map&&(this._onIsChanged=$y[t]),n):r}update(e,t,r){let n=hn.after(e,this._path);if(t!=="length"){let s=this.clone;hn.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],hn.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var Gh=class extends jr{static isHandledMethod(e){return H1.has(e)}};var ip=class extends jr{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var zh=class extends jr{static isHandledMethod(e){return j1.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 Uh=class extends jr{static isHandledMethod(e){return W1.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 sp=class extends jr{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 op=class extends jr{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 Qi=class{constructor(e){this._stack=[],this._hasOnValidate=e}static isHandledType(e){return Vl(e)||Bn(e)||Fh(e)}static isHandledMethod(e,t){return Vl(e)?jr.isHandledMethod(t):Bn(e)?Gh.isHandledMethod(t):e instanceof Set?zh.isHandledMethod(t):e instanceof Map?Uh.isHandledMethod(t):Fh(e)}get isCloning(){return this._stack.length>0}start(e,t,r){let n=jr;Bn(e)?n=Gh:e instanceof Date?n=ip:e instanceof Set?n=zh:e instanceof Map?n=Uh:e instanceof WeakSet?n=sp:e instanceof WeakMap&&(n=op),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=Qi.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 _z={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},ev=(i,e,t={})=>{t=re(re({},_z),t);let r=Symbol("ProxyTarget"),{equals:n,isShallow:s,ignoreDetached:o,details:a}=t,l=new rp(n),c=typeof t.onValidate=="function",h=new Qi(c),d=(m,x,b,w,T)=>!c||h.isCloning||t.onValidate(hn.concat(l.getPath(m),x),b,w,T)===!0,u=(m,x,b,w)=>{!tp(l,t,x)&&!(o&&l.isDetached(m,i))&&p(l.getPath(m),x,b,w)},p=(m,x,b,w,T)=>{h.isCloning?h.update(m,x,w):e(hn.concat(m,x),b,w,T)},f=m=>m&&(m[r]||m),g=(m,x,b,w)=>V1(m)||b==="constructor"||s&&!Qi.isHandledMethod(x,b)||tp(l,t,b)||l.isGetInvariant(x,b)||o&&l.isDetached(x,i)?m:(w===void 0&&(w=l.getPath(x)),l.getProxy(m,hn.concat(w,b),v,r)),v={get(m,x,b){if(ea(x)){if(x===r||x===Bh)return m;if(x===Jy&&!l.isUnsubscribed&&l.getPath(m).length===0)return l.unsubscribe(),m}let w=Fh(m)?Reflect.get(m,x):Reflect.get(m,x,b);return g(w,m,x)},set(m,x,b,w){b=f(b);let T=m[r]||m,S=T[x];if(n(S,b)&&x in m)return!0;let M=d(m,x,b,S);return M&&l.setProperty(T,x,b,w,S)?(u(m,x,m[x],S),!0):!M},defineProperty(m,x,b){if(!l.isSameDescriptor(b,m,x)){let w=m[x];d(m,x,b.value,w)&&l.defineProperty(m,x,b,w)&&u(m,x,b.value,w)}return!0},deleteProperty(m,x){if(!Reflect.has(m,x))return!0;let b=Reflect.get(m,x),w=d(m,x,void 0,b);return w&&l.deleteProperty(m,x,b)?(u(m,x,void 0,b),!0):!w},apply(m,x,b){let w=x[r]||x;if(l.isUnsubscribed)return Reflect.apply(m,w,b);if((a===!1||a!==!0&&!a.includes(m.name))&&Qi.isHandledType(w)){let T=hn.initial(l.getPath(m)),S=Qi.isHandledMethod(w,m.name);h.start(w,T,b);let M=Reflect.apply(m,h.preferredThisArg(m,x,w),S?b.map(_=>f(_)):b),E=h.isChanged(w,n),C=h.stop();if(Qi.isHandledType(M)&&S&&(x instanceof Map&&m.name==="get"&&(T=hn.concat(T,b[0])),M=l.getProxy(M,T,v)),E){let _={name:m.name,args:b,result:M},O=h.isCloning?hn.initial(T):T,P=h.isCloning?hn.last(T):"";d(hn.get(i,O),P,w,C,_)?p(O,P,w,C,_):h.undo(w)}return(x instanceof Map||x instanceof Set)&&qy(M)?Xy(M,m,x,T,g):M}return Reflect.apply(m,x,b)}},y=l.getProxy(i,t.pathAsArray?[]:"",v);return e=e.bind(y),c&&(t.onValidate=t.onValidate.bind(y)),y};ev.target=i=>i&&i[Bh]||i;ev.unsubscribe=i=>i[Jy]||i;var tv=ev;var po;(function(t){t[t.FULLSCREEN=1]="FULLSCREEN",t[t.CUSTOM=2]="CUSTOM"})(po||(po={}));var Ez=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 t;if(!this._renderer)return;this._rafId=requestAnimationFrame(this.render);let e=co.isAllAnimationsEnded;!this.autoRender&&this._skipRender&&(e===void 0||e)||(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))))};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 F(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",Ic(this.resize,200))}async load(e){let r=await(await fetch(e)).arrayBuffer();this.start(r)}start(e){var a;let t=Ud.deserialize(new Uint8Array(e));this._publishData=t.scene.publish;let n=new Wy(t).scene;this._scene=n,this._sharedAssetsManager=new Oh(t.shared),this._sharedAssetsManager.onImageLoad=()=>{this.requestRender()},k1(t.scene,this._scene,this._sharedAssetsManager),this._camera=this._scene.activeCamera;let s=Object.values(t.frames)[0];s&&(s.preset==="fullscreen"?(this._viewportMode=1,this._viewportWidth=window.innerWidth,this._viewportHeight=window.innerHeight):(this._viewportMode=2,this._viewportWidth=s.size[0],this._viewportHeight=s.size[1])),((a=this._scene.postprocessing)==null?void 0:a.enabled)?(this._renderer=new _t({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}).then(this.requestRender)):this._renderer=new _t({canvas:this.canvas,antialias:!0,alpha:!0,stencil:!0,depth:!0,powerPreference:"high-performance"}),this._scene.needsTransmission(void 0)&&(this._transmissionRenderTarget=new xt(2048,2048,{generateMipmaps:!0,minFilter:Si,magFilter:tt,wrapS:or,wrapT:or}),this._transmissionRenderTarget.depthTexture=new ss(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=lp,this._renderer.setClearColor(this._scene.bgColor,this._scene.alpha),this._frameView=new Hy(this._renderer,this._camera,new F(this._viewportWidth,this._viewportHeight),new F(window.innerWidth,window.innerHeight)),!0&&(this._controls=new Sg(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 Vy(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=>{tv.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 o;let s=(o=e.interactionCache)==null?void 0:o[n];Array.isArray(s)?s.forEach(a=>{a==null||a.dispatch()}):s==null||s.dispatch()},emitEventReverse(n){var o;let s=(o=e.interactionCache)==null?void 0:o[n];Array.isArray(s)?s.forEach(a=>{a==null||a.dispatchReverse()}):s==null||s.dispatchReverse()}},r=tv(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}};Xr.FONTS_PATH="_assets/_fonts/";export{Ez as Application};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@splinetool/runtime",
3
- "version": "0.9.14",
3
+ "version": "0.9.17",
4
4
  "main": "build/runtime.js",
5
5
  "files": [
6
6
  "build",