@splinetool/runtime 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/runtime.js +1 -1
- 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);}`,vT=class extends ns{constructor(i={}){let e=Object.assign({blendFunction:pt.NORMAL,eskil:!1,offset:.5,darkness:.5},i);super("VignetteEffect",nU,{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())}},mse=[new Float32Array(3),new Float32Array(3)],gse=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],yse=[[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 vse=[new Float32Array(2),new Float32Array(2)];var xse=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),bse=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],wse=[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])],Sse=[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 Mse=new Map([[on(0,0,0,0),new Float32Array([0,0,0,0])],[on(0,0,0,1),new Float32Array([0,0,0,1])],[on(0,0,1,0),new Float32Array([0,0,1,0])],[on(0,0,1,1),new Float32Array([0,0,1,1])],[on(0,1,0,0),new Float32Array([0,1,0,0])],[on(0,1,0,1),new Float32Array([0,1,0,1])],[on(0,1,1,0),new Float32Array([0,1,1,0])],[on(0,1,1,1),new Float32Array([0,1,1,1])],[on(1,0,0,0),new Float32Array([1,0,0,0])],[on(1,0,0,1),new Float32Array([1,0,0,1])],[on(1,0,1,0),new Float32Array([1,0,1,0])],[on(1,0,1,1),new Float32Array([1,0,1,1])],[on(1,1,0,0),new Float32Array([1,1,0,0])],[on(1,1,0,1),new Float32Array([1,1,0,1])],[on(1,1,1,0),new Float32Array([1,1,1,0])],[on(1,1,1,1),new Float32Array([1,1,1,1])]]);function wv(i,e,t){return i+(e-i)*t}function on(i,e,t,r){let n=wv(i,e,1-.25),s=wv(t,r,1-.25);return wv(n,s,1-.125)}var xT=class extends Rn{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 al;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=mT,a.src=gT})}};var Mr=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 ku=class extends Mr{constructor(){super(aT);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 Vu=class extends Mr{constructor(){super(lT)}set contrast(e){this.effect.uniforms.get("contrast").value=e}get contrast(){return this.effect.uniforms.get("contrast").value}set brightness(e){this.effect.uniforms.get("brightness").value=e}get brightness(){return this.effect.uniforms.get("brightness").value}};var Hu=class extends Mr{constructor(){super(uT);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 ju=class extends Mr{constructor(){super(cT)}};var Wu=class extends Mr{constructor(){super(dT);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 Ju=class extends Mr{constructor(){super(fT);this.blendFunction=pt.OVERLAY}};var qu=class extends Mr{constructor(){super(vT)}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 Xu=class extends Mr{constructor(e){super(hT,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 Yu=class extends Mr{constructor(){super(pT)}get granularity(){return this.effect.getGranularity()}set granularity(e){this.effect.setGranularity(e)}};function bT(i,e){return e&&e.enabled&&i.push(e.effect),i}var xp=class{constructor(){this._scene=new Gr;this._camera=new ni;this.effects=new Map;this.loadingManager=new al;this.smaaImageLoader=new xT(this.loadingManager);this.renderPass=new xv;this._renderToScreen=!0;this._hasSmaa=!1;this.clock=new eg,this.enabled=!1,this.debug=!1,this.effects.set("bloom",new ku),this.effects.set("chromaticAberration",new Hu),this.effects.set("vignette",new qu),this.effects.set("noise",new Ju),this.effects.set("colorAverage",new ju),this.effects.set("hueSaturation",new Wu),this.effects.set("brightnessContrast",new Vu),this.effects.set("depthOfField",new Xu),this.effects.set("pixelation",new Yu)}get scene(){return this._scene}set scene(e){this._scene=e}get camera(){return this._camera}set camera(e){this._camera=e}_initSmaa(){let e=this.effectComposer.passes.length;return new Promise(t=>{this.smaaImageLoader.load(([r,n])=>{if(!this.effectComposer)return;let s=new yT(r,n,ha.ULTRA,yp.COLOR);s.edgeDetectionMaterial.setPredicationMode(eT.DEPTH),s.edgeDetectionMaterial.setEdgeDetectionThreshold(.05),s.edgeDetectionMaterial.setPredicationThreshold(.002),s.edgeDetectionMaterial.setPredicationScale(1),this.effectComposer.addPass(new vp(this.camera,s),e),this._hasSmaa=!0,t()})})}async _initPasses(){if(!(!this.effectComposer||!this.renderer))if(this.effectComposer.removeAllPasses(),this._hasSmaa=!1,this.renderPass=new xv(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(bT,[]),t=[this.effects.get("pixelation")].reduce(bT,[]);t.length>0&&this.effectComposer.addPass(new vp(this.camera,...t)),this.effectComposer.addPass(new vp(this.camera,...e))}else this.effectComposer.addPass(this.renderPass)}async reinit(){!this.renderer||(this.effectComposer=new oT(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?Gs:xt;this._rt=new t(e.x,e.y,{depthBuffer:!1,stencilBuffer:!1,wrapS:Os,wrapT:Os}),this._savePass=new rT(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 wT(i,e){return iU(i)}function iU(i){let e={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let t=St.createFromState(i.shape,i.width,i.height);e.shape=t}else i.type==="NonParametricGeometry"&&(e.geometry=new Ho().parse(i));return Rf(e)}var AT=Hv(MT());var Sv;Df.then(i=>{Sv=i});var TT=new Me,sU=new Me,oU=new Me,Ei=new rr,wo=new A,aU=new Me,lU=new Me,da=class extends Lr{constructor(e,t,r,n=new $n){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}=Kn.build(t.geometry,void 0,void 0,!t.flatShading),a=yo(t.material,r),l=new da(n,s,o||void 0,a);return l.calcBoundingBox(),l.freeSubdivPointer(),l.uuid=e,l.fromState(t),l}shallowClone(e){return new Gu(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}=Kn.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){Kn.buildLevel(this.subdivPointer,!0,this.smoothShading,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Kn.buildLevel(this.subdivPointer,!1,this.smoothShading,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){var e;this.originalGeometry.dispose(),this.originalGeometry=Kn.buildLevel(this.subdivPointer,!0,this.smoothShading),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Kn.buildLevel(this.subdivPointer,!1,this.smoothShading)),this.geometry=(e=this.subdividedGeometry)!=null?e:this.originalGeometry}raycast(e,t){var r;this.geometry=this.originalGeometry,Lr.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,AT.SVD)(t),o=TT.set(r[0][0],r[0][1],r[0][2],0,r[1][0],r[1][1],r[1][2],0,r[2][0],r[2][1],r[2][2],0,0,0,0,1),a=sU.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),l=oU.copy(a).transpose();this.shearScale=aU.makeScale(s[0],s[1],s[2]).multiply(l).premultiply(a),this.shearScaleInv=lU.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 ln);let t=e.attributes.position,r=e.boundingSphere.center;Ei.setFromBufferAttribute(t),Ei.getCenter(r),e.boundingSphere.radius=r.distanceTo(Ei.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Ei.getSize(wo);let n={width:wo.x,height:wo.y,depth:wo.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(e){let t=this.originalGeometry;Ei.min.set(e[0],e[2],e[4]),Ei.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(Ei.min.applyMatrix4(this.shearScaleInv),Ei.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new ln);let r=t.boundingSphere.center;Ei.getCenter(r),t.boundingSphere.radius=r.distanceTo(Ei.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Ei.getSize(wo);let n={width:wo.x,height:wo.y,depth:wo.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(Sv.free_bvh(this.subdivPointer),Sv.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,_T(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(_T(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 _T(i,e,t,r){let n=i.position.array,s=i.normal.array,o=TT.makeScale(e,t,r).invert().elements,a,l,c;for(var u=0,d=n.length;u<d;u+=3)n[u]*=e,n[u+1]*=t,n[u+2]*=r,a=s[u],l=s[u+1],c=s[u+2],s[u]=o[0]*a+o[4]*l+o[8]*c,s[u+1]=o[1]*a+o[5]*l+o[9]*c,s[u+2]=o[2]*a+o[6]*l+o[10]*c}function ET(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===Dl.Front?i.side=oi:e.side===Dl.Back?i.side=zt:i.side=Yt)}function cU(i,e){if(Array.isArray(i.material))for(let t of i.material)ET(t,e);else{let t=i.material;ET(t,e)}i.objectType==="SubdivObject"&&e.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!e.flatShading,i.updateMesh())}function CT(i,e,t){let r;if(e.geometry.type==="SubdivGeometry")r=da.createFromState(i,e,t);else{let n=wT(e.geometry,t),s="materials"in e?eA(e.materials,t):yo(e.material,t);hf.is2DParametricMesh(n.userData.type)?r=new Bu(n,s):(n==null?void 0:n.userData.type)==="VectorGeometry"?r=new ua(n,s):e.geometry.type==="NonParametricGeometry"?r=new Gu(n,Array.isArray(s)?s.length>1?s:s[0]:s):r=new Fu(n,s),r.uuid=i,r.fromState(e)}return cU(r,e),r}function LT(i,e,t){return e.type==="Mesh"?CT(i,e,t):e.type==="TextFrame"?$l.createFromState(i,e,t):e.type==="Empty"?ii.createFromState(i,e):e.type==="PointLight"?Ru.createFromState(i,e,t):e.type==="SpotLight"?Ou.createFromState(i,e,t):e.type==="DirectionalLight"?Du.createFromState(i,e,t):so.is(e.type)?ni.createFromState(i,e):(console.error(e),new ii)}function uU(i,e){e.uniforms[`f${e.id}_transmissionSamplerMap`].value=i.texture,e.uniforms[`f${e.id}_transmissionDepthMap`].value=i.depthTexture}function NT(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=>uU(i,s))):e.layers.set(0),r}function PT(i,e){let t=!1;return e.traverseEntity(r=>{if(r instanceof Lr)if(Array.isArray(r.material))for(let n=0;n<r.material.length;n++)NT(i,r,r.material[n])&&(t=!0);else NT(i,r,r.material)&&(t=!0)}),t}function IT(i,e){"material"in i&&hU(i.material,e),"geometry"in i&&i.geometry.dispose()}function hU(i,e){Bb(i).forEach(t=>{e.isSharedMaterial(t)||t.dispose()})}var DT=new A,Mv=class extends lp(Gr){constructor(e,t){super();this.objectType="Scene";this.alpha=1;this.backupFog=new Xa(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 xp,this.ambientLight=new Vo(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=PT(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(sr(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 ni&&this.switchActiveCamera(r)}}initPostprocessing(e){let n=e,{enabled:t}=n,r=kv(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=>{IT(t,e)});for(let t of this.children)En(t)&&t.removeFromParent()}resetAfterClear(e,t){this.init(e,t)}createPersonalCamera(){let e=ni.createFromState(Mv.PERSONAL_CAMERA_ID,xe(re({},ff.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)En(s)&&!s.raycastLock&&s.visible&&((Bf(s)||Ss(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)En(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=sr(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){H1(this.ambientLight,e,t),e.groundColor!==void 0&&(this.ambientLight.groundColor=sr(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=LT(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 rr;return r.setFromPoints(t),r.getCenter(DT),DT}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 Lr)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})})}},wp=Mv;wp.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var Av=class{constructor(e,t,r,n){this.isEnable=!1;this.splineEvents={};this._enableEvent={};this._map={};this._prevAncestors=[];this._raycaster=new oy;this._intersection=new A;this._plane=new xn;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;(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 ii&&(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 ii&&(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 ii&&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)En(s)&&!s.raycastLock&&s.visible&&(kA(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"}})();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 Tv=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)}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=dU(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 dU(i,e,t,r,n){return(i-e)/(t-e)*(n-r)+r}var RT=new sn,ec=class extends tn{},Qu=class{constructor(e){this.materials={};this.images={};this.colors={};this.transmissionRenderTarget=new xt(2048,2048,{generateMipmaps:!0,minFilter:Li,magFilter:tt,wrapS:ar,wrapT:ar}),this.transmissionRenderTarget.depthTexture=new fs(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,Ky(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===RT}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){var t;return(t=this.materials[e])!=null?t:RT}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 ec(t.r,t.g,t.b,t.a):this.colors[e]=new ec(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 fU(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 _v(i,e,t,r,n){var o;let s=!1;for(let[a,l]of Object.entries(i)){if(!a||l===void 0||ep(a,t,n))continue;let c=t.uniforms[`f${t.id}_${a}`];if(!!c)switch(c.constructor){case Lt:if(typeof l=="string"){let u=e.getColor(l);u&&(c.value=u);break}else{let u=l;c.value instanceof ec?c.value=new tn(u.r,u.g,u.b,u.a):c.setRGBA(u);break}case Xi:if(typeof l=="string"){let u=e.getColor(l);u&&(c.value=u);break}else{let u=l;c.value instanceof ec?c.value=new tn(u.r,u.g,u.b,u.a):c.value.setRGBA(u.r,u.g,u.b,u.a);break}case Jr:{let u=l;c.value.setX(u[0]),c.value.setY(u[1]);break}case qr:{let u=l;c.value.setX(u[0]),c.value.setY(u[1]),c.value.setZ(u[2]);break}case rn:{let u=l;"image"in u&&(c.value.image=e.getImage(u.image)),"wrapping"in u&&(c.value.wrapS=c.value.wrapT=u.wrapping),"repeat"in u&&(c.value.repeat=u.repeat),"offset"in u&&(c.value.offset=u.offset),c.value.needsUpdate=!0;break}case go:{l.forEach((u,d)=>{c.value[d].setX(u[0]),c.value[d].setY(u[1]),c.value[d].setZ(u[2]),c.value[d].setW(u[3])});break}default:{s=s||fU(t,a),c.value=l;break}}}if(s&&n){let a=$f({id:"0",fi:0,data:n},e);(o=r.userData.layers)==null||o.changeLayer(t.id,re({},a)),r.dispose(),r.needsUpdate=!0}}function OT(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 xo(a);pU(a,o,null,t),l.states.push(Qi.create(s,o,t));for(let u of o.states){let d=nu.patch(o,u.data);l.states.push(Qi.create(u.id,d,t))}if(o.events)for(let u of o.events){let d=u.data,h=new vo(d.type);if("key"in d&&(h.key=d.key),"url"in d&&(h.url=(c=d.url)!=null?c:void 0),"distance"in d&&(h.distance=d.distance),"steps"in d&&(h.steps=d.steps),"targets"in d)for(let{data:p}of d.targets){let f=Ts.create(p);p.object?(f.object=e.find(p.object),r.push([f,p.object,p.state])):f.object=void 0,h.addTarget(f)}l.events.push(h)}});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 pU(i,e,t,r,n=!1){if(!n&&e.states.length===0)return;let s=t===null?e:nu.patch(e,e.states.data(t));if(_y(i,s),i instanceof ni&&so.is(s.type)){let a=s;i.setZoom("PerspectiveCamera",a.perspective.zoom),i.setZoom("OrthographicCamera",a.orthographic.zoom)}else if(i instanceof Lr&&s.type==="Mesh"){if(i instanceof da?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);_v(l.data,r,c,i.material,l.data)}}}else if("materials"in s){if(!(i.material instanceof Array))return;var o=0;for(let a of s.materials){if(typeof a!="string"){let l=a.layers;for(let c of l){let u=i.material[o].userData.layers.getLayerByUuid(c.id);_v(c.data,r,u,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 Ev=class{constructor(e){this.sharedAssets=new Qu(e.shared),this.scene=new wp(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 tc=".",Ku=Symbol("target"),Cv=Symbol("unsubscribe");function Zu(i){return i instanceof Date||i instanceof Set||i instanceof Map||i instanceof WeakSet||i instanceof WeakMap||ArrayBuffer.isView(i)}function BT(i){return(typeof i=="object"?i===null:typeof i!="function")||i instanceof RegExp}var Vn=Array.isArray;function fa(i){return typeof i=="symbol"}var mU={after:(i,e)=>Vn(i)?i.slice(e.length):e===""?i:i.slice(e.length+1),concat:(i,e)=>Vn(i)?(i=[...i],e&&i.push(e),i):e&&e.toString!==void 0?(i!==""&&(i+=tc),fa(e)?i+e.toString():i+e):i,initial:i=>{if(Vn(i))return i.slice(0,-1);if(i==="")return i;let e=i.lastIndexOf(tc);return e===-1?"":i.slice(0,e)},last:i=>{if(Vn(i))return i[i.length-1]||"";if(i==="")return i;let e=i.lastIndexOf(tc);return e===-1?i:i.slice(e+1)},walk:(i,e)=>{if(Vn(i))for(let t of i)e(t);else if(i!==""){let t=0,r=i.indexOf(tc);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(tc,t)}},get(i,e){return this.walk(e,t=>{i&&(i=i[t])}),i}},gn=mU;function Lv(i){return typeof i=="object"&&typeof i.next=="function"}function Nv(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[Ku].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 Sp(i,e,t){return i.isUnsubscribed||e.ignoreSymbols&&fa(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var Mp=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,gn.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 rc(i){return toString.call(i)==="[object Object]"}function nc(){return!0}function So(i,e){return i.length!==e.length||i.some((t,r)=>e[r]!==t)}var Ap=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var gU=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),Pv={push:nc,pop:nc,shift:nc,unshift:nc,copyWithin:So,reverse:So,sort:So,splice:So,flat:So,fill:So},FT=new Set([...Ap,...gU,...Object.keys(Pv)]);function ic(i,e){if(i.size!==e.size)return!0;for(let t of i)if(!e.has(t))return!0;return!1}var Iv=["keys","values","entries"],Dv=new Set(["has","toString"]),Rv={add:ic,clear:ic,delete:ic,forEach:ic},GT=new Set([...Dv,...Object.keys(Rv),...Iv]);function sc(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 yU=new Set([...Dv,"get"]),Ov={set:sc,clear:sc,delete:sc,forEach:sc},zT=new Set([...yU,...Object.keys(Ov),...Iv]);var Yr=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 Ap.has(e)}_shallowClone(e){let t=e;if(rc(e))t=re({},e);else if(Vn(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?(Vn(n)?this._onIsChanged=Pv[t]:n instanceof Set?this._onIsChanged=Rv[t]:n instanceof Map&&(this._onIsChanged=Ov[t]),n):r}update(e,t,r){let n=gn.after(e,this._path);if(t!=="length"){let s=this.clone;gn.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],gn.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var $u=class extends Yr{static isHandledMethod(e){return FT.has(e)}};var Tp=class extends Yr{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var eh=class extends Yr{static isHandledMethod(e){return GT.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 th=class extends Yr{static isHandledMethod(e){return zT.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 _p=class extends Yr{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 Ep=class extends Yr{constructor(e,t,r,n){super(void 0,t,r,n);this._weakKey=r[0],this._weakHas=e.has(this._weakKey),this._weakValue=e.get(this._weakKey)}isChanged(e){return this._weakValue!==e.get(this._weakKey)}undo(e){let t=e.has(this._weakKey);this._weakHas&&!t?e.set(this._weakKey,this._weakValue):!this._weakHas&&t?e.delete(this._weakKey):this._weakValue!==e.get(this._weakKey)&&e.set(this._weakKey,this._weakValue)}};var is=class{constructor(e){this._stack=[],this._hasOnValidate=e}static isHandledType(e){return rc(e)||Vn(e)||Zu(e)}static isHandledMethod(e,t){return rc(e)?Yr.isHandledMethod(t):Vn(e)?$u.isHandledMethod(t):e instanceof Set?eh.isHandledMethod(t):e instanceof Map?th.isHandledMethod(t):Zu(e)}get isCloning(){return this._stack.length>0}start(e,t,r){let n=Yr;Vn(e)?n=$u:e instanceof Date?n=Tp:e instanceof Set?n=eh:e instanceof Map?n=th:e instanceof WeakSet?n=_p:e instanceof WeakMap&&(n=Ep),this._stack.push(new n(e,t,r,this._hasOnValidate))}update(e,t,r){this._stack[this._stack.length-1].update(e,t,r)}preferredThisArg(e,t,r){let{name:n}=e,s=is.isHandledMethod(r,n);return this._stack[this._stack.length-1].preferredThisArg(s,n,t,r)}isChanged(e,t,r){return this._stack[this._stack.length-1].isChanged(e,t,r)}undo(e){this._previousClone!==void 0&&this._previousClone.undo(e)}stop(){return this._previousClone=this._stack.pop(),this._previousClone.clone}};var vU={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},Bv=(i,e,t={})=>{t=re(re({},vU),t);let r=Symbol("ProxyTarget"),{equals:n,isShallow:s,ignoreDetached:o,details:a}=t,l=new Mp(n),c=typeof t.onValidate=="function",u=new is(c),d=(m,x,b,w,T)=>!c||u.isCloning||t.onValidate(gn.concat(l.getPath(m),x),b,w,T)===!0,h=(m,x,b,w)=>{!Sp(l,t,x)&&!(o&&l.isDetached(m,i))&&p(l.getPath(m),x,b,w)},p=(m,x,b,w,T)=>{u.isCloning?u.update(m,x,w):e(gn.concat(m,x),b,w,T)},f=m=>m&&(m[r]||m),g=(m,x,b,w)=>BT(m)||b==="constructor"||s&&!is.isHandledMethod(x,b)||Sp(l,t,b)||l.isGetInvariant(x,b)||o&&l.isDetached(x,i)?m:(w===void 0&&(w=l.getPath(x)),l.getProxy(m,gn.concat(w,b),v,r)),v={get(m,x,b){if(fa(x)){if(x===r||x===Ku)return m;if(x===Cv&&!l.isUnsubscribed&&l.getPath(m).length===0)return l.unsubscribe(),m}let w=Zu(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)?(h(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)&&h(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)?(h(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))&&is.isHandledType(w)){let T=gn.initial(l.getPath(m)),S=is.isHandledMethod(w,m.name);u.start(w,T,b);let M=Reflect.apply(m,u.preferredThisArg(m,x,w),S?b.map(_=>f(_)):b),E=u.isChanged(w,n),C=u.stop();if(is.isHandledType(M)&&S&&(x instanceof Map&&m.name==="get"&&(T=gn.concat(T,b[0])),M=l.getProxy(M,T,v)),E){let _={name:m.name,args:b,result:M},O=u.isCloning?gn.initial(T):T,P=u.isCloning?gn.last(T):"";d(gn.get(i,O),P,w,C,_)?p(O,P,w,C,_):u.undo(w)}return(x instanceof Map||x instanceof Set)&&Lv(M)?Nv(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};Bv.target=i=>i&&i[Ku]||i;Bv.unsubscribe=i=>i[Cv]||i;var Fv=Bv;var Mo;(function(t){t[t.FULLSCREEN=1]="FULLSCREEN",t[t.CUSTOM=2]="CUSTOM"})(Mo||(Mo={}));var xU=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=xo.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",qc(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=tf.deserialize(new Uint8Array(e));this._publishData=t.scene.publish;let n=new Ev(t).scene;this._scene=n,this._sharedAssetsManager=new Qu(t.shared),this._sharedAssetsManager.onImageLoad=()=>{this.requestRender()},OT(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:Li,magFilter:tt,wrapS:ar,wrapT:ar}),this._transmissionRenderTarget.depthTexture=new fs(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 Tv(this._renderer,this._camera,new F(this._viewportWidth,this._viewportHeight),new F(window.innerWidth,window.innerHeight)),!0&&(this._controls=new ny(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 Av(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)}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=>{Fv.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=Fv(t,(n,s)=>{var a;typeof e[n]!="object"&&((a=Object.getOwnPropertyDescriptor(e,n))==null?void 0:a.writable)&&(e[n]=s),this.requestRender()});return this._proxyObjectCache.set(e.uuid,r),r}};en.FONTS_PATH="_assets/_fonts/";export{xU as Application};
|
|
4417
|
+
outputColor=vec4(color,inputColor.a);}`,vT=class extends ns{constructor(i={}){let e=Object.assign({blendFunction:pt.NORMAL,eskil:!1,offset:.5,darkness:.5},i);super("VignetteEffect",nU,{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())}},mse=[new Float32Array(3),new Float32Array(3)],gse=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],yse=[[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 vse=[new Float32Array(2),new Float32Array(2)];var xse=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),bse=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],wse=[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])],Sse=[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 Mse=new Map([[on(0,0,0,0),new Float32Array([0,0,0,0])],[on(0,0,0,1),new Float32Array([0,0,0,1])],[on(0,0,1,0),new Float32Array([0,0,1,0])],[on(0,0,1,1),new Float32Array([0,0,1,1])],[on(0,1,0,0),new Float32Array([0,1,0,0])],[on(0,1,0,1),new Float32Array([0,1,0,1])],[on(0,1,1,0),new Float32Array([0,1,1,0])],[on(0,1,1,1),new Float32Array([0,1,1,1])],[on(1,0,0,0),new Float32Array([1,0,0,0])],[on(1,0,0,1),new Float32Array([1,0,0,1])],[on(1,0,1,0),new Float32Array([1,0,1,0])],[on(1,0,1,1),new Float32Array([1,0,1,1])],[on(1,1,0,0),new Float32Array([1,1,0,0])],[on(1,1,0,1),new Float32Array([1,1,0,1])],[on(1,1,1,0),new Float32Array([1,1,1,0])],[on(1,1,1,1),new Float32Array([1,1,1,1])]]);function wv(i,e,t){return i+(e-i)*t}function on(i,e,t,r){let n=wv(i,e,1-.25),s=wv(t,r,1-.25);return wv(n,s,1-.125)}var xT=class extends Rn{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 al;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=mT,a.src=gT})}};var Mr=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 ku=class extends Mr{constructor(){super(aT);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 Vu=class extends Mr{constructor(){super(lT)}set contrast(e){this.effect.uniforms.get("contrast").value=e}get contrast(){return this.effect.uniforms.get("contrast").value}set brightness(e){this.effect.uniforms.get("brightness").value=e}get brightness(){return this.effect.uniforms.get("brightness").value}};var Hu=class extends Mr{constructor(){super(uT);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 ju=class extends Mr{constructor(){super(cT)}};var Wu=class extends Mr{constructor(){super(dT);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 Ju=class extends Mr{constructor(){super(fT);this.blendFunction=pt.OVERLAY}};var qu=class extends Mr{constructor(){super(vT)}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 Xu=class extends Mr{constructor(e){super(hT,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 Yu=class extends Mr{constructor(){super(pT)}get granularity(){return this.effect.getGranularity()}set granularity(e){this.effect.setGranularity(e)}};function bT(i,e){return e&&e.enabled&&i.push(e.effect),i}var xp=class{constructor(){this._scene=new Gr;this._camera=new ni;this.effects=new Map;this.loadingManager=new al;this.smaaImageLoader=new xT(this.loadingManager);this.renderPass=new xv;this._renderToScreen=!0;this._hasSmaa=!1;this.search=null;this.area=null;this.clock=new eg,this.enabled=!1,this.debug=!1,this.effects.set("bloom",new ku),this.effects.set("chromaticAberration",new Hu),this.effects.set("vignette",new qu),this.effects.set("noise",new Ju),this.effects.set("colorAverage",new ju),this.effects.set("hueSaturation",new Wu),this.effects.set("brightnessContrast",new Vu),this.effects.set("depthOfField",new Xu),this.effects.set("pixelation",new Yu),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 yT(this.search,this.area,ha.ULTRA,yp.COLOR);t.edgeDetectionMaterial.setPredicationMode(eT.DEPTH),t.edgeDetectionMaterial.setEdgeDetectionThreshold(.05),t.edgeDetectionMaterial.setPredicationThreshold(.002),t.edgeDetectionMaterial.setPredicationScale(1),this.effectComposer.addPass(new vp(this.camera,t),e),this._hasSmaa=!0}async _initPasses(){if(!(!this.effectComposer||!this.renderer))if(this.effectComposer.removeAllPasses(),this._hasSmaa=!1,this.renderPass=new xv(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(bT,[]),t=[this.effects.get("pixelation")].reduce(bT,[]);t.length>0&&this.effectComposer.addPass(new vp(this.camera,...t)),this.effectComposer.addPass(new vp(this.camera,...e))}else this.effectComposer.addPass(this.renderPass)}async reinit(){!this.renderer||(this.effectComposer=new oT(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?Gs:xt;this._rt=new t(e.x,e.y,{depthBuffer:!1,stencilBuffer:!1,wrapS:Os,wrapT:Os}),this._savePass=new rT(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 wT(i,e){return iU(i)}function iU(i){let e={parameters:i,type:i.type};if(i.type==="VectorGeometry"){let t=St.createFromState(i.shape,i.width,i.height);e.shape=t}else i.type==="NonParametricGeometry"&&(e.geometry=new Ho().parse(i));return Rf(e)}var AT=Hv(MT());var Sv;Df.then(i=>{Sv=i});var TT=new Me,sU=new Me,oU=new Me,Ei=new rr,wo=new A,aU=new Me,lU=new Me,da=class extends Lr{constructor(e,t,r,n=new $n){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}=Kn.build(t.geometry,void 0,void 0,!t.flatShading),a=yo(t.material,r),l=new da(n,s,o||void 0,a);return l.calcBoundingBox(),l.freeSubdivPointer(),l.uuid=e,l.fromState(t),l}shallowClone(e){return new Gu(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}=Kn.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){Kn.buildLevel(this.subdivPointer,!0,this.smoothShading,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Kn.buildLevel(this.subdivPointer,!1,this.smoothShading,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){var e;this.originalGeometry.dispose(),this.originalGeometry=Kn.buildLevel(this.subdivPointer,!0,this.smoothShading),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Kn.buildLevel(this.subdivPointer,!1,this.smoothShading)),this.geometry=(e=this.subdividedGeometry)!=null?e:this.originalGeometry}raycast(e,t){var r;this.geometry=this.originalGeometry,Lr.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,AT.SVD)(t),o=TT.set(r[0][0],r[0][1],r[0][2],0,r[1][0],r[1][1],r[1][2],0,r[2][0],r[2][1],r[2][2],0,0,0,0,1),a=sU.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),l=oU.copy(a).transpose();this.shearScale=aU.makeScale(s[0],s[1],s[2]).multiply(l).premultiply(a),this.shearScaleInv=lU.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 ln);let t=e.attributes.position,r=e.boundingSphere.center;Ei.setFromBufferAttribute(t),Ei.getCenter(r),e.boundingSphere.radius=r.distanceTo(Ei.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Ei.getSize(wo);let n={width:wo.x,height:wo.y,depth:wo.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(e){let t=this.originalGeometry;Ei.min.set(e[0],e[2],e[4]),Ei.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(Ei.min.applyMatrix4(this.shearScaleInv),Ei.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new ln);let r=t.boundingSphere.center;Ei.getCenter(r),t.boundingSphere.radius=r.distanceTo(Ei.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Ei.getSize(wo);let n={width:wo.x,height:wo.y,depth:wo.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(Sv.free_bvh(this.subdivPointer),Sv.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,_T(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(_T(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 _T(i,e,t,r){let n=i.position.array,s=i.normal.array,o=TT.makeScale(e,t,r).invert().elements,a,l,c;for(var u=0,d=n.length;u<d;u+=3)n[u]*=e,n[u+1]*=t,n[u+2]*=r,a=s[u],l=s[u+1],c=s[u+2],s[u]=o[0]*a+o[4]*l+o[8]*c,s[u+1]=o[1]*a+o[5]*l+o[9]*c,s[u+2]=o[2]*a+o[6]*l+o[10]*c}function ET(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===Dl.Front?i.side=oi:e.side===Dl.Back?i.side=zt:i.side=Yt)}function cU(i,e){if(Array.isArray(i.material))for(let t of i.material)ET(t,e);else{let t=i.material;ET(t,e)}i.objectType==="SubdivObject"&&e.flatShading!==void 0&&(i.material.flatShading=!1,i.smoothShading=!e.flatShading,i.updateMesh())}function CT(i,e,t){let r;if(e.geometry.type==="SubdivGeometry")r=da.createFromState(i,e,t);else{let n=wT(e.geometry,t),s="materials"in e?eA(e.materials,t):yo(e.material,t);hf.is2DParametricMesh(n.userData.type)?r=new Bu(n,s):(n==null?void 0:n.userData.type)==="VectorGeometry"?r=new ua(n,s):e.geometry.type==="NonParametricGeometry"?r=new Gu(n,Array.isArray(s)?s.length>1?s:s[0]:s):r=new Fu(n,s),r.uuid=i,r.fromState(e)}return cU(r,e),r}function LT(i,e,t){return e.type==="Mesh"?CT(i,e,t):e.type==="TextFrame"?$l.createFromState(i,e,t):e.type==="Empty"?ii.createFromState(i,e):e.type==="PointLight"?Ru.createFromState(i,e,t):e.type==="SpotLight"?Ou.createFromState(i,e,t):e.type==="DirectionalLight"?Du.createFromState(i,e,t):so.is(e.type)?ni.createFromState(i,e):(console.error(e),new ii)}function uU(i,e){e.uniforms[`f${e.id}_transmissionSamplerMap`].value=i.texture,e.uniforms[`f${e.id}_transmissionDepthMap`].value=i.depthTexture}function NT(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=>uU(i,s))):e.layers.set(0),r}function PT(i,e){let t=!1;return e.traverseEntity(r=>{if(r instanceof Lr)if(Array.isArray(r.material))for(let n=0;n<r.material.length;n++)NT(i,r,r.material[n])&&(t=!0);else NT(i,r,r.material)&&(t=!0)}),t}function IT(i,e){"material"in i&&hU(i.material,e),"geometry"in i&&i.geometry.dispose()}function hU(i,e){Bb(i).forEach(t=>{e.isSharedMaterial(t)||t.dispose()})}var DT=new A,Mv=class extends lp(Gr){constructor(e,t){super();this.objectType="Scene";this.alpha=1;this.backupFog=new Xa(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 xp,this.ambientLight=new Vo(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=PT(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(sr(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 ni&&this.switchActiveCamera(r)}}initPostprocessing(e){let n=e,{enabled:t}=n,r=kv(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=>{IT(t,e)});for(let t of this.children)En(t)&&t.removeFromParent()}resetAfterClear(e,t){this.init(e,t)}createPersonalCamera(){let e=ni.createFromState(Mv.PERSONAL_CAMERA_ID,xe(re({},ff.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)En(s)&&!s.raycastLock&&s.visible&&((Bf(s)||Ss(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)En(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=sr(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){H1(this.ambientLight,e,t),e.groundColor!==void 0&&(this.ambientLight.groundColor=sr(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=LT(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 rr;return r.setFromPoints(t),r.getCenter(DT),DT}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 Lr)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})})}},wp=Mv;wp.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var Av=class{constructor(e,t,r,n){this.isEnable=!1;this.splineEvents={};this._enableEvent={};this._map={};this._prevAncestors=[];this._raycaster=new oy;this._intersection=new A;this._plane=new xn;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;(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 ii&&(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 ii&&(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 ii&&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)En(s)&&!s.raycastLock&&s.visible&&(kA(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"}})();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 Tv=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)}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=dU(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 dU(i,e,t,r,n){return(i-e)/(t-e)*(n-r)+r}var RT=new sn,ec=class extends tn{},Qu=class{constructor(e){this.materials={};this.images={};this.colors={};this.transmissionRenderTarget=new xt(2048,2048,{generateMipmaps:!0,minFilter:Li,magFilter:tt,wrapS:ar,wrapT:ar}),this.transmissionRenderTarget.depthTexture=new fs(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,Ky(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===RT}getMaterial(e){let t=this.materials[e];return t}getMaterialOrDeletedPlaceholder(e){var t;return(t=this.materials[e])!=null?t:RT}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 ec(t.r,t.g,t.b,t.a):this.colors[e]=new ec(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 fU(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 _v(i,e,t,r,n){var o;let s=!1;for(let[a,l]of Object.entries(i)){if(!a||l===void 0||ep(a,t,n))continue;let c=t.uniforms[`f${t.id}_${a}`];if(!!c)switch(c.constructor){case Lt:if(typeof l=="string"){let u=e.getColor(l);u&&(c.value=u);break}else{let u=l;c.value instanceof ec?c.value=new tn(u.r,u.g,u.b,u.a):c.setRGBA(u);break}case Xi:if(typeof l=="string"){let u=e.getColor(l);u&&(c.value=u);break}else{let u=l;c.value instanceof ec?c.value=new tn(u.r,u.g,u.b,u.a):c.value.setRGBA(u.r,u.g,u.b,u.a);break}case Jr:{let u=l;c.value.setX(u[0]),c.value.setY(u[1]);break}case qr:{let u=l;c.value.setX(u[0]),c.value.setY(u[1]),c.value.setZ(u[2]);break}case rn:{let u=l;"image"in u&&(c.value.image=e.getImage(u.image)),"wrapping"in u&&(c.value.wrapS=c.value.wrapT=u.wrapping),"repeat"in u&&(c.value.repeat=u.repeat),"offset"in u&&(c.value.offset=u.offset),c.value.needsUpdate=!0;break}case go:{l.forEach((u,d)=>{c.value[d].setX(u[0]),c.value[d].setY(u[1]),c.value[d].setZ(u[2]),c.value[d].setW(u[3])});break}default:{s=s||fU(t,a),c.value=l;break}}}if(s&&n){let a=$f({id:"0",fi:0,data:n},e);(o=r.userData.layers)==null||o.changeLayer(t.id,re({},a)),r.dispose(),r.needsUpdate=!0}}function OT(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 xo(a);pU(a,o,null,t),l.states.push(Qi.create(s,o,t));for(let u of o.states){let d=nu.patch(o,u.data);l.states.push(Qi.create(u.id,d,t))}if(o.events)for(let u of o.events){let d=u.data,h=new vo(d.type);if("key"in d&&(h.key=d.key),"url"in d&&(h.url=(c=d.url)!=null?c:void 0),"distance"in d&&(h.distance=d.distance),"steps"in d&&(h.steps=d.steps),"targets"in d)for(let{data:p}of d.targets){let f=Ts.create(p);p.object?(f.object=e.find(p.object),r.push([f,p.object,p.state])):f.object=void 0,h.addTarget(f)}l.events.push(h)}});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 pU(i,e,t,r,n=!1){if(!n&&e.states.length===0)return;let s=t===null?e:nu.patch(e,e.states.data(t));if(_y(i,s),i instanceof ni&&so.is(s.type)){let a=s;i.setZoom("PerspectiveCamera",a.perspective.zoom),i.setZoom("OrthographicCamera",a.orthographic.zoom)}else if(i instanceof Lr&&s.type==="Mesh"){if(i instanceof da?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);_v(l.data,r,c,i.material,l.data)}}}else if("materials"in s){if(!(i.material instanceof Array))return;var o=0;for(let a of s.materials){if(typeof a!="string"){let l=a.layers;for(let c of l){let u=i.material[o].userData.layers.getLayerByUuid(c.id);_v(c.data,r,u,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 Ev=class{constructor(e){this.sharedAssets=new Qu(e.shared),this.scene=new wp(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 tc=".",Ku=Symbol("target"),Cv=Symbol("unsubscribe");function Zu(i){return i instanceof Date||i instanceof Set||i instanceof Map||i instanceof WeakSet||i instanceof WeakMap||ArrayBuffer.isView(i)}function BT(i){return(typeof i=="object"?i===null:typeof i!="function")||i instanceof RegExp}var Vn=Array.isArray;function fa(i){return typeof i=="symbol"}var mU={after:(i,e)=>Vn(i)?i.slice(e.length):e===""?i:i.slice(e.length+1),concat:(i,e)=>Vn(i)?(i=[...i],e&&i.push(e),i):e&&e.toString!==void 0?(i!==""&&(i+=tc),fa(e)?i+e.toString():i+e):i,initial:i=>{if(Vn(i))return i.slice(0,-1);if(i==="")return i;let e=i.lastIndexOf(tc);return e===-1?"":i.slice(0,e)},last:i=>{if(Vn(i))return i[i.length-1]||"";if(i==="")return i;let e=i.lastIndexOf(tc);return e===-1?i:i.slice(e+1)},walk:(i,e)=>{if(Vn(i))for(let t of i)e(t);else if(i!==""){let t=0,r=i.indexOf(tc);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(tc,t)}},get(i,e){return this.walk(e,t=>{i&&(i=i[t])}),i}},gn=mU;function Lv(i){return typeof i=="object"&&typeof i.next=="function"}function Nv(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[Ku].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 Sp(i,e,t){return i.isUnsubscribed||e.ignoreSymbols&&fa(t)||e.ignoreUnderscores&&t.charAt(0)==="_"||"ignoreKeys"in e&&e.ignoreKeys.includes(t)}var Mp=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,gn.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 rc(i){return toString.call(i)==="[object Object]"}function nc(){return!0}function So(i,e){return i.length!==e.length||i.some((t,r)=>e[r]!==t)}var Ap=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]);var gU=new Set(["concat","includes","indexOf","join","keys","lastIndexOf"]),Pv={push:nc,pop:nc,shift:nc,unshift:nc,copyWithin:So,reverse:So,sort:So,splice:So,flat:So,fill:So},FT=new Set([...Ap,...gU,...Object.keys(Pv)]);function ic(i,e){if(i.size!==e.size)return!0;for(let t of i)if(!e.has(t))return!0;return!1}var Iv=["keys","values","entries"],Dv=new Set(["has","toString"]),Rv={add:ic,clear:ic,delete:ic,forEach:ic},GT=new Set([...Dv,...Object.keys(Rv),...Iv]);function sc(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 yU=new Set([...Dv,"get"]),Ov={set:sc,clear:sc,delete:sc,forEach:sc},zT=new Set([...yU,...Object.keys(Ov),...Iv]);var Yr=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 Ap.has(e)}_shallowClone(e){let t=e;if(rc(e))t=re({},e);else if(Vn(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?(Vn(n)?this._onIsChanged=Pv[t]:n instanceof Set?this._onIsChanged=Rv[t]:n instanceof Map&&(this._onIsChanged=Ov[t]),n):r}update(e,t,r){let n=gn.after(e,this._path);if(t!=="length"){let s=this.clone;gn.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],gn.get(e,t.path)[t.property]=t.previous}isChanged(e){return this._onIsChanged===void 0?this._isChanged:this._onIsChanged(this.clone,e)}};var $u=class extends Yr{static isHandledMethod(e){return FT.has(e)}};var Tp=class extends Yr{undo(e){e.setTime(this.clone.getTime())}isChanged(e,t){return!t(this.clone.valueOf(),e.valueOf())}};var eh=class extends Yr{static isHandledMethod(e){return GT.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 th=class extends Yr{static isHandledMethod(e){return zT.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 _p=class extends Yr{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 Ep=class extends Yr{constructor(e,t,r,n){super(void 0,t,r,n);this._weakKey=r[0],this._weakHas=e.has(this._weakKey),this._weakValue=e.get(this._weakKey)}isChanged(e){return this._weakValue!==e.get(this._weakKey)}undo(e){let t=e.has(this._weakKey);this._weakHas&&!t?e.set(this._weakKey,this._weakValue):!this._weakHas&&t?e.delete(this._weakKey):this._weakValue!==e.get(this._weakKey)&&e.set(this._weakKey,this._weakValue)}};var is=class{constructor(e){this._stack=[],this._hasOnValidate=e}static isHandledType(e){return rc(e)||Vn(e)||Zu(e)}static isHandledMethod(e,t){return rc(e)?Yr.isHandledMethod(t):Vn(e)?$u.isHandledMethod(t):e instanceof Set?eh.isHandledMethod(t):e instanceof Map?th.isHandledMethod(t):Zu(e)}get isCloning(){return this._stack.length>0}start(e,t,r){let n=Yr;Vn(e)?n=$u:e instanceof Date?n=Tp:e instanceof Set?n=eh:e instanceof Map?n=th:e instanceof WeakSet?n=_p:e instanceof WeakMap&&(n=Ep),this._stack.push(new n(e,t,r,this._hasOnValidate))}update(e,t,r){this._stack[this._stack.length-1].update(e,t,r)}preferredThisArg(e,t,r){let{name:n}=e,s=is.isHandledMethod(r,n);return this._stack[this._stack.length-1].preferredThisArg(s,n,t,r)}isChanged(e,t,r){return this._stack[this._stack.length-1].isChanged(e,t,r)}undo(e){this._previousClone!==void 0&&this._previousClone.undo(e)}stop(){return this._previousClone=this._stack.pop(),this._previousClone.clone}};var vU={equals:Object.is,isShallow:!1,pathAsArray:!1,ignoreSymbols:!1,ignoreUnderscores:!1,ignoreDetached:!1,details:!1},Bv=(i,e,t={})=>{t=re(re({},vU),t);let r=Symbol("ProxyTarget"),{equals:n,isShallow:s,ignoreDetached:o,details:a}=t,l=new Mp(n),c=typeof t.onValidate=="function",u=new is(c),d=(m,x,b,w,T)=>!c||u.isCloning||t.onValidate(gn.concat(l.getPath(m),x),b,w,T)===!0,h=(m,x,b,w)=>{!Sp(l,t,x)&&!(o&&l.isDetached(m,i))&&p(l.getPath(m),x,b,w)},p=(m,x,b,w,T)=>{u.isCloning?u.update(m,x,w):e(gn.concat(m,x),b,w,T)},f=m=>m&&(m[r]||m),g=(m,x,b,w)=>BT(m)||b==="constructor"||s&&!is.isHandledMethod(x,b)||Sp(l,t,b)||l.isGetInvariant(x,b)||o&&l.isDetached(x,i)?m:(w===void 0&&(w=l.getPath(x)),l.getProxy(m,gn.concat(w,b),v,r)),v={get(m,x,b){if(fa(x)){if(x===r||x===Ku)return m;if(x===Cv&&!l.isUnsubscribed&&l.getPath(m).length===0)return l.unsubscribe(),m}let w=Zu(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)?(h(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)&&h(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)?(h(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))&&is.isHandledType(w)){let T=gn.initial(l.getPath(m)),S=is.isHandledMethod(w,m.name);u.start(w,T,b);let M=Reflect.apply(m,u.preferredThisArg(m,x,w),S?b.map(_=>f(_)):b),E=u.isChanged(w,n),C=u.stop();if(is.isHandledType(M)&&S&&(x instanceof Map&&m.name==="get"&&(T=gn.concat(T,b[0])),M=l.getProxy(M,T,v)),E){let _={name:m.name,args:b,result:M},O=u.isCloning?gn.initial(T):T,P=u.isCloning?gn.last(T):"";d(gn.get(i,O),P,w,C,_)?p(O,P,w,C,_):u.undo(w)}return(x instanceof Map||x instanceof Set)&&Lv(M)?Nv(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};Bv.target=i=>i&&i[Ku]||i;Bv.unsubscribe=i=>i[Cv]||i;var Fv=Bv;var Mo;(function(t){t[t.FULLSCREEN=1]="FULLSCREEN",t[t.CUSTOM=2]="CUSTOM"})(Mo||(Mo={}));var xU=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=xo.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",qc(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=tf.deserialize(new Uint8Array(e));this._publishData=t.scene.publish;let n=new Ev(t).scene;this._scene=n,this._sharedAssetsManager=new Qu(t.shared),this._sharedAssetsManager.onImageLoad=()=>{this.requestRender()},OT(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:Li,magFilter:tt,wrapS:ar,wrapT:ar}),this._transmissionRenderTarget.depthTexture=new fs(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 Tv(this._renderer,this._camera,new F(this._viewportWidth,this._viewportHeight),new F(window.innerWidth,window.innerHeight)),!0&&(this._controls=new ny(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 Av(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)}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=>{Fv.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=Fv(t,(n,s)=>{var a;typeof e[n]!="object"&&((a=Object.getOwnPropertyDescriptor(e,n))==null?void 0:a.writable)&&(e[n]=s),this.requestRender()});return this._proxyObjectCache.set(e.uuid,r),r}};en.FONTS_PATH="_assets/_fonts/";export{xU as Application};
|