babylonjs-editor-tools 5.1.3 → 5.1.4

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 H=Object.defineProperty;var yt=Object.getOwnPropertyDescriptor;var ht=Object.getOwnPropertyNames;var St=Object.prototype.hasOwnProperty;var i=(e,o)=>H(e,"name",{value:o,configurable:!0});var Pt=(e,o)=>{for(var t in o)H(e,t,{get:o[t],enumerable:!0})},bt=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of ht(o))!St.call(e,n)&&n!==t&&H(e,n,{get:()=>o[n],enumerable:!(r=yt(o,n))||r.enumerable});return e};var Ct=e=>bt(H({},"__esModule",{value:!0}),e);var yn={};Pt(yn,{_applyScriptsForObject:()=>R,animationGroupFromScene:()=>$t,configureEngineToUseCompressedTextures:()=>Ht,configureShadowMapRefreshRate:()=>Ae,configureShadowMapRenderListPredicate:()=>xe,createDefaultRenderingPipeline:()=>et,createMotionBlurPostProcess:()=>Qe,createSSAO2RenderingPipeline:()=>Ue,createSSRRenderingPipeline:()=>He,createVLSPostProcess:()=>Ye,defaultPipelineCameraConfigurations:()=>B,disposeDefaultRenderingPipeline:()=>be,disposeMotionBlurPostProcess:()=>ye,disposeSSAO2RenderingPipeline:()=>ue,disposeSSRRenderingPipeline:()=>ce,disposeVLSPostProcess:()=>se,forceCompileAllSceneMaterials:()=>jt,generateCinematicAnimationGroup:()=>mn,getAllScriptsByClassForObject:()=>Be,getAnimationTypeForObject:()=>z,getDefaultRenderingPipeline:()=>k,getMotionBlurPostProcess:()=>de,getPowerOfTwoUntil:()=>D,getSSAO2RenderingPipeline:()=>Bt,getSSRRenderingPipeline:()=>Vt,getScriptByClassForObject:()=>Ft,getVLSPostProcess:()=>wt,guiFromAsset:()=>Qt,isAbstractMesh:()=>Oe,isAnyParticleSystem:()=>ie,isArcRotateCamera:()=>Tt,isBone:()=>It,isCamera:()=>W,isCinematicGroup:()=>fn,isCinematicKey:()=>pn,isCinematicKeyCut:()=>un,isCinematicKeyEvent:()=>gn,isCinematicSound:()=>dn,isDirectionalLight:()=>Dt,isFreeCamera:()=>At,isGPUParticleSystem:()=>Mt,isGroundMesh:()=>xt,isHemisphericLight:()=>Rt,isInstancedMesh:()=>_,isLight:()=>Fe,isMesh:()=>E,isNode:()=>re,isParticleSystem:()=>Ot,isPointLight:()=>Et,isScene:()=>oe,isSpotLight:()=>vt,isTexture:()=>ne,isTransformNode:()=>Me,loadMaterialFromFile:()=>Yt,loadScene:()=>zt,motionBlurPostProcessCameraConfigurations:()=>L,nodeFromDescendants:()=>Ut,nodeFromScene:()=>Wt,parseCinematic:()=>cn,parseCinematicKeyValue:()=>C,parseDefaultRenderingPipeline:()=>Ie,parseMotionBlurPostProcess:()=>Se,parseSSAO2RenderingPipeline:()=>fe,parseSSRRenderingPipeline:()=>pe,parseVLSPostProcess:()=>le,particleSystemFromScene:()=>qt,registerScriptInstance:()=>Le,serializeDefaultRenderingPipeline:()=>Ce,serializeMotionBlurPostProcess:()=>he,serializeSSAO2RenderingPipeline:()=>ge,serializeSSRRenderingPipeline:()=>me,serializeVLSPostProcess:()=>ae,setDefaultRenderingPipelineRef:()=>Kt,setMotionBlurPostProcessRef:()=>Gt,setSSAO2RenderingPipelineRef:()=>_t,setSSRRenderingPipelineRef:()=>Lt,setVLSPostProcessRef:()=>Nt,soundFromScene:()=>Zt,ssaoRenderingPipelineCameraConfigurations:()=>V,ssrRenderingPipelineCameraConfigurations:()=>N,visibleAsBoolean:()=>Xt,visibleAsColor3:()=>rn,visibleAsColor4:()=>on,visibleAsEntity:()=>sn,visibleAsKeyMap:()=>ln,visibleAsNumber:()=>en,visibleAsString:()=>Jt,visibleAsTexture:()=>an,visibleAsVector2:()=>tn,visibleAsVector3:()=>nn,vlsPostProcessCameraConfigurations:()=>w});module.exports=Ct(yn);function Oe(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(Oe,"isAbstractMesh");function E(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(E,"isMesh");function _(e){return e.getClassName?.()==="InstancedMesh"}i(_,"isInstancedMesh");function It(e){return e.getClassName?.()==="Bone"}i(It,"isBone");function xt(e){return e.getClassName?.()==="GroundMesh"}i(xt,"isGroundMesh");function Me(e){return e.getClassName?.()==="TransformNode"}i(Me,"isTransformNode");function ne(e){return e?.getClassName?.()==="Texture"}i(ne,"isTexture");function W(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(W,"isCamera");function At(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(At,"isFreeCamera");function Tt(e){return e.getClassName?.()==="ArcRotateCamera"}i(Tt,"isArcRotateCamera");function Et(e){return e.getClassName?.()==="PointLight"}i(Et,"isPointLight");function Dt(e){return e.getClassName?.()==="DirectionalLight"}i(Dt,"isDirectionalLight");function vt(e){return e.getClassName?.()==="SpotLight"}i(vt,"isSpotLight");function Rt(e){return e.getClassName?.()==="HemisphericLight"}i(Rt,"isHemisphericLight");function Fe(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(Fe,"isLight");function re(e){return Oe(e)||Me(e)||Fe(e)||W(e)}i(re,"isNode");function oe(e){return e.getClassName?.()==="Scene"}i(oe,"isScene");function Ot(e){return e.getClassName?.()==="ParticleSystem"}i(Ot,"isParticleSystem");function Mt(e){return e.getClassName?.()==="GPUParticleSystem"}i(Mt,"isGPUParticleSystem");function ie(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(ie,"isAnyParticleSystem");function U(e,o){let t=o.soundTracks??[];t.length||t.push(o.mainSoundTrack);for(let r=0,n=t.length;r<n;r++){let l=t[r].soundCollection.find(s=>s.id===e);if(l)return l}return null}i(U,"getSoundById");var $=require("babylonjs"),we=require("babylonjs"),Q=require("babylonjs"),Ne=require("babylonjs-gui");function Ve(e,o,t,r,n){let l=r.constructor;l&&(l._NodesFromScene?.forEach(s=>{r[s.propertyKey.toString()]=e.getNodeByName(s.nodeName)}),l._NodesFromDescendants?.forEach(s=>{let c=o.getDescendants?.(s.directDescendantsOnly,m=>m.name===s.nodeName)[0];r[s.propertyKey.toString()]=c??null}),l._AnimationGroups?.forEach(s=>{r[s.propertyKey.toString()]=e.getAnimationGroupByName(s.animationGroupName)}),l._SoundsFromScene?.forEach(s=>{let c=e.getSoundByName?.(s.soundName);r[s.propertyKey.toString()]=c??null}),l._GuiFromAsset?.forEach(async s=>{let c=`${n}assets/${s.pathInAssets}`;try{let y=await(await fetch(c)).json(),b=Ne.AdvancedDynamicTexture.CreateFullscreenUI(y.name,!0,e);b.parseSerializedObject(y.content,!1),r[s.propertyKey.toString()]=b,s.onGuiCreated?.(r,b)}catch(m){throw console.error(`Failed to load GUI from asset: ${c}`),m}}),l._ParticleSystemsFromScene?.forEach(s=>{let c=e.particleSystems?.find(m=>m.name!==s.particleSystemName?!1:s.directDescendantsOnly?m.emitter===o:m);r[s.propertyKey.toString()]=c}),l._VisibleInInspector?.forEach(s=>{let c=s.propertyKey.toString(),m=t.values;if(m.hasOwnProperty(c)&&m[c].hasOwnProperty("value")){let y=m[c].value;switch(s.configuration.type){case"number":case"boolean":case"keymap":case"string":r[c]=y;break;case"vector2":r[c]=Q.Vector2.FromArray(y);break;case"vector3":r[c]=Q.Vector3.FromArray(y);break;case"color3":r[c]=$.Color3.FromArray(y);break;case"color4":r[c]=$.Color4.FromArray(y);break;case"entity":switch(s.configuration.entityType){case"node":r[c]=e.getNodeById(y)??null;break;case"animationGroup":r[c]=e.getAnimationGroupByName(y)??null;break;case"sound":r[c]=U(y,e);break;case"particleSystem":r[c]=e.particleSystems?.find(O=>O.id===y)??null;break}break;case"texture":y&&(r[c]=we.Texture.Parse(y,e,n));break}}}))}i(Ve,"applyDecorators");function R(e,o,t,r){o.metadata&&(o.metadata.scripts?.forEach(n=>{if(!n.enabled)return;let l=t[n.key];if(l)if(l.default){let s=new l.default(o);Le(o,s,n.key),Ve(e,o,n,s,r),s.onStart&&e.onBeforeRenderObservable.addOnce(()=>s.onStart()),s.onUpdate&&e.onBeforeRenderObservable.add(()=>s.onUpdate())}else l.onStart&&e.onBeforeRenderObservable.addOnce(()=>l.onStart(o)),l.onUpdate&&e.onBeforeRenderObservable.add(()=>l.onUpdate(o))}),o.metadata.scripts=void 0)}i(R,"_applyScriptsForObject");var G=new Map;function Le(e,o,t){let r={key:t,instance:o};G.has(e)?G.get(e).push(r):G.set(e,[r]),(re(e)||ie(e)||oe(e))&&e.onDisposeObservable.addOnce(()=>{G.delete(e)})}i(Le,"registerScriptInstance");function Be(e,o){return G.get(e)?.filter(n=>n.instance.constructor===o)?.map(n=>n.instance)??null}i(Be,"getAllScriptsByClassForObject");function Ft(e,o){return Be(e,o)?.[0]??null}i(Ft,"getScriptByClassForObject");var K=require("babylonjs"),_e=require("babylonjs");function Ge(e){let o=e.metadata?.physicsAggregate;if(!o)return;let t;E(e)?t=e:_(e)&&(t=e.sourceMesh);let r=new _e.PhysicsAggregate(e,o.shape.type,{mesh:t,mass:o.massProperties.mass});r.body.setMassProperties({mass:o.massProperties.mass,inertia:o.massProperties.inertia?K.Vector3.FromArray(o.massProperties.inertia):void 0,centerOfMass:o.massProperties.centerOfMass?K.Vector3.FromArray(o.massProperties.centerOfMass):void 0,inertiaOrientation:o.massProperties.inertiaOrientation?K.Quaternion.FromArray(o.massProperties.inertiaOrientation):void 0}),r.shape.density=o.shape.density,r.body.setMotionType(o.body.motionType),r.shape.material=o.material,e.physicsAggregate=r,e.metadata.physicsAggregate=void 0}i(Ge,"configurePhysicsAggregate");var Ke=require("babylonjs"),ke=require("babylonjs"),ze=require("babylonjs"),S=null,w=new Map;function wt(){return S}i(wt,"getVLSPostProcess");function Nt(e){S=e}i(Nt,"setVLSPostProcessRef");function se(e){S&&e.activeCamera&&(S.dispose(e.activeCamera),S=null)}i(se,"disposeVLSPostProcess");function Ye(e,o){return o??=e.meshes.find(t=>E(t)),S=new ze.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,o,100,ke.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),S}i(Ye,"createVLSPostProcess");function ae(){return S?{meshId:S.mesh?.id,exposure:S.exposure,decay:S.decay,weight:S.weight,density:S.density,invert:S.invert,useCustomMeshPosition:S.useCustomMeshPosition,customMeshPosition:S.customMeshPosition.asArray()}:null}i(ae,"serializeVLSPostProcess");function le(e,o){let t=null;if(o.meshId){let n=e.getMeshById(o.meshId);n&&E(n)&&(t=n)}let r=Ye(e,t);return r.exposure=o.exposure,r.decay=o.decay,r.weight=o.weight,r.density=o.density,r.invert=o.invert,r.useCustomMeshPosition=o.useCustomMeshPosition,r.customMeshPosition.copyFrom(Ke.Vector3.FromArray(o.customMeshPosition)),r}i(le,"parseVLSPostProcess");var je=require("babylonjs"),p=null,N=new Map;function Vt(){return p}i(Vt,"getSSRRenderingPipeline");function Lt(e){p=e}i(Lt,"setSSRRenderingPipelineRef");function ce(){p&&(p.dispose(),p=null)}i(ce,"disposeSSRRenderingPipeline");function He(e,o){return p=new je.SSRRenderingPipeline("SSRRenderingPipeline",e,[o]),p.samples=4,p}i(He,"createSSRRenderingPipeline");function me(){return p?{samples:p.samples,step:p.step,thickness:p.thickness,strength:p.strength,reflectionSpecularFalloffExponent:p.reflectionSpecularFalloffExponent,maxSteps:p.maxSteps,maxDistance:p.maxDistance,roughnessFactor:p.roughnessFactor,reflectivityThreshold:p.reflectivityThreshold,blurDispersionStrehgth:p.blurDispersionStrength,clipToFrustum:p.clipToFrustum,enableSmoothReflections:p.enableSmoothReflections,enableAutomaticThicknessComputation:p.enableAutomaticThicknessComputation,attenuateFacingCamera:p.attenuateFacingCamera,attenuateScreenBorders:p.attenuateScreenBorders,attenuateIntersectionDistance:p.attenuateIntersectionDistance,attenuateBackfaceReflection:p.attenuateBackfaceReflection,blurDownsample:p.blurDownsample,selfCollisionNumSkip:p.selfCollisionNumSkip,ssrDownsample:p.ssrDownsample,backfaceDepthTextureDownsample:p.backfaceDepthTextureDownsample}:null}i(me,"serializeSSRRenderingPipeline");function pe(e,o,t){if(p)return p;let r=He(e,o);return r.samples=t.samples,r.step=t.step,r.thickness=t.thickness,r.strength=t.strength,r.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,r.maxSteps=t.maxSteps,r.maxDistance=t.maxDistance,r.roughnessFactor=t.roughnessFactor,r.reflectivityThreshold=t.reflectivityThreshold,r.blurDispersionStrength=t.blurDispersionStrehgth,r.clipToFrustum=t.clipToFrustum,r.enableSmoothReflections=t.enableSmoothReflections,r.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,r.attenuateFacingCamera=t.attenuateFacingCamera,r.attenuateScreenBorders=t.attenuateScreenBorders,r.attenuateIntersectionDistance=t.attenuateIntersectionDistance,r.attenuateBackfaceReflection=t.attenuateBackfaceReflection,r.blurDownsample=t.blurDownsample,r.selfCollisionNumSkip=t.selfCollisionNumSkip,r.ssrDownsample=t.ssrDownsample,r.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,r}i(pe,"parseSSRRenderingPipeline");var We=require("babylonjs"),d=null,V=new Map;function Bt(){return d}i(Bt,"getSSAO2RenderingPipeline");function _t(e){d=e}i(_t,"setSSAO2RenderingPipelineRef");function ue(){d&&(d.dispose(),d=null)}i(ue,"disposeSSAO2RenderingPipeline");function Ue(e,o){return d=new We.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[o]),d.samples=4,d}i(Ue,"createSSAO2RenderingPipeline");function ge(){return d?{radius:d.radius,totalStrength:d.totalStrength,samples:d.samples,maxZ:d.maxZ,minZAspect:d.minZAspect,epsilon:d.epsilon,textureSamples:d.textureSamples,bypassBlur:d.bypassBlur,bilateralSamples:d.bilateralSamples,bilateralSoften:d.bilateralSoften,bilateralTolerance:d.bilateralTolerance,expensiveBlur:d.expensiveBlur}:null}i(ge,"serializeSSAO2RenderingPipeline");function fe(e,o,t){if(d)return d;let r=Ue(e,o);return r.radius=t.radius,r.totalStrength=t.totalStrength,r.samples=t.samples,r.maxZ=t.maxZ,r.minZAspect=t.minZAspect,r.epsilon=t.epsilon,r.textureSamples=t.textureSamples,r.bypassBlur=t.bypassBlur,r.bilateralSamples=t.bilateralSamples,r.bilateralSoften=t.bilateralSoften,r.bilateralTolerance=t.bilateralTolerance,r.expensiveBlur=t.expensiveBlur,r}i(fe,"parseSSAO2RenderingPipeline");var $e=require("babylonjs"),P=null,L=new Map;function de(){return P}i(de,"getMotionBlurPostProcess");function Gt(e){P=e}i(Gt,"setMotionBlurPostProcessRef");function ye(){P&&(P.dispose(),P=null)}i(ye,"disposeMotionBlurPostProcess");function Qe(e,o){return P=new $e.MotionBlurPostProcess("MotionBlurPostProcess",e,1,o),P.motionStrength=1,P.isObjectBased=!0,P}i(Qe,"createMotionBlurPostProcess");function he(){return P?{isObjectBased:P.isObjectBased,motionStrength:P.motionStrength,motionBlurSamples:P.motionBlurSamples}:null}i(he,"serializeMotionBlurPostProcess");function Se(e,o,t){if(P)return P;let r=Qe(e,o);return r.isObjectBased=t.isObjectBased,r.motionStrength=t.motionStrength,r.motionBlurSamples=t.motionBlurSamples,r}i(Se,"parseMotionBlurPostProcess");var Ze=require("babylonjs"),Pe=require("babylonjs"),qe=require("babylonjs"),Xe=require("babylonjs"),Je=require("babylonjs"),a=null,B=new Map;function k(){return a}i(k,"getDefaultRenderingPipeline");function Kt(e){a=e}i(Kt,"setDefaultRenderingPipelineRef");function be(){a&&(a.dispose(),a=null)}i(be,"disposeDefaultRenderingPipeline");function et(e,o){return a=new Je.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[o]),a.samples=4,a.depthOfField.lensSize=512,a.depthOfField.fStop=.25,a.depthOfField.focusDistance=55e3,a}i(et,"createDefaultRenderingPipeline");function Ce(){return a?{samples:a.samples,fxaaEnabled:a.fxaaEnabled,imageProcessingEnabled:a.imageProcessingEnabled,exposure:a.imageProcessing?.exposure,contrast:a.imageProcessing?.contrast,fromLinearSpace:a.imageProcessing?.fromLinearSpace,toneMappingEnabled:a.imageProcessing?.toneMappingEnabled,toneMappingType:a.imageProcessing?.toneMappingType,ditheringEnabled:a.imageProcessing?.ditheringEnabled,ditheringIntensity:a.imageProcessing?.ditheringIntensity,bloomEnabled:a.bloomEnabled,bloomThreshold:a.bloomThreshold,bloomWeight:a.bloomWeight,bloomScale:a.bloomScale,bloomKernel:a.bloomKernel,sharpenEnabled:a.sharpenEnabled,sharpenEdgeAmount:a.sharpen.edgeAmount,sharpenColorAmount:a.sharpen.colorAmount,grainEnabled:a.grainEnabled,grainIntensity:a.grain.intensity,grainAnimated:a.grain.animated,depthOfFieldEnabled:a.depthOfFieldEnabled,depthOfFieldBlurLevel:a.depthOfFieldBlurLevel,lensSize:a.depthOfField.lensSize,fStop:a.depthOfField.fStop,focusDistance:a.depthOfField.focusDistance,focalLength:a.depthOfField.focalLength,vignetteEnabled:a.imageProcessing?.vignetteEnabled,vignetteColor:a.imageProcessing?.vignetteColor.asArray(),vignetteWeight:a.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:a.chromaticAberrationEnabled,aberrationAmount:a.chromaticAberration.aberrationAmount,radialIntensity:a.chromaticAberration.radialIntensity,direction:a.chromaticAberration.direction.asArray(),centerPosition:a.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:a.glowLayerEnabled,glowLayerIntensity:a.glowLayer?.intensity,glowLayerBlurKernelSize:a.glowLayer?.blurKernelSize,colorGradingEnabled:a.imageProcessing.colorGradingEnabled,colorGradingTexture:a.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:a.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:a.imageProcessing.colorCurvesEnabled,globalHue:a.imageProcessing.colorCurves?.globalHue,globalDensity:a.imageProcessing.colorCurves?.globalDensity,globalExposure:a.imageProcessing.colorCurves?.globalExposure,globalSaturation:a.imageProcessing.colorCurves?.globalSaturation,highlightsHue:a.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:a.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:a.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:a.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:a.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:a.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:a.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:a.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:a.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:a.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:a.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:a.imageProcessing.colorCurves?.shadowsSaturation}:null}i(Ce,"serializeDefaultRenderingPipeline");function Ie(e,o,t,r){if(a)return a;let n=et(e,o);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=Ze.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 l=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let s=r+t.colorGradingTexture.name;l=new Xe.ColorGradingTexture(s,e),l.level=t.colorGradingTexture.level}else{let s=qe.Texture.Parse(t.colorGradingTexture,e,r);ne(s)&&(l=s)}n.imageProcessing.colorGradingTexture=l}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=Pe.Vector2.FromArray(t.direction??[0,0]),n.chromaticAberration.centerPosition=Pe.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(Ie,"parseDefaultRenderingPipeline");function tt(e,o){(Array.isArray(o)?o:[]).forEach(r=>{let n=e.getCameraById(r.cameraId);n&&(r.ssao2RenderingPipeline&&V.set(n,r.ssao2RenderingPipeline),r.vlsPostProcess&&w.set(n,r.vlsPostProcess),r.ssrRenderingPipeline&&N.set(n,r.ssrRenderingPipeline),r.motionBlurPostProcess&&L.set(n,r.motionBlurPostProcess),r.defaultRenderingPipeline&&B.set(n,r.defaultRenderingPipeline))})}i(tt,"applyRenderingConfigurations");function Ko(e){V.set(e,ge()),w.set(e,ae()),N.set(e,me()),L.set(e,he()),B.set(e,Ce())}i(Ko,"saveRenderingConfigurationForCamera");function nt(e,o){ue(),se(e.getScene()),ce(),ye(),be();let t=V.get(e);t&&fe(e.getScene(),e,t);let r=w.get(e);r&&le(e.getScene(),r);let n=N.get(e);n&&pe(e.getScene(),e,n);let l=L.get(e);l&&Se(e.getScene(),e,l);let s=B.get(e);s&&Ie(e.getScene(),e,s,o)}i(nt,"applyRenderingConfigurationForCamera");var rt=require("babylonjs"),ot=require("babylonjs");function xe(e){e.lights.forEach(o=>{let t=o.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=r=>rt.Vector3.Distance(r.getAbsolutePosition(),o.getAbsolutePosition())<=o.range)})}i(xe,"configureShadowMapRenderListPredicate");async function Ae(e){e.executeWhenReady(()=>{e.lights.forEach(o=>{let t=o.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=o.metadata?.refreshRate??ot.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(Ae,"configureShadowMapRefreshRate");var Te=require("babylonjs"),Z=require("babylonjs"),kt=(0,Z.GetParser)(Te.SceneComponentConstants.NAME_AUDIO);(0,Z.AddParser)(Te.SceneComponentConstants.NAME_AUDIO,(e,o,t,r)=>{kt?.(e,o,t,r),e.sounds?.forEach(n=>{let l=t.sounds?.find(s=>s.name===n.name);l&&(l.id=n.id,l.uniqueId=n.uniqueId)})});function D(e){let o=1;for(;o<=e;)o<<=1;return o>>1}i(D,"getPowerOfTwoUntil");var Ee=require("babylonjs"),q=Ee.SerializationHelper._TextureParser;Ee.SerializationHelper._TextureParser=(e,o,t)=>{if(o.loadingQuality==="high"||!e.metadata?.baseSize)return q(e,o,t);let r=e.metadata.baseSize.width,n=e.metadata.baseSize.height,l=r===D(r)||n===D(n),s="";switch(o.loadingQuality){case"medium":let h=r*.66>>0,f=n*.66>>0;l&&(h=D(h),f=D(f)),s=`_${h}_${f}`;break;case"low":let u=r*.33>>0,g=n*.33>>0;l&&(u=D(u),g=D(g)),s=`_${u}_${g}`;break}let c=e.name;if(!c||!s)return q(e,o,t);let m=c.split("/"),y=m.pop();if(!y)return q(e,o,t);let b=y.split(".").pop(),M=`${y.replace(`.${b}`,"")}${s}.${b}`;return m.push(M),e.name=m.join("/"),q(e,o,t)};var it=require("babylonjs"),De=require("babylonjs"),st=require("babylonjs"),at=require("babylonjs");async function zt(e,o,t,r,n){t.loadingQuality=n?.quality??"high",await(0,st.AppendSceneAsync)(`${e}${o}`,t,{pluginExtension:".babylon",onProgress:i(s=>{let c=Math.min(s.loaded/s.total*.5);n?.onProgress?.(c)},"onProgress")}),at.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(s=>E(s)&&s._checkDelayState());let l=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(c=>setTimeout(c,150));let s=l-t.getWaitingItemsCount();s===l&&t.textures.forEach(c=>{c.delayLoadState===De.Constants.DELAYLOADSTATE_NONE&&(c.delayLoadState=De.Constants.DELAYLOADSTATE_LOADED)}),n?.onProgress?.(.5+s/l*.5)}n?.onProgress?.(1),xe(t),Ae(t),t.metadata?.rendering&&(tt(t,t.metadata.rendering),t.activeCamera&&nt(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(it.Vector3.FromArray(t.metadata?.physicsGravity)),R(t,t,r,e),t.transformNodes.forEach(s=>{R(t,s,r,e)}),t.meshes.forEach(s=>{Ge(s),R(t,s,r,e)}),t.lights.forEach(s=>{R(t,s,r,e)}),t.cameras.forEach(s=>{R(t,s,r,e)})}i(zt,"loadScene");var lt=require("babylonjs");async function Yt(e,o,t){let n=await(await fetch(e+o)).json(),s=lt.Tools.Instantiate(n.customType).Parse(n,t,e);return s.id=n.id,s.uniqueId=n.uniqueId,s}i(Yt,"loadMaterialFromFile");function jt(e){return Promise.all(e.materials.map(async o=>{let t=o.getBindedMeshes();await Promise.all(t.map(async r=>{_(r)||await o.forceCompilationAsync(r,{clipPlane:!!e.clipPlane,useInstances:r.hasInstances})}))}))}i(jt,"forceCompileAllSceneMaterials");function Ht(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Ht,"configureEngineToUseCompressedTextures");var A=require("babylonjs");function z(e){if(!isNaN(parseFloat(e))&&isFinite(e))return A.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return A.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return A.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return A.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return A.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return A.Animation.ANIMATIONTYPE_COLOR4;case"Size":return A.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return A.Animation.ANIMATIONTYPE_MATRIX}return null}i(z,"getAnimationTypeForObject");function Wt(e){return function(o,t){let r=o.constructor;r._NodesFromScene??=[],r._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Wt,"nodeFromScene");function Ut(e,o=!1){return function(t,r){let n=t.constructor;n._NodesFromDescendants??=[],n._NodesFromDescendants.push({propertyKey:r,nodeName:e,directDescendantsOnly:o})}}i(Ut,"nodeFromDescendants");function $t(e){return function(o,t){let r=o.constructor;r._AnimationGroups??=[],r._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i($t,"animationGroupFromScene");function Qt(e,o){return function(t,r){let n=t.constructor;n._GuiFromAsset??=[],n._GuiFromAsset.push({propertyKey:r,pathInAssets:e,onGuiCreated:o})}}i(Qt,"guiFromAsset");function Zt(e){return function(o,t){let r=o.constructor;r._SoundsFromScene??=[],r._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Zt,"soundFromScene");function qt(e,o=!1){return function(t,r){let n=t.constructor;n._ParticleSystemsFromScene??=[],n._ParticleSystemsFromScene.push({propertyKey:r,particleSystemName:e,directDescendantsOnly:o})}}i(qt,"particleSystemFromScene");function Xt(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"boolean"}})}}i(Xt,"visibleAsBoolean");function Jt(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"string"}})}}i(Jt,"visibleAsString");function en(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"number"}})}}i(en,"visibleAsNumber");function tn(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"vector2"}})}}i(tn,"visibleAsVector2");function nn(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"vector3"}})}}i(nn,"visibleAsVector3");function rn(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"color3"}})}}i(rn,"visibleAsColor3");function on(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"color4"}})}}i(on,"visibleAsColor4");function sn(e,o,t){return function(r,n){let l=r.constructor;l._VisibleInInspector??=[],l._VisibleInInspector.push({label:o,propertyKey:n,configuration:{...t,entityType:e,type:"entity"}})}}i(sn,"visibleAsEntity");function an(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"texture"}})}}i(an,"visibleAsTexture");function ln(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"keymap"}})}}i(ln,"visibleAsKeyMap");var X=require("babylonjs");function ct(e,o){let t;switch(e){case X.Animation.ANIMATIONTYPE_FLOAT:t=o.value;break;default:t=o.value.clone();break}return{value:t,frame:o.frame,interpolation:o.interpolation,inTangent:e===X.Animation.ANIMATIONTYPE_FLOAT?o.inTangent:o.inTangent?.clone(),outTangent:e===X.Animation.ANIMATIONTYPE_FLOAT?o.outTangent:o.outTangent?.clone()}}i(ct,"cloneKey");function J(e,o){let t=o.split("."),r=e;for(let n=0;n<t.length;++n)r=r[t[n]];return r}i(J,"getPropertyValue");var v=require("babylonjs"),ee=require("babylonjs"),I=require("babylonjs");function cn(e,o){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let r=null,n=null;if(t.node?(r=o.getNodeById(t.node),r||(r=o.particleSystems?.find(s=>s.id===t.node)??null)):t.defaultRenderingPipeline&&(r=k()),t.propertyPath){let s=J(r,t.propertyPath);n=z(s)}let l=null;return t.sound&&(l=U(t.sound,o)),{node:r,sound:l,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?o.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,keyFrameEvents:t.keyFrameEvents?.map(s=>{let c={...s};switch(s.data?.type){case"set-enabled":c.data={type:"set-enabled",value:s.data.value,node:o.getNodeById(s.data.node)};break;case"apply-impulse":c.data={type:"apply-impulse",radius:s.data.radius,mesh:o.getMeshById(s.data.mesh),force:I.Vector3.FromArray(s.data.force),contactPoint:I.Vector3.FromArray(s.data.contactPoint)};break}return c}),keyFrameAnimations:r&&n!==null&&t.keyFrameAnimations?.map(s=>{let c=s.type==="key"?s:null;if(c)return{...c,value:C(c.value,n),inTangent:C(c.inTangent,n),outTangent:C(c.outTangent,n)};let m=s.type==="cut"?s:null;if(m)return{...m,key1:{...m.key1,value:C(m.key1.value,n),inTangent:C(m.key1.inTangent,n),outTangent:C(m.key1.outTangent,n)},key2:{...m.key2,value:C(m.key2.value,n),inTangent:C(m.key2.inTangent,n),outTangent:C(m.key2.outTangent,n)}};throw new Error(`Unknown key frame type: ${s.type}`)})}})}}i(cn,"parseCinematic");function C(e,o){if(e===null)return null;if(e!==void 0)switch(o){case v.Animation.ANIMATIONTYPE_FLOAT:return e;case v.Animation.ANIMATIONTYPE_VECTOR2:return I.Vector2.FromArray(e);case v.Animation.ANIMATIONTYPE_VECTOR3:return I.Vector3.FromArray(e);case v.Animation.ANIMATIONTYPE_QUATERNION:return I.Quaternion.FromArray(e);case v.Animation.ANIMATIONTYPE_COLOR3:return ee.Color3.FromArray(e);case v.Animation.ANIMATIONTYPE_COLOR4:return ee.Color4.FromArray(e);case v.Animation.ANIMATIONTYPE_MATRIX:return I.Matrix.FromArray(e)}}i(C,"parseCinematicKeyValue");function mt(e){e.node?.setEnabled(e.value)}i(mt,"handleSetEnabledEvent");var ve=require("babylonjs"),pt=ve.Vector3.Zero();function ut(e,o){let t=o.mesh?[o.mesh]:e.meshes.filter(r=>r.physicsAggregate);o.radius&&(t=t.filter(r=>{let n=r.getBoundingInfo().boundingBox.centerWorld;return ve.Vector3.Distance(n,o.contactPoint)<=o.radius})),t.forEach(r=>{if(r.physicsAggregate?.body){let n=o.contactPoint.subtract(r.getBoundingInfo().boundingBox.centerWorld);n.multiplyInPlace(o.force),r.physicsAggregate.body.setLinearVelocity(pt),r.physicsAggregate.body.setAngularVelocity(pt),r.physicsAggregate.body.applyImpulse(n.negateInPlace(),o.contactPoint)}})}i(ut,"handleApplyImpulseEvent");var gt=require("babylonjs"),T=require("babylonjs"),Y=require("babylonjs"),ft=require("babylonjs");function mn(e,o,t){let r=new ft.AnimationGroup(e.name,o);return e.tracks.forEach(n=>{let l=n.animationGroup;l&&n.animationGroups?.forEach(h=>{l.targetedAnimations.forEach(f=>{let u=null;e:{let x=r.targetedAnimations.filter(j=>j.target===f.target);if(x.length){let j=x.find(dt=>dt.animation.targetProperty===f.animation.targetProperty);if(j){u=j.animation;break e}}u=f.animation.clone(),u.setKeys([]),u.name=gt.Tools.RandomId(),u.framePerSecond=e.framesPerSecond}let g=u.getKeys(),F=f.animation.getKeys(),te=h.speed,Re=e.framesPerSecond/f.animation.framePerSecond/te;F.forEach(x=>{x.frame>=h.startFrame&&x.frame<=h.endFrame&&g.push({...ct(f.animation.dataType,x),frame:h.frame+x.frame*Re})}),u.setKeys(g),r.addTargetedAnimation(u,f.target)})});let s=n.sound,c=s?.getAudioBuffer();if(!t?.ignoreSounds&&s&&c&&n.sounds?.length){let h={dummy:0},f=new T.Animation(s.name,"dummy",60,T.Animation.ANIMATIONTYPE_FLOAT,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),u=0;n.sounds?.forEach(g=>{let F=g.endFrame-g.startFrame;u=Math.max(u,g.frame+F),f.addEvent(new Y.AnimationEvent(g.frame,te=>{let x=(te-g.frame+g.startFrame)/e.framesPerSecond;s.play(0,x)},!1)),f.addEvent(new Y.AnimationEvent(g.frame+F,()=>{s.stop()}))}),f.setKeys([{frame:0,value:0},{frame:u,value:u}]),r.addTargetedAnimation(f,h)}if(n.keyFrameEvents){let h={dummy:0},f=new T.Animation("events","dummy",60,T.Animation.ANIMATIONTYPE_FLOAT,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),u=0;n.keyFrameEvents?.forEach(g=>{u=Math.max(u,g.frame),f.addEvent(new Y.AnimationEvent(g.frame,()=>{switch(g.data?.type){case"set-enabled":mt(g.data);break;case"apply-impulse":ut(o,g.data);break}}))}),f.setKeys([{frame:0,value:0},{frame:u,value:u}]),r.addTargetedAnimation(f,h)}let m=n.defaultRenderingPipeline?k():n.node;if(!m||!n.propertyPath||!n.keyFrameAnimations)return;let y=J(m,n.propertyPath),b=z(y);if(b===null)return;let O=new T.Animation(n.propertyPath,n.propertyPath,60,b,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),M=[];n.keyFrameAnimations?.forEach(h=>{let f=h.type==="key"?h:null;if(f)return M.push(f);let u=h.type==="cut"?h:null;u&&(M.push(u.key1),M.push(u.key2),W(m)&&n.propertyPath==="position"&&O.addEvent(new Y.AnimationEvent(u.key1.frame,()=>{let g=de();if(!g)return;let F=g.motionStrength;g.motionStrength=0,requestAnimationFrame(()=>{g.motionStrength=F})})))}),O.setKeys(M),r.addTargetedAnimation(O,m)}),r.normalize(),r}i(mn,"generateCinematicAnimationGroup");function pn(e){return e.type==="key"}i(pn,"isCinematicKey");function un(e){return e.type==="cut"}i(un,"isCinematicKeyCut");function gn(e){return e.type==="event"}i(gn,"isCinematicKeyEvent");function fn(e){return e.type==="group"}i(fn,"isCinematicGroup");function dn(e){return e.type==="sound"}i(dn,"isCinematicSound");0&&(module.exports={_applyScriptsForObject,animationGroupFromScene,configureEngineToUseCompressedTextures,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSpotLight,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseMotionBlurPostProcess,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseVLSPostProcess,particleSystemFromScene,registerScriptInstance,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setVLSPostProcessRef,soundFromScene,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
1
+ var j=Object.defineProperty;var yt=Object.getOwnPropertyDescriptor;var ht=Object.getOwnPropertyNames;var St=Object.prototype.hasOwnProperty;var i=(e,o)=>j(e,"name",{value:o,configurable:!0});var Pt=(e,o)=>{for(var t in o)j(e,t,{get:o[t],enumerable:!0})},bt=(e,o,t,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of ht(o))!St.call(e,r)&&r!==t&&j(e,r,{get:()=>o[r],enumerable:!(n=yt(o,r))||n.enumerable});return e};var Ct=e=>bt(j({},"__esModule",{value:!0}),e);var Sn={};Pt(Sn,{_applyScriptsForObject:()=>M,animationGroupFromScene:()=>$t,configureEngineToUseCompressedTextures:()=>Wt,configureShadowMapRefreshRate:()=>Ee,configureShadowMapRenderListPredicate:()=>Ae,createDefaultRenderingPipeline:()=>et,createMotionBlurPostProcess:()=>Qe,createSSAO2RenderingPipeline:()=>Ue,createSSRRenderingPipeline:()=>We,createVLSPostProcess:()=>Ye,defaultPipelineCameraConfigurations:()=>B,disposeDefaultRenderingPipeline:()=>Ce,disposeMotionBlurPostProcess:()=>he,disposeSSAO2RenderingPipeline:()=>ge,disposeSSRRenderingPipeline:()=>me,disposeVLSPostProcess:()=>ae,forceCompileAllSceneMaterials:()=>Ht,generateCinematicAnimationGroup:()=>un,getAllScriptsByClassForObject:()=>_e,getAnimationTypeForObject:()=>Y,getDefaultRenderingPipeline:()=>z,getMotionBlurPostProcess:()=>ye,getPowerOfTwoUntil:()=>O,getSSAO2RenderingPipeline:()=>_t,getSSRRenderingPipeline:()=>Lt,getScriptByClassForObject:()=>wt,getVLSPostProcess:()=>Ft,guiFromAsset:()=>Qt,isAbstractMesh:()=>U,isAnyParticleSystem:()=>se,isArcRotateCamera:()=>Et,isBone:()=>It,isCamera:()=>$,isCinematicGroup:()=>yn,isCinematicKey:()=>gn,isCinematicKeyCut:()=>fn,isCinematicKeyEvent:()=>dn,isCinematicSound:()=>hn,isDirectionalLight:()=>Tt,isFreeCamera:()=>At,isGPUParticleSystem:()=>Mt,isGroundMesh:()=>xt,isHemisphericLight:()=>Ot,isInstancedMesh:()=>G,isLight:()=>we,isMesh:()=>v,isNode:()=>F,isParticleSystem:()=>Rt,isPointLight:()=>Dt,isScene:()=>ie,isSpotLight:()=>vt,isTexture:()=>oe,isTransformNode:()=>Me,loadMaterialFromFile:()=>Yt,loadScene:()=>zt,motionBlurPostProcessCameraConfigurations:()=>_,nodeFromDescendants:()=>Ut,nodeFromScene:()=>jt,onKeyboardEvent:()=>mn,onPointerEvent:()=>cn,parseCinematic:()=>pn,parseCinematicKeyValue:()=>x,parseDefaultRenderingPipeline:()=>xe,parseMotionBlurPostProcess:()=>Pe,parseSSAO2RenderingPipeline:()=>de,parseSSRRenderingPipeline:()=>ue,parseVLSPostProcess:()=>ce,particleSystemFromScene:()=>qt,registerScriptInstance:()=>Ve,serializeDefaultRenderingPipeline:()=>Ie,serializeMotionBlurPostProcess:()=>Se,serializeSSAO2RenderingPipeline:()=>fe,serializeSSRRenderingPipeline:()=>pe,serializeVLSPostProcess:()=>le,setDefaultRenderingPipelineRef:()=>Kt,setMotionBlurPostProcessRef:()=>Gt,setSSAO2RenderingPipelineRef:()=>Bt,setSSRRenderingPipelineRef:()=>Vt,setVLSPostProcessRef:()=>Nt,soundFromScene:()=>Zt,ssaoRenderingPipelineCameraConfigurations:()=>V,ssrRenderingPipelineCameraConfigurations:()=>L,visibleAsBoolean:()=>Xt,visibleAsColor3:()=>rn,visibleAsColor4:()=>on,visibleAsEntity:()=>sn,visibleAsKeyMap:()=>ln,visibleAsNumber:()=>en,visibleAsString:()=>Jt,visibleAsTexture:()=>an,visibleAsVector2:()=>tn,visibleAsVector3:()=>nn,vlsPostProcessCameraConfigurations:()=>N});module.exports=Ct(Sn);function U(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(U,"isAbstractMesh");function v(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(v,"isMesh");function G(e){return e.getClassName?.()==="InstancedMesh"}i(G,"isInstancedMesh");function It(e){return e.getClassName?.()==="Bone"}i(It,"isBone");function xt(e){return e.getClassName?.()==="GroundMesh"}i(xt,"isGroundMesh");function Me(e){return e.getClassName?.()==="TransformNode"}i(Me,"isTransformNode");function oe(e){return e?.getClassName?.()==="Texture"}i(oe,"isTexture");function $(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i($,"isCamera");function At(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(At,"isFreeCamera");function Et(e){return e.getClassName?.()==="ArcRotateCamera"}i(Et,"isArcRotateCamera");function Dt(e){return e.getClassName?.()==="PointLight"}i(Dt,"isPointLight");function Tt(e){return e.getClassName?.()==="DirectionalLight"}i(Tt,"isDirectionalLight");function vt(e){return e.getClassName?.()==="SpotLight"}i(vt,"isSpotLight");function Ot(e){return e.getClassName?.()==="HemisphericLight"}i(Ot,"isHemisphericLight");function we(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(we,"isLight");function F(e){return U(e)||Me(e)||we(e)||$(e)}i(F,"isNode");function ie(e){return e.getClassName?.()==="Scene"}i(ie,"isScene");function Rt(e){return e.getClassName?.()==="ParticleSystem"}i(Rt,"isParticleSystem");function Mt(e){return e.getClassName?.()==="GPUParticleSystem"}i(Mt,"isGPUParticleSystem");function se(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(se,"isAnyParticleSystem");function Q(e,o){let t=o.soundTracks??[];t.length||t.push(o.mainSoundTrack);for(let n=0,r=t.length;n<r;n++){let l=t[n].soundCollection.find(s=>s.id===e);if(l)return l}return null}i(Q,"getSoundById");var Z=require("babylonjs"),Fe=require("babylonjs"),q=require("babylonjs"),Ne=require("babylonjs-gui");function Le(e,o,t,n,r){let l=n.constructor;if(l){if(l._NodesFromScene?.forEach(s=>{n[s.propertyKey.toString()]=e.getNodeByName(s.nodeName)}),l._NodesFromDescendants?.forEach(s=>{let c=o.getDescendants?.(s.directDescendantsOnly,m=>m.name===s.nodeName)[0];n[s.propertyKey.toString()]=c??null}),l._AnimationGroups?.forEach(s=>{n[s.propertyKey.toString()]=e.getAnimationGroupByName(s.animationGroupName)}),l._SoundsFromScene?.forEach(s=>{let c=e.getSoundByName?.(s.soundName);n[s.propertyKey.toString()]=c??null}),l._GuiFromAsset?.forEach(async s=>{let c=`${r}assets/${s.pathInAssets}`;try{let g=await(await fetch(c)).json(),S=Ne.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);S.parseSerializedObject(g.content,!1),n[s.propertyKey.toString()]=S,s.onGuiCreated?.(n,S)}catch(m){throw console.error(`Failed to load GUI from asset: ${c}`),m}}),l._ParticleSystemsFromScene?.forEach(s=>{let c=e.particleSystems?.find(m=>m.name!==s.particleSystemName?!1:s.directDescendantsOnly?m.emitter===o:m);n[s.propertyKey.toString()]=c}),l._VisibleInInspector?.forEach(s=>{let c=s.propertyKey.toString(),m=t.values;if(m.hasOwnProperty(c)&&m[c].hasOwnProperty("value")){let g=m[c].value;switch(s.configuration.type){case"number":case"boolean":case"keymap":case"string":n[c]=g;break;case"vector2":n[c]=q.Vector2.FromArray(g);break;case"vector3":n[c]=q.Vector3.FromArray(g);break;case"color3":n[c]=Z.Color3.FromArray(g);break;case"color4":n[c]=Z.Color4.FromArray(g);break;case"entity":switch(s.configuration.entityType){case"node":n[c]=e.getNodeById(g)??null;break;case"animationGroup":n[c]=e.getAnimationGroupByName(g)??null;break;case"sound":n[c]=Q(g,e);break;case"particleSystem":n[c]=e.particleSystems?.find(C=>C.id===g)??null;break}break;case"texture":g&&(n[c]=Fe.Texture.Parse(g,e,r));break}}}),l._PointerEvents?.length){if(l._PointerEvents.find(m=>m.options.mode==="attachedMeshOnly")&&!U(o))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(l._PointerEvents.find(m=>m.options.mode!=="global")&&!F(o))throw new Error('@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.');e.onPointerObservable.add(m=>{let g=null;l._PointerEvents.forEach(S=>{if(!S.eventTypes.includes(m.type))return;let C=S.propertyKey.toString();if(S.options.mode==="global")return n[C]?.(m);g=m.pickInfo,g||(g=e.pick(e.pointerX,e.pointerY,y=>y.isVisible&&y.isPickable&&y.isEnabled(!0)&&!y._masterMesh,!1));let I=g.pickedMesh;if(I&&(S.options.mode==="attachedMeshOnly"&&I===o||S.options.mode==="includeDescendants"&&F(o)&&[o,...o.getDescendants(!1)].find(u=>u===I)))return n[C]?.(m)})})}l._KeyboardEvents?.length&&e.onKeyboardObservable.add(s=>{l._KeyboardEvents.forEach(c=>{c.eventTypes.includes(s.type)&&n[c.propertyKey.toString()]?.(s)})})}}i(Le,"applyDecorators");function M(e,o,t,n){o.metadata&&(o.metadata.scripts?.forEach(r=>{if(!r.enabled)return;let l=t[r.key];if(l)if(l.default){let s=new l.default(o);Ve(o,s,r.key),Le(e,o,r,s,n),s.onStart&&e.onBeforeRenderObservable.addOnce(()=>s.onStart()),s.onUpdate&&e.onBeforeRenderObservable.add(()=>s.onUpdate())}else l.onStart&&e.onBeforeRenderObservable.addOnce(()=>l.onStart(o)),l.onUpdate&&e.onBeforeRenderObservable.add(()=>l.onUpdate(o))}),o.metadata.scripts=void 0)}i(M,"_applyScriptsForObject");var K=new Map;function Ve(e,o,t){let n={key:t,instance:o};K.has(e)?K.get(e).push(n):K.set(e,[n]),(F(e)||se(e)||ie(e))&&e.onDisposeObservable.addOnce(()=>{K.delete(e)})}i(Ve,"registerScriptInstance");function _e(e,o){return K.get(e)?.filter(r=>r.instance.constructor===o)?.map(r=>r.instance)??null}i(_e,"getAllScriptsByClassForObject");function wt(e,o){return _e(e,o)?.[0]??null}i(wt,"getScriptByClassForObject");var k=require("babylonjs"),Be=require("babylonjs");function Ge(e){let o=e.metadata?.physicsAggregate;if(!o)return;let t;v(e)?t=e:G(e)&&(t=e.sourceMesh);let n=new Be.PhysicsAggregate(e,o.shape.type,{mesh:t,mass:o.massProperties.mass});n.body.setMassProperties({mass:o.massProperties.mass,inertia:o.massProperties.inertia?k.Vector3.FromArray(o.massProperties.inertia):void 0,centerOfMass:o.massProperties.centerOfMass?k.Vector3.FromArray(o.massProperties.centerOfMass):void 0,inertiaOrientation:o.massProperties.inertiaOrientation?k.Quaternion.FromArray(o.massProperties.inertiaOrientation):void 0}),n.shape.density=o.shape.density,n.body.setMotionType(o.body.motionType),n.shape.material=o.material,e.physicsAggregate=n,e.metadata.physicsAggregate=void 0}i(Ge,"configurePhysicsAggregate");var Ke=require("babylonjs"),ke=require("babylonjs"),ze=require("babylonjs"),P=null,N=new Map;function Ft(){return P}i(Ft,"getVLSPostProcess");function Nt(e){P=e}i(Nt,"setVLSPostProcessRef");function ae(e){P&&e.activeCamera&&(P.dispose(e.activeCamera),P=null)}i(ae,"disposeVLSPostProcess");function Ye(e,o){return o??=e.meshes.find(t=>v(t)),P=new ze.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,o,100,ke.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),P}i(Ye,"createVLSPostProcess");function le(){return P?{meshId:P.mesh?.id,exposure:P.exposure,decay:P.decay,weight:P.weight,density:P.density,invert:P.invert,useCustomMeshPosition:P.useCustomMeshPosition,customMeshPosition:P.customMeshPosition.asArray()}:null}i(le,"serializeVLSPostProcess");function ce(e,o){let t=null;if(o.meshId){let r=e.getMeshById(o.meshId);r&&v(r)&&(t=r)}let n=Ye(e,t);return n.exposure=o.exposure,n.decay=o.decay,n.weight=o.weight,n.density=o.density,n.invert=o.invert,n.useCustomMeshPosition=o.useCustomMeshPosition,n.customMeshPosition.copyFrom(Ke.Vector3.FromArray(o.customMeshPosition)),n}i(ce,"parseVLSPostProcess");var He=require("babylonjs"),p=null,L=new Map;function Lt(){return p}i(Lt,"getSSRRenderingPipeline");function Vt(e){p=e}i(Vt,"setSSRRenderingPipelineRef");function me(){p&&(p.dispose(),p=null)}i(me,"disposeSSRRenderingPipeline");function We(e,o){return p=new He.SSRRenderingPipeline("SSRRenderingPipeline",e,[o]),p.samples=4,p}i(We,"createSSRRenderingPipeline");function pe(){return p?{samples:p.samples,step:p.step,thickness:p.thickness,strength:p.strength,reflectionSpecularFalloffExponent:p.reflectionSpecularFalloffExponent,maxSteps:p.maxSteps,maxDistance:p.maxDistance,roughnessFactor:p.roughnessFactor,reflectivityThreshold:p.reflectivityThreshold,blurDispersionStrehgth:p.blurDispersionStrength,clipToFrustum:p.clipToFrustum,enableSmoothReflections:p.enableSmoothReflections,enableAutomaticThicknessComputation:p.enableAutomaticThicknessComputation,attenuateFacingCamera:p.attenuateFacingCamera,attenuateScreenBorders:p.attenuateScreenBorders,attenuateIntersectionDistance:p.attenuateIntersectionDistance,attenuateBackfaceReflection:p.attenuateBackfaceReflection,blurDownsample:p.blurDownsample,selfCollisionNumSkip:p.selfCollisionNumSkip,ssrDownsample:p.ssrDownsample,backfaceDepthTextureDownsample:p.backfaceDepthTextureDownsample}:null}i(pe,"serializeSSRRenderingPipeline");function ue(e,o,t){if(p)return p;let n=We(e,o);return n.samples=t.samples,n.step=t.step,n.thickness=t.thickness,n.strength=t.strength,n.reflectionSpecularFalloffExponent=t.reflectionSpecularFalloffExponent,n.maxSteps=t.maxSteps,n.maxDistance=t.maxDistance,n.roughnessFactor=t.roughnessFactor,n.reflectivityThreshold=t.reflectivityThreshold,n.blurDispersionStrength=t.blurDispersionStrehgth,n.clipToFrustum=t.clipToFrustum,n.enableSmoothReflections=t.enableSmoothReflections,n.enableAutomaticThicknessComputation=t.enableAutomaticThicknessComputation,n.attenuateFacingCamera=t.attenuateFacingCamera,n.attenuateScreenBorders=t.attenuateScreenBorders,n.attenuateIntersectionDistance=t.attenuateIntersectionDistance,n.attenuateBackfaceReflection=t.attenuateBackfaceReflection,n.blurDownsample=t.blurDownsample,n.selfCollisionNumSkip=t.selfCollisionNumSkip,n.ssrDownsample=t.ssrDownsample,n.backfaceDepthTextureDownsample=t.backfaceDepthTextureDownsample,n}i(ue,"parseSSRRenderingPipeline");var je=require("babylonjs"),h=null,V=new Map;function _t(){return h}i(_t,"getSSAO2RenderingPipeline");function Bt(e){h=e}i(Bt,"setSSAO2RenderingPipelineRef");function ge(){h&&(h.dispose(),h=null)}i(ge,"disposeSSAO2RenderingPipeline");function Ue(e,o){return h=new je.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[o]),h.samples=4,h}i(Ue,"createSSAO2RenderingPipeline");function fe(){return h?{radius:h.radius,totalStrength:h.totalStrength,samples:h.samples,maxZ:h.maxZ,minZAspect:h.minZAspect,epsilon:h.epsilon,textureSamples:h.textureSamples,bypassBlur:h.bypassBlur,bilateralSamples:h.bilateralSamples,bilateralSoften:h.bilateralSoften,bilateralTolerance:h.bilateralTolerance,expensiveBlur:h.expensiveBlur}:null}i(fe,"serializeSSAO2RenderingPipeline");function de(e,o,t){if(h)return h;let n=Ue(e,o);return n.radius=t.radius,n.totalStrength=t.totalStrength,n.samples=t.samples,n.maxZ=t.maxZ,n.minZAspect=t.minZAspect,n.epsilon=t.epsilon,n.textureSamples=t.textureSamples,n.bypassBlur=t.bypassBlur,n.bilateralSamples=t.bilateralSamples,n.bilateralSoften=t.bilateralSoften,n.bilateralTolerance=t.bilateralTolerance,n.expensiveBlur=t.expensiveBlur,n}i(de,"parseSSAO2RenderingPipeline");var $e=require("babylonjs"),b=null,_=new Map;function ye(){return b}i(ye,"getMotionBlurPostProcess");function Gt(e){b=e}i(Gt,"setMotionBlurPostProcessRef");function he(){b&&(b.dispose(),b=null)}i(he,"disposeMotionBlurPostProcess");function Qe(e,o){return b=new $e.MotionBlurPostProcess("MotionBlurPostProcess",e,1,o),b.motionStrength=1,b.isObjectBased=!0,b}i(Qe,"createMotionBlurPostProcess");function Se(){return b?{isObjectBased:b.isObjectBased,motionStrength:b.motionStrength,motionBlurSamples:b.motionBlurSamples}:null}i(Se,"serializeMotionBlurPostProcess");function Pe(e,o,t){if(b)return b;let n=Qe(e,o);return n.isObjectBased=t.isObjectBased,n.motionStrength=t.motionStrength,n.motionBlurSamples=t.motionBlurSamples,n}i(Pe,"parseMotionBlurPostProcess");var Ze=require("babylonjs"),be=require("babylonjs"),qe=require("babylonjs"),Xe=require("babylonjs"),Je=require("babylonjs"),a=null,B=new Map;function z(){return a}i(z,"getDefaultRenderingPipeline");function Kt(e){a=e}i(Kt,"setDefaultRenderingPipelineRef");function Ce(){a&&(a.dispose(),a=null)}i(Ce,"disposeDefaultRenderingPipeline");function et(e,o){return a=new Je.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[o]),a.samples=4,a.depthOfField.lensSize=512,a.depthOfField.fStop=.25,a.depthOfField.focusDistance=55e3,a}i(et,"createDefaultRenderingPipeline");function Ie(){return a?{samples:a.samples,fxaaEnabled:a.fxaaEnabled,imageProcessingEnabled:a.imageProcessingEnabled,exposure:a.imageProcessing?.exposure,contrast:a.imageProcessing?.contrast,fromLinearSpace:a.imageProcessing?.fromLinearSpace,toneMappingEnabled:a.imageProcessing?.toneMappingEnabled,toneMappingType:a.imageProcessing?.toneMappingType,ditheringEnabled:a.imageProcessing?.ditheringEnabled,ditheringIntensity:a.imageProcessing?.ditheringIntensity,bloomEnabled:a.bloomEnabled,bloomThreshold:a.bloomThreshold,bloomWeight:a.bloomWeight,bloomScale:a.bloomScale,bloomKernel:a.bloomKernel,sharpenEnabled:a.sharpenEnabled,sharpenEdgeAmount:a.sharpen.edgeAmount,sharpenColorAmount:a.sharpen.colorAmount,grainEnabled:a.grainEnabled,grainIntensity:a.grain.intensity,grainAnimated:a.grain.animated,depthOfFieldEnabled:a.depthOfFieldEnabled,depthOfFieldBlurLevel:a.depthOfFieldBlurLevel,lensSize:a.depthOfField.lensSize,fStop:a.depthOfField.fStop,focusDistance:a.depthOfField.focusDistance,focalLength:a.depthOfField.focalLength,vignetteEnabled:a.imageProcessing?.vignetteEnabled,vignetteColor:a.imageProcessing?.vignetteColor.asArray(),vignetteWeight:a.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:a.chromaticAberrationEnabled,aberrationAmount:a.chromaticAberration.aberrationAmount,radialIntensity:a.chromaticAberration.radialIntensity,direction:a.chromaticAberration.direction.asArray(),centerPosition:a.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:a.glowLayerEnabled,glowLayerIntensity:a.glowLayer?.intensity,glowLayerBlurKernelSize:a.glowLayer?.blurKernelSize,colorGradingEnabled:a.imageProcessing.colorGradingEnabled,colorGradingTexture:a.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:a.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:a.imageProcessing.colorCurvesEnabled,globalHue:a.imageProcessing.colorCurves?.globalHue,globalDensity:a.imageProcessing.colorCurves?.globalDensity,globalExposure:a.imageProcessing.colorCurves?.globalExposure,globalSaturation:a.imageProcessing.colorCurves?.globalSaturation,highlightsHue:a.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:a.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:a.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:a.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:a.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:a.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:a.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:a.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:a.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:a.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:a.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:a.imageProcessing.colorCurves?.shadowsSaturation}:null}i(Ie,"serializeDefaultRenderingPipeline");function xe(e,o,t,n){if(a)return a;let r=et(e,o);if(r.samples=t.samples,r.fxaaEnabled=t.fxaaEnabled,r.imageProcessingEnabled=t.imageProcessingEnabled,r.imageProcessing){if(r.imageProcessing.exposure=t.exposure,r.imageProcessing.contrast=t.contrast,r.imageProcessing.fromLinearSpace=t.fromLinearSpace,r.imageProcessing.toneMappingEnabled=t.toneMappingEnabled,r.imageProcessing.toneMappingType=t.toneMappingType,r.imageProcessing.ditheringEnabled=t.ditheringEnabled,r.imageProcessing.ditheringIntensity=t.ditheringIntensity,r.imageProcessing.vignetteEnabled=t.vignetteEnabled??!1,r.imageProcessing.vignetteColor=Ze.Color4.FromArray(t.vignetteColor??[0,0,0]),r.imageProcessing.vignetteWeight=t.vignetteWeight??.3,r.imageProcessing.colorGradingEnabled=t.colorGradingEnabled??!1,r.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth=t.colorGradingWithGreenDepth??!0,t.colorGradingTexture){let l=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let s=n+t.colorGradingTexture.name;l=new Xe.ColorGradingTexture(s,e),l.level=t.colorGradingTexture.level}else{let s=qe.Texture.Parse(t.colorGradingTexture,e,n);oe(s)&&(l=s)}r.imageProcessing.colorGradingTexture=l}r.imageProcessing.colorCurvesEnabled=t.colorCurvesEnabled??!1,r.imageProcessing.colorCurves&&(r.imageProcessing.colorCurves.globalHue=t.globalHue??30,r.imageProcessing.colorCurves.globalDensity=t.globalDensity??0,r.imageProcessing.colorCurves.globalExposure=t.globalExposure??0,r.imageProcessing.colorCurves.globalSaturation=t.globalSaturation??0,r.imageProcessing.colorCurves.highlightsHue=t.highlightsHue??30,r.imageProcessing.colorCurves.highlightsDensity=t.highlightsDensity??0,r.imageProcessing.colorCurves.highlightsExposure=t.highlightsExposure??0,r.imageProcessing.colorCurves.highlightsSaturation=t.highlightsSaturation??0,r.imageProcessing.colorCurves.midtonesHue=t.midtonesHue??30,r.imageProcessing.colorCurves.midtonesDensity=t.midtonesDensity??0,r.imageProcessing.colorCurves.midtonesExposure=t.midtonesExposure??0,r.imageProcessing.colorCurves.midtonesSaturation=t.midtonesSaturation??0,r.imageProcessing.colorCurves.shadowsHue=t.shadowsHue??30,r.imageProcessing.colorCurves.shadowsDensity=t.shadowsDensity??0,r.imageProcessing.colorCurves.shadowsExposure=t.shadowsExposure??0,r.imageProcessing.colorCurves.shadowsSaturation=t.shadowsSaturation??0)}return r.bloomEnabled=t.bloomEnabled,r.bloomThreshold=t.bloomThreshold,r.bloomWeight=t.bloomWeight,r.bloomScale=t.bloomScale,r.bloomKernel=t.bloomKernel,r.sharpenEnabled=t.sharpenEnabled,r.sharpen.edgeAmount=t.sharpenEdgeAmount,r.sharpen.colorAmount=t.sharpenColorAmount,r.grainEnabled=t.grainEnabled,r.grain.intensity=t.grainIntensity,r.grain.animated=t.grainAnimated,r.depthOfFieldEnabled=t.depthOfFieldEnabled,r.depthOfFieldBlurLevel=t.depthOfFieldBlurLevel,r.depthOfField.lensSize=t.lensSize,r.depthOfField.fStop=t.fStop,r.depthOfField.focusDistance=t.focusDistance,r.depthOfField.focalLength=t.focalLength,r.chromaticAberrationEnabled=t.chromaticAberrationEnabled??!1,r.chromaticAberration.aberrationAmount=t.aberrationAmount??10,r.chromaticAberration.radialIntensity=t.radialIntensity??1,r.chromaticAberration.direction=be.Vector2.FromArray(t.direction??[0,0]),r.chromaticAberration.centerPosition=be.Vector2.FromArray(t.centerPosition??[0,0]),r.glowLayerEnabled=t.glowLayerEnabled??!1,r.glowLayer&&(r.glowLayer.intensity=t.glowLayerIntensity??1,r.glowLayer.blurKernelSize=t.glowLayerBlurKernelSize??32),r}i(xe,"parseDefaultRenderingPipeline");function tt(e,o){(Array.isArray(o)?o:[]).forEach(n=>{let r=e.getCameraById(n.cameraId);r&&(n.ssao2RenderingPipeline&&V.set(r,n.ssao2RenderingPipeline),n.vlsPostProcess&&N.set(r,n.vlsPostProcess),n.ssrRenderingPipeline&&L.set(r,n.ssrRenderingPipeline),n.motionBlurPostProcess&&_.set(r,n.motionBlurPostProcess),n.defaultRenderingPipeline&&B.set(r,n.defaultRenderingPipeline))})}i(tt,"applyRenderingConfigurations");function Uo(e){V.set(e,fe()),N.set(e,le()),L.set(e,pe()),_.set(e,Se()),B.set(e,Ie())}i(Uo,"saveRenderingConfigurationForCamera");function nt(e,o){ge(),ae(e.getScene()),me(),he(),Ce();let t=V.get(e);t&&de(e.getScene(),e,t);let n=N.get(e);n&&ce(e.getScene(),n);let r=L.get(e);r&&ue(e.getScene(),e,r);let l=_.get(e);l&&Pe(e.getScene(),e,l);let s=B.get(e);s&&xe(e.getScene(),e,s,o)}i(nt,"applyRenderingConfigurationForCamera");var rt=require("babylonjs"),ot=require("babylonjs");function Ae(e){e.lights.forEach(o=>{let t=o.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=n=>rt.Vector3.Distance(n.getAbsolutePosition(),o.getAbsolutePosition())<=o.range)})}i(Ae,"configureShadowMapRenderListPredicate");async function Ee(e){e.executeWhenReady(()=>{e.lights.forEach(o=>{let t=o.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=o.metadata?.refreshRate??ot.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(Ee,"configureShadowMapRefreshRate");var De=require("babylonjs"),X=require("babylonjs"),kt=(0,X.GetParser)(De.SceneComponentConstants.NAME_AUDIO);(0,X.AddParser)(De.SceneComponentConstants.NAME_AUDIO,(e,o,t,n)=>{kt?.(e,o,t,n),e.sounds?.forEach(r=>{let l=t.sounds?.find(s=>s.name===r.name);l&&(l.id=r.id,l.uniqueId=r.uniqueId)})});function O(e){let o=1;for(;o<=e;)o<<=1;return o>>1}i(O,"getPowerOfTwoUntil");var Te=require("babylonjs"),J=Te.SerializationHelper._TextureParser;Te.SerializationHelper._TextureParser=(e,o,t)=>{if(o.loadingQuality==="high"||!e.metadata?.baseSize)return J(e,o,t);let n=e.metadata.baseSize.width,r=e.metadata.baseSize.height,l=n===O(n)||r===O(r),s="";switch(o.loadingQuality){case"medium":let y=n*.66>>0,d=r*.66>>0;l&&(y=O(y),d=O(d)),s=`_${y}_${d}`;break;case"low":let u=n*.33>>0,f=r*.33>>0;l&&(u=O(u),f=O(f)),s=`_${u}_${f}`;break}let c=e.name;if(!c||!s)return J(e,o,t);let m=c.split("/"),g=m.pop();if(!g)return J(e,o,t);let S=g.split(".").pop(),I=`${g.replace(`.${S}`,"")}${s}.${S}`;return m.push(I),e.name=m.join("/"),J(e,o,t)};var it=require("babylonjs"),ve=require("babylonjs"),st=require("babylonjs"),at=require("babylonjs");async function zt(e,o,t,n,r){t.loadingQuality=r?.quality??"high",await(0,st.AppendSceneAsync)(`${e}${o}`,t,{pluginExtension:".babylon",onProgress:i(s=>{let c=Math.min(s.loaded/s.total*.5);r?.onProgress?.(c)},"onProgress")}),at.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(s=>v(s)&&s._checkDelayState());let l=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(c=>setTimeout(c,150));let s=l-t.getWaitingItemsCount();s===l&&t.textures.forEach(c=>{c.delayLoadState===ve.Constants.DELAYLOADSTATE_NONE&&(c.delayLoadState=ve.Constants.DELAYLOADSTATE_LOADED)}),r?.onProgress?.(.5+s/l*.5)}r?.onProgress?.(1),Ae(t),Ee(t),t.metadata?.rendering&&(tt(t,t.metadata.rendering),t.activeCamera&&nt(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(it.Vector3.FromArray(t.metadata?.physicsGravity)),M(t,t,n,e),t.transformNodes.forEach(s=>{M(t,s,n,e)}),t.meshes.forEach(s=>{Ge(s),M(t,s,n,e)}),t.lights.forEach(s=>{M(t,s,n,e)}),t.cameras.forEach(s=>{M(t,s,n,e)})}i(zt,"loadScene");var lt=require("babylonjs");async function Yt(e,o,t){let r=await(await fetch(e+o)).json(),s=lt.Tools.Instantiate(r.customType).Parse(r,t,e);return s.id=r.id,s.uniqueId=r.uniqueId,s}i(Yt,"loadMaterialFromFile");function Ht(e){return Promise.all(e.materials.map(async o=>{let t=o.getBindedMeshes();await Promise.all(t.map(async n=>{G(n)||await o.forceCompilationAsync(n,{clipPlane:!!e.clipPlane,useInstances:n.hasInstances})}))}))}i(Ht,"forceCompileAllSceneMaterials");function Wt(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Wt,"configureEngineToUseCompressedTextures");var D=require("babylonjs");function Y(e){if(!isNaN(parseFloat(e))&&isFinite(e))return D.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return D.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return D.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return D.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return D.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return D.Animation.ANIMATIONTYPE_COLOR4;case"Size":return D.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return D.Animation.ANIMATIONTYPE_MATRIX}return null}i(Y,"getAnimationTypeForObject");function jt(e){return function(o,t){let n=o.constructor;n._NodesFromScene??=[],n._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(jt,"nodeFromScene");function Ut(e,o=!1){return function(t,n){let r=t.constructor;r._NodesFromDescendants??=[],r._NodesFromDescendants.push({propertyKey:n,nodeName:e,directDescendantsOnly:o})}}i(Ut,"nodeFromDescendants");function $t(e){return function(o,t){let n=o.constructor;n._AnimationGroups??=[],n._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i($t,"animationGroupFromScene");function Qt(e,o){return function(t,n){let r=t.constructor;r._GuiFromAsset??=[],r._GuiFromAsset.push({propertyKey:n,pathInAssets:e,onGuiCreated:o})}}i(Qt,"guiFromAsset");function Zt(e){return function(o,t){let n=o.constructor;n._SoundsFromScene??=[],n._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Zt,"soundFromScene");function qt(e,o=!1){return function(t,n){let r=t.constructor;r._ParticleSystemsFromScene??=[],r._ParticleSystemsFromScene.push({propertyKey:n,particleSystemName:e,directDescendantsOnly:o})}}i(qt,"particleSystemFromScene");function Xt(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"boolean"}})}}i(Xt,"visibleAsBoolean");function Jt(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"string"}})}}i(Jt,"visibleAsString");function en(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"number"}})}}i(en,"visibleAsNumber");function tn(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"vector2"}})}}i(tn,"visibleAsVector2");function nn(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"vector3"}})}}i(nn,"visibleAsVector3");function rn(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"color3"}})}}i(rn,"visibleAsColor3");function on(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"color4"}})}}i(on,"visibleAsColor4");function sn(e,o,t){return function(n,r){let l=n.constructor;l._VisibleInInspector??=[],l._VisibleInInspector.push({label:o,propertyKey:r,configuration:{...t,entityType:e,type:"entity"}})}}i(sn,"visibleAsEntity");function an(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"texture"}})}}i(an,"visibleAsTexture");function ln(e,o){return function(t,n){let r=t.constructor;r._VisibleInInspector??=[],r._VisibleInInspector.push({label:e,propertyKey:n,configuration:{...o,type:"keymap"}})}}i(ln,"visibleAsKeyMap");function cn(e,o){return function(t,n){let r=t.constructor;r._PointerEvents??=[],r._PointerEvents.push({propertyKey:n,options:{mode:"global",...o??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(cn,"onPointerEvent");function mn(e){return function(o,t){let n=o.constructor;n._KeyboardEvents??=[],n._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(mn,"onKeyboardEvent");var ee=require("babylonjs");function ct(e,o){let t;switch(e){case ee.Animation.ANIMATIONTYPE_FLOAT:t=o.value;break;default:t=o.value.clone();break}return{value:t,frame:o.frame,interpolation:o.interpolation,inTangent:e===ee.Animation.ANIMATIONTYPE_FLOAT?o.inTangent:o.inTangent?.clone(),outTangent:e===ee.Animation.ANIMATIONTYPE_FLOAT?o.outTangent:o.outTangent?.clone()}}i(ct,"cloneKey");function te(e,o){let t=o.split("."),n=e;for(let r=0;r<t.length;++r)n=n[t[r]];return n}i(te,"getPropertyValue");var R=require("babylonjs"),ne=require("babylonjs"),A=require("babylonjs");function pn(e,o){return{name:e.name,framesPerSecond:e.framesPerSecond,outputFramesPerSecond:e.outputFramesPerSecond,tracks:e.tracks.map(t=>{let n=null,r=null;if(t.node?(n=o.getNodeById(t.node),n||(n=o.particleSystems?.find(s=>s.id===t.node)??null)):t.defaultRenderingPipeline&&(n=z()),t.propertyPath){let s=te(n,t.propertyPath);r=Y(s)}let l=null;return t.sound&&(l=Q(t.sound,o)),{node:n,sound:l,propertyPath:t.propertyPath,defaultRenderingPipeline:t.defaultRenderingPipeline,animationGroup:t.animationGroup?o.getAnimationGroupByName(t.animationGroup):null,animationGroups:t.animationGroups,sounds:t.sounds,keyFrameEvents:t.keyFrameEvents?.map(s=>{let c={...s};switch(s.data?.type){case"set-enabled":c.data={type:"set-enabled",value:s.data.value,node:o.getNodeById(s.data.node)};break;case"apply-impulse":c.data={type:"apply-impulse",radius:s.data.radius,mesh:o.getMeshById(s.data.mesh),force:A.Vector3.FromArray(s.data.force),contactPoint:A.Vector3.FromArray(s.data.contactPoint)};break}return c}),keyFrameAnimations:n&&r!==null&&t.keyFrameAnimations?.map(s=>{let c=s.type==="key"?s:null;if(c)return{...c,value:x(c.value,r),inTangent:x(c.inTangent,r),outTangent:x(c.outTangent,r)};let m=s.type==="cut"?s:null;if(m)return{...m,key1:{...m.key1,value:x(m.key1.value,r),inTangent:x(m.key1.inTangent,r),outTangent:x(m.key1.outTangent,r)},key2:{...m.key2,value:x(m.key2.value,r),inTangent:x(m.key2.inTangent,r),outTangent:x(m.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${s.type}`)})}})}}i(pn,"parseCinematic");function x(e,o){if(e===null)return null;if(e!==void 0)switch(o){case R.Animation.ANIMATIONTYPE_FLOAT:return e;case R.Animation.ANIMATIONTYPE_VECTOR2:return A.Vector2.FromArray(e);case R.Animation.ANIMATIONTYPE_VECTOR3:return A.Vector3.FromArray(e);case R.Animation.ANIMATIONTYPE_QUATERNION:return A.Quaternion.FromArray(e);case R.Animation.ANIMATIONTYPE_COLOR3:return ne.Color3.FromArray(e);case R.Animation.ANIMATIONTYPE_COLOR4:return ne.Color4.FromArray(e);case R.Animation.ANIMATIONTYPE_MATRIX:return A.Matrix.FromArray(e)}}i(x,"parseCinematicKeyValue");function mt(e){e.node?.setEnabled(e.value)}i(mt,"handleSetEnabledEvent");var Oe=require("babylonjs"),pt=Oe.Vector3.Zero();function ut(e,o){let t=o.mesh?[o.mesh]:e.meshes.filter(n=>n.physicsAggregate);o.radius&&(t=t.filter(n=>{let r=n.getBoundingInfo().boundingBox.centerWorld;return Oe.Vector3.Distance(r,o.contactPoint)<=o.radius})),t.forEach(n=>{if(n.physicsAggregate?.body){let r=o.contactPoint.subtract(n.getBoundingInfo().boundingBox.centerWorld);r.multiplyInPlace(o.force),n.physicsAggregate.body.setLinearVelocity(pt),n.physicsAggregate.body.setAngularVelocity(pt),n.physicsAggregate.body.applyImpulse(r.negateInPlace(),o.contactPoint)}})}i(ut,"handleApplyImpulseEvent");var gt=require("babylonjs"),T=require("babylonjs"),H=require("babylonjs"),ft=require("babylonjs");function un(e,o,t){let n=new ft.AnimationGroup(e.name,o);return e.tracks.forEach(r=>{let l=r.animationGroup;l&&r.animationGroups?.forEach(y=>{l.targetedAnimations.forEach(d=>{let u=null;e:{let E=n.targetedAnimations.filter(W=>W.target===d.target);if(E.length){let W=E.find(dt=>dt.animation.targetProperty===d.animation.targetProperty);if(W){u=W.animation;break e}}u=d.animation.clone(),u.setKeys([]),u.name=gt.Tools.RandomId(),u.framePerSecond=e.framesPerSecond}let f=u.getKeys(),w=d.animation.getKeys(),re=y.speed,Re=e.framesPerSecond/d.animation.framePerSecond/re;w.forEach(E=>{E.frame>=y.startFrame&&E.frame<=y.endFrame&&f.push({...ct(d.animation.dataType,E),frame:y.frame+E.frame*Re})}),u.setKeys(f),n.addTargetedAnimation(u,d.target)})});let s=r.sound,c=s?.getAudioBuffer();if(!t?.ignoreSounds&&s&&c&&r.sounds?.length){let y={dummy:0},d=new T.Animation(s.name,"dummy",60,T.Animation.ANIMATIONTYPE_FLOAT,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),u=0;r.sounds?.forEach(f=>{let w=f.endFrame-f.startFrame;u=Math.max(u,f.frame+w),d.addEvent(new H.AnimationEvent(f.frame,re=>{let E=(re-f.frame+f.startFrame)/e.framesPerSecond;s.play(0,E)},!1)),d.addEvent(new H.AnimationEvent(f.frame+w,()=>{s.stop()}))}),d.setKeys([{frame:0,value:0},{frame:u,value:u}]),n.addTargetedAnimation(d,y)}if(r.keyFrameEvents){let y={dummy:0},d=new T.Animation("events","dummy",60,T.Animation.ANIMATIONTYPE_FLOAT,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),u=0;r.keyFrameEvents?.forEach(f=>{u=Math.max(u,f.frame),d.addEvent(new H.AnimationEvent(f.frame,()=>{switch(f.data?.type){case"set-enabled":mt(f.data);break;case"apply-impulse":ut(o,f.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:u,value:u}]),n.addTargetedAnimation(d,y)}let m=r.defaultRenderingPipeline?z():r.node;if(!m||!r.propertyPath||!r.keyFrameAnimations)return;let g=te(m,r.propertyPath),S=Y(g);if(S===null)return;let C=new T.Animation(r.propertyPath,r.propertyPath,60,S,T.Animation.ANIMATIONLOOPMODE_CYCLE,!1),I=[];r.keyFrameAnimations?.forEach(y=>{let d=y.type==="key"?y:null;if(d)return I.push(d);let u=y.type==="cut"?y:null;u&&(I.push(u.key1),I.push(u.key2),$(m)&&r.propertyPath==="position"&&C.addEvent(new H.AnimationEvent(u.key1.frame,()=>{let f=ye();if(!f)return;let w=f.motionStrength;f.motionStrength=0,requestAnimationFrame(()=>{f.motionStrength=w})})))}),C.setKeys(I),n.addTargetedAnimation(C,m)}),n.normalize(),n}i(un,"generateCinematicAnimationGroup");function gn(e){return e.type==="key"}i(gn,"isCinematicKey");function fn(e){return e.type==="cut"}i(fn,"isCinematicKeyCut");function dn(e){return e.type==="event"}i(dn,"isCinematicKeyEvent");function yn(e){return e.type==="group"}i(yn,"isCinematicGroup");function hn(e){return e.type==="sound"}i(hn,"isCinematicSound");0&&(module.exports={_applyScriptsForObject,animationGroupFromScene,configureEngineToUseCompressedTextures,configureShadowMapRefreshRate,configureShadowMapRenderListPredicate,createDefaultRenderingPipeline,createMotionBlurPostProcess,createSSAO2RenderingPipeline,createSSRRenderingPipeline,createVLSPostProcess,defaultPipelineCameraConfigurations,disposeDefaultRenderingPipeline,disposeMotionBlurPostProcess,disposeSSAO2RenderingPipeline,disposeSSRRenderingPipeline,disposeVLSPostProcess,forceCompileAllSceneMaterials,generateCinematicAnimationGroup,getAllScriptsByClassForObject,getAnimationTypeForObject,getDefaultRenderingPipeline,getMotionBlurPostProcess,getPowerOfTwoUntil,getSSAO2RenderingPipeline,getSSRRenderingPipeline,getScriptByClassForObject,getVLSPostProcess,guiFromAsset,isAbstractMesh,isAnyParticleSystem,isArcRotateCamera,isBone,isCamera,isCinematicGroup,isCinematicKey,isCinematicKeyCut,isCinematicKeyEvent,isCinematicSound,isDirectionalLight,isFreeCamera,isGPUParticleSystem,isGroundMesh,isHemisphericLight,isInstancedMesh,isLight,isMesh,isNode,isParticleSystem,isPointLight,isScene,isSpotLight,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseMotionBlurPostProcess,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseVLSPostProcess,particleSystemFromScene,registerScriptInstance,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setVLSPostProcessRef,soundFromScene,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
@@ -3,6 +3,7 @@ import { Texture } from "@babylonjs/core/Materials/Textures/texture";
3
3
  import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
4
4
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
5
5
  import { getSoundById } from "../tools/sound";
6
+ import { isAbstractMesh, isNode } from "../tools/guards";
6
7
  export function applyDecorators(scene, object, script, instance, rootUrl) {
7
8
  const ctor = instance.constructor;
8
9
  if (!ctor) {
@@ -102,5 +103,58 @@ export function applyDecorators(scene, object, script, instance, rootUrl) {
102
103
  }
103
104
  }
104
105
  });
106
+ // @onPointerEvent
107
+ if (ctor._PointerEvents?.length) {
108
+ const wrongMeshListener = ctor._PointerEvents.find((params) => params.options.mode === "attachedMeshOnly");
109
+ if (wrongMeshListener && !isAbstractMesh(object)) {
110
+ throw new Error(`@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).`);
111
+ }
112
+ const wrongSceneListener = ctor._PointerEvents.find((params) => params.options.mode !== "global");
113
+ if (wrongSceneListener && !isNode(object)) {
114
+ throw new Error(`@onPointerEvent with mode different from "global" can be used only on scripts attached to Node: Mesh, Light, Camera, TransformNode.`);
115
+ }
116
+ scene.onPointerObservable.add((pointerInfo) => {
117
+ let pickInfo = null;
118
+ ctor._PointerEvents.forEach((params) => {
119
+ if (!params.eventTypes.includes(pointerInfo.type)) {
120
+ return;
121
+ }
122
+ const propertyKey = params.propertyKey.toString();
123
+ if (params.options.mode === "global") {
124
+ return instance[propertyKey]?.(pointerInfo);
125
+ }
126
+ pickInfo = pointerInfo.pickInfo;
127
+ if (!pickInfo) {
128
+ pickInfo = scene.pick(scene.pointerX, scene.pointerY, (m) => {
129
+ return m.isVisible && m.isPickable && m.isEnabled(true) && !m._masterMesh;
130
+ }, false);
131
+ }
132
+ const pickedMesh = pickInfo.pickedMesh;
133
+ if (pickedMesh) {
134
+ if (params.options.mode === "attachedMeshOnly" && pickedMesh === object) {
135
+ return instance[propertyKey]?.(pointerInfo);
136
+ }
137
+ if (params.options.mode === "includeDescendants" && isNode(object)) {
138
+ const descendants = [object, ...object.getDescendants(false)];
139
+ const pickedDescendant = descendants.find((d) => d === pickedMesh);
140
+ if (pickedDescendant) {
141
+ return instance[propertyKey]?.(pointerInfo);
142
+ }
143
+ }
144
+ }
145
+ });
146
+ });
147
+ }
148
+ // @onKeyboardEvent
149
+ if (ctor._KeyboardEvents?.length) {
150
+ scene.onKeyboardObservable.add((keyboardInfo) => {
151
+ ctor._KeyboardEvents.forEach((params) => {
152
+ if (!params.eventTypes.includes(keyboardInfo.type)) {
153
+ return;
154
+ }
155
+ instance[params.propertyKey.toString()]?.(keyboardInfo);
156
+ });
157
+ });
158
+ }
105
159
  }
106
160
  //# sourceMappingURL=apply.js.map
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Makes the decorated method called on the given pointer event is triggered on the scene.
3
+ * Once the script is instantiated, the reference to the sound is retrieved from the scene
4
+ * and assigned to the property. Node link cant' be used in constructor.
5
+ * This can be used only by scripts using Classes.
6
+ * @param eventType defines the type of event or list of event to listen.
7
+ * @param onlyWhenMeshPicked defines wether or not the decorated method should be called ONLY if the clicked object is the attached object of the script.
8
+ */
9
+ export function onPointerEvent(eventType, options) {
10
+ return function (target, propertyKey) {
11
+ const ctor = target.constructor;
12
+ ctor._PointerEvents ??= [];
13
+ ctor._PointerEvents.push({
14
+ propertyKey,
15
+ options: {
16
+ mode: "global",
17
+ ...(options ?? {}),
18
+ },
19
+ eventTypes: Array.isArray(eventType) ? eventType : [eventType],
20
+ });
21
+ };
22
+ }
23
+ /**
24
+ * Makes the decorated method called on the given keyboard event is triggered on the scene.
25
+ * Once the script is instantiated, the reference to the sound is retrieved from the scene
26
+ * and assigned to the property. Node link cant' be used in constructor.
27
+ * This can be used only by scripts using Classes.
28
+ * @param eventType defines the type of event or list of event to listen.
29
+ */
30
+ export function onKeyboardEvent(eventType) {
31
+ return function (target, propertyKey) {
32
+ const ctor = target.constructor;
33
+ ctor._KeyboardEvents ??= [];
34
+ ctor._KeyboardEvents.push({
35
+ propertyKey,
36
+ eventTypes: Array.isArray(eventType) ? eventType : [eventType],
37
+ });
38
+ };
39
+ }
40
+ //# sourceMappingURL=events.js.map
@@ -16,6 +16,7 @@ export * from "./decorators/gui";
16
16
  export * from "./decorators/sound";
17
17
  export * from "./decorators/particle-systems";
18
18
  export * from "./decorators/inspector";
19
+ export * from "./decorators/events";
19
20
  export * from "./script";
20
21
  export * from "./cinematic/parse";
21
22
  export * from "./cinematic/typings";
@@ -1,5 +1,6 @@
1
1
  import { Scene } from "@babylonjs/core/scene";
2
2
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
3
+ import { IPointerEventDecoratorOptions } from "./events";
3
4
  import { VisibleInInspectorDecoratorConfiguration } from "./inspector";
4
5
  export interface ISceneDecoratorData {
5
6
  _NodesFromScene: {
@@ -34,5 +35,14 @@ export interface ISceneDecoratorData {
34
35
  propertyKey: string | Symbol;
35
36
  configuration: VisibleInInspectorDecoratorConfiguration;
36
37
  }[];
38
+ _PointerEvents: {
39
+ eventTypes: number[];
40
+ options: IPointerEventDecoratorOptions;
41
+ propertyKey: string | Symbol;
42
+ }[];
43
+ _KeyboardEvents: {
44
+ eventTypes: number[];
45
+ propertyKey: string | Symbol;
46
+ }[];
37
47
  }
38
48
  export declare function applyDecorators(scene: Scene, object: any, script: any, instance: any, rootUrl: string): void;
@@ -0,0 +1,26 @@
1
+ export interface IPointerEventDecoratorOptions {
2
+ /**
3
+ * Defines the listening mode for pointer event.
4
+ * - The `global` mode will always trigger the event when a pointer event of the provided type in the decorator is raised.
5
+ * - The `attachedMeshOnly` mode will only trigger the event when the pointer event is raised on the attached mesh.
6
+ * - The `includeDescendants` mode will trigger the event when the pointer event is raised on the attached mesh or any of its descendants.
7
+ */
8
+ mode: "global" | "attachedMeshOnly" | "includeDescendants";
9
+ }
10
+ /**
11
+ * Makes the decorated method called on the given pointer event is triggered on the scene.
12
+ * Once the script is instantiated, the reference to the sound is retrieved from the scene
13
+ * and assigned to the property. Node link cant' be used in constructor.
14
+ * This can be used only by scripts using Classes.
15
+ * @param eventType defines the type of event or list of event to listen.
16
+ * @param onlyWhenMeshPicked defines wether or not the decorated method should be called ONLY if the clicked object is the attached object of the script.
17
+ */
18
+ export declare function onPointerEvent(eventType: number | number[], options?: IPointerEventDecoratorOptions): (target: any, propertyKey: string | Symbol) => void;
19
+ /**
20
+ * Makes the decorated method called on the given keyboard event is triggered on the scene.
21
+ * Once the script is instantiated, the reference to the sound is retrieved from the scene
22
+ * and assigned to the property. Node link cant' be used in constructor.
23
+ * This can be used only by scripts using Classes.
24
+ * @param eventType defines the type of event or list of event to listen.
25
+ */
26
+ export declare function onKeyboardEvent(eventType: number | number[]): (target: any, propertyKey: string | Symbol) => void;
@@ -16,6 +16,7 @@ export * from "./decorators/gui";
16
16
  export * from "./decorators/sound";
17
17
  export * from "./decorators/particle-systems";
18
18
  export * from "./decorators/inspector";
19
+ export * from "./decorators/events";
19
20
  export * from "./script";
20
21
  export * from "./cinematic/parse";
21
22
  export * from "./cinematic/typings";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-editor-tools",
3
- "version": "5.1.3",
3
+ "version": "5.1.4",
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": {