babylonjs-editor-tools 5.4.1-alpha.4 → 5.4.1-alpha.6

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.
@@ -1 +1 @@
1
- var ce=Object.defineProperty;var Lr=Object.getOwnPropertyDescriptor;var Vr=Object.getOwnPropertyNames;var Br=Object.prototype.hasOwnProperty;var i=(e,r)=>ce(e,"name",{value:r,configurable:!0});var Gr=(e,r)=>{for(var t in r)ce(e,t,{get:r[t],enumerable:!0})},Kr=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Vr(r))!Br.call(e,n)&&n!==t&&ce(e,n,{get:()=>r[n],enumerable:!(o=Lr(r,n))||o.enumerable});return e};var kr=e=>Kr(ce({},"__esModule",{value:!0}),e);var Yn={};Gr(Yn,{AdvancedAssetContainer:()=>ne,Cinematic:()=>se,NodeParticleSystemSet:()=>Or.NodeParticleSystemSet,_applyScriptsForObject:()=>R,_preloadScriptsAssets:()=>Ze,_registerScriptInstance:()=>tt,_removeRegisteredScriptInstance:()=>fe,animationFromSprite:()=>Bn,animationGroupFromScene:()=>bn,applyRenderingConfigurationForCamera:()=>je,applyScriptOnObject:()=>mn,componentFromScene:()=>Sn,configureEngineToUseCompressedTextures:()=>dn,configureShadowMapRefreshRate:()=>Ee,configureShadowMapRenderListPredicate:()=>ve,copyAndParseRagdollConfiguration:()=>Ue,createDefaultRenderingPipeline:()=>Mt,createMotionBlurPostProcess:()=>vt,createSSAO2RenderingPipeline:()=>It,createSSRRenderingPipeline:()=>bt,createTAARenderingPipeline:()=>At,createVLSPostProcess:()=>St,defaultPipelineCameraConfigurations:()=>j,disposeDefaultRenderingPipeline:()=>Ye,disposeMotionBlurPostProcess:()=>Ke,disposeSSAO2RenderingPipeline:()=>Le,disposeSSRRenderingPipeline:()=>Me,disposeTAARenderingPipeline:()=>Ne,disposeVLSPostProcess:()=>Te,forceCompileAllSceneMaterials:()=>gn,generateCinematicAnimationGroup:()=>$n,getAllScriptsByClassForObject:()=>Wt,getAnimationTypeForObject:()=>ie,getDefaultRenderingPipeline:()=>ee,getMotionBlurPostProcess:()=>Ge,getPowerOfTwoUntil:()=>N,getSSAO2RenderingPipeline:()=>nn,getSSRRenderingPipeline:()=>Xr,getScriptByClassForObject:()=>et,getTAARenderingPipeline:()=>tn,getVLSPostProcess:()=>Jr,guiFromAsset:()=>An,isAbstractMesh:()=>B,isAnyParticleSystem:()=>Ie,isArcRotateCamera:()=>Wr,isBone:()=>zr,isCamera:()=>me,isCinematicGroup:()=>kn,isCinematicKey:()=>mt,isCinematicKeyCut:()=>q,isCinematicKeyEvent:()=>Kn,isCinematicSound:()=>zn,isClusteredLightContainer:()=>pe,isDirectionalLight:()=>jr,isFreeCamera:()=>Yr,isGPUParticleSystem:()=>qr,isGroundMesh:()=>$r,isHemisphericLight:()=>Ur,isInstancedMesh:()=>X,isLight:()=>pt,isMesh:()=>M,isNode:()=>k,isParticleSystem:()=>Ce,isPointLight:()=>Hr,isScene:()=>Ae,isSpotLight:()=>Qr,isSprite:()=>xe,isTexture:()=>Pe,isTransformNode:()=>K,loadMaterialFromFile:()=>fn,loadScene:()=>un,motionBlurPostProcessCameraConfigurations:()=>H,nodeFromDescendants:()=>hn,nodeFromScene:()=>yn,normalizeAtlasJson:()=>nt,onKeyboardEvent:()=>Ln,onPointerEvent:()=>_n,parseCinematic:()=>Gn,parseCinematicKeyValue:()=>F,parseDefaultRenderingPipeline:()=>He,parseKeyFrameAnimations:()=>lt,parseMotionBlurPostProcess:()=>ze,parseRagdollConfiguration:()=>Lt,parseSSAO2RenderingPipeline:()=>Be,parseSSRRenderingPipeline:()=>we,parseTAARenderingPipeline:()=>_e,parseVLSPostProcess:()=>Oe,particleSystemFromScene:()=>In,playSpriteAnimationFromName:()=>pn,registerScriptAssetParser:()=>cn,saveRenderingConfigurationForCamera:()=>ln,sceneAsset:()=>Pn,scriptAssetsCache:()=>D,scriptAssetsParsers:()=>oe,scriptsDictionary:()=>w,serializeDefaultRenderingPipeline:()=>We,serializeMotionBlurPostProcess:()=>ke,serializeSSAO2RenderingPipeline:()=>Ve,serializeSSRRenderingPipeline:()=>Re,serializeTAARenderingPipeline:()=>Fe,serializeVLSPostProcess:()=>De,setDefaultRenderingPipelineRef:()=>an,setMotionBlurPostProcessRef:()=>sn,setSSAO2RenderingPipelineRef:()=>on,setSSRRenderingPipelineRef:()=>en,setTAARenderingPipelineRef:()=>rn,setVLSPostProcessRef:()=>Zr,soundFromScene:()=>Cn,spriteFromSpriteManager:()=>Vn,ssaoRenderingPipelineCameraConfigurations:()=>W,ssrRenderingPipelineCameraConfigurations:()=>$,taaRenderingPipelineCameraConfigurations:()=>Y,visibleAsAsset:()=>Fn,visibleAsBoolean:()=>xn,visibleAsColor3:()=>On,visibleAsColor4:()=>Mn,visibleAsEntity:()=>Rn,visibleAsKeyMap:()=>Nn,visibleAsNumber:()=>En,visibleAsString:()=>vn,visibleAsTexture:()=>wn,visibleAsVector2:()=>Tn,visibleAsVector3:()=>Dn,vlsPostProcessCameraConfigurations:()=>z});module.exports=kr(Yn);function B(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(B,"isAbstractMesh");function M(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(M,"isMesh");function X(e){return e.getClassName?.()==="InstancedMesh"}i(X,"isInstancedMesh");function zr(e){return e.getClassName?.()==="Bone"}i(zr,"isBone");function $r(e){return e.getClassName?.()==="GroundMesh"}i($r,"isGroundMesh");function K(e){return e.getClassName?.()==="TransformNode"}i(K,"isTransformNode");function Pe(e){return e?.getClassName?.()==="Texture"}i(Pe,"isTexture");function me(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(me,"isCamera");function Yr(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Yr,"isFreeCamera");function Wr(e){return e.getClassName?.()==="ArcRotateCamera"}i(Wr,"isArcRotateCamera");function Hr(e){return e.getClassName?.()==="PointLight"}i(Hr,"isPointLight");function jr(e){return e.getClassName?.()==="DirectionalLight"}i(jr,"isDirectionalLight");function Qr(e){return e.getClassName?.()==="SpotLight"}i(Qr,"isSpotLight");function Ur(e){return e.getClassName?.()==="HemisphericLight"}i(Ur,"isHemisphericLight");function pt(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(pt,"isLight");function pe(e){return e.getClassName?.()==="ClusteredLightContainer"}i(pe,"isClusteredLightContainer");function k(e){return B(e)||K(e)||pt(e)||me(e)}i(k,"isNode");function Ae(e){return e.getClassName?.()==="Scene"}i(Ae,"isScene");function Ce(e){return e.getClassName?.()==="ParticleSystem"}i(Ce,"isParticleSystem");function qr(e){return e.getClassName?.()==="GPUParticleSystem"}i(qr,"isGPUParticleSystem");function Ie(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(Ie,"isAnyParticleSystem");function xe(e){return e.getClassName?.()==="Sprite"}i(xe,"isSprite");var ut=require("babylonjs"),ft=require("babylonjs");function ve(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=o=>ut.Vector3.Distance(o.getAbsolutePosition(),r.getAbsolutePosition())<=r.range)})}i(ve,"configureShadowMapRenderListPredicate");async function Ee(e){e.executeWhenReady(()=>{e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=r.metadata?.refreshRate??ft.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(Ee,"configureShadowMapRefreshRate");var gt=require("babylonjs"),dt=require("babylonjs"),yt=require("babylonjs"),x=null,z=new Map;function Jr(){return x}i(Jr,"getVLSPostProcess");function Zr(e){x=e}i(Zr,"setVLSPostProcessRef");function Te(e){x&&e.activeCamera&&(x.dispose(e.activeCamera),x=null)}i(Te,"disposeVLSPostProcess");function St(e,r){return r??=e.meshes.find(t=>M(t)),x=new yt.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,dt.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),x}i(St,"createVLSPostProcess");function De(){return x?{meshId:x.mesh?.id,exposure:x.exposure,decay:x.decay,weight:x.weight,density:x.density,invert:x.invert,useCustomMeshPosition:x.useCustomMeshPosition,customMeshPosition:x.customMeshPosition.asArray()}:null}i(De,"serializeVLSPostProcess");function Oe(e,r){let t=null;if(r.meshId){let n=e.getMeshById(r.meshId);n&&M(n)&&(t=n)}let o=St(e,t);return o.exposure=r.exposure,o.decay=r.decay,o.weight=r.weight,o.density=r.density,o.invert=r.invert,o.useCustomMeshPosition=r.useCustomMeshPosition,o.customMeshPosition.copyFrom(gt.Vector3.FromArray(r.customMeshPosition)),o}i(Oe,"parseVLSPostProcess");var ht=require("babylonjs"),h=null,$=new Map;function Xr(){return h}i(Xr,"getSSRRenderingPipeline");function en(e){h=e}i(en,"setSSRRenderingPipelineRef");function Me(){h&&(h.dispose(),h=null)}i(Me,"disposeSSRRenderingPipeline");function bt(e,r){return h=new ht.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),h.samples=4,h}i(bt,"createSSRRenderingPipeline");function Re(){return h?{samples:h.samples,step:h.step,thickness:h.thickness,strength:h.strength,reflectionSpecularFalloffExponent:h.reflectionSpecularFalloffExponent,maxSteps:h.maxSteps,maxDistance:h.maxDistance,roughnessFactor:h.roughnessFactor,reflectivityThreshold:h.reflectivityThreshold,blurDispersionStrehgth:h.blurDispersionStrength,clipToFrustum:h.clipToFrustum,enableSmoothReflections:h.enableSmoothReflections,enableAutomaticThicknessComputation:h.enableAutomaticThicknessComputation,attenuateFacingCamera:h.attenuateFacingCamera,attenuateScreenBorders:h.attenuateScreenBorders,attenuateIntersectionDistance:h.attenuateIntersectionDistance,attenuateBackfaceReflection:h.attenuateBackfaceReflection,blurDownsample:h.blurDownsample,selfCollisionNumSkip:h.selfCollisionNumSkip,ssrDownsample:h.ssrDownsample,backfaceDepthTextureDownsample:h.backfaceDepthTextureDownsample}:null}i(Re,"serializeSSRRenderingPipeline");function we(e,r,t){if(h)return h;let o=bt(e,r);return o.samples=t.samples,o.step=t.step,o.thickness=t.thickness,o.strength=t.strength,o.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,o.maxSteps=t.maxSteps,o.maxDistance=t.maxDistance,o.roughnessFactor=t.roughnessFactor,o.reflectivityThreshold=t.reflectivityThreshold,o.blurDispersionStrength=t.blurDispersionStrehgth,o.clipToFrustum=t.clipToFrustum,o.enableSmoothReflections=t.enableSmoothReflections,o.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,o.attenuateFacingCamera=t.attenuateFacingCamera,o.attenuateScreenBorders=t.attenuateScreenBorders,o.attenuateIntersectionDistance=t.attenuateIntersectionDistance,o.attenuateBackfaceReflection=t.attenuateBackfaceReflection,o.blurDownsample=t.blurDownsample,o.selfCollisionNumSkip=t.selfCollisionNumSkip,o.ssrDownsample=t.ssrDownsample,o.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,o}i(we,"parseSSRRenderingPipeline");var Pt=require("babylonjs"),v=null,Y=new Map;function tn(){return v}i(tn,"getTAARenderingPipeline");function rn(e){v=e}i(rn,"setTAARenderingPipelineRef");function Ne(){v&&(v.dispose(),v=null)}i(Ne,"disposeTAARenderingPipeline");function At(e,r){return v=new Pt.TAARenderingPipeline("TAARenderingPipeline",e,[r]),v.samples=4,v}i(At,"createTAARenderingPipeline");function Fe(){return v?{factor:v.factor,samples:v.samples,clampHistory:v.clampHistory,reprojectHistory:v.reprojectHistory,disableOnCameraMove:v.disableOnCameraMove}:null}i(Fe,"serializeTAARenderingPipeline");function _e(e,r,t){if(v)return v;let o=At(e,r);return o.factor=t.factor,o.samples=t.samples,o.clampHistory=t.clampHistory,o.reprojectHistory=t.reprojectHistory,o.disableOnCameraMove=t.disableOnCameraMove,o}i(_e,"parseTAARenderingPipeline");var Ct=require("babylonjs"),P=null,W=new Map;function nn(){return P}i(nn,"getSSAO2RenderingPipeline");function on(e){P=e}i(on,"setSSAO2RenderingPipelineRef");function Le(){P&&(P.dispose(),P=null)}i(Le,"disposeSSAO2RenderingPipeline");function It(e,r){return P=new Ct.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),P.samples=4,P}i(It,"createSSAO2RenderingPipeline");function Ve(){return P?{radius:P.radius,totalStrength:P.totalStrength,samples:P.samples,maxZ:P.maxZ,minZAspect:P.minZAspect,epsilon:P.epsilon,textureSamples:P.textureSamples,bypassBlur:P.bypassBlur,bilateralSamples:P.bilateralSamples,bilateralSoften:P.bilateralSoften,bilateralTolerance:P.bilateralTolerance,expensiveBlur:P.expensiveBlur}:null}i(Ve,"serializeSSAO2RenderingPipeline");function Be(e,r,t){if(P)return P;let o=It(e,r);return o.radius=t.radius,o.totalStrength=t.totalStrength,o.samples=t.samples,o.maxZ=t.maxZ,o.minZAspect=t.minZAspect,o.epsilon=t.epsilon,o.textureSamples=t.textureSamples,o.bypassBlur=t.bypassBlur,o.bilateralSamples=t.bilateralSamples,o.bilateralSoften=t.bilateralSoften,o.bilateralTolerance=t.bilateralTolerance,o.expensiveBlur=t.expensiveBlur,o}i(Be,"parseSSAO2RenderingPipeline");var xt=require("babylonjs"),E=null,H=new Map;function Ge(){return E}i(Ge,"getMotionBlurPostProcess");function sn(e){E=e}i(sn,"setMotionBlurPostProcessRef");function Ke(){E&&(E.dispose(),E=null)}i(Ke,"disposeMotionBlurPostProcess");function vt(e,r){return E=new xt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),E.motionStrength=1,E.isObjectBased=!0,E}i(vt,"createMotionBlurPostProcess");function ke(){return E?{isObjectBased:E.isObjectBased,motionStrength:E.motionStrength,motionBlurSamples:E.motionBlurSamples}:null}i(ke,"serializeMotionBlurPostProcess");function ze(e,r,t){if(E)return E;let o=vt(e,r);return o.isObjectBased=t.isObjectBased,o.motionStrength=t.motionStrength,o.motionBlurSamples=t.motionBlurSamples,o}i(ze,"parseMotionBlurPostProcess");var Et=require("babylonjs"),$e=require("babylonjs"),Tt=require("babylonjs"),Dt=require("babylonjs"),Ot=require("babylonjs"),p=null,j=new Map;function ee(){return p}i(ee,"getDefaultRenderingPipeline");function an(e){p=e}i(an,"setDefaultRenderingPipelineRef");function Ye(){p&&(p.dispose(),p=null)}i(Ye,"disposeDefaultRenderingPipeline");function Mt(e,r){return p=new Ot.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),p.samples=4,p.depthOfField.lensSize=512,p.depthOfField.fStop=.25,p.depthOfField.focusDistance=55e3,p}i(Mt,"createDefaultRenderingPipeline");function We(){return p?{samples:p.samples,fxaaEnabled:p.fxaaEnabled,imageProcessingEnabled:p.imageProcessingEnabled,exposure:p.imageProcessing?.exposure,contrast:p.imageProcessing?.contrast,fromLinearSpace:p.imageProcessing?.fromLinearSpace,toneMappingEnabled:p.imageProcessing?.toneMappingEnabled,toneMappingType:p.imageProcessing?.toneMappingType,ditheringEnabled:p.imageProcessing?.ditheringEnabled,ditheringIntensity:p.imageProcessing?.ditheringIntensity,bloomEnabled:p.bloomEnabled,bloomThreshold:p.bloomThreshold,bloomWeight:p.bloomWeight,bloomScale:p.bloomScale,bloomKernel:p.bloomKernel,sharpenEnabled:p.sharpenEnabled,sharpenEdgeAmount:p.sharpen.edgeAmount,sharpenColorAmount:p.sharpen.colorAmount,grainEnabled:p.grainEnabled,grainIntensity:p.grain.intensity,grainAnimated:p.grain.animated,depthOfFieldEnabled:p.depthOfFieldEnabled,depthOfFieldBlurLevel:p.depthOfFieldBlurLevel,lensSize:p.depthOfField.lensSize,fStop:p.depthOfField.fStop,focusDistance:p.depthOfField.focusDistance,focalLength:p.depthOfField.focalLength,vignetteEnabled:p.imageProcessing?.vignetteEnabled,vignetteColor:p.imageProcessing?.vignetteColor.asArray(),vignetteWeight:p.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:p.chromaticAberrationEnabled,aberrationAmount:p.chromaticAberration.aberrationAmount,radialIntensity:p.chromaticAberration.radialIntensity,direction:p.chromaticAberration.direction.asArray(),centerPosition:p.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:p.glowLayerEnabled,glowLayerIntensity:p.glowLayer?.intensity,glowLayerBlurKernelSize:p.glowLayer?.blurKernelSize,colorGradingEnabled:p.imageProcessing.colorGradingEnabled,colorGradingTexture:p.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:p.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:p.imageProcessing.colorCurvesEnabled,globalHue:p.imageProcessing.colorCurves?.globalHue,globalDensity:p.imageProcessing.colorCurves?.globalDensity,globalExposure:p.imageProcessing.colorCurves?.globalExposure,globalSaturation:p.imageProcessing.colorCurves?.globalSaturation,highlightsHue:p.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:p.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:p.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:p.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:p.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:p.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:p.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:p.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:p.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:p.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:p.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:p.imageProcessing.colorCurves?.shadowsSaturation}:null}i(We,"serializeDefaultRenderingPipeline");function He(e,r,t,o){if(p)return p;let n=Mt(e,r);if(n.samples=t.samples,n.fxaaEnabled=t.fxaaEnabled,n.imageProcessingEnabled=t.imageProcessingEnabled,n.imageProcessing){if(n.imageProcessing.exposure=t.exposure,n.imageProcessing.contrast=t.contrast,n.imageProcessing.fromLinearSpace=t.fromLinearSpace,n.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,n.imageProcessing.toneMappingType=t.toneMappingType,n.imageProcessing.ditheringEnabled=t.ditheringEnabled,n.imageProcessing.ditheringIntensity=t.ditheringIntensity,n.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,n.imageProcessing.vignetteColor=Et.Color4.FromArray(t.vignetteColor??[0,0,0]),n.imageProcessing.vignetteWeight=t.vignetteWeight??.3,n.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,n.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let s=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let a=o+t.colorGradingTexture.name;s=new Dt.ColorGradingTexture(a,e),s.level=t.colorGradingTexture.level}else{let a=Tt.Texture.Parse(t.colorGradingTexture,e,o);Pe(a)&&(s=a)}n.imageProcessing.colorGradingTexture=s}n.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,n.imageProcessing.colorCurves&&(n.imageProcessing.colorCurves.globalHue=t.globalHue??30,n.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,n.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,n.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,n.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,n.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,n.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,n.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,n.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,n.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,n.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,n.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,n.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,n.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,n.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,n.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return n.bloomEnabled=t.bloomEnabled,n.bloomThreshold=t.bloomThreshold,n.bloomWeight=t.bloomWeight,n.bloomScale=t.bloomScale,n.bloomKernel=t.bloomKernel,n.sharpenEnabled=t.sharpenEnabled,n.sharpen.edgeAmount=t.sharpenEdgeAmount,n.sharpen.colorAmount=t.sharpenColorAmount,n.grainEnabled=t.grainEnabled,n.grain.intensity=t.grainIntensity,n.grain.animated=t.grainAnimated,n.depthOfFieldEnabled=t.depthOfFieldEnabled,n.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,n.depthOfField.lensSize=t.lensSize,n.depthOfField.fStop=t.fStop,n.depthOfField.focusDistance=t.focusDistance,n.depthOfField.focalLength=t.focalLength,n.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,n.chromaticAberration.aberrationAmount=t.aberrationAmount??10,n.chromaticAberration.radialIntensity=t.radialIntensity??1,n.chromaticAberration.direction=$e.Vector2.FromArray(t.direction??[0,0]),n.chromaticAberration.centerPosition=$e.Vector2.FromArray(t.centerPosition??[0,0]),n.glowLayerEnabled=t.glowLayerEnabled??!1,n.glowLayer&&(n.glowLayer.intensity=t.glowLayerIntensity??1,n.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),n}i(He,"parseDefaultRenderingPipeline");function ln(e){W.set(e,Ve()),z.set(e,De()),$.set(e,Re()),H.set(e,ke()),j.set(e,We()),Y.set(e,Fe())}i(ln,"saveRenderingConfigurationForCamera");function je(e,r,t){Le(),Te(e.getScene()),Me(),Ke(),Ye(),Ne();let o=W.get(e);o&&!t?.ssao2Disabled&&Be(e.getScene(),e,o);let n=z.get(e);n&&!t?.vlsDisabled&&Oe(e.getScene(),n);let s=$.get(e);s&&!t?.ssrDisabled&&we(e.getScene(),e,s);let a=H.get(e);a&&!t?.motionBlurDisabled&&ze(e.getScene(),e,a);let f=j.get(e);f&&!t?.defaultPipelineDisabled&&He(e.getScene(),e,f,r);let l=Y.get(e);l&&!t?.taaDisabled&&_e(e.getScene(),e,l)}i(je,"applyRenderingConfigurationForCamera");var te=require("babylonjs"),Rt=require("babylonjs");function wt(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;M(e)?t=e:X(e)&&(t=e.sourceMesh);let o=new Rt.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});o.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?te.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?te.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?te.Quaternion.FromArray(r.massProperties.inertiaOrientation):void 0}),o.shape.density=r.shape.density,o.body.setMotionType(r.body.motionType),o.shape.material=r.material,e.physicsAggregate=o,e.metadata.physicsAggregate=void 0}i(wt,"configurePhysicsAggregate");function Nt(e,r){(Array.isArray(r)?r:[]).forEach(o=>{let n=e.getCameraById(o.cameraId);n&&(o.ssao2RenderingPipeline&&W.set(n,o.ssao2RenderingPipeline),o.vlsPostProcess&&z.set(n,o.vlsPostProcess),o.ssrRenderingPipeline&&$.set(n,o.ssrRenderingPipeline),o.motionBlurPostProcess&&H.set(n,o.motionBlurPostProcess),o.defaultRenderingPipeline&&j.set(n,o.defaultRenderingPipeline),o.taaRenderingPipeline&&Y.set(n,o.taaRenderingPipeline))})}i(Nt,"applyRenderingConfigurations");function ue(e,r){let t=r.soundTracks??[];t.length||t.push(r.mainSoundTrack);for(let o=0,n=t.length;o<n;o++){let s=t[o].soundCollection.find(a=>a.id===e);if(s)return s}return null}i(ue,"getSoundById");function Ft(e,r){let t=r.getNodeByName(e);if(t)return t;let o=r.lights.filter(n=>pe(n));for(let n of o){let s=n.lights.find(a=>a.name===e);if(s)return s}return null}i(Ft,"getNodeByName");function re(e,r){let t=r.getNodeById(e);if(t)return t;let o=r.lights.filter(n=>pe(n));for(let n of o){let s=n.lights.find(a=>a.id===e);if(s)return s}return null}i(re,"getNodeById");var G=require("babylonjs"),_t=require("babylonjs");function Qe(e){let r=_t.Vector3.FromArray(e);return r.equals(G.Axis.X)?G.Axis.X:r.equals(G.Axis.Y)?G.Axis.Y:r.equals(G.Axis.Z)?G.Axis.Z:r}i(Qe,"parseAxis");function Lt(e){return e.runtimeConfiguration.forEach(r=>{r.rotationAxis&&(r.rotationAxis=Qe(r.rotationAxis)),r.boneOffsetAxis&&(r.boneOffsetAxis=Qe(r.boneOffsetAxis))}),e}i(Lt,"parseRagdollConfiguration");function Ue(e){let r={rootNodeId:e.rootNodeId,skeletonName:e.skeletonName,scalingFactor:e.scalingFactor,runtimeConfiguration:e.runtimeConfiguration.map(t=>({name:t.name,bones:t.bones,width:t.width,depth:t.depth,height:t.height,size:t.size,joint:t.joint,min:t.min,max:t.max,boxOffset:t.boxOffset,rotationAxis:t.rotationAxis?.slice(),boneOffsetAxis:t.boneOffsetAxis?.slice()}))};return Lt(r)}i(Ue,"copyAndParseRagdollConfiguration");function qe(e){return e&&JSON.parse(JSON.stringify(e))}i(qe,"cloneJSObject");function Q(e){let r=new Set;e.transformNodes.forEach(t=>{if(t.metadata?.isStaticGroup){let o=t.getDescendants(!1);o.push(t),o.forEach(n=>{if((B(n)||K(n)&&!n.isWorldMatrixFrozen)&&n.freezeWorldMatrix(),B(n)){let s=n.material;s&&!s.isFrozen&&!r.has(s)&&(r.add(s),s.onBindObservable.addOnce(()=>{s.freeze()}))}})}})}i(Q,"configureTransformNodes");var Je=require("babylonjs"),ne=class{static{i(this,"AdvancedAssetContainer")}container;_rootUrl;_scriptsMap;_originalDescendants=[];_nodesMap=new Map;_animationGroupsMap=new Map;constructor(r,t,o){this.container=r,this._rootUrl=t,this._scriptsMap=o,r.populateRootNodes(),r.rootNodes.forEach(n=>{this._originalDescendants.push(n,...n.getDescendants(!1))}),this._originalDescendants.forEach(n=>{this._nodesMap.set(n,{node:n,metadata:qe(n.metadata)})}),r.animationGroups.forEach(n=>{this._animationGroupsMap.set(n.name,n)})}removeDefault(){this.container.getNodes().forEach(r=>{w.get(r)?.forEach(o=>{fe(r,o)})}),this.container.removeAllFromScene()}instantiate(r){let t=Je.Tools.RandomId(),o=i(a=>a,"nameFunction"),n=this.container.instantiateModelsToScene(o,!1,{...r,predicate:i(a=>(a.name=`${a.name}-${t}_${a.id}`,r?.predicate?.(a)??!0),"predicate")}),s=[];return n.rootNodes.forEach(a=>{s.push(a,...a.getDescendants(!1))}),s.forEach(a=>{let f=a.name.split("_"),l=f.pop();a.name=f.join("_");let c=this._originalDescendants.find(m=>m.id===l);a.id=Je.Tools.RandomId(),a.metadata=qe(this._nodesMap.get(c).metadata),s.forEach(m=>{m.metadata.scripts?.forEach(g=>{Object.keys(g.values||{}).forEach(u=>{let d=g.values[u];if(d.type==="entity"){d.value===l&&(d.value=a.id),d.value===c.name&&(d.value=a.name);let y=this._animationGroupsMap.get(d.value);y&&(d.value=o(y.name))}})})})}),s.forEach(a=>{R(this.container.scene,a,this._scriptsMap,this._rootUrl)}),Q(this.container.scene),n}};var Vt=require("babylonjs"),Bt=require("babylonjs");async function Gt(e,r,t){let n=e.split("/").pop().replace(".scene",".babylon"),s=await(0,Bt.LoadAssetContainerAsync)(n,t,{rootUrl:r,pluginExtension:".babylon"});return Vt.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(a=>M(a)&&a._checkDelayState()),s.addAllToScene(),Q(t),s}i(Gt,"preloadSceneScriptAsset");async function Kt(e,r){return await(await fetch(`${r}${e}`)).json()}i(Kt,"preloadCommonScriptAsset");var D=new Map,oe=new Map;function cn(e,r){oe.has(e)&&console.warn(`A parser for the extension '${e}' was already registered. It will be overwritten.`),oe.set(e,r)}i(cn,"registerScriptAssetParser");async function Ze(e,r,t){[r,...r.transformNodes,...r.meshes,...r.lights,...r.cameras].filter(f=>f.metadata?.scripts?.length).map(f=>f.metadata.scripts).flat().forEach(f=>{if(t[f.key]?.default?._SceneAssets?.forEach(c=>{D.get(c.sceneName)||D.set(c.sceneName,null)}),f.values)for(let c in f.values){if(!f.values.hasOwnProperty(c))continue;let m=f.values[c];m.type==="asset"&&m.value&&!D.get(m.value)&&D.set(m.value,null)}});let s=0;for(let f of D.values())f===null&&++s;if(s===0)return s;let a=[];return D.forEach((f,l)=>{D.get(l)||a.push(new Promise(async c=>{try{let m=l.split(".").pop();switch(m){case"scene":D.set(l,new ne(await Gt(l,e,r),e,t));break;default:if(oe.has(m)){let g=oe.get(m);D.set(l,await g({key:l,rootUrl:e,scene:r}));break}else D.set(l,await Kt(l,e));break}}catch(m){console.error(m)}c()}))}),await Promise.all(a),s}i(Ze,"_preloadScriptsAssets");var kt=require("babylonjs"),ge=require("babylonjs"),zt=require("babylonjs"),de=require("babylonjs"),$t=require("babylonjs"),Yt=require("babylonjs-gui");function Xe(e,r,t,o,n){let s=o.constructor;if(!s)return;s._NodesFromScene?.forEach(l=>{o[l.propertyKey.toString()]=Ft(l.nodeName,e)}),s._ComponentsFromScene?.length&&e.getEngine().onBeginFrameObservable.addOnce(()=>{s._ComponentsFromScene?.forEach(l=>{let c=[];if([...e.transformNodes,...e.meshes,...e.lights,...e.cameras].forEach(g=>{let S=et(g,l.componentConstructor);S&&c.push(S)}),c.length>1)throw new Error(`Multiple components of type ${s._ComponentsFromScene[0].componentConstructor.name} found in scene for property "${s._ComponentsFromScene[0].propertyKey.toString()}".`);o[l.propertyKey.toString()]=c[0]??null})}),s._NodesFromDescendants?.forEach(l=>{let c=r.getDescendants?.(l.directDescendantsOnly,m=>m.name===l.nodeName)[0];o[l.propertyKey.toString()]=c??null}),s._AnimationGroups?.forEach(l=>{o[l.propertyKey.toString()]=e.getAnimationGroupByName(l.animationGroupName)}),s._SoundsFromScene?.forEach(l=>{let c=e.getSoundByName?.(l.soundName);o[l.propertyKey.toString()]=c??null}),(s._GuiFromAsset??[]).map(async l=>{let c=`${n}assets/${l.pathInAssets}`;try{let g=await(await fetch(c)).json(),S=Yt.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);S.parseSerializedObject(g.content,!1),o[l.propertyKey.toString()]=S,l.onGuiCreated?.(o,S)}catch(m){throw console.error(`Failed to load GUI from asset: ${c}`),m}}),s._ParticleSystemsFromScene?.forEach(l=>{let c=e.particleSystems?.find(m=>m.name!==l.particleSystemName?!1:l.directDescendantsOnly?m.emitter===r:m);o[l.propertyKey.toString()]=c}),(s._VisibleInInspector??[]).forEach(l=>{let c=l.propertyKey.toString(),m=t.values;if(!m)throw new Error(`No values found for script with key "${t.key}".`);if(m.hasOwnProperty(c)&&m[c].hasOwnProperty("value")){let g=m[c].value;switch(l.configuration.type){case"number":case"boolean":case"keymap":case"string":o[c]=g;break;case"vector2":o[c]=de.Vector2.FromArray(g);break;case"vector3":o[c]=de.Vector3.FromArray(g);break;case"color3":o[c]=ge.Color3.FromArray(g);break;case"color4":o[c]=ge.Color4.FromArray(g);break;case"entity":switch(l.configuration.entityType){case"node":o[c]=re(g,e)??null;break;case"animationGroup":o[c]=e.getAnimationGroupByName(g)??null;break;case"sound":o[c]=ue(g,e);break;case"particleSystem":o[c]=e.particleSystems?.find(u=>u.id===g)??null;break}break;case"texture":g&&(o[c]=zt.Texture.Parse(g,e,n));break;case"asset":if(g){let u=l.configuration.assetType,d=D.get(g);switch(u){case"json":case"gui":case"scene":case"navmesh":o[c]=d;break;case"ragdoll":o[c]=Ue(d);break;case"nodeParticleSystemSet":let y=$t.NodeParticleSystemSet.Parse(d);o[c]=y;break;case"material":o[c]=kt.Material.Parse(d,e,n);break}}}}});let a=null,f=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(m=>m.options.mode==="attachedMeshOnly")&&!B(r))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(s._PointerEvents.find(m=>m.options.mode!=="global")&&!k(r))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');a=e.onPointerObservable.add(m=>{let g=null;s._PointerEvents.forEach(S=>{if(!S.eventTypes.includes(m.type))return;let u=S.propertyKey.toString();if(S.options.mode==="global")return o[u]?.(m);g=m.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let d=g.pickedMesh;if(d&&(S.options.mode==="attachedMeshOnly"&&d===r||S.options.mode==="includeDescendants"&&k(r)&&[r,...r.getDescendants(!1)].find(I=>I===d)))return o[u]?.(m)})})}if(s._KeyboardEvents?.length&&(f=e.onKeyboardObservable.add(l=>{s._KeyboardEvents.forEach(c=>{c.eventTypes.includes(l.type)&&o[c.propertyKey.toString()]?.(l)})})),s._SpritesFromSpriteManager?.length){let l=r;if(!K(l)||!l.isSpriteManager)return console.error("@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.");if(!l.spriteManager)return console.error(`SpriteManagerNode "${l.name}" has no sprite manager assigned.`);s._SpritesFromSpriteManager?.forEach(c=>{let m=l.spriteManager?.sprites.find(g=>g.name===c.spriteName)||null;o[c.propertyKey.toString()]=m})}if(s._AnimationsFromSprite?.length){if(!xe(r))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let l=r.metadata?.spriteAnimations;if(!l?.length)return console.error(`Sprite "${r.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(c=>{let m=l.find(g=>g.name===c.animationName);m?o[c.propertyKey.toString()]=m??null:console.warn(`Sprite animation named "${c.animationName}" not found on sprite "${r.name}".`)})}return s._SceneAssets?.forEach(l=>{o[l.propertyKey.toString()]=D.get(l.sceneName)}),{observers:{pointerObserver:a,keyboardObserver:f}}}i(Xe,"applyDecorators");function R(e,r,t,o){r.metadata?.scripts&&(r.metadata.scripts?.forEach(n=>{if(!n.enabled)return;let s=t[n.key];if(!s)return;let a=s,f={};if(s.default){a=new s.default(r);let l=Xe(e,r,n,a,o);Object.assign(f,l?.observers??{})}a.onStart&&(f.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>a.onStart(r))),a.onUpdate&&(f.onUpdateObserver=e.onBeforeRenderObservable.add(()=>a.onUpdate(r))),tt(r,a,n.key,f)}),r.metadata.scripts=void 0)}i(R,"_applyScriptsForObject");function mn(e,r,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let o=new r(e),n={};return Xe(t,e,{values:{}},o,""),o.onStart&&(n.onStartObserver=t.onBeforeRenderObservable.addOnce(()=>o.onStart())),o.onUpdate&&t.onBeforeRenderObservable.add(()=>o.onUpdate()),tt(e,o,"runtime",n),o}i(mn,"applyScriptOnObject");var w=new Map;function tt(e,r,t,o){let n={key:t,observers:o,instance:r};w.has(e)?w.get(e).push(n):w.set(e,[n]),(k(e)||Ie(e)||Ae(e))&&e.onDisposeObservable.addOnce((()=>{w.get(e)?.slice()?.forEach(a=>{fe(e,a)}),w.delete(e)}))}i(tt,"_registerScriptInstance");function fe(e,r){r.observers.onStartObserver?.remove(),r.observers.onUpdateObserver?.remove(),r.observers.pointerObserver?.remove(),r.observers.keyboardObserver?.remove();try{r.instance.onStop?.(e)}catch(n){console.error(`Failed to call onStop for script ${r.key} on object ${e}`,n)}let t=w.get(e),o=t?.indexOf(r)??-1;o!==-1&&t?.splice(o,1)}i(fe,"_removeRegisteredScriptInstance");function Wt(e,r){return w.get(e)?.filter(n=>n.instance.constructor===r)?.map(n=>n.instance)??null}i(Wt,"getAllScriptsByClassForObject");function et(e,r){return Wt(e,r)?.[0]??null}i(et,"getScriptByClassForObject");var jt=require("babylonjs"),Ht=!1;function Qt(){Ht||(Ht=!0,(0,jt.AddParser)("AudioEditorPlugin",(e,r,t,o)=>{e.sounds?.forEach(n=>{let s=t.sounds?.find(a=>a.name===n.name);s&&(s.id=n.id,s.uniqueId=n.uniqueId,r.onBeforeRenderObservable.addOnce(()=>{try{s.spatialSound=n.spatialSound}catch{}}))})}))}i(Qt,"registerAudioParser");function N(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(N,"getPowerOfTwoUntil");var rt=require("babylonjs"),Ut=!1;function qt(){if(Ut)return;Ut=!0;let e=rt.SerializationHelper._TextureParser;rt.SerializationHelper._TextureParser=(r,t,o)=>{if(t.loadingTexturesQuality==="high"||!r.metadata?.baseSize)return e(r,t,o);let n=r.metadata.baseSize.width,s=r.metadata.baseSize.height,a=n===N(n)||s===N(s),f="";switch(t.loadingTexturesQuality){case"medium":let d=n*.66>>0,y=s*.66>>0;a&&(d=N(d),y=N(y)),f=`_${d}_${y}`;break;case"low":case"very-low":let b=n*.33>>0,I=s*.33>>0;a&&(b=N(b),I=N(I)),f=`_${b}_${I}`;break}let l=r.name;if(!l||!f)return e(r,t,o);let c=l.split("/"),m=c.pop();if(!m)return e(r,t,o);let g=m.split(".").pop(),u=`${m.replace(`.${g}`,"")}${f}.${g}`;return c.push(u),r.name=c.join("/"),e(r,t,o)}}i(qt,"registerTextureParser");var Zt=require("babylonjs"),ye=require("babylonjs"),Jt=!1;function Xt(){if(Jt)return;Jt=!0;let e=(0,ye.GetParser)(Zt.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,ye.AddParser)("ShadowGeneratorEditorPlugin",(r,t,o,n)=>{t.loadingShadowsQuality!=="high"&&r.shadowGenerators?.forEach(s=>{switch(t.loadingShadowsQuality){case"medium":s.mapSize=s.mapSize*.5;break;case"low":s.mapSize=s.mapSize*.25;break;case"very-low":s.mapSize=s.mapSize*.125;break}s.mapSize=Math.max(128,N(s.mapSize))}),e?.(r,t,o,n)})}i(Xt,"registerShadowGeneratorParser");var tr=require("babylonjs"),rr=require("babylonjs"),er=!1;function nr(){er||(er=!0,(0,rr.AddParser)("MorphTargetManagerEditorPlugin",(e,r,t,o)=>{e.morphTargetManagers.forEach(n=>{let a=t.meshes.find(c=>c.id===n.meshId)?.morphTargetManager;if(!a||n.targets.find(c=>!c.delayLoadingFile))return;let l=[];n.targets.forEach(c=>{if(!c.delayLoadingFile)return l.push(Promise.resolve(null));let m=`${o}${c.delayLoadingFile}`;r.addPendingData(m);let g=new tr.WebRequest;g.responseType="arraybuffer",g.open("GET",m),g.send(),l.push(new Promise(S=>{g.addEventListener("load",()=>{r.removePendingData(m),S(g.response)})}))}),Promise.all(l).then(c=>{for(let m=0,g=a.numTargets;m<g;++m){let S=a.getTarget(m),u=n.targets[m],d=c[m];if(u.positionsCount){let y=new Float32Array(d,u.positionsOffset,u.positionsCount);S._positions=y,S.setPositions(y)}if(u.normalsCount){let y=new Float32Array(d,u.normalsOffset,u.normalsCount);S._normals=y,S.setNormals(y)}if(u.tangentsCount){let y=new Float32Array(d,u.tangentsOffset,u.tangentsCount);S._tangents=y,S.setTangents(y)}if(u.uvsCount){let y=new Float32Array(d,u.uvsOffset,u.uvsCount);S._uvs=y,S.setUVs(y)}if(u.uv2sCount){let y=new Float32Array(d,u.uv2sOffset,u.uv2sCount);S._uv2s=y,S.setUV2s(y)}}for(let m=0,g=a.numTargets;m<g;++m)a.getTarget(m)._onDataLayoutChanged.notifyObservers()})})}))}i(nr,"registerMorphTargetManagerParser");var or=require("babylonjs");function ir(e,r){let t=e.metadata?.clusteredLight;return t&&(t.lights.length>0&&(r??=new or.ClusteredLightContainer("Clustered Light Container",[],e),r.horizontalTiles=t.horizontalTiles,r.verticalTiles=t.verticalTiles,r.depthSlices=t.depthSlices,r.maxRange=t.maxRange),t.lights.forEach(o=>{let n=e.getLightById(o);n&&r?.addLight(n)})),r}i(ir,"configureLights");function nt(e){if(!Array.isArray(e.frames)){let r=[];for(let t of Object.keys(e.frames))r.push({filename:t,...e.frames[t]});e.frames=r}}i(nt,"normalizeAtlasJson");function pn(e,r,t){let n=(e.metadata?.spriteAnimations??[]).find(s=>s.name===r);if(!n)return console.error(`Animation with name "${r}" not found on sprite.`);e.playAnimation(n.from,n.to,n.loop,n.delay,t)}i(pn,"playSpriteAnimationFromName");var ar=require("babylonjs"),lr=require("babylonjs"),cr=require("babylonjs"),mr=require("babylonjs"),ot=require("babylonjs"),U=require("babylonjs"),pr=require("babylonjs"),sr=!1;function ur(){sr||(sr=!0,(0,pr.AddParser)("SpriteMapNode",(e,r,t,o)=>{e.transformNodes?.forEach(n=>{if(!n.isSpriteMap)return;let s=t.transformNodes?.find(l=>l.id===n.id);if(!s)return;s.isSpriteMap=n.isSpriteMap;let a=`${o}${n.atlasJsonRelativePath}`;r.addPendingData(a);let f=new cr.WebRequest;f.open("GET",a),f.send(),f.addEventListener("load",()=>{r.removePendingData(a);let l=JSON.parse(f.responseText);nt(l);let c=`${ar.Tools.GetFolderPath(a)}${l.meta.image}`,m=new ot.Texture(c,r,!1,!1,ot.Texture.NEAREST_NEAREST,null,null,null,!1,lr.Engine.TEXTUREFORMAT_RGBA),g=new mr.SpriteMap(s.name,l,m,{layerCount:n.options.layerCount,stageSize:U.Vector2.FromArray(n.options.stageSize??[10,1]),outputSize:U.Vector2.FromArray(n.options.outputSize??[100,100]),colorMultiply:U.Vector3.FromArray(n.options.colorMultiply??[1,1,1]),flipU:!0},r);n.tiles.forEach(u=>{for(let d=0,y=u.repeatCount.x+1;d<y;++d)for(let b=0,I=u.repeatCount.y+1;b<I;++b){let O=d*(u.repeatOffset.x+1),T=b*(u.repeatOffset.y+1);g.changeTiles(u.layer,new U.Vector2(u.position.x+O,(g.options.stageSize?.y??0)-1-u.position.y-T),u.tile)}});let S=g._output;S.parent=s,s.spriteMap=g})})}))}i(ur,"registerSpriteMapParser");var dr=require("babylonjs"),yr=require("babylonjs"),Sr=require("babylonjs"),it=require("babylonjs"),hr=require("babylonjs");function fr(e,r){r?.fogEnabled!==void 0&&(e.fogEnabled=r?.fogEnabled),r?.blendMode!==void 0&&(e.blendMode=r?.blendMode),r?.disableDepthWrite!==void 0&&(e.disableDepthWrite=r?.disableDepthWrite),r?.pixelPerfect!==void 0&&(e.pixelPerfect=r?.pixelPerfect),r?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=r?.useLogarithmicDepth),r?.metadata!==void 0&&(e.metadata=r?.metadata);for(let t of r?.sprites??[]){let o=yr.Sprite.Parse(t,e);o.uniqueId=t.uniqueId,o.metadata=t.metadata}}i(fr,"parseSerializedSpriteManager");var gr=!1;function br(){gr||(gr=!0,(0,hr.AddParser)("SpriteManagerNode",(e,r,t,o)=>{e.transformNodes?.forEach(n=>{if(!n.isSpriteManager)return;let s=t.transformNodes?.find(a=>a.id===n.id);if(s){if(s.isSpriteManager=n.isSpriteManager,n.atlasJsonRelativePath){let a=`${o}${n.atlasJsonRelativePath}`;r.addPendingData(a);let f=new Sr.WebRequest;f.open("GET",a),f.send(),f.addEventListener("load",()=>{r.removePendingData(a);let l=JSON.parse(f.responseText),c=`${dr.Tools.GetFolderPath(a)}${l.meta.image}`,m=new it.SpriteManager(s.name,c,1e3,64,r,void 0,void 0,!0,l);s.spriteManager=m,n.spriteManager&&fr(m,n.spriteManager)})}else if(n.spriteManager?.textureUrl){let a=`${o}${n.spriteManager.textureUrl}`,f=new it.SpriteManager(s.name,a,1e3,{width:n.spriteManager.cellWidth,height:n.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=f,n.spriteManager&&fr(f,n.spriteManager)}}})}))}i(br,"registerSpriteManagerParser");var Ar=require("babylonjs"),Cr=require("babylonjs"),Pr=!1;function Ir(){Pr||(Pr=!0,(0,Ar.AddParser)("NodeParticleSystemSetEditorPlugin",(e,r,t,o)=>{e.meshes?.forEach(n=>{if(!n.isNodeParticleSystemMesh)return;let s=t.meshes?.find(a=>a.id===n.id);s&&(n.nodeParticleSystemSet.blocks?.forEach(a=>{a.url&&(a.url=`${o}${a.url}`)}),s.nodeParticleSystemSet=Cr.NodeParticleSystemSet.Parse(n.nodeParticleSystemSet),s.nodeParticleSystemSet.id=n.nodeParticleSystemSet.id,s.nodeParticleSystemSet.uniqueId=n.uniqueId,r.addPendingData(n.id),s.nodeParticleSystemSet.buildAsync(r,!1).then(a=>{r.removePendingData(n.id),s.particleSystemSet=a,a.systems.forEach(f=>{if(Ce(f)){let l=f._sizeCreation.process;l&&(f._sizeCreation.process=(c,m)=>{l(c,m),c.scale.x*=100,c.scale.y*=100})}}),a.emitterNode=s,a.start()}))})}))}i(Ir,"registerNodeParticleSystemSetParser");var vr=require("babylonjs"),st=require("babylonjs"),Er=require("babylonjs"),Tr=require("babylonjs"),xr=new Map;async function un(e,r,t,o,n){t.loadingQuality=n?.quality??"high",t.loadingTexturesQuality=n?.texturesQuality??t.loadingQuality,t.loadingShadowsQuality=n?.shadowsQuality??t.loadingQuality,Qt(),qt(),Xt(),nr(),ur(),br(),Ir();let s=xr.get(t)??{};if(xr.set(t,s),await(0,Er.AppendSceneAsync)(`${e}${r}`,t,{pluginExtension:".babylon",onProgress:i(l=>{let c=Math.min(l.loaded/l.total*.5);n?.onProgress?.(c)},"onProgress")}),!n?.skipAssetsPreload){let l=0;do l=await Ze(e,t,o);while(l!==0)}Tr.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(l=>M(l)&&l._checkDelayState());let a=ir(t,s.clusteredLightContainer);s.clusteredLightContainer=a;let f=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(c=>setTimeout(c,150));let l=f-t.getWaitingItemsCount();l===f&&t.textures.forEach(c=>{c.delayLoadState===st.Constants.DELAYLOADSTATE_NONE&&(c.delayLoadState=st.Constants.DELAYLOADSTATE_LOADED)}),n?.onProgress?.(.5+l/f*.5)}n?.onProgress?.(1),ve(t),Ee(t),t.metadata?.rendering&&(Nt(t,t.metadata.rendering),t.activeCamera&&je(t.activeCamera,e,n?.postProcessConfiguration)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(vr.Vector3.FromArray(t.metadata?.physicsGravity)),R(t,t,o,e),t.transformNodes.forEach(l=>{R(t,l,o,e)}),t.meshes.forEach(l=>{wt(l),R(t,l,o,e)}),t.lights.forEach(l=>{R(t,l,o,e)}),t.cameras.forEach(l=>{R(t,l,o,e)}),t.spriteManagers?.forEach(l=>{l.sprites.forEach(c=>{R(t,c,o,e)})}),Q(t)}i(un,"loadScene");var Dr=require("babylonjs");async function fn(e,r,t){let n=await(await fetch(e+r)).json(),a=Dr.Tools.Instantiate(n.customType).Parse(n,t,e);return a.id=n.id,a.uniqueId=n.uniqueId,a}i(fn,"loadMaterialFromFile");function gn(e){return Promise.all(e.materials.map(async r=>{let t=r.getBindedMeshes();await Promise.all(t.map(async o=>{X(o)||await r.forceCompilationAsync(o,{clipPlane:!!e.clipPlane,useInstances:o.hasInstances})}))}))}i(gn,"forceCompileAllSceneMaterials");function dn(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(dn,"configureEngineToUseCompressedTextures");var L=require("babylonjs");function ie(e){if(!isNaN(parseFloat(e))&&isFinite(e))return L.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return L.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return L.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return L.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return L.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return L.Animation.ANIMATIONTYPE_COLOR4;case"Size":return L.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return L.Animation.ANIMATIONTYPE_MATRIX}return null}i(ie,"getAnimationTypeForObject");var Or=require("babylonjs");function yn(e){return function(r,t){let o=r.constructor;o._NodesFromScene??=[],o._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(yn,"nodeFromScene");function Sn(e){return function(r,t){let o=r.constructor;o._ComponentsFromScene??=[],o._ComponentsFromScene.push({propertyKey:t,componentConstructor:e})}}i(Sn,"componentFromScene");function hn(e,r=!1){return function(t,o){let n=t.constructor;n._NodesFromDescendants??=[],n._NodesFromDescendants.push({propertyKey:o,nodeName:e,directDescendantsOnly:r})}}i(hn,"nodeFromDescendants");function bn(e){return function(r,t){let o=r.constructor;o._AnimationGroups??=[],o._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(bn,"animationGroupFromScene");function Pn(e){return function(r,t){let o=r.constructor;o._SceneAssets??=[],o._SceneAssets.push({sceneName:e,propertyKey:t})}}i(Pn,"sceneAsset");function An(e,r){return function(t,o){let n=t.constructor;n._GuiFromAsset??=[],n._GuiFromAsset.push({propertyKey:o,pathInAssets:e,onGuiCreated:r})}}i(An,"guiFromAsset");function Cn(e){return function(r,t){let o=r.constructor;o._SoundsFromScene??=[],o._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Cn,"soundFromScene");function In(e,r=!1){return function(t,o){let n=t.constructor;n._ParticleSystemsFromScene??=[],n._ParticleSystemsFromScene.push({propertyKey:o,particleSystemName:e,directDescendantsOnly:r})}}i(In,"particleSystemFromScene");function xn(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"boolean"}})}}i(xn,"visibleAsBoolean");function vn(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"string"}})}}i(vn,"visibleAsString");function En(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"number"}})}}i(En,"visibleAsNumber");function Tn(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector2"}})}}i(Tn,"visibleAsVector2");function Dn(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector3"}})}}i(Dn,"visibleAsVector3");function On(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color3"}})}}i(On,"visibleAsColor3");function Mn(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color4"}})}}i(Mn,"visibleAsColor4");function Rn(e,r,t){return function(o,n){let s=o.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:n,configuration:{...t,entityType:e,type:"entity"}})}}i(Rn,"visibleAsEntity");function wn(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"texture"}})}}i(wn,"visibleAsTexture");function Nn(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"keymap"}})}}i(Nn,"visibleAsKeyMap");function Fn(e,r,t){return function(o,n){let s=o.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:n,configuration:{...t,assetType:e,type:"asset"}})}}i(Fn,"visibleAsAsset");function _n(e,r){return function(t,o){let n=t.constructor;n._PointerEvents??=[],n._PointerEvents.push({propertyKey:o,options:{mode:"global",...r??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(_n,"onPointerEvent");function Ln(e){return function(r,t){let o=r.constructor;o._KeyboardEvents??=[],o._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(Ln,"onKeyboardEvent");function Vn(e){return function(r,t){let o=r.constructor;o._SpritesFromSpriteManager??=[],o._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(Vn,"spriteFromSpriteManager");function Bn(e){return function(r,t){let o=r.constructor;o._AnimationsFromSprite??=[],o._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Bn,"animationFromSprite");var Se=require("babylonjs");function tp(e,r){let t;return e===Se.Animation.ANIMATIONTYPE_FLOAT?t=r.value:t=r.value.clone(),{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===Se.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===Se.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(tp,"cloneKey");function he(e,r){let t=r.split("."),o=e;for(let n=0;n<t.length;++n)o=o[t[n]];return o}i(he,"getPropertyValue");function at(e,r,t){let o=null;e.onAnimationGroupPlayObservable.add(()=>{o=r.onAfterAnimationsObservable.add(()=>{t()})}),e.onAnimationGroupPauseObservable.add(()=>{o&&(r.onAfterAnimationsObservable.remove(o),o=null)}),e.onAnimationGroupEndObservable.add(()=>{o&&(r.onAfterAnimationsObservable.remove(o),o=null)})}i(at,"registerAfterAnimationCallback");var V=require("babylonjs"),be=require("babylonjs"),_=require("babylonjs");function Gn(e,r){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let o=null,n=null;if(t.node?(o=re(t.node,r),o||(o=r.particleSystems?.find(a=>a.id===t.node)??null)):t.defaultRenderingPipeline&&(o=ee()),t.propertyPath){let a=he(o,t.propertyPath);n=ie(a)}let s=null;return t.sound&&(s=ue(t.sound,r)),{node:o,sound:s,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?r.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,soundVolume:lt(t.soundVolume??[],V.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:t.keyFrameEvents?.map(a=>{let f={...a};switch(a.data?.type){case"set-enabled":f.data={type:"set-enabled",value:a.data.value,node:re(a.data.node,r)};break;case"apply-impulse":f.data={type:"apply-impulse",radius:a.data.radius,mesh:r.getMeshById(a.data.mesh),force:_.Vector3.FromArray(a.data.force),contactPoint:_.Vector3.FromArray(a.data.contactPoint)};break}return f}),keyFrameAnimations:o&&n!==null&&lt(t.keyFrameAnimations??[],n)}})}}i(Gn,"parseCinematic");function F(e,r){if(e===null)return null;if(e!==void 0)switch(r){case V.Animation.ANIMATIONTYPE_FLOAT:return e;case V.Animation.ANIMATIONTYPE_VECTOR2:return _.Vector2.FromArray(e);case V.Animation.ANIMATIONTYPE_VECTOR3:return _.Vector3.FromArray(e);case V.Animation.ANIMATIONTYPE_QUATERNION:return _.Quaternion.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR3:return be.Color3.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR4:return be.Color4.FromArray(e);case V.Animation.ANIMATIONTYPE_MATRIX:return _.Matrix.FromArray(e)}}i(F,"parseCinematicKeyValue");function lt(e,r){return e?.map(t=>{let o=t.type==="key"?t:null;if(o)return{...o,value:F(o.value,r),inTangent:F(o.inTangent,r),outTangent:F(o.outTangent,r)};let n=t.type==="cut"?t:null;if(n)return{...n,key1:{...n.key1,value:F(n.key1.value,r),inTangent:F(n.key1.inTangent,r),outTangent:F(n.key1.outTangent,r)},key2:{...n.key2,value:F(n.key2.value,r),inTangent:F(n.key2.inTangent,r),outTangent:F(n.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(lt,"parseKeyFrameAnimations");function Mr(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Mr,"handleApplyEvent");function Rr(e){e.node?.setEnabled(e.value)}i(Rr,"handleSetEnabledEvent");var ct=require("babylonjs"),wr=ct.Vector3.Zero();function Nr(e,r){let t=r.mesh?[r.mesh]:e.meshes.filter(o=>o.physicsAggregate);r.radius&&(t=t.filter(o=>{let n=o.getBoundingInfo().boundingBox.centerWorld;return ct.Vector3.Distance(n,r.contactPoint)<=r.radius})),t.forEach(o=>{if(o.physicsAggregate?.body){let n=r.contactPoint.subtract(o.getBoundingInfo().boundingBox.centerWorld);n.multiplyInPlace(r.force),o.physicsAggregate.body.setLinearVelocity(wr),o.physicsAggregate.body.setAngularVelocity(wr),o.physicsAggregate.body.applyImpulse(n.negateInPlace(),r.contactPoint)}})}i(Nr,"handleApplyImpulseEvent");var Fr=require("babylonjs"),_r=require("babylonjs"),se=class extends _r.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new Fr.Observable;onEvent(r,t){this.onEventObservable.add(o=>{r===o&&t()})}};function mt(e){return e.type==="key"}i(mt,"isCinematicKey");function q(e){return e.type==="cut"}i(q,"isCinematicKeyCut");function Kn(e){return e.type==="event"}i(Kn,"isCinematicKeyEvent");function kn(e){return e.type==="group"}i(kn,"isCinematicGroup");function zn(e){return e.type==="sound"}i(zn,"isCinematicSound");var C=require("babylonjs"),J=require("babylonjs");function $n(e,r,t){let o=new se(e.name,r);return e.tracks.forEach(n=>{let s=n.animationGroup;if(s&&n.animationGroups?.length){let u=s.clone(`${s.name}-cinematic-temp`),d=r.animationGroups.indexOf(u);d!==-1&&r.animationGroups.splice(d,1),o.onAnimationEndObservable.add(()=>{s.stop(),u.stop()});let y=n.animationGroups.reduce((T,A)=>Math.min(T,A.frame),Number.MAX_VALUE)??0,b=n.animationGroups.reduce((T,A)=>Math.max(T,A.frame+A.endFrame),0)??0,I={frame:y},O=new C.Animation(u.name,"frame",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(O.setKeys([{frame:y,value:0},{frame:b,value:b}]),n.animationGroups.forEach(T=>{O.addEvent(new J.AnimationEvent(T.frame,()=>{let A=T.repeatCount??0;if(u.to=T.endFrame,u.speedRatio=T.speed,u.stop(),u.play(A>0),u.from!==T.startFrame&&u.goToFrame(T.startFrame),A){let Z=0;u.onAnimationGroupLoopObservable.add(()=>{++Z,Z>A&&u.stop()})}}))}),o.addTargetedAnimation(O,I),(n.animationGroupWeight?.length??0)>=2&&n.animationGroupWeight.find(A=>q(A)?A.key1.value!==1||A.key2.value!==1:A.value!==1)){let A={weight:0},Z=new C.Animation(`${u.name}-weights`,"weight",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),ae=[];n.animationGroupWeight.forEach(le=>{q(le)?(ae.push(le.key1),ae.push(le.key2)):ae.push(le)}),Z.setKeys(ae),o.addTargetedAnimation(Z,A),at(o,r,()=>{u.weight=A.weight})}}let a=n.sound,f=a?.getAudioBuffer();if(!t?.ignoreSounds&&a&&f&&n.sounds?.length){let u={dummy:0,volume:0},d=new C.Animation(a.name,"dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;if(n.sounds?.forEach(b=>{let I=b.endFrame-b.startFrame;y=Math.max(y,b.frame+I),d.addEvent(new J.AnimationEvent(b.frame,O=>{let A=(O-b.frame+b.startFrame)/e.framesPerSecond;a.play(0,A)},!1)),d.addEvent(new J.AnimationEvent(b.frame+I,()=>{a.stop()}))}),d.setKeys([{frame:0,value:0},{frame:y,value:y}]),o.addTargetedAnimation(d,u),(n.soundVolume?.length??0)>=2){let b=new C.Animation(a.name,"volume",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),I=[];n.soundVolume.forEach(O=>{q(O)?(I.push(O.key1),I.push(O.key2)):I.push(O)}),b.setKeys(I),o.addTargetedAnimation(b,u),at(o,r,()=>{a.setVolume(u.volume)})}}if(n.keyFrameEvents){let u={dummy:0},d=new C.Animation("events","dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;n.keyFrameEvents?.forEach(b=>{y=Math.max(y,b.frame),d.addEvent(new J.AnimationEvent(b.frame,()=>{switch(b.data?.type){case"event":Mr(o,b.data);break;case"set-enabled":Rr(b.data);break;case"apply-impulse":Nr(r,b.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:y+1,value:y+1}]),o.addTargetedAnimation(d,u)}let l=n.defaultRenderingPipeline?ee():n.node;if(!l||!n.propertyPath||!n.keyFrameAnimations)return;let c=he(l,n.propertyPath),m=ie(c);if(m===null)return;let g=new C.Animation(n.propertyPath,n.propertyPath,60,m,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),S=[];n.keyFrameAnimations?.forEach(u=>{if(mt(u))return S.push(u);q(u)&&(S.push(u.key1),S.push(u.key2),me(l)&&n.propertyPath==="position"&&g.addEvent(new J.AnimationEvent(u.key1.frame,()=>{let d=Ge();if(!d)return;let y=d.motionStrength;d.motionStrength=0,requestAnimationFrame(()=>{d.motionStrength=y})})))}),g.setKeys(S),o.addTargetedAnimation(g,l)}),o.normalize(),o}i($n,"generateCinematicAnimationGroup");0&&(module.exports={AdvancedAssetContainer,Cinematic,NodeParticleSystemSet,_applyScriptsForObject,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,animationFromSprite,animationGroupFromScene,applyRenderingConfigurationForCamera,applyScriptOnObject,componentFromScene,configureEngineToUseCompressedTextures,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,copyAndParseRagdollConfiguration,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createTAARenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeTAARenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getTAARenderingPipeline,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isClusteredLightContainer,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSpotLight,isSprite,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseKeyFrameAnimations,parseMotionBlurPostProcess,parseRagdollConfiguration,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseTAARenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,registerScriptAssetParser,saveRenderingConfigurationForCamera,sceneAsset,scriptAssetsCache,scriptAssetsParsers,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeTAARenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setTAARenderingPipelineRef,setVLSPostProcessRef,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,taaRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
1
+ var me=Object.defineProperty;var Br=Object.getOwnPropertyDescriptor;var Kr=Object.getOwnPropertyNames;var kr=Object.prototype.hasOwnProperty;var i=(e,r)=>me(e,"name",{value:r,configurable:!0});var zr=(e,r)=>{for(var t in r)me(e,t,{get:r[t],enumerable:!0})},Qr=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Kr(r))!kr.call(e,n)&&n!==t&&me(e,n,{get:()=>r[n],enumerable:!(o=Br(r,n))||o.enumerable});return e};var $r=e=>Qr(me({},"__esModule",{value:!0}),e);var Uo={};zr(Uo,{AdvancedAssetContainer:()=>ne,Cinematic:()=>ae,NodeParticleSystemSet:()=>Rr.NodeParticleSystemSet,_applyScriptsForObject:()=>R,_preloadScriptsAssets:()=>tt,_registerScriptInstance:()=>nt,_removeRegisteredScriptInstance:()=>de,animationFromSprite:()=>Qo,animationGroupFromScene:()=>Io,applyMeshesLODQuality:()=>Oe,applyRenderingConfigurationForCamera:()=>qe,applyScriptOnObject:()=>fo,applyShadowsQuality:()=>eo,applyTexturesQuality:()=>yo,componentFromScene:()=>Co,configureEngineToUseCompressedTextures:()=>go,configureMeshDistanceOrScreenCoverage:()=>Te,configureShadowMapRefreshRate:()=>fe,configureShadowMapRenderListPredicate:()=>De,copyAndParseRagdollConfiguration:()=>Ze,createDefaultRenderingPipeline:()=>Nt,createMotionBlurPostProcess:()=>Ot,createSSAO2RenderingPipeline:()=>Et,createSSRRenderingPipeline:()=>Ct,createTAARenderingPipeline:()=>It,createVLSPostProcess:()=>Pt,defaultPipelineCameraConfigurations:()=>W,disposeDefaultRenderingPipeline:()=>We,disposeMotionBlurPostProcess:()=>Qe,disposeSSAO2RenderingPipeline:()=>Be,disposeSSRRenderingPipeline:()=>Ne,disposeTAARenderingPipeline:()=>_e,disposeVLSPostProcess:()=>Me,forceCompileAllSceneMaterials:()=>Po,generateCinematicAnimationGroup:()=>Ho,getAllScriptsByClassForObject:()=>Ht,getAnimationTypeForObject:()=>se,getDefaultRenderingPipeline:()=>te,getMotionBlurPostProcess:()=>ze,getPowerOfTwoUntil:()=>w,getSSAO2RenderingPipeline:()=>ao,getSSRRenderingPipeline:()=>oo,getScriptByClassForObject:()=>ot,getTAARenderingPipeline:()=>io,getTextureUrl:()=>he,getVLSPostProcess:()=>to,guiFromAsset:()=>Eo,isAbstractMesh:()=>G,isAnyParticleSystem:()=>ve,isArcRotateCamera:()=>Hr,isBone:()=>Yr,isCamera:()=>pe,isCinematicGroup:()=>jo,isCinematicKey:()=>ft,isCinematicKeyCut:()=>q,isCinematicKeyEvent:()=>Yo,isCinematicSound:()=>Wo,isClusteredLightContainer:()=>ue,isDirectionalLight:()=>qr,isFreeCamera:()=>Wr,isGPUParticleSystem:()=>Xr,isGroundMesh:()=>jr,isHemisphericLight:()=>Zr,isInstancedMesh:()=>X,isLight:()=>gt,isMesh:()=>D,isNode:()=>k,isParticleSystem:()=>Ie,isPointLight:()=>Ur,isScene:()=>xe,isSpotLight:()=>Jr,isSprite:()=>Ee,isTexture:()=>ee,isTransformNode:()=>K,loadMaterialFromFile:()=>bo,loadScene:()=>ho,motionBlurPostProcessCameraConfigurations:()=>j,nodeFromDescendants:()=>xo,nodeFromScene:()=>Ao,normalizeAtlasJson:()=>st,onKeyboardEvent:()=>ko,onPointerEvent:()=>Ko,parseCinematic:()=>$o,parseCinematicKeyValue:()=>F,parseDefaultRenderingPipeline:()=>Ue,parseKeyFrameAnimations:()=>pt,parseMotionBlurPostProcess:()=>Ye,parseRagdollConfiguration:()=>Bt,parseSSAO2RenderingPipeline:()=>ke,parseSSRRenderingPipeline:()=>Le,parseTAARenderingPipeline:()=>Ge,parseVLSPostProcess:()=>Re,particleSystemFromScene:()=>Oo,playSpriteAnimationFromName:()=>So,registerScriptAssetParser:()=>uo,saveRenderingConfigurationForCamera:()=>po,sceneAsset:()=>vo,scriptAssetsCache:()=>T,scriptAssetsParsers:()=>ie,scriptsDictionary:()=>N,serializeDefaultRenderingPipeline:()=>He,serializeMotionBlurPostProcess:()=>$e,serializeSSAO2RenderingPipeline:()=>Ke,serializeSSRRenderingPipeline:()=>Fe,serializeTAARenderingPipeline:()=>Ve,serializeVLSPostProcess:()=>we,setDefaultRenderingPipelineRef:()=>mo,setMotionBlurPostProcessRef:()=>co,setSSAO2RenderingPipelineRef:()=>lo,setSSRRenderingPipelineRef:()=>no,setTAARenderingPipelineRef:()=>so,setVLSPostProcessRef:()=>ro,soundFromScene:()=>To,spriteFromSpriteManager:()=>zo,ssaoRenderingPipelineCameraConfigurations:()=>Y,ssrRenderingPipelineCameraConfigurations:()=>Q,taaRenderingPipelineCameraConfigurations:()=>$,visibleAsAsset:()=>Bo,visibleAsBoolean:()=>Do,visibleAsColor3:()=>Fo,visibleAsColor4:()=>Lo,visibleAsEntity:()=>_o,visibleAsKeyMap:()=>Go,visibleAsNumber:()=>wo,visibleAsString:()=>Mo,visibleAsTexture:()=>Vo,visibleAsVector2:()=>Ro,visibleAsVector3:()=>No,vlsPostProcessCameraConfigurations:()=>z});module.exports=$r(Uo);function G(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(G,"isAbstractMesh");function D(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(D,"isMesh");function X(e){return e.getClassName?.()==="InstancedMesh"}i(X,"isInstancedMesh");function Yr(e){return e.getClassName?.()==="Bone"}i(Yr,"isBone");function jr(e){return e.getClassName?.()==="GroundMesh"}i(jr,"isGroundMesh");function K(e){return e.getClassName?.()==="TransformNode"}i(K,"isTransformNode");function ee(e){return e?.getClassName?.()==="Texture"}i(ee,"isTexture");function pe(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(pe,"isCamera");function Wr(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Wr,"isFreeCamera");function Hr(e){return e.getClassName?.()==="ArcRotateCamera"}i(Hr,"isArcRotateCamera");function Ur(e){return e.getClassName?.()==="PointLight"}i(Ur,"isPointLight");function qr(e){return e.getClassName?.()==="DirectionalLight"}i(qr,"isDirectionalLight");function Jr(e){return e.getClassName?.()==="SpotLight"}i(Jr,"isSpotLight");function Zr(e){return e.getClassName?.()==="HemisphericLight"}i(Zr,"isHemisphericLight");function gt(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(gt,"isLight");function ue(e){return e.getClassName?.()==="ClusteredLightContainer"}i(ue,"isClusteredLightContainer");function k(e){return G(e)||K(e)||gt(e)||pe(e)}i(k,"isNode");function xe(e){return e.getClassName?.()==="Scene"}i(xe,"isScene");function Ie(e){return e.getClassName?.()==="ParticleSystem"}i(Ie,"isParticleSystem");function Xr(e){return e.getClassName?.()==="GPUParticleSystem"}i(Xr,"isGPUParticleSystem");function ve(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(ve,"isAnyParticleSystem");function Ee(e){return e.getClassName?.()==="Sprite"}i(Ee,"isSprite");function Te(e){e.meshes.forEach(r=>{D(r)&&r.getLODLevels().forEach(t=>{t.mesh&&(t.mesh.originalDistanceOrScreenCoverage=t.distanceOrScreenCoverage)})})}i(Te,"configureMeshDistanceOrScreenCoverage");function Oe(e,r){r.meshes.forEach(t=>{D(t)&&t.getLODLevels().forEach(o=>{if(o.mesh?.originalDistanceOrScreenCoverage)switch(e){case"very-low":o.distanceOrScreenCoverage=o.mesh.originalDistanceOrScreenCoverage*.125;break;case"low":o.distanceOrScreenCoverage=o.mesh.originalDistanceOrScreenCoverage*.25;break;case"medium":o.distanceOrScreenCoverage=o.mesh.originalDistanceOrScreenCoverage*.5;break;case"high":o.distanceOrScreenCoverage=o.mesh.originalDistanceOrScreenCoverage;break}})})}i(Oe,"applyMeshesLODQuality");function w(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(w,"getPowerOfTwoUntil");var dt=require("babylonjs"),yt=require("babylonjs");function De(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=o=>dt.Vector3.Distance(o.getAbsolutePosition(),r.getAbsolutePosition())<=r.range)})}i(De,"configureShadowMapRenderListPredicate");async function fe(e){e.executeWhenReady(()=>{e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=r.metadata?.refreshRate??yt.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(fe,"configureShadowMapRefreshRate");function eo(e,r){r.lights.forEach(t=>{let o=t.getShadowGenerator(),n=o?.getShadowMap();if(o?.originalMapSize){let s=o.originalMapSize;switch(e){case"medium":s=s*.5;break;case"low":s=s*.25;break;case"very-low":s=s*.125;break}s=Math.max(128,w(s)),n?.getSize().width!==s&&n.resize(s)}}),fe(r)}i(eo,"applyShadowsQuality");var St=require("babylonjs"),ht=require("babylonjs"),bt=require("babylonjs"),x=null,z=new Map;function to(){return x}i(to,"getVLSPostProcess");function ro(e){x=e}i(ro,"setVLSPostProcessRef");function Me(e){x&&e.activeCamera&&(x.dispose(e.activeCamera),x=null)}i(Me,"disposeVLSPostProcess");function Pt(e,r){return r??=e.meshes.find(t=>D(t)),x=new bt.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,ht.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),x}i(Pt,"createVLSPostProcess");function we(){return x?{meshId:x.mesh?.id,exposure:x.exposure,decay:x.decay,weight:x.weight,density:x.density,invert:x.invert,useCustomMeshPosition:x.useCustomMeshPosition,customMeshPosition:x.customMeshPosition.asArray()}:null}i(we,"serializeVLSPostProcess");function Re(e,r){let t=null;if(r.meshId){let n=e.getMeshById(r.meshId);n&&D(n)&&(t=n)}let o=Pt(e,t);return o.exposure=r.exposure,o.decay=r.decay,o.weight=r.weight,o.density=r.density,o.invert=r.invert,o.useCustomMeshPosition=r.useCustomMeshPosition,o.customMeshPosition.copyFrom(St.Vector3.FromArray(r.customMeshPosition)),o}i(Re,"parseVLSPostProcess");var At=require("babylonjs"),h=null,Q=new Map;function oo(){return h}i(oo,"getSSRRenderingPipeline");function no(e){h=e}i(no,"setSSRRenderingPipelineRef");function Ne(){h&&(h.dispose(),h=null)}i(Ne,"disposeSSRRenderingPipeline");function Ct(e,r){return h=new At.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),h.samples=4,h}i(Ct,"createSSRRenderingPipeline");function Fe(){return h?{samples:h.samples,step:h.step,thickness:h.thickness,strength:h.strength,reflectionSpecularFalloffExponent:h.reflectionSpecularFalloffExponent,maxSteps:h.maxSteps,maxDistance:h.maxDistance,roughnessFactor:h.roughnessFactor,reflectivityThreshold:h.reflectivityThreshold,blurDispersionStrehgth:h.blurDispersionStrength,clipToFrustum:h.clipToFrustum,enableSmoothReflections:h.enableSmoothReflections,enableAutomaticThicknessComputation:h.enableAutomaticThicknessComputation,attenuateFacingCamera:h.attenuateFacingCamera,attenuateScreenBorders:h.attenuateScreenBorders,attenuateIntersectionDistance:h.attenuateIntersectionDistance,attenuateBackfaceReflection:h.attenuateBackfaceReflection,blurDownsample:h.blurDownsample,selfCollisionNumSkip:h.selfCollisionNumSkip,ssrDownsample:h.ssrDownsample,backfaceDepthTextureDownsample:h.backfaceDepthTextureDownsample}:null}i(Fe,"serializeSSRRenderingPipeline");function Le(e,r,t){if(h)return h;let o=Ct(e,r);return o.samples=t.samples,o.step=t.step,o.thickness=t.thickness,o.strength=t.strength,o.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,o.maxSteps=t.maxSteps,o.maxDistance=t.maxDistance,o.roughnessFactor=t.roughnessFactor,o.reflectivityThreshold=t.reflectivityThreshold,o.blurDispersionStrength=t.blurDispersionStrehgth,o.clipToFrustum=t.clipToFrustum,o.enableSmoothReflections=t.enableSmoothReflections,o.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,o.attenuateFacingCamera=t.attenuateFacingCamera,o.attenuateScreenBorders=t.attenuateScreenBorders,o.attenuateIntersectionDistance=t.attenuateIntersectionDistance,o.attenuateBackfaceReflection=t.attenuateBackfaceReflection,o.blurDownsample=t.blurDownsample,o.selfCollisionNumSkip=t.selfCollisionNumSkip,o.ssrDownsample=t.ssrDownsample,o.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,o}i(Le,"parseSSRRenderingPipeline");var xt=require("babylonjs"),I=null,$=new Map;function io(){return I}i(io,"getTAARenderingPipeline");function so(e){I=e}i(so,"setTAARenderingPipelineRef");function _e(){I&&(I.dispose(),I=null)}i(_e,"disposeTAARenderingPipeline");function It(e,r){return I=new xt.TAARenderingPipeline("TAARenderingPipeline",e,[r]),I.samples=4,I}i(It,"createTAARenderingPipeline");function Ve(){return I?{factor:I.factor,samples:I.samples,clampHistory:I.clampHistory,reprojectHistory:I.reprojectHistory,disableOnCameraMove:I.disableOnCameraMove}:null}i(Ve,"serializeTAARenderingPipeline");function Ge(e,r,t){if(I)return I;let o=It(e,r);return o.factor=t.factor,o.samples=t.samples,o.clampHistory=t.clampHistory,o.reprojectHistory=t.reprojectHistory,o.disableOnCameraMove=t.disableOnCameraMove,o}i(Ge,"parseTAARenderingPipeline");var vt=require("babylonjs"),P=null,Y=new Map;function ao(){return P}i(ao,"getSSAO2RenderingPipeline");function lo(e){P=e}i(lo,"setSSAO2RenderingPipelineRef");function Be(){P&&(P.dispose(),P=null)}i(Be,"disposeSSAO2RenderingPipeline");function Et(e,r){return P=new vt.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),P.samples=4,P}i(Et,"createSSAO2RenderingPipeline");function Ke(){return P?{radius:P.radius,totalStrength:P.totalStrength,samples:P.samples,maxZ:P.maxZ,minZAspect:P.minZAspect,epsilon:P.epsilon,textureSamples:P.textureSamples,bypassBlur:P.bypassBlur,bilateralSamples:P.bilateralSamples,bilateralSoften:P.bilateralSoften,bilateralTolerance:P.bilateralTolerance,expensiveBlur:P.expensiveBlur}:null}i(Ke,"serializeSSAO2RenderingPipeline");function ke(e,r,t){if(P)return P;let o=Et(e,r);return o.radius=t.radius,o.totalStrength=t.totalStrength,o.samples=t.samples,o.maxZ=t.maxZ,o.minZAspect=t.minZAspect,o.epsilon=t.epsilon,o.textureSamples=t.textureSamples,o.bypassBlur=t.bypassBlur,o.bilateralSamples=t.bilateralSamples,o.bilateralSoften=t.bilateralSoften,o.bilateralTolerance=t.bilateralTolerance,o.expensiveBlur=t.expensiveBlur,o}i(ke,"parseSSAO2RenderingPipeline");var Tt=require("babylonjs"),v=null,j=new Map;function ze(){return v}i(ze,"getMotionBlurPostProcess");function co(e){v=e}i(co,"setMotionBlurPostProcessRef");function Qe(){v&&(v.dispose(),v=null)}i(Qe,"disposeMotionBlurPostProcess");function Ot(e,r){return v=new Tt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),v.motionStrength=1,v.isObjectBased=!0,v}i(Ot,"createMotionBlurPostProcess");function $e(){return v?{isObjectBased:v.isObjectBased,motionStrength:v.motionStrength,motionBlurSamples:v.motionBlurSamples}:null}i($e,"serializeMotionBlurPostProcess");function Ye(e,r,t){if(v)return v;let o=Ot(e,r);return o.isObjectBased=t.isObjectBased,o.motionStrength=t.motionStrength,o.motionBlurSamples=t.motionBlurSamples,o}i(Ye,"parseMotionBlurPostProcess");var Dt=require("babylonjs"),je=require("babylonjs"),Mt=require("babylonjs"),wt=require("babylonjs"),Rt=require("babylonjs"),p=null,W=new Map;function te(){return p}i(te,"getDefaultRenderingPipeline");function mo(e){p=e}i(mo,"setDefaultRenderingPipelineRef");function We(){p&&(p.dispose(),p=null)}i(We,"disposeDefaultRenderingPipeline");function Nt(e,r){return p=new Rt.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),p.samples=4,p.depthOfField.lensSize=512,p.depthOfField.fStop=.25,p.depthOfField.focusDistance=55e3,p}i(Nt,"createDefaultRenderingPipeline");function He(){return p?{samples:p.samples,fxaaEnabled:p.fxaaEnabled,imageProcessingEnabled:p.imageProcessingEnabled,exposure:p.imageProcessing?.exposure,contrast:p.imageProcessing?.contrast,fromLinearSpace:p.imageProcessing?.fromLinearSpace,toneMappingEnabled:p.imageProcessing?.toneMappingEnabled,toneMappingType:p.imageProcessing?.toneMappingType,ditheringEnabled:p.imageProcessing?.ditheringEnabled,ditheringIntensity:p.imageProcessing?.ditheringIntensity,bloomEnabled:p.bloomEnabled,bloomThreshold:p.bloomThreshold,bloomWeight:p.bloomWeight,bloomScale:p.bloomScale,bloomKernel:p.bloomKernel,sharpenEnabled:p.sharpenEnabled,sharpenEdgeAmount:p.sharpen.edgeAmount,sharpenColorAmount:p.sharpen.colorAmount,grainEnabled:p.grainEnabled,grainIntensity:p.grain.intensity,grainAnimated:p.grain.animated,depthOfFieldEnabled:p.depthOfFieldEnabled,depthOfFieldBlurLevel:p.depthOfFieldBlurLevel,lensSize:p.depthOfField.lensSize,fStop:p.depthOfField.fStop,focusDistance:p.depthOfField.focusDistance,focalLength:p.depthOfField.focalLength,vignetteEnabled:p.imageProcessing?.vignetteEnabled,vignetteColor:p.imageProcessing?.vignetteColor.asArray(),vignetteWeight:p.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:p.chromaticAberrationEnabled,aberrationAmount:p.chromaticAberration.aberrationAmount,radialIntensity:p.chromaticAberration.radialIntensity,direction:p.chromaticAberration.direction.asArray(),centerPosition:p.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:p.glowLayerEnabled,glowLayerIntensity:p.glowLayer?.intensity,glowLayerBlurKernelSize:p.glowLayer?.blurKernelSize,colorGradingEnabled:p.imageProcessing.colorGradingEnabled,colorGradingTexture:p.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:p.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:p.imageProcessing.colorCurvesEnabled,globalHue:p.imageProcessing.colorCurves?.globalHue,globalDensity:p.imageProcessing.colorCurves?.globalDensity,globalExposure:p.imageProcessing.colorCurves?.globalExposure,globalSaturation:p.imageProcessing.colorCurves?.globalSaturation,highlightsHue:p.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:p.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:p.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:p.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:p.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:p.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:p.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:p.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:p.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:p.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:p.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:p.imageProcessing.colorCurves?.shadowsSaturation}:null}i(He,"serializeDefaultRenderingPipeline");function Ue(e,r,t,o){if(p)return p;let n=Nt(e,r);if(n.samples=t.samples,n.fxaaEnabled=t.fxaaEnabled,n.imageProcessingEnabled=t.imageProcessingEnabled,n.imageProcessing){if(n.imageProcessing.exposure=t.exposure,n.imageProcessing.contrast=t.contrast,n.imageProcessing.fromLinearSpace=t.fromLinearSpace,n.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,n.imageProcessing.toneMappingType=t.toneMappingType,n.imageProcessing.ditheringEnabled=t.ditheringEnabled,n.imageProcessing.ditheringIntensity=t.ditheringIntensity,n.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,n.imageProcessing.vignetteColor=Dt.Color4.FromArray(t.vignetteColor??[0,0,0]),n.imageProcessing.vignetteWeight=t.vignetteWeight??.3,n.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,n.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let s=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let a=o+t.colorGradingTexture.name;s=new wt.ColorGradingTexture(a,e),s.level=t.colorGradingTexture.level}else{let a=Mt.Texture.Parse(t.colorGradingTexture,e,o);ee(a)&&(s=a)}n.imageProcessing.colorGradingTexture=s}n.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,n.imageProcessing.colorCurves&&(n.imageProcessing.colorCurves.globalHue=t.globalHue??30,n.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,n.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,n.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,n.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,n.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,n.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,n.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,n.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,n.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,n.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,n.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,n.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,n.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,n.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,n.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return n.bloomEnabled=t.bloomEnabled,n.bloomThreshold=t.bloomThreshold,n.bloomWeight=t.bloomWeight,n.bloomScale=t.bloomScale,n.bloomKernel=t.bloomKernel,n.sharpenEnabled=t.sharpenEnabled,n.sharpen.edgeAmount=t.sharpenEdgeAmount,n.sharpen.colorAmount=t.sharpenColorAmount,n.grainEnabled=t.grainEnabled,n.grain.intensity=t.grainIntensity,n.grain.animated=t.grainAnimated,n.depthOfFieldEnabled=t.depthOfFieldEnabled,n.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,n.depthOfField.lensSize=t.lensSize,n.depthOfField.fStop=t.fStop,n.depthOfField.focusDistance=t.focusDistance,n.depthOfField.focalLength=t.focalLength,n.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,n.chromaticAberration.aberrationAmount=t.aberrationAmount??10,n.chromaticAberration.radialIntensity=t.radialIntensity??1,n.chromaticAberration.direction=je.Vector2.FromArray(t.direction??[0,0]),n.chromaticAberration.centerPosition=je.Vector2.FromArray(t.centerPosition??[0,0]),n.glowLayerEnabled=t.glowLayerEnabled??!1,n.glowLayer&&(n.glowLayer.intensity=t.glowLayerIntensity??1,n.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),n}i(Ue,"parseDefaultRenderingPipeline");function po(e){Y.set(e,Ke()),z.set(e,we()),Q.set(e,Fe()),j.set(e,$e()),W.set(e,He()),$.set(e,Ve())}i(po,"saveRenderingConfigurationForCamera");function qe(e,r,t){Be(),Me(e.getScene()),Ne(),Qe(),We(),_e();let o=Y.get(e);o&&!t?.ssao2Disabled&&ke(e.getScene(),e,o);let n=z.get(e);n&&!t?.vlsDisabled&&Re(e.getScene(),n);let s=Q.get(e);s&&!t?.ssrDisabled&&Le(e.getScene(),e,s);let a=j.get(e);a&&!t?.motionBlurDisabled&&Ye(e.getScene(),e,a);let f=W.get(e);f&&!t?.defaultPipelineDisabled&&Ue(e.getScene(),e,f,r);let l=$.get(e);l&&!t?.taaDisabled&&Ge(e.getScene(),e,l)}i(qe,"applyRenderingConfigurationForCamera");var re=require("babylonjs"),Ft=require("babylonjs");function Lt(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;D(e)?t=e:X(e)&&(t=e.sourceMesh);let o=new Ft.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});o.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?re.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?re.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?re.Quaternion.FromArray(r.massProperties.inertiaOrientation):void 0}),o.shape.density=r.shape.density,o.body.setMotionType(r.body.motionType),o.shape.material=r.material,e.physicsAggregate=o,e.metadata.physicsAggregate=void 0}i(Lt,"configurePhysicsAggregate");function _t(e,r){(Array.isArray(r)?r:[]).forEach(o=>{let n=e.getCameraById(o.cameraId);n&&(o.ssao2RenderingPipeline&&Y.set(n,o.ssao2RenderingPipeline),o.vlsPostProcess&&z.set(n,o.vlsPostProcess),o.ssrRenderingPipeline&&Q.set(n,o.ssrRenderingPipeline),o.motionBlurPostProcess&&j.set(n,o.motionBlurPostProcess),o.defaultRenderingPipeline&&W.set(n,o.defaultRenderingPipeline),o.taaRenderingPipeline&&$.set(n,o.taaRenderingPipeline))})}i(_t,"applyRenderingConfigurations");function ge(e,r){let t=r.soundTracks??[];t.length||t.push(r.mainSoundTrack);for(let o=0,n=t.length;o<n;o++){let s=t[o].soundCollection.find(a=>a.id===e);if(s)return s}return null}i(ge,"getSoundById");function Vt(e,r){let t=r.getNodeByName(e);if(t)return t;let o=r.lights.filter(n=>ue(n));for(let n of o){let s=n.lights.find(a=>a.name===e);if(s)return s}return null}i(Vt,"getNodeByName");function oe(e,r){let t=r.getNodeById(e);if(t)return t;let o=r.lights.filter(n=>ue(n));for(let n of o){let s=n.lights.find(a=>a.id===e);if(s)return s}return null}i(oe,"getNodeById");var B=require("babylonjs"),Gt=require("babylonjs");function Je(e){let r=Gt.Vector3.FromArray(e);return r.equals(B.Axis.X)?B.Axis.X:r.equals(B.Axis.Y)?B.Axis.Y:r.equals(B.Axis.Z)?B.Axis.Z:r}i(Je,"parseAxis");function Bt(e){return e.runtimeConfiguration.forEach(r=>{r.rotationAxis&&(r.rotationAxis=Je(r.rotationAxis)),r.boneOffsetAxis&&(r.boneOffsetAxis=Je(r.boneOffsetAxis))}),e}i(Bt,"parseRagdollConfiguration");function Ze(e){let r={rootNodeId:e.rootNodeId,skeletonName:e.skeletonName,scalingFactor:e.scalingFactor,runtimeConfiguration:e.runtimeConfiguration.map(t=>({name:t.name,bones:t.bones,width:t.width,depth:t.depth,height:t.height,size:t.size,joint:t.joint,min:t.min,max:t.max,boxOffset:t.boxOffset,rotationAxis:t.rotationAxis?.slice(),boneOffsetAxis:t.boneOffsetAxis?.slice()}))};return Bt(r)}i(Ze,"copyAndParseRagdollConfiguration");function Xe(e){return e&&JSON.parse(JSON.stringify(e))}i(Xe,"cloneJSObject");function H(e){let r=new Set;e.transformNodes.forEach(t=>{if(t.metadata?.isStaticGroup){let o=t.getDescendants(!1);o.push(t),o.forEach(n=>{if((G(n)||K(n)&&!n.isWorldMatrixFrozen)&&n.freezeWorldMatrix(),G(n)){let s=n.material;s&&!s.isFrozen&&!r.has(s)&&(r.add(s),s.onBindObservable.addOnce(()=>{s.freeze()}))}})}})}i(H,"configureTransformNodes");var et=require("babylonjs"),ne=class{static{i(this,"AdvancedAssetContainer")}container;_rootUrl;_scriptsMap;_originalDescendants=[];_nodesMap=new Map;_animationGroupsMap=new Map;constructor(r,t,o){this.container=r,this._rootUrl=t,this._scriptsMap=o,r.populateRootNodes(),r.rootNodes.forEach(n=>{this._originalDescendants.push(n,...n.getDescendants(!1))}),this._originalDescendants.forEach(n=>{this._nodesMap.set(n,{node:n,metadata:Xe(n.metadata)})}),r.animationGroups.forEach(n=>{this._animationGroupsMap.set(n.name,n)})}removeDefault(){this.container.getNodes().forEach(r=>{N.get(r)?.forEach(o=>{de(r,o)})}),this.container.removeAllFromScene()}instantiate(r){let t=et.Tools.RandomId(),o=i(a=>a,"nameFunction"),n=this.container.instantiateModelsToScene(o,!1,{...r,predicate:i(a=>(a.name=`${a.name}-${t}_${a.id}`,r?.predicate?.(a)??!0),"predicate")}),s=[];return n.rootNodes.forEach(a=>{s.push(a,...a.getDescendants(!1))}),s.forEach(a=>{let f=a.name.split("_"),l=f.pop();a.name=f.join("_");let c=this._originalDescendants.find(m=>m.id===l);a.id=et.Tools.RandomId(),a.metadata=Xe(this._nodesMap.get(c).metadata),s.forEach(m=>{m.metadata.scripts?.forEach(g=>{Object.keys(g.values||{}).forEach(u=>{let d=g.values[u];if(d.type==="entity"){d.value===l&&(d.value=a.id),d.value===c.name&&(d.value=a.name);let y=this._animationGroupsMap.get(d.value);y&&(d.value=o(y.name))}})})})}),s.forEach(a=>{R(this.container.scene,a,this._scriptsMap,this._rootUrl)}),H(this.container.scene),n}};var Kt=require("babylonjs"),kt=require("babylonjs");async function zt(e,r,t){let n=e.split("/").pop().replace(".scene",".babylon"),s=await(0,kt.LoadAssetContainerAsync)(n,t,{rootUrl:r,pluginExtension:".babylon"});return Kt.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(a=>D(a)&&a._checkDelayState()),s.addAllToScene(),H(t),s}i(zt,"preloadSceneScriptAsset");async function Qt(e,r){return await(await fetch(`${r}${e}`)).json()}i(Qt,"preloadCommonScriptAsset");var T=new Map,ie=new Map;function uo(e,r){ie.has(e)&&console.warn(`A parser for the extension '${e}' was already registered. It will be overwritten.`),ie.set(e,r)}i(uo,"registerScriptAssetParser");async function tt(e,r,t){[r,...r.transformNodes,...r.meshes,...r.lights,...r.cameras].filter(f=>f.metadata?.scripts?.length).map(f=>f.metadata.scripts).flat().forEach(f=>{if(t[f.key]?.default?._SceneAssets?.forEach(c=>{T.get(c.sceneName)||T.set(c.sceneName,null)}),f.values)for(let c in f.values){if(!f.values.hasOwnProperty(c))continue;let m=f.values[c];m.type==="asset"&&m.value&&!T.get(m.value)&&T.set(m.value,null)}});let s=0;for(let f of T.values())f===null&&++s;if(s===0)return s;let a=[];return T.forEach((f,l)=>{T.get(l)||a.push(new Promise(async c=>{try{let m=l.split(".").pop();switch(m){case"scene":T.set(l,new ne(await zt(l,e,r),e,t));break;default:if(ie.has(m)){let g=ie.get(m);T.set(l,await g({key:l,rootUrl:e,scene:r}));break}else T.set(l,await Qt(l,e));break}}catch(m){console.error(m)}c()}))}),await Promise.all(a),s}i(tt,"_preloadScriptsAssets");var $t=require("babylonjs"),ye=require("babylonjs"),Yt=require("babylonjs"),Se=require("babylonjs"),jt=require("babylonjs"),Wt=require("babylonjs-gui");function rt(e,r,t,o,n){let s=o.constructor;if(!s)return;s._NodesFromScene?.forEach(l=>{o[l.propertyKey.toString()]=Vt(l.nodeName,e)}),s._ComponentsFromScene?.length&&e.getEngine().onBeginFrameObservable.addOnce(()=>{s._ComponentsFromScene?.forEach(l=>{let c=[];if([e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].forEach(g=>{let S=ot(g,l.componentConstructor);S&&c.push(S)}),c.length>1)throw new Error(`Multiple components of type ${s._ComponentsFromScene[0].componentConstructor.name} found in scene for property "${s._ComponentsFromScene[0].propertyKey.toString()}".`);o[l.propertyKey.toString()]=c[0]??null})}),s._NodesFromDescendants?.forEach(l=>{let c=r.getDescendants?.(l.directDescendantsOnly,m=>m.name===l.nodeName)[0];o[l.propertyKey.toString()]=c??null}),s._AnimationGroups?.forEach(l=>{o[l.propertyKey.toString()]=e.getAnimationGroupByName(l.animationGroupName)}),s._SoundsFromScene?.forEach(l=>{let c=e.getSoundByName?.(l.soundName);o[l.propertyKey.toString()]=c??null}),(s._GuiFromAsset??[]).map(async l=>{let c=`${n}assets/${l.pathInAssets}`;try{let g=await(await fetch(c)).json(),S=Wt.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);S.parseSerializedObject(g.content,!1),o[l.propertyKey.toString()]=S,l.onGuiCreated?.(o,S)}catch(m){throw console.error(`Failed to load GUI from asset: ${c}`),m}}),s._ParticleSystemsFromScene?.forEach(l=>{let c=e.particleSystems?.find(m=>m.name!==l.particleSystemName?!1:l.directDescendantsOnly?m.emitter===r:m);o[l.propertyKey.toString()]=c}),(s._VisibleInInspector??[]).forEach(l=>{let c=l.propertyKey.toString(),m=t.values;if(!m)throw new Error(`No values found for script with key "${t.key}".`);if(m.hasOwnProperty(c)&&m[c].hasOwnProperty("value")){let g=m[c].value;switch(l.configuration.type){case"number":case"boolean":case"keymap":case"string":o[c]=g;break;case"vector2":o[c]=Se.Vector2.FromArray(g);break;case"vector3":o[c]=Se.Vector3.FromArray(g);break;case"color3":o[c]=ye.Color3.FromArray(g);break;case"color4":o[c]=ye.Color4.FromArray(g);break;case"entity":switch(l.configuration.entityType){case"node":o[c]=oe(g,e)??null;break;case"animationGroup":o[c]=e.getAnimationGroupByName(g)??null;break;case"sound":o[c]=ge(g,e);break;case"particleSystem":o[c]=e.particleSystems?.find(u=>u.id===g)??null;break}break;case"texture":g&&(o[c]=Yt.Texture.Parse(g,e,n));break;case"asset":if(g){let u=l.configuration.assetType,d=T.get(g);switch(u){case"json":case"gui":case"scene":case"navmesh":o[c]=d;break;case"ragdoll":o[c]=Ze(d);break;case"nodeParticleSystemSet":let y=jt.NodeParticleSystemSet.Parse(d);o[c]=y;break;case"material":o[c]=$t.Material.Parse(d,e,n);break}}}}});let a=null,f=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(m=>m.options.mode==="attachedMeshOnly")&&!G(r))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(s._PointerEvents.find(m=>m.options.mode!=="global")&&!k(r))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');a=e.onPointerObservable.add(m=>{let g=null;s._PointerEvents.forEach(S=>{if(!S.eventTypes.includes(m.type))return;let u=S.propertyKey.toString();if(S.options.mode==="global")return o[u]?.(m);g=m.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let d=g.pickedMesh;if(d&&(S.options.mode==="attachedMeshOnly"&&d===r||S.options.mode==="includeDescendants"&&k(r)&&[r,...r.getDescendants(!1)].find(O=>O===d)))return o[u]?.(m)})})}if(s._KeyboardEvents?.length&&(f=e.onKeyboardObservable.add(l=>{s._KeyboardEvents.forEach(c=>{c.eventTypes.includes(l.type)&&o[c.propertyKey.toString()]?.(l)})})),s._SpritesFromSpriteManager?.length){let l=r;if(!K(l)||!l.isSpriteManager)return console.error("@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.");if(!l.spriteManager)return console.error(`SpriteManagerNode "${l.name}" has no sprite manager assigned.`);s._SpritesFromSpriteManager?.forEach(c=>{let m=l.spriteManager?.sprites.find(g=>g.name===c.spriteName)||null;o[c.propertyKey.toString()]=m})}if(s._AnimationsFromSprite?.length){if(!Ee(r))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let l=r.metadata?.spriteAnimations;if(!l?.length)return console.error(`Sprite "${r.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(c=>{let m=l.find(g=>g.name===c.animationName);m?o[c.propertyKey.toString()]=m??null:console.warn(`Sprite animation named "${c.animationName}" not found on sprite "${r.name}".`)})}return s._SceneAssets?.forEach(l=>{o[l.propertyKey.toString()]=T.get(l.sceneName)}),{observers:{pointerObserver:a,keyboardObserver:f}}}i(rt,"applyDecorators");function R(e,r,t,o){r.metadata?.scripts&&(r.metadata.scripts?.forEach(n=>{if(!n.enabled)return;let s=t[n.key];if(!s)return;let a=s,f={};if(s.default){a=new s.default(r);let l=rt(e,r,n,a,o);Object.assign(f,l?.observers??{})}a.onStart&&(f.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>a.onStart(r))),a.onUpdate&&(f.onUpdateObserver=e.onBeforeRenderObservable.add(()=>a.onUpdate(r))),nt(r,a,n.key,f)}),r.metadata.scripts=void 0)}i(R,"_applyScriptsForObject");function fo(e,r,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let o=new r(e),n={};return rt(t,e,{values:{}},o,""),o.onStart&&(n.onStartObserver=t.onBeforeRenderObservable.addOnce(()=>o.onStart())),o.onUpdate&&t.onBeforeRenderObservable.add(()=>o.onUpdate()),nt(e,o,"runtime",n),o}i(fo,"applyScriptOnObject");var N=new Map;function nt(e,r,t,o){let n={key:t,observers:o,instance:r};N.has(e)?N.get(e).push(n):N.set(e,[n]),(k(e)||ve(e)||xe(e))&&e.onDisposeObservable.addOnce((()=>{N.get(e)?.slice()?.forEach(a=>{de(e,a)}),N.delete(e)}))}i(nt,"_registerScriptInstance");function de(e,r){r.observers.onStartObserver?.remove(),r.observers.onUpdateObserver?.remove(),r.observers.pointerObserver?.remove(),r.observers.keyboardObserver?.remove();try{r.instance.onStop?.(e)}catch(n){console.error(`Failed to call onStop for script ${r.key} on object ${e}`,n)}let t=N.get(e),o=t?.indexOf(r)??-1;o!==-1&&t?.splice(o,1)}i(de,"_removeRegisteredScriptInstance");function Ht(e,r){return N.get(e)?.filter(n=>n.instance.constructor===r)?.map(n=>n.instance)??null}i(Ht,"getAllScriptsByClassForObject");function ot(e,r){return Ht(e,r)?.[0]??null}i(ot,"getScriptByClassForObject");var qt=require("babylonjs"),Ut=!1;function Jt(){Ut||(Ut=!0,(0,qt.AddParser)("AudioEditorPlugin",(e,r,t,o)=>{e.sounds?.forEach(n=>{let s=t.sounds?.find(a=>a.name===n.name);s&&(s.id=n.id,s.uniqueId=n.uniqueId,r.onBeforeRenderObservable.addOnce(()=>{try{s.spatialSound=n.spatialSound}catch{}}))})}))}i(Jt,"registerAudioParser");function go(e){e.setCompressedTextureExclusions([".env",".hdr",".dds"]),e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(go,"configureEngineToUseCompressedTextures");function yo(e,r,t){r.loadingTexturesQuality!==e&&(r.loadingTexturesQuality=e,r.textures.forEach(o=>{if(!ee(o)||!o.url)return;let n=he(o,r);!n||o.url.includes(n)||o.updateURL(t+n)}))}i(yo,"applyTexturesQuality");function he(e,r){if(r.loadingTexturesQuality==="high"||!e.metadata?.baseSize)return e.name;let t=e.metadata.baseSize.width,o=e.metadata.baseSize.height,n=t===w(t)||o===w(o),s="";switch(r.loadingTexturesQuality){case"medium":let S=t*.66>>0,u=o*.66>>0;n&&(S=w(S),u=w(u)),s=`_${S}_${u}`;break;case"low":case"very-low":let d=t*.33>>0,y=o*.33>>0;n&&(d=w(d),y=w(y)),s=`_${d}_${y}`;break}let a=e.name;if(!a||!s)return e.name;let f=a.split("/"),l=f.pop();if(!l)return e.name;let c=l.split(".").pop(),g=`${l.replace(`.${c}`,"")}${s}.${c}`;return f.push(g),f.join("/")}i(he,"getTextureUrl");var it=require("babylonjs"),Zt=!1;function Xt(){if(Zt)return;Zt=!0;let e=it.SerializationHelper._TextureParser;it.SerializationHelper._TextureParser=(r,t,o)=>{let n=he(r,t);if(!n)return e(r,t,o);let s=r.name;r.name=n;let a=e(r,t,o);return a&&(a.name=s),a}}i(Xt,"registerTextureParser");var tr=require("babylonjs"),be=require("babylonjs"),er=!1;function rr(){if(er)return;er=!0;let e=(0,be.GetParser)(tr.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,be.AddParser)("ShadowGeneratorEditorPlugin",(r,t,o,n)=>{let s=new Map;r.shadowGenerators?.forEach(a=>{if(s.set(a.id,a.mapSize),t.loadingShadowsQuality!=="high"){switch(t.loadingShadowsQuality){case"medium":a.mapSize=a.mapSize*.5;break;case"low":a.mapSize=a.mapSize*.25;break;case"very-low":a.mapSize=a.mapSize*.125;break}a.mapSize=Math.max(128,w(a.mapSize))}}),e?.(r,t,o,n),t.lights.forEach(a=>{let f=a.getShadowGenerator();if(f?.getShadowMap()){let c=f.id,m=s.get(c);m&&(f.originalMapSize=m)}})})}i(rr,"registerShadowGeneratorParser");var nr=require("babylonjs"),ir=require("babylonjs"),or=!1;function sr(){or||(or=!0,(0,ir.AddParser)("MorphTargetManagerEditorPlugin",(e,r,t,o)=>{e.morphTargetManagers.forEach(n=>{let a=t.meshes.find(c=>c.id===n.meshId)?.morphTargetManager;if(!a||n.targets.find(c=>!c.delayLoadingFile))return;let l=[];n.targets.forEach(c=>{if(!c.delayLoadingFile)return l.push(Promise.resolve(null));let m=`${o}${c.delayLoadingFile}`;r.addPendingData(m);let g=new nr.WebRequest;g.responseType="arraybuffer",g.open("GET",m),g.send(),l.push(new Promise(S=>{g.addEventListener("load",()=>{r.removePendingData(m),S(g.response)})}))}),Promise.all(l).then(c=>{for(let m=0,g=a.numTargets;m<g;++m){let S=a.getTarget(m),u=n.targets[m],d=c[m];if(u.positionsCount){let y=new Float32Array(d,u.positionsOffset,u.positionsCount);S._positions=y,S.setPositions(y)}if(u.normalsCount){let y=new Float32Array(d,u.normalsOffset,u.normalsCount);S._normals=y,S.setNormals(y)}if(u.tangentsCount){let y=new Float32Array(d,u.tangentsOffset,u.tangentsCount);S._tangents=y,S.setTangents(y)}if(u.uvsCount){let y=new Float32Array(d,u.uvsOffset,u.uvsCount);S._uvs=y,S.setUVs(y)}if(u.uv2sCount){let y=new Float32Array(d,u.uv2sOffset,u.uv2sCount);S._uv2s=y,S.setUV2s(y)}}for(let m=0,g=a.numTargets;m<g;++m)a.getTarget(m)._onDataLayoutChanged.notifyObservers()})})}))}i(sr,"registerMorphTargetManagerParser");var ar=require("babylonjs");function lr(e,r){let t=e.metadata?.clusteredLight;return t&&(t.lights.length>0&&(r??=new ar.ClusteredLightContainer("Clustered Light Container",[],e),r.horizontalTiles=t.horizontalTiles,r.verticalTiles=t.verticalTiles,r.depthSlices=t.depthSlices,r.maxRange=t.maxRange),t.lights.forEach(o=>{let n=e.getLightById(o);n&&r?.addLight(n)})),r}i(lr,"configureLights");function st(e){if(!Array.isArray(e.frames)){let r=[];for(let t of Object.keys(e.frames))r.push({filename:t,...e.frames[t]});e.frames=r}}i(st,"normalizeAtlasJson");function So(e,r,t){let n=(e.metadata?.spriteAnimations??[]).find(s=>s.name===r);if(!n)return console.error(`Animation with name "${r}" not found on sprite.`);e.playAnimation(n.from,n.to,n.loop,n.delay,t)}i(So,"playSpriteAnimationFromName");var mr=require("babylonjs"),pr=require("babylonjs"),ur=require("babylonjs"),fr=require("babylonjs"),at=require("babylonjs"),U=require("babylonjs"),gr=require("babylonjs"),cr=!1;function dr(){cr||(cr=!0,(0,gr.AddParser)("SpriteMapNode",(e,r,t,o)=>{e.transformNodes?.forEach(n=>{if(!n.isSpriteMap)return;let s=t.transformNodes?.find(l=>l.id===n.id);if(!s)return;s.isSpriteMap=n.isSpriteMap;let a=`${o}${n.atlasJsonRelativePath}`;r.addPendingData(a);let f=new ur.WebRequest;f.open("GET",a),f.send(),f.addEventListener("load",()=>{r.removePendingData(a);let l=JSON.parse(f.responseText);st(l);let c=`${mr.Tools.GetFolderPath(a)}${l.meta.image}`,m=new at.Texture(c,r,!1,!1,at.Texture.NEAREST_NEAREST,null,null,null,!1,pr.Engine.TEXTUREFORMAT_RGBA),g=new fr.SpriteMap(s.name,l,m,{layerCount:n.options.layerCount,stageSize:U.Vector2.FromArray(n.options.stageSize??[10,1]),outputSize:U.Vector2.FromArray(n.options.outputSize??[100,100]),colorMultiply:U.Vector3.FromArray(n.options.colorMultiply??[1,1,1]),flipU:!0},r);n.tiles.forEach(u=>{for(let d=0,y=u.repeatCount.x+1;d<y;++d)for(let b=0,O=u.repeatCount.y+1;b<O;++b){let M=d*(u.repeatOffset.x+1),E=b*(u.repeatOffset.y+1);g.changeTiles(u.layer,new U.Vector2(u.position.x+M,(g.options.stageSize?.y??0)-1-u.position.y-E),u.tile)}});let S=g._output;S.parent=s,s.spriteMap=g})})}))}i(dr,"registerSpriteMapParser");var hr=require("babylonjs"),br=require("babylonjs"),Pr=require("babylonjs"),lt=require("babylonjs"),Ar=require("babylonjs");function yr(e,r){r?.fogEnabled!==void 0&&(e.fogEnabled=r?.fogEnabled),r?.blendMode!==void 0&&(e.blendMode=r?.blendMode),r?.disableDepthWrite!==void 0&&(e.disableDepthWrite=r?.disableDepthWrite),r?.pixelPerfect!==void 0&&(e.pixelPerfect=r?.pixelPerfect),r?.useLogarithmicDepth!==void 0&&(e.useLogarithmicDepth=r?.useLogarithmicDepth),r?.metadata!==void 0&&(e.metadata=r?.metadata);for(let t of r?.sprites??[]){let o=br.Sprite.Parse(t,e);o.uniqueId=t.uniqueId,o.metadata=t.metadata}}i(yr,"parseSerializedSpriteManager");var Sr=!1;function Cr(){Sr||(Sr=!0,(0,Ar.AddParser)("SpriteManagerNode",(e,r,t,o)=>{e.transformNodes?.forEach(n=>{if(!n.isSpriteManager)return;let s=t.transformNodes?.find(a=>a.id===n.id);if(s){if(s.isSpriteManager=n.isSpriteManager,n.atlasJsonRelativePath){let a=`${o}${n.atlasJsonRelativePath}`;r.addPendingData(a);let f=new Pr.WebRequest;f.open("GET",a),f.send(),f.addEventListener("load",()=>{r.removePendingData(a);let l=JSON.parse(f.responseText),c=`${hr.Tools.GetFolderPath(a)}${l.meta.image}`,m=new lt.SpriteManager(s.name,c,1e3,64,r,void 0,void 0,!0,l);s.spriteManager=m,n.spriteManager&&yr(m,n.spriteManager)})}else if(n.spriteManager?.textureUrl){let a=`${o}${n.spriteManager.textureUrl}`,f=new lt.SpriteManager(s.name,a,1e3,{width:n.spriteManager.cellWidth,height:n.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=f,n.spriteManager&&yr(f,n.spriteManager)}}})}))}i(Cr,"registerSpriteManagerParser");var Ir=require("babylonjs"),vr=require("babylonjs"),xr=!1;function Er(){xr||(xr=!0,(0,Ir.AddParser)("NodeParticleSystemSetEditorPlugin",(e,r,t,o)=>{e.meshes?.forEach(n=>{if(!n.isNodeParticleSystemMesh)return;let s=t.meshes?.find(a=>a.id===n.id);s&&(n.nodeParticleSystemSet.blocks?.forEach(a=>{a.url&&(a.url=`${o}${a.url}`)}),s.nodeParticleSystemSet=vr.NodeParticleSystemSet.Parse(n.nodeParticleSystemSet),s.nodeParticleSystemSet.id=n.nodeParticleSystemSet.id,s.nodeParticleSystemSet.uniqueId=n.uniqueId,r.addPendingData(n.id),s.nodeParticleSystemSet.buildAsync(r,!1).then(a=>{r.removePendingData(n.id),s.particleSystemSet=a,a.systems.forEach(f=>{if(Ie(f)){let l=f._sizeCreation.process;l&&(f._sizeCreation.process=(c,m)=>{l(c,m),c.scale.x*=100,c.scale.y*=100})}}),a.emitterNode=s,a.start()}))})}))}i(Er,"registerNodeParticleSystemSetParser");var Or=require("babylonjs"),ct=require("babylonjs"),Dr=require("babylonjs"),Mr=require("babylonjs"),Tr=new Map;async function ho(e,r,t,o,n){t.loadingQuality=n?.quality??"high",t.loadingTexturesQuality=n?.texturesQuality??t.loadingQuality,t.loadingShadowsQuality=n?.shadowsQuality??t.loadingQuality,t.loadingLodsQuality=n?.lodsQuality??t.loadingQuality,Jt(),Xt(),rr(),sr(),dr(),Cr(),Er();let s=Tr.get(t)??{};if(Tr.set(t,s),await(0,Dr.AppendSceneAsync)(`${e}${r}`,t,{pluginExtension:".babylon",onProgress:i(l=>{let c=Math.min(l.loaded/l.total*.5);n?.onProgress?.(c)},"onProgress")}),!n?.skipAssetsPreload){let l=0;do l=await tt(e,t,o);while(l!==0)}Mr.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(l=>D(l)&&l._checkDelayState());let a=lr(t,s.clusteredLightContainer);s.clusteredLightContainer=a;let f=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(c=>setTimeout(c,150));let l=f-t.getWaitingItemsCount();l===f&&t.textures.forEach(c=>{c.delayLoadState===ct.Constants.DELAYLOADSTATE_NONE&&(c.delayLoadState=ct.Constants.DELAYLOADSTATE_LOADED)}),n?.onProgress?.(.5+l/f*.5)}n?.onProgress?.(1),Te(t),Oe(t.loadingLodsQuality,t),De(t),fe(t),t.metadata?.rendering&&(_t(t,t.metadata.rendering),t.activeCamera&&qe(t.activeCamera,e,n?.postProcessConfiguration)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(Or.Vector3.FromArray(t.metadata?.physicsGravity)),R(t,t,o,e),t.transformNodes.forEach(l=>{R(t,l,o,e)}),t.meshes.forEach(l=>{Lt(l),R(t,l,o,e)}),t.lights.forEach(l=>{R(t,l,o,e)}),t.cameras.forEach(l=>{R(t,l,o,e)}),t.spriteManagers?.forEach(l=>{l.sprites.forEach(c=>{R(t,c,o,e)})}),H(t)}i(ho,"loadScene");var wr=require("babylonjs");async function bo(e,r,t){let n=await(await fetch(e+r)).json(),a=wr.Tools.Instantiate(n.customType).Parse(n,t,e);return a.id=n.id,a.uniqueId=n.uniqueId,a}i(bo,"loadMaterialFromFile");function Po(e){return Promise.all(e.materials.map(async r=>{let t=r.getBindedMeshes();await Promise.all(t.map(async o=>{X(o)||await r.forceCompilationAsync(o,{clipPlane:!!e.clipPlane,useInstances:o.hasInstances})}))}))}i(Po,"forceCompileAllSceneMaterials");var _=require("babylonjs");function se(e){if(!isNaN(parseFloat(e))&&isFinite(e))return _.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return _.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return _.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return _.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return _.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return _.Animation.ANIMATIONTYPE_COLOR4;case"Size":return _.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return _.Animation.ANIMATIONTYPE_MATRIX}return null}i(se,"getAnimationTypeForObject");var Rr=require("babylonjs");function Ao(e){return function(r,t){let o=r.constructor;o._NodesFromScene??=[],o._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Ao,"nodeFromScene");function Co(e){return function(r,t){let o=r.constructor;o._ComponentsFromScene??=[],o._ComponentsFromScene.push({propertyKey:t,componentConstructor:e})}}i(Co,"componentFromScene");function xo(e,r=!1){return function(t,o){let n=t.constructor;n._NodesFromDescendants??=[],n._NodesFromDescendants.push({propertyKey:o,nodeName:e,directDescendantsOnly:r})}}i(xo,"nodeFromDescendants");function Io(e){return function(r,t){let o=r.constructor;o._AnimationGroups??=[],o._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(Io,"animationGroupFromScene");function vo(e){return function(r,t){let o=r.constructor;o._SceneAssets??=[],o._SceneAssets.push({sceneName:e,propertyKey:t})}}i(vo,"sceneAsset");function Eo(e,r){return function(t,o){let n=t.constructor;n._GuiFromAsset??=[],n._GuiFromAsset.push({propertyKey:o,pathInAssets:e,onGuiCreated:r})}}i(Eo,"guiFromAsset");function To(e){return function(r,t){let o=r.constructor;o._SoundsFromScene??=[],o._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(To,"soundFromScene");function Oo(e,r=!1){return function(t,o){let n=t.constructor;n._ParticleSystemsFromScene??=[],n._ParticleSystemsFromScene.push({propertyKey:o,particleSystemName:e,directDescendantsOnly:r})}}i(Oo,"particleSystemFromScene");function Do(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"boolean"}})}}i(Do,"visibleAsBoolean");function Mo(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"string"}})}}i(Mo,"visibleAsString");function wo(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"number"}})}}i(wo,"visibleAsNumber");function Ro(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector2"}})}}i(Ro,"visibleAsVector2");function No(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector3"}})}}i(No,"visibleAsVector3");function Fo(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color3"}})}}i(Fo,"visibleAsColor3");function Lo(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color4"}})}}i(Lo,"visibleAsColor4");function _o(e,r,t){return function(o,n){let s=o.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:n,configuration:{...t,entityType:e,type:"entity"}})}}i(_o,"visibleAsEntity");function Vo(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"texture"}})}}i(Vo,"visibleAsTexture");function Go(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"keymap"}})}}i(Go,"visibleAsKeyMap");function Bo(e,r,t){return function(o,n){let s=o.constructor;s._VisibleInInspector??=[],s._VisibleInInspector.push({label:r,propertyKey:n,configuration:{...t,assetType:e,type:"asset"}})}}i(Bo,"visibleAsAsset");function Ko(e,r){return function(t,o){let n=t.constructor;n._PointerEvents??=[],n._PointerEvents.push({propertyKey:o,options:{mode:"global",...r??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(Ko,"onPointerEvent");function ko(e){return function(r,t){let o=r.constructor;o._KeyboardEvents??=[],o._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(ko,"onKeyboardEvent");function zo(e){return function(r,t){let o=r.constructor;o._SpritesFromSpriteManager??=[],o._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(zo,"spriteFromSpriteManager");function Qo(e){return function(r,t){let o=r.constructor;o._AnimationsFromSprite??=[],o._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Qo,"animationFromSprite");var Pe=require("babylonjs");function vp(e,r){let t;return e===Pe.Animation.ANIMATIONTYPE_FLOAT?t=r.value:t=r.value.clone(),{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===Pe.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===Pe.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(vp,"cloneKey");function Ae(e,r){let t=r.split("."),o=e;for(let n=0;n<t.length;++n)o=o[t[n]];return o}i(Ae,"getPropertyValue");function mt(e,r,t){let o=null;e.onAnimationGroupPlayObservable.add(()=>{o=r.onAfterAnimationsObservable.add(()=>{t()})}),e.onAnimationGroupPauseObservable.add(()=>{o&&(r.onAfterAnimationsObservable.remove(o),o=null)}),e.onAnimationGroupEndObservable.add(()=>{o&&(r.onAfterAnimationsObservable.remove(o),o=null)})}i(mt,"registerAfterAnimationCallback");var V=require("babylonjs"),Ce=require("babylonjs"),L=require("babylonjs");function $o(e,r){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let o=null,n=null;if(t.node?(o=oe(t.node,r),o||(o=r.particleSystems?.find(a=>a.id===t.node)??null)):t.defaultRenderingPipeline&&(o=te()),t.propertyPath){let a=Ae(o,t.propertyPath);n=se(a)}let s=null;return t.sound&&(s=ge(t.sound,r)),{node:o,sound:s,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?r.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,soundVolume:pt(t.soundVolume??[],V.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:t.keyFrameEvents?.map(a=>{let f={...a};switch(a.data?.type){case"set-enabled":f.data={type:"set-enabled",value:a.data.value,node:oe(a.data.node,r)};break;case"apply-impulse":f.data={type:"apply-impulse",radius:a.data.radius,mesh:r.getMeshById(a.data.mesh),force:L.Vector3.FromArray(a.data.force),contactPoint:L.Vector3.FromArray(a.data.contactPoint)};break}return f}),keyFrameAnimations:o&&n!==null&&pt(t.keyFrameAnimations??[],n)}})}}i($o,"parseCinematic");function F(e,r){if(e===null)return null;if(e!==void 0)switch(r){case V.Animation.ANIMATIONTYPE_FLOAT:return e;case V.Animation.ANIMATIONTYPE_VECTOR2:return L.Vector2.FromArray(e);case V.Animation.ANIMATIONTYPE_VECTOR3:return L.Vector3.FromArray(e);case V.Animation.ANIMATIONTYPE_QUATERNION:return L.Quaternion.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR3:return Ce.Color3.FromArray(e);case V.Animation.ANIMATIONTYPE_COLOR4:return Ce.Color4.FromArray(e);case V.Animation.ANIMATIONTYPE_MATRIX:return L.Matrix.FromArray(e)}}i(F,"parseCinematicKeyValue");function pt(e,r){return e?.map(t=>{let o=t.type==="key"?t:null;if(o)return{...o,value:F(o.value,r),inTangent:F(o.inTangent,r),outTangent:F(o.outTangent,r)};let n=t.type==="cut"?t:null;if(n)return{...n,key1:{...n.key1,value:F(n.key1.value,r),inTangent:F(n.key1.inTangent,r),outTangent:F(n.key1.outTangent,r)},key2:{...n.key2,value:F(n.key2.value,r),inTangent:F(n.key2.inTangent,r),outTangent:F(n.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(pt,"parseKeyFrameAnimations");function Nr(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Nr,"handleApplyEvent");function Fr(e){e.node?.setEnabled(e.value)}i(Fr,"handleSetEnabledEvent");var ut=require("babylonjs"),Lr=ut.Vector3.Zero();function _r(e,r){let t=r.mesh?[r.mesh]:e.meshes.filter(o=>o.physicsAggregate);r.radius&&(t=t.filter(o=>{let n=o.getBoundingInfo().boundingBox.centerWorld;return ut.Vector3.Distance(n,r.contactPoint)<=r.radius})),t.forEach(o=>{if(o.physicsAggregate?.body){let n=r.contactPoint.subtract(o.getBoundingInfo().boundingBox.centerWorld);n.multiplyInPlace(r.force),o.physicsAggregate.body.setLinearVelocity(Lr),o.physicsAggregate.body.setAngularVelocity(Lr),o.physicsAggregate.body.applyImpulse(n.negateInPlace(),r.contactPoint)}})}i(_r,"handleApplyImpulseEvent");var Vr=require("babylonjs"),Gr=require("babylonjs"),ae=class extends Gr.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new Vr.Observable;onEvent(r,t){this.onEventObservable.add(o=>{r===o&&t()})}};function ft(e){return e.type==="key"}i(ft,"isCinematicKey");function q(e){return e.type==="cut"}i(q,"isCinematicKeyCut");function Yo(e){return e.type==="event"}i(Yo,"isCinematicKeyEvent");function jo(e){return e.type==="group"}i(jo,"isCinematicGroup");function Wo(e){return e.type==="sound"}i(Wo,"isCinematicSound");var C=require("babylonjs"),J=require("babylonjs");function Ho(e,r,t){let o=new ae(e.name,r);return e.tracks.forEach(n=>{let s=n.animationGroup;if(s&&n.animationGroups?.length){let u=s.clone(`${s.name}-cinematic-temp`),d=r.animationGroups.indexOf(u);d!==-1&&r.animationGroups.splice(d,1),o.onAnimationEndObservable.add(()=>{s.stop(),u.stop()});let y=n.animationGroups.reduce((E,A)=>Math.min(E,A.frame),Number.MAX_VALUE)??0,b=n.animationGroups.reduce((E,A)=>Math.max(E,A.frame+A.endFrame),0)??0,O={frame:y},M=new C.Animation(u.name,"frame",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1);if(M.setKeys([{frame:y,value:0},{frame:b,value:b}]),n.animationGroups.forEach(E=>{M.addEvent(new J.AnimationEvent(E.frame,()=>{let A=E.repeatCount??0;if(u.to=E.endFrame,u.speedRatio=E.speed,u.stop(),u.play(A>0),u.from!==E.startFrame&&u.goToFrame(E.startFrame),A){let Z=0;u.onAnimationGroupLoopObservable.add(()=>{++Z,Z>A&&u.stop()})}}))}),o.addTargetedAnimation(M,O),(n.animationGroupWeight?.length??0)>=2&&n.animationGroupWeight.find(A=>q(A)?A.key1.value!==1||A.key2.value!==1:A.value!==1)){let A={weight:0},Z=new C.Animation(`${u.name}-weights`,"weight",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),le=[];n.animationGroupWeight.forEach(ce=>{q(ce)?(le.push(ce.key1),le.push(ce.key2)):le.push(ce)}),Z.setKeys(le),o.addTargetedAnimation(Z,A),mt(o,r,()=>{u.weight=A.weight})}}let a=n.sound,f=a?.getAudioBuffer();if(!t?.ignoreSounds&&a&&f&&n.sounds?.length){let u={dummy:0,volume:0},d=new C.Animation(a.name,"dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;if(n.sounds?.forEach(b=>{let O=b.endFrame-b.startFrame;y=Math.max(y,b.frame+O),d.addEvent(new J.AnimationEvent(b.frame,M=>{let A=(M-b.frame+b.startFrame)/e.framesPerSecond;a.play(0,A)},!1)),d.addEvent(new J.AnimationEvent(b.frame+O,()=>{a.stop()}))}),d.setKeys([{frame:0,value:0},{frame:y,value:y}]),o.addTargetedAnimation(d,u),(n.soundVolume?.length??0)>=2){let b=new C.Animation(a.name,"volume",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),O=[];n.soundVolume.forEach(M=>{q(M)?(O.push(M.key1),O.push(M.key2)):O.push(M)}),b.setKeys(O),o.addTargetedAnimation(b,u),mt(o,r,()=>{a.setVolume(u.volume)})}}if(n.keyFrameEvents){let u={dummy:0},d=new C.Animation("events","dummy",60,C.Animation.ANIMATIONTYPE_FLOAT,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;n.keyFrameEvents?.forEach(b=>{y=Math.max(y,b.frame),d.addEvent(new J.AnimationEvent(b.frame,()=>{switch(b.data?.type){case"event":Nr(o,b.data);break;case"set-enabled":Fr(b.data);break;case"apply-impulse":_r(r,b.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:y+1,value:y+1}]),o.addTargetedAnimation(d,u)}let l=n.defaultRenderingPipeline?te():n.node;if(!l||!n.propertyPath||!n.keyFrameAnimations)return;let c=Ae(l,n.propertyPath),m=se(c);if(m===null)return;let g=new C.Animation(n.propertyPath,n.propertyPath,60,m,C.Animation.ANIMATIONLOOPMODE_CYCLE,!1),S=[];n.keyFrameAnimations?.forEach(u=>{if(ft(u))return S.push(u);q(u)&&(S.push(u.key1),S.push(u.key2),pe(l)&&n.propertyPath==="position"&&g.addEvent(new J.AnimationEvent(u.key1.frame,()=>{let d=ze();if(!d)return;let y=d.motionStrength;d.motionStrength=0,requestAnimationFrame(()=>{d.motionStrength=y})})))}),g.setKeys(S),o.addTargetedAnimation(g,l)}),o.normalize(),o}i(Ho,"generateCinematicAnimationGroup");0&&(module.exports={AdvancedAssetContainer,Cinematic,NodeParticleSystemSet,_applyScriptsForObject,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,animationFromSprite,animationGroupFromScene,applyMeshesLODQuality,applyRenderingConfigurationForCamera,applyScriptOnObject,applyShadowsQuality,applyTexturesQuality,componentFromScene,configureEngineToUseCompressedTextures,configureMeshDistanceOrScreenCoverage,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,copyAndParseRagdollConfiguration,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createTAARenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeTAARenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getTAARenderingPipeline,getTextureUrl,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isClusteredLightContainer,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSpotLight,isSprite,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseKeyFrameAnimations,parseMotionBlurPostProcess,parseRagdollConfiguration,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseTAARenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,registerScriptAssetParser,saveRenderingConfigurationForCamera,sceneAsset,scriptAssetsCache,scriptAssetsParsers,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeTAARenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setTAARenderingPipelineRef,setVLSPostProcessRef,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,taaRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
@@ -24,7 +24,7 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
24
24
  scene.getEngine().onBeginFrameObservable.addOnce(() => {
25
25
  ctor._ComponentsFromScene?.forEach((params) => {
26
26
  const components = [];
27
- const nodes = [...scene.transformNodes, ...scene.meshes, ...scene.lights, ...scene.cameras];
27
+ const nodes = [scene, ...scene.transformNodes, ...scene.meshes, ...scene.lights, ...scene.cameras];
28
28
  nodes.forEach((node) => {
29
29
  const component = getScriptByClassForObject(node, params.componentConstructor);
30
30
  if (component) {
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/decorators/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/decorators/apply.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export * from "./tools/animation";
11
11
  export * from "./tools/sprite";
12
12
  export * from "./tools/particle";
13
13
  export * from "./tools/ragdoll";
14
+ export * from "./tools/mesh";
14
15
  export * from "./rendering/vls";
15
16
  export * from "./rendering/ssr";
16
17
  export * from "./rendering/taa";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAE7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -3,6 +3,7 @@ import { Constants } from "@babylonjs/core/Engines/constants";
3
3
  import { AppendSceneAsync } from "@babylonjs/core/Loading/sceneLoader";
4
4
  import { SceneLoaderFlags } from "@babylonjs/core/Loading/sceneLoaderFlags";
5
5
  import { isMesh } from "../tools/guards";
6
+ import { applyMeshesLODQuality, configureMeshDistanceOrScreenCoverage } from "../tools/mesh";
6
7
  import { configureShadowMapRefreshRate, configureShadowMapRenderListPredicate } from "../tools/light";
7
8
  import { applyRenderingConfigurationForCamera } from "../rendering/tools";
8
9
  import { configurePhysicsAggregate } from "./physics";
@@ -23,6 +24,7 @@ export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, optio
23
24
  scene.loadingQuality = options?.quality ?? "high";
24
25
  scene.loadingTexturesQuality = options?.texturesQuality ?? scene.loadingQuality;
25
26
  scene.loadingShadowsQuality = options?.shadowsQuality ?? scene.loadingQuality;
27
+ scene.loadingLodsQuality = options?.lodsQuality ?? scene.loadingQuality;
26
28
  registerAudioParser();
27
29
  registerTextureParser();
28
30
  registerShadowGeneratorParser();
@@ -72,6 +74,8 @@ export async function loadScene(rootUrl, sceneFilename, scene, scriptsMap, optio
72
74
  options?.onProgress?.(0.5 + (loadedItemsCount / waitingItemsCount) * 0.5);
73
75
  }
74
76
  options?.onProgress?.(1);
77
+ configureMeshDistanceOrScreenCoverage(scene);
78
+ applyMeshesLODQuality(scene.loadingLodsQuality, scene);
75
79
  configureShadowMapRenderListPredicate(scene);
76
80
  configureShadowMapRefreshRate(scene);
77
81
  if (scene.metadata?.rendering) {
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/loading/loader.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,10 @@ export function registerShadowGeneratorParser() {
9
9
  registered = true;
10
10
  const shadowsGeneratorParser = GetParser(SceneComponentConstants.NAME_SHADOWGENERATOR);
11
11
  AddParser("ShadowGeneratorEditorPlugin", (parsedData, scene, container, rootUrl) => {
12
- if (scene.loadingShadowsQuality !== "high") {
13
- parsedData.shadowGenerators?.forEach((shadowGenerator) => {
12
+ const savedShadowGenerators = new Map();
13
+ parsedData.shadowGenerators?.forEach((shadowGenerator) => {
14
+ savedShadowGenerators.set(shadowGenerator.id, shadowGenerator.mapSize);
15
+ if (scene.loadingShadowsQuality !== "high") {
14
16
  switch (scene.loadingShadowsQuality) {
15
17
  case "medium":
16
18
  shadowGenerator.mapSize = shadowGenerator.mapSize * 0.5;
@@ -23,9 +25,20 @@ export function registerShadowGeneratorParser() {
23
25
  break;
24
26
  }
25
27
  shadowGenerator.mapSize = Math.max(128, getPowerOfTwoUntil(shadowGenerator.mapSize));
26
- });
27
- }
28
+ }
29
+ });
28
30
  shadowsGeneratorParser?.(parsedData, scene, container, rootUrl);
31
+ scene.lights.forEach((light) => {
32
+ const shadowGenerator = light.getShadowGenerator();
33
+ const shadowMap = shadowGenerator?.getShadowMap();
34
+ if (shadowMap) {
35
+ const id = shadowGenerator.id;
36
+ const savedMapSize = savedShadowGenerators.get(id);
37
+ if (savedMapSize) {
38
+ shadowGenerator.originalMapSize = savedMapSize;
39
+ }
40
+ }
41
+ });
29
42
  });
30
43
  }
31
44
  //# sourceMappingURL=shadows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/loading/shadows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,6BAA6B;IAC5C,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,sBAAsB,GAAG,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;IAEvF,SAAS,CAAC,6BAA6B,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;QACtH,IAAI,KAAK,CAAC,qBAAqB,KAAK,MAAM,EAAE,CAAC;YAC5C,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,eAAoB,EAAE,EAAE;gBAC7D,QAAQ,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACrC,KAAK,QAAQ;wBACZ,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,GAAG,CAAC;wBACxD,MAAM;oBAEP,KAAK,KAAK;wBACT,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;wBACzD,MAAM;oBAEP,KAAK,UAAU;wBACd,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;wBAC1D,MAAM;gBACR,CAAC;gBAED,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,sBAAsB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/loading/shadows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,6BAA6B;IAC5C,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,sBAAsB,GAAG,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;IAEvF,SAAS,CAAC,6BAA6B,EAAE,CAAC,UAAe,EAAE,KAAY,EAAE,SAAyB,EAAE,OAAe,EAAE,EAAE;QACtH,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAExD,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,eAAoB,EAAE,EAAE;YAC7D,qBAAqB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;YAEvE,IAAI,KAAK,CAAC,qBAAqB,KAAK,MAAM,EAAE,CAAC;gBAC5C,QAAQ,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACrC,KAAK,QAAQ;wBACZ,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,GAAG,CAAC;wBACxD,MAAM;oBAEP,KAAK,KAAK;wBACT,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;wBACzD,MAAM;oBAEP,KAAK,UAAU;wBACd,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;wBAC1D,MAAM;gBACR,CAAC;gBAED,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACtF,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,sBAAsB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,eAAe,EAAE,YAAY,EAAE,CAAC;YAElD,IAAI,SAAS,EAAE,CAAC;gBACf,MAAM,EAAE,GAAG,eAAgB,CAAC,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnD,IAAI,YAAY,EAAE,CAAC;oBAClB,eAAgB,CAAC,eAAe,GAAG,YAAY,CAAC;gBACjD,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { SerializationHelper } from "@babylonjs/core/Misc/decorators.serialization";
2
- import { getPowerOfTwoUntil } from "../tools/scalar";
2
+ import { getTextureUrl } from "../tools/texture";
3
3
  let registered = false;
4
4
  export function registerTextureParser() {
5
5
  if (registered) {
@@ -8,49 +8,17 @@ export function registerTextureParser() {
8
8
  registered = true;
9
9
  const textureParser = SerializationHelper._TextureParser;
10
10
  SerializationHelper._TextureParser = (sourceProperty, scene, rootUrl) => {
11
- if (scene.loadingTexturesQuality === "high" || !sourceProperty.metadata?.baseSize) {
11
+ const suffix = getTextureUrl(sourceProperty, scene);
12
+ if (!suffix) {
12
13
  return textureParser(sourceProperty, scene, rootUrl);
13
14
  }
14
- const width = sourceProperty.metadata.baseSize.width;
15
- const height = sourceProperty.metadata.baseSize.height;
16
- const isPowerOfTwo = width === getPowerOfTwoUntil(width) || height === getPowerOfTwoUntil(height);
17
- let suffix = "";
18
- switch (scene.loadingTexturesQuality) {
19
- case "medium":
20
- let midWidth = (width * 0.66) >> 0;
21
- let midHeight = (height * 0.66) >> 0;
22
- if (isPowerOfTwo) {
23
- midWidth = getPowerOfTwoUntil(midWidth);
24
- midHeight = getPowerOfTwoUntil(midHeight);
25
- }
26
- suffix = `_${midWidth}_${midHeight}`;
27
- break;
28
- case "low":
29
- case "very-low":
30
- let lowWidth = (width * 0.33) >> 0;
31
- let lowHeight = (height * 0.33) >> 0;
32
- if (isPowerOfTwo) {
33
- lowWidth = getPowerOfTwoUntil(lowWidth);
34
- lowHeight = getPowerOfTwoUntil(lowHeight);
35
- }
36
- suffix = `_${lowWidth}_${lowHeight}`;
37
- break;
15
+ const originalName = sourceProperty.name;
16
+ sourceProperty.name = suffix;
17
+ const texture = textureParser(sourceProperty, scene, rootUrl);
18
+ if (texture) {
19
+ texture.name = originalName;
38
20
  }
39
- const name = sourceProperty.name;
40
- if (!name || !suffix) {
41
- return textureParser(sourceProperty, scene, rootUrl);
42
- }
43
- const finalUrl = name.split("/");
44
- const filename = finalUrl.pop();
45
- if (!filename) {
46
- return textureParser(sourceProperty, scene, rootUrl);
47
- }
48
- const extension = filename.split(".").pop();
49
- const baseFilename = filename.replace(`.${extension}`, "");
50
- const newFilename = `${baseFilename}${suffix}.${extension}`;
51
- finalUrl.push(newFilename);
52
- sourceProperty.name = finalUrl.join("/");
53
- return textureParser(sourceProperty, scene, rootUrl);
21
+ return texture;
54
22
  };
55
23
  }
56
24
  //# sourceMappingURL=texture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/loading/texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/loading/texture.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,qBAAqB;IACpC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,CAAC;IAEzD,mBAAmB,CAAC,cAAc,GAAG,CAAC,cAAmB,EAAE,KAAY,EAAE,OAAe,EAAyB,EAAE;QAClH,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;QACzC,cAAc,CAAC,IAAI,GAAG,MAAM,CAAC;QAE7B,MAAM,OAAO,GAAG,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;QAC7B,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2
2
  import { RenderTargetTexture } from "@babylonjs/core/Materials/Textures/renderTargetTexture";
3
+ import { getPowerOfTwoUntil } from "./scalar";
3
4
  export function configureShadowMapRenderListPredicate(scene) {
4
5
  scene.lights.forEach((light) => {
5
6
  const shadowMap = light.getShadowGenerator()?.getShadowMap();
@@ -22,4 +23,35 @@ export async function configureShadowMapRefreshRate(scene) {
22
23
  });
23
24
  });
24
25
  }
26
+ /**
27
+ * Updates the map size of the shadow generators in the scene to match the given quality when possible.
28
+ * @param quality defines the quality to apply to the shadow generators.
29
+ * @param scene defines the scene to update the shadows in.
30
+ * @see `SceneLoaderQualitySelector` for more information on the available quality levels.
31
+ */
32
+ export function applyShadowsQuality(quality, scene) {
33
+ scene.lights.forEach((light) => {
34
+ const shadowGenerator = light.getShadowGenerator();
35
+ const shadowMap = shadowGenerator?.getShadowMap();
36
+ if (shadowGenerator?.originalMapSize) {
37
+ let newMapSize = shadowGenerator.originalMapSize;
38
+ switch (quality) {
39
+ case "medium":
40
+ newMapSize = newMapSize * 0.5;
41
+ break;
42
+ case "low":
43
+ newMapSize = newMapSize * 0.25;
44
+ break;
45
+ case "very-low":
46
+ newMapSize = newMapSize * 0.125;
47
+ break;
48
+ }
49
+ newMapSize = Math.max(128, getPowerOfTwoUntil(newMapSize));
50
+ if (shadowMap?.getSize().width !== newMapSize) {
51
+ shadowMap.resize(newMapSize);
52
+ }
53
+ }
54
+ });
55
+ configureShadowMapRefreshRate(scene);
56
+ }
25
57
  //# sourceMappingURL=light.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"light.js","sourceRoot":"","sources":["../../../src/tools/light.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAE7F,MAAM,UAAU,qCAAqC,CAAC,KAAY;IACjE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO;QACR,CAAC;QAED,SAAS,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAC3F,OAAO,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;QAChC,CAAC,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,KAAY;IAC/D,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE;QAC3B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,CAAC;YAC7D,IAAI,SAAS,EAAE,CAAC;gBACf,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,WAAW,IAAI,mBAAmB,CAAC,+BAA+B,CAAC;YAC5G,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"light.js","sourceRoot":"","sources":["../../../src/tools/light.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAI7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAQ9C,MAAM,UAAU,qCAAqC,CAAC,KAAY;IACjE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO;QACR,CAAC;QAED,SAAS,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAC3F,OAAO,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;QAChC,CAAC,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,KAAY;IAC/D,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE;QAC3B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,CAAC;YAC7D,IAAI,SAAS,EAAE,CAAC;gBACf,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,WAAW,IAAI,mBAAmB,CAAC,+BAA+B,CAAC;YAC5G,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAmC,EAAE,KAAY;IACpF,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,eAAe,EAAE,YAAY,EAAE,CAAC;QAElD,IAAI,eAAe,EAAE,eAAe,EAAE,CAAC;YACtC,IAAI,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC;YAEjD,QAAQ,OAAO,EAAE,CAAC;gBACjB,KAAK,QAAQ;oBACZ,UAAU,GAAG,UAAU,GAAG,GAAG,CAAC;oBAC9B,MAAM;gBAEP,KAAK,KAAK;oBACT,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;oBAC/B,MAAM;gBAEP,KAAK,UAAU;oBACd,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC;oBAChC,MAAM;YACR,CAAC;YAED,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;YAE3D,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC/C,SAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,6BAA6B,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
@@ -1,2 +1,43 @@
1
- export {};
1
+ import { isMesh } from "./guards";
2
+ export function configureMeshDistanceOrScreenCoverage(scene) {
3
+ scene.meshes.forEach((mesh) => {
4
+ if (isMesh(mesh)) {
5
+ mesh.getLODLevels().forEach((lod) => {
6
+ if (lod.mesh) {
7
+ lod.mesh.originalDistanceOrScreenCoverage = lod.distanceOrScreenCoverage;
8
+ }
9
+ });
10
+ }
11
+ });
12
+ }
13
+ /**
14
+ * Updates the distance or screen coverage of the LOD levels of the meshes in the scene to match the given quality when possible.
15
+ * @param quality defines the quality to apply to the meshes LOD levels.
16
+ * @param scene defines the scene to update the meshes LOD levels in.
17
+ * @see `SceneLoaderQualitySelector` for more information on the available quality levels.
18
+ */
19
+ export function applyMeshesLODQuality(quality, scene) {
20
+ scene.meshes.forEach((mesh) => {
21
+ if (isMesh(mesh)) {
22
+ mesh.getLODLevels().forEach((lod) => {
23
+ if (lod.mesh?.originalDistanceOrScreenCoverage) {
24
+ switch (quality) {
25
+ case "very-low":
26
+ lod.distanceOrScreenCoverage = lod.mesh.originalDistanceOrScreenCoverage * 0.125;
27
+ break;
28
+ case "low":
29
+ lod.distanceOrScreenCoverage = lod.mesh.originalDistanceOrScreenCoverage * 0.25;
30
+ break;
31
+ case "medium":
32
+ lod.distanceOrScreenCoverage = lod.mesh.originalDistanceOrScreenCoverage * 0.5;
33
+ break;
34
+ case "high":
35
+ lod.distanceOrScreenCoverage = lod.mesh.originalDistanceOrScreenCoverage;
36
+ break;
37
+ }
38
+ }
39
+ });
40
+ }
41
+ });
42
+ }
2
43
  //# sourceMappingURL=mesh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../../src/tools/mesh.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../../src/tools/mesh.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAgBlC,MAAM,UAAU,qCAAqC,CAAC,KAAY;IACjE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBACd,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,GAAG,CAAC,wBAAwB,CAAC;gBAC1E,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAmC,EAAE,KAAY;IACtF,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,IAAI,GAAG,CAAC,IAAI,EAAE,gCAAgC,EAAE,CAAC;oBAChD,QAAQ,OAAO,EAAE,CAAC;wBACjB,KAAK,UAAU;4BACd,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAC;4BACjF,MAAM;wBAEP,KAAK,KAAK;4BACT,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC;4BAChF,MAAM;wBAEP,KAAK,QAAQ;4BACZ,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,GAAG,CAAC;4BAC/E,MAAM;wBAEP,KAAK,MAAM;4BACV,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC;4BACzE,MAAM;oBACR,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { isTexture } from "./guards";
2
+ import { getPowerOfTwoUntil } from "./scalar";
1
3
  /**
2
4
  * Set the compressed texture format to use, based on the formats you have, and the formats
3
5
  * supported by the hardware / browser.
@@ -5,6 +7,80 @@
5
7
  * @see `@babylonjs/core/Engines/Extensions/engine.textureSelector.d.ts` for more information.
6
8
  */
7
9
  export function configureEngineToUseCompressedTextures(engine) {
10
+ engine.setCompressedTextureExclusions([".env", ".hdr", ".dds"]);
8
11
  engine.setTextureFormatToUse(["-dxt.ktx", "-astc.ktx", "-pvrtc.ktx", "-etc1.ktx", "-etc2.ktx"]);
9
12
  }
13
+ /**
14
+ * Updates URL of all textures in the scene to match the given quality when possible.
15
+ * @param quality defines the quality to apply to the textures.
16
+ * @param scene defines the scene to update the textures in.
17
+ * @param rootUrl defines the root URL to use when updating the texture URLs.
18
+ * @see `SceneLoaderQualitySelector` for more information on the available quality levels.
19
+ */
20
+ export function applyTexturesQuality(quality, scene, rootUrl) {
21
+ if (scene.loadingTexturesQuality === quality) {
22
+ return;
23
+ }
24
+ scene.loadingTexturesQuality = quality;
25
+ scene.textures.forEach((texture) => {
26
+ if (!isTexture(texture) || !texture.url) {
27
+ return;
28
+ }
29
+ const suffix = getTextureUrl(texture, scene);
30
+ if (!suffix || texture.url.includes(suffix)) {
31
+ return;
32
+ }
33
+ texture.updateURL(rootUrl + suffix);
34
+ });
35
+ }
36
+ /**
37
+ * Gets the URL suffix to use for a texture based on the scene's loading texture quality and the texture's metadata.
38
+ * @param sourceProperty defines the texture to get the suffix for. Can be a texture or a texture serialization object.
39
+ * @param scene defines the scene to get the loading texture quality from.
40
+ * @returns the URL to use for the texture, or the original texture name if no suffix should be applied.
41
+ */
42
+ export function getTextureUrl(sourceProperty, scene) {
43
+ if (scene.loadingTexturesQuality === "high" || !sourceProperty.metadata?.baseSize) {
44
+ return sourceProperty.name;
45
+ }
46
+ const width = sourceProperty.metadata.baseSize.width;
47
+ const height = sourceProperty.metadata.baseSize.height;
48
+ const isPowerOfTwo = width === getPowerOfTwoUntil(width) || height === getPowerOfTwoUntil(height);
49
+ let suffix = "";
50
+ switch (scene.loadingTexturesQuality) {
51
+ case "medium":
52
+ let midWidth = (width * 0.66) >> 0;
53
+ let midHeight = (height * 0.66) >> 0;
54
+ if (isPowerOfTwo) {
55
+ midWidth = getPowerOfTwoUntil(midWidth);
56
+ midHeight = getPowerOfTwoUntil(midHeight);
57
+ }
58
+ suffix = `_${midWidth}_${midHeight}`;
59
+ break;
60
+ case "low":
61
+ case "very-low":
62
+ let lowWidth = (width * 0.33) >> 0;
63
+ let lowHeight = (height * 0.33) >> 0;
64
+ if (isPowerOfTwo) {
65
+ lowWidth = getPowerOfTwoUntil(lowWidth);
66
+ lowHeight = getPowerOfTwoUntil(lowHeight);
67
+ }
68
+ suffix = `_${lowWidth}_${lowHeight}`;
69
+ break;
70
+ }
71
+ const name = sourceProperty.name;
72
+ if (!name || !suffix) {
73
+ return sourceProperty.name;
74
+ }
75
+ const finalUrl = name.split("/");
76
+ const filename = finalUrl.pop();
77
+ if (!filename) {
78
+ return sourceProperty.name;
79
+ }
80
+ const extension = filename.split(".").pop();
81
+ const baseFilename = filename.replace(`.${extension}`, "");
82
+ const newFilename = `${baseFilename}${suffix}.${extension}`;
83
+ finalUrl.push(newFilename);
84
+ return finalUrl.join("/");
85
+ }
10
86
  //# sourceMappingURL=texture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/tools/texture.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,sCAAsC,CAAC,MAAc;IACpE,MAAM,CAAC,qBAAqB,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AACjG,CAAC"}
1
+ {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/tools/texture.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export * from "./tools/animation";
11
11
  export * from "./tools/sprite";
12
12
  export * from "./tools/particle";
13
13
  export * from "./tools/ragdoll";
14
+ export * from "./tools/mesh";
14
15
  export * from "./rendering/vls";
15
16
  export * from "./rendering/ssr";
16
17
  export * from "./rendering/taa";
@@ -35,6 +35,11 @@ export type SceneLoaderOptions = {
35
35
  * Same as "quality" but only applied to shadows. If set, this has priority over "quality".
36
36
  */
37
37
  shadowsQuality?: SceneLoaderQualitySelector;
38
+ /**
39
+ * Sames as "quality" but only applied to LODs. If set, this has priority over "quality".
40
+ * This will affect the screen coverage or distance used to switch between LODs. The "very-low" quality level is even more aggressive with LODs.
41
+ */
42
+ lodsQuality?: SceneLoaderQualitySelector;
38
43
  /**
39
44
  * Defines the optional configuration to apply when applying the rendering configuration for a camera.
40
45
  * This allows to selectively disable some post-processes when applying the rendering configuration for a camera.
@@ -58,6 +63,7 @@ declare module "@babylonjs/core/scene" {
58
63
  loadingQuality: SceneLoaderQualitySelector;
59
64
  loadingTexturesQuality: SceneLoaderQualitySelector;
60
65
  loadingShadowsQuality: SceneLoaderQualitySelector;
66
+ loadingLodsQuality: SceneLoaderQualitySelector;
61
67
  }
62
68
  }
63
69
  export declare function loadScene(rootUrl: any, sceneFilename: string, scene: Scene, scriptsMap: ScriptMap, options?: SceneLoaderOptions): Promise<void>;
@@ -1,3 +1,16 @@
1
1
  import { Scene } from "@babylonjs/core/scene";
2
+ import { SceneLoaderQualitySelector } from "../loading/loader";
3
+ declare module "@babylonjs/core/Lights/Shadows/shadowGenerator" {
4
+ interface IShadowGenerator {
5
+ originalMapSize?: number;
6
+ }
7
+ }
2
8
  export declare function configureShadowMapRenderListPredicate(scene: Scene): void;
3
9
  export declare function configureShadowMapRefreshRate(scene: Scene): Promise<void>;
10
+ /**
11
+ * Updates the map size of the shadow generators in the scene to match the given quality when possible.
12
+ * @param quality defines the quality to apply to the shadow generators.
13
+ * @param scene defines the scene to update the shadows in.
14
+ * @see `SceneLoaderQualitySelector` for more information on the available quality levels.
15
+ */
16
+ export declare function applyShadowsQuality(quality: SceneLoaderQualitySelector, scene: Scene): void;
@@ -1,6 +1,21 @@
1
+ import { Scene } from "@babylonjs/core/scene";
1
2
  import { PhysicsAggregate } from "@babylonjs/core/Physics/v2/physicsAggregate";
3
+ import { SceneLoaderQualitySelector } from "../loading/loader";
2
4
  declare module "@babylonjs/core/Meshes/abstractMesh" {
3
5
  interface AbstractMesh {
4
6
  physicsAggregate?: PhysicsAggregate | null;
5
7
  }
6
8
  }
9
+ declare module "@babylonjs/core/Meshes/mesh" {
10
+ interface Mesh {
11
+ originalDistanceOrScreenCoverage?: number;
12
+ }
13
+ }
14
+ export declare function configureMeshDistanceOrScreenCoverage(scene: Scene): void;
15
+ /**
16
+ * Updates the distance or screen coverage of the LOD levels of the meshes in the scene to match the given quality when possible.
17
+ * @param quality defines the quality to apply to the meshes LOD levels.
18
+ * @param scene defines the scene to update the meshes LOD levels in.
19
+ * @see `SceneLoaderQualitySelector` for more information on the available quality levels.
20
+ */
21
+ export declare function applyMeshesLODQuality(quality: SceneLoaderQualitySelector, scene: Scene): void;
@@ -1,4 +1,6 @@
1
+ import { Scene } from "@babylonjs/core/scene";
1
2
  import { Engine } from "@babylonjs/core/Engines/engine";
3
+ import { SceneLoaderQualitySelector } from "../loading/loader";
2
4
  /**
3
5
  * Set the compressed texture format to use, based on the formats you have, and the formats
4
6
  * supported by the hardware / browser.
@@ -6,3 +8,18 @@ import { Engine } from "@babylonjs/core/Engines/engine";
6
8
  * @see `@babylonjs/core/Engines/Extensions/engine.textureSelector.d.ts` for more information.
7
9
  */
8
10
  export declare function configureEngineToUseCompressedTextures(engine: Engine): void;
11
+ /**
12
+ * Updates URL of all textures in the scene to match the given quality when possible.
13
+ * @param quality defines the quality to apply to the textures.
14
+ * @param scene defines the scene to update the textures in.
15
+ * @param rootUrl defines the root URL to use when updating the texture URLs.
16
+ * @see `SceneLoaderQualitySelector` for more information on the available quality levels.
17
+ */
18
+ export declare function applyTexturesQuality(quality: SceneLoaderQualitySelector, scene: Scene, rootUrl: string): void;
19
+ /**
20
+ * Gets the URL suffix to use for a texture based on the scene's loading texture quality and the texture's metadata.
21
+ * @param sourceProperty defines the texture to get the suffix for. Can be a texture or a texture serialization object.
22
+ * @param scene defines the scene to get the loading texture quality from.
23
+ * @returns the URL to use for the texture, or the original texture name if no suffix should be applied.
24
+ */
25
+ export declare function getTextureUrl(sourceProperty: any, scene: Scene): any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-editor-tools",
3
- "version": "5.4.1-alpha.4",
3
+ "version": "5.4.1-alpha.6",
4
4
  "description": "Babylon.js Editor Tools is a set of tools to help you create, edit and manage your Babylon.js scenes made using the Babylon.js Editor",
5
5
  "productName": "Babylon.js Editor Tools",
6
6
  "scripts": {