babylonjs-editor-tools 5.1.10 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.node.js +1 -1
- package/build/src/cinematic/cinematic.js +21 -0
- package/build/src/cinematic/cinematic.js.map +1 -0
- package/build/src/cinematic/events/event.js +4 -0
- package/build/src/cinematic/events/event.js.map +1 -0
- package/build/src/cinematic/generate.js +65 -12
- package/build/src/cinematic/generate.js.map +1 -1
- package/build/src/cinematic/parse.js +34 -32
- package/build/src/cinematic/parse.js.map +1 -1
- package/build/src/cinematic/tools.js +20 -0
- package/build/src/cinematic/tools.js.map +1 -1
- package/build/src/decorators/apply.js +44 -3
- package/build/src/decorators/apply.js.map +1 -1
- package/build/src/decorators/sprite.js +31 -0
- package/build/src/decorators/sprite.js.map +1 -0
- package/build/src/index.js +3 -0
- package/build/src/index.js.map +1 -1
- package/build/src/loading/loader.js +17 -3
- package/build/src/loading/loader.js.map +1 -1
- package/build/src/loading/script.js +38 -22
- package/build/src/loading/script.js.map +1 -1
- package/build/src/loading/shadows.js +26 -16
- package/build/src/loading/shadows.js.map +1 -1
- package/build/src/loading/sound.js +17 -10
- package/build/src/loading/sound.js.map +1 -1
- package/build/src/loading/sprite-manager.js +78 -0
- package/build/src/loading/sprite-manager.js.map +1 -0
- package/build/src/loading/sprite-map.js +59 -0
- package/build/src/loading/sprite-map.js.map +1 -0
- package/build/src/loading/texture.js +51 -46
- package/build/src/loading/texture.js.map +1 -1
- package/build/src/tools/guards.js +7 -0
- package/build/src/tools/guards.js.map +1 -1
- package/build/src/tools/sprite.js +27 -0
- package/build/src/tools/sprite.js.map +1 -0
- package/declaration/src/cinematic/cinematic.d.ts +14 -0
- package/declaration/src/cinematic/events/event.d.ts +5 -0
- package/declaration/src/cinematic/generate.d.ts +2 -2
- package/declaration/src/cinematic/parse.d.ts +2 -1
- package/declaration/src/cinematic/tools.d.ts +3 -0
- package/declaration/src/cinematic/typings.d.ts +2 -0
- package/declaration/src/decorators/apply.d.ts +17 -1
- package/declaration/src/decorators/sprite.d.ts +18 -0
- package/declaration/src/index.d.ts +3 -0
- package/declaration/src/loading/loader.d.ts +15 -12
- package/declaration/src/loading/script.d.ts +20 -4
- package/declaration/src/loading/shadows.d.ts +1 -1
- package/declaration/src/loading/sound.d.ts +1 -1
- package/declaration/src/loading/sprite-manager.d.ts +1 -0
- package/declaration/src/loading/sprite-map.d.ts +1 -0
- package/declaration/src/loading/texture.d.ts +1 -1
- package/declaration/src/script.d.ts +6 -2
- package/declaration/src/tools/guards.d.ts +6 -0
- package/declaration/src/tools/sprite.d.ts +48 -0
- package/package.json +3 -3
package/build/index.node.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var U=Object.defineProperty;var Ct=Object.getOwnPropertyDescriptor;var xt=Object.getOwnPropertyNames;var At=Object.prototype.hasOwnProperty;var i=(e,o)=>U(e,"name",{value:o,configurable:!0});var Et=(e,o)=>{for(var t in o)U(e,t,{get:o[t],enumerable:!0})},Dt=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of xt(o))!At.call(e,n)&&n!==t&&U(e,n,{get:()=>o[n],enumerable:!(r=Ct(o,n))||r.enumerable});return e};var Tt=e=>Dt(U({},"__esModule",{value:!0}),e);var Dr={};Et(Dr,{_applyScriptsForObject:()=>w,_preloadScriptsAssets:()=>Oe,animationGroupFromScene:()=>rr,applyScriptOnObject:()=>jt,configureEngineToUseCompressedTextures:()=>Jt,configureShadowMapRefreshRate:()=>me,configureShadowMapRenderListPredicate:()=>le,createDefaultRenderingPipeline:()=>et,createMotionBlurPostProcess:()=>Qe,createSSAO2RenderingPipeline:()=>Ue,createSSRRenderingPipeline:()=>We,createVLSPostProcess:()=>Ye,defaultPipelineCameraConfigurations:()=>G,disposeDefaultRenderingPipeline:()=>Ee,disposeMotionBlurPostProcess:()=>Ie,disposeSSAO2RenderingPipeline:()=>he,disposeSSRRenderingPipeline:()=>fe,disposeVLSPostProcess:()=>pe,forceCompileAllSceneMaterials:()=>Xt,generateCinematicAnimationGroup:()=>Pr,getAllScriptsByClassForObject:()=>mt,getAnimationTypeForObject:()=>H,getDefaultRenderingPipeline:()=>z,getMotionBlurPostProcess:()=>Pe,getPowerOfTwoUntil:()=>x,getSSAO2RenderingPipeline:()=>zt,getSSRRenderingPipeline:()=>Kt,getScriptByClassForObject:()=>Ut,getVLSPostProcess:()=>Bt,guiFromAsset:()=>nr,isAbstractMesh:()=>$,isAnyParticleSystem:()=>ce,isArcRotateCamera:()=>Mt,isBone:()=>vt,isCamera:()=>Q,isCinematicGroup:()=>Ar,isCinematicKey:()=>Ir,isCinematicKeyCut:()=>Cr,isCinematicKeyEvent:()=>xr,isCinematicSound:()=>Er,isDirectionalLight:()=>Nt,isFreeCamera:()=>Rt,isGPUParticleSystem:()=>Lt,isGroundMesh:()=>Ot,isHemisphericLight:()=>Vt,isInstancedMesh:()=>k,isLight:()=>Le,isMesh:()=>O,isNode:()=>F,isParticleSystem:()=>_t,isPointLight:()=>wt,isScene:()=>ae,isSpotLight:()=>Ft,isTexture:()=>se,isTransformNode:()=>_e,loadMaterialFromFile:()=>qt,loadScene:()=>Zt,motionBlurPostProcessCameraConfigurations:()=>B,nodeFromDescendants:()=>tr,nodeFromScene:()=>er,onKeyboardEvent:()=>Sr,onPointerEvent:()=>hr,parseCinematic:()=>br,parseCinematicKeyValue:()=>A,parseDefaultRenderingPipeline:()=>Te,parseMotionBlurPostProcess:()=>xe,parseSSAO2RenderingPipeline:()=>be,parseSSRRenderingPipeline:()=>ye,parseVLSPostProcess:()=>ge,particleSystemFromScene:()=>ir,registerScriptInstance:()=>lt,scriptAssetsCache:()=>M,scriptsDictionary:()=>K,serializeDefaultRenderingPipeline:()=>De,serializeMotionBlurPostProcess:()=>Ce,serializeSSAO2RenderingPipeline:()=>Se,serializeSSRRenderingPipeline:()=>de,serializeVLSPostProcess:()=>ue,setDefaultRenderingPipelineRef:()=>Wt,setMotionBlurPostProcessRef:()=>Ht,setSSAO2RenderingPipelineRef:()=>Yt,setSSRRenderingPipelineRef:()=>kt,setVLSPostProcessRef:()=>Gt,soundFromScene:()=>or,ssaoRenderingPipelineCameraConfigurations:()=>L,ssrRenderingPipelineCameraConfigurations:()=>_,visibleAsAsset:()=>yr,visibleAsBoolean:()=>sr,visibleAsColor3:()=>pr,visibleAsColor4:()=>ur,visibleAsEntity:()=>gr,visibleAsKeyMap:()=>dr,visibleAsNumber:()=>cr,visibleAsString:()=>ar,visibleAsTexture:()=>fr,visibleAsVector2:()=>lr,visibleAsVector3:()=>mr,vlsPostProcessCameraConfigurations:()=>V});module.exports=Tt(Dr);function $(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i($,"isAbstractMesh");function O(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(O,"isMesh");function k(e){return e.getClassName?.()==="InstancedMesh"}i(k,"isInstancedMesh");function vt(e){return e.getClassName?.()==="Bone"}i(vt,"isBone");function Ot(e){return e.getClassName?.()==="GroundMesh"}i(Ot,"isGroundMesh");function _e(e){return e.getClassName?.()==="TransformNode"}i(_e,"isTransformNode");function se(e){return e?.getClassName?.()==="Texture"}i(se,"isTexture");function Q(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(Q,"isCamera");function Rt(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(Rt,"isFreeCamera");function Mt(e){return e.getClassName?.()==="ArcRotateCamera"}i(Mt,"isArcRotateCamera");function wt(e){return e.getClassName?.()==="PointLight"}i(wt,"isPointLight");function Nt(e){return e.getClassName?.()==="DirectionalLight"}i(Nt,"isDirectionalLight");function Ft(e){return e.getClassName?.()==="SpotLight"}i(Ft,"isSpotLight");function Vt(e){return e.getClassName?.()==="HemisphericLight"}i(Vt,"isHemisphericLight");function Le(e){switch(e.getClassName?.()){case"Light":case"PointLight":case"SpotLight":case"DirectionalLight":case"HemisphericLight":return!0}return!1}i(Le,"isLight");function F(e){return $(e)||_e(e)||Le(e)||Q(e)}i(F,"isNode");function ae(e){return e.getClassName?.()==="Scene"}i(ae,"isScene");function _t(e){return e.getClassName?.()==="ParticleSystem"}i(_t,"isParticleSystem");function Lt(e){return e.getClassName?.()==="GPUParticleSystem"}i(Lt,"isGPUParticleSystem");function ce(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(ce,"isAnyParticleSystem");var Be=require("babylonjs"),Ge=require("babylonjs");function le(e){e.lights.forEach(o=>{let t=o.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=r=>Be.Vector3.Distance(r.getAbsolutePosition(),o.getAbsolutePosition())<=o.range)})}i(le,"configureShadowMapRenderListPredicate");async function me(e){e.executeWhenReady(()=>{e.lights.forEach(o=>{let t=o.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=o.metadata?.refreshRate??Ge.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(me,"configureShadowMapRefreshRate");var Ke=require("babylonjs"),ke=require("babylonjs"),ze=require("babylonjs"),b=null,V=new Map;function Bt(){return b}i(Bt,"getVLSPostProcess");function Gt(e){b=e}i(Gt,"setVLSPostProcessRef");function pe(e){b&&e.activeCamera&&(b.dispose(e.activeCamera),b=null)}i(pe,"disposeVLSPostProcess");function Ye(e,o){return o??=e.meshes.find(t=>O(t)),b=new ze.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,o,100,ke.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),b}i(Ye,"createVLSPostProcess");function ue(){return b?{meshId:b.mesh?.id,exposure:b.exposure,decay:b.decay,weight:b.weight,density:b.density,invert:b.invert,useCustomMeshPosition:b.useCustomMeshPosition,customMeshPosition:b.customMeshPosition.asArray()}:null}i(ue,"serializeVLSPostProcess");function ge(e,o){let t=null;if(o.meshId){let n=e.getMeshById(o.meshId);n&&O(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(ge,"parseVLSPostProcess");var He=require("babylonjs"),p=null,_=new Map;function Kt(){return p}i(Kt,"getSSRRenderingPipeline");function kt(e){p=e}i(kt,"setSSRRenderingPipelineRef");function fe(){p&&(p.dispose(),p=null)}i(fe,"disposeSSRRenderingPipeline");function We(e,o){return p=new He.SSRRenderingPipeline("SSRRenderingPipeline",e,[o]),p.samples=4,p}i(We,"createSSRRenderingPipeline");function de(){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(de,"serializeSSRRenderingPipeline");function ye(e,o,t){if(p)return p;let r=We(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(ye,"parseSSRRenderingPipeline");var je=require("babylonjs"),h=null,L=new Map;function zt(){return h}i(zt,"getSSAO2RenderingPipeline");function Yt(e){h=e}i(Yt,"setSSAO2RenderingPipelineRef");function he(){h&&(h.dispose(),h=null)}i(he,"disposeSSAO2RenderingPipeline");function Ue(e,o){return h=new je.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[o]),h.samples=4,h}i(Ue,"createSSAO2RenderingPipeline");function Se(){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(Se,"serializeSSAO2RenderingPipeline");function be(e,o,t){if(h)return h;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(be,"parseSSAO2RenderingPipeline");var $e=require("babylonjs"),P=null,B=new Map;function Pe(){return P}i(Pe,"getMotionBlurPostProcess");function Ht(e){P=e}i(Ht,"setMotionBlurPostProcessRef");function Ie(){P&&(P.dispose(),P=null)}i(Ie,"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 Ce(){return P?{isObjectBased:P.isObjectBased,motionStrength:P.motionStrength,motionBlurSamples:P.motionBlurSamples}:null}i(Ce,"serializeMotionBlurPostProcess");function xe(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(xe,"parseMotionBlurPostProcess");var Ze=require("babylonjs"),Ae=require("babylonjs"),qe=require("babylonjs"),Xe=require("babylonjs"),Je=require("babylonjs"),a=null,G=new Map;function z(){return a}i(z,"getDefaultRenderingPipeline");function Wt(e){a=e}i(Wt,"setDefaultRenderingPipelineRef");function Ee(){a&&(a.dispose(),a=null)}i(Ee,"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 De(){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(De,"serializeDefaultRenderingPipeline");function Te(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 c=null;if(t.colorGradingTexture.customType==="BABYLON.ColorGradingTexture"){let s=r+t.colorGradingTexture.name;c=new Xe.ColorGradingTexture(s,e),c.level=t.colorGradingTexture.level}else{let s=qe.Texture.Parse(t.colorGradingTexture,e,r);se(s)&&(c=s)}n.imageProcessing.colorGradingTexture=c}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=Ae.Vector2.FromArray(t.direction??[0,0]),n.chromaticAberration.centerPosition=Ae.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(Te,"parseDefaultRenderingPipeline");function so(e){L.set(e,Se()),V.set(e,ue()),_.set(e,de()),B.set(e,Ce()),G.set(e,De())}i(so,"saveRenderingConfigurationForCamera");function tt(e,o){he(),pe(e.getScene()),fe(),Ie(),Ee();let t=L.get(e);t&&be(e.getScene(),e,t);let r=V.get(e);r&&ge(e.getScene(),r);let n=_.get(e);n&&ye(e.getScene(),e,n);let c=B.get(e);c&&xe(e.getScene(),e,c);let s=G.get(e);s&&Te(e.getScene(),e,s,o)}i(tt,"applyRenderingConfigurationForCamera");var Y=require("babylonjs"),rt=require("babylonjs");function nt(e){let o=e.metadata?.physicsAggregate;if(!o)return;let t;O(e)?t=e:k(e)&&(t=e.sourceMesh);let r=new rt.PhysicsAggregate(e,o.shape.type,{mesh:t,mass:o.massProperties.mass});r.body.setMassProperties({mass:o.massProperties.mass,inertia:o.massProperties.inertia?Y.Vector3.FromArray(o.massProperties.inertia):void 0,centerOfMass:o.massProperties.centerOfMass?Y.Vector3.FromArray(o.massProperties.centerOfMass):void 0,inertiaOrientation:o.massProperties.inertiaOrientation?Y.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(nt,"configurePhysicsAggregate");function ot(e,o){(Array.isArray(o)?o:[]).forEach(r=>{let n=e.getCameraById(r.cameraId);n&&(r.ssao2RenderingPipeline&&L.set(n,r.ssao2RenderingPipeline),r.vlsPostProcess&&V.set(n,r.vlsPostProcess),r.ssrRenderingPipeline&&_.set(n,r.ssrRenderingPipeline),r.motionBlurPostProcess&&B.set(n,r.motionBlurPostProcess),r.defaultRenderingPipeline&&G.set(n,r.defaultRenderingPipeline))})}i(ot,"applyRenderingConfigurations");function Z(e,o){let t=o.soundTracks??[];t.length||t.push(o.mainSoundTrack);for(let r=0,n=t.length;r<n;r++){let c=t[r].soundCollection.find(s=>s.id===e);if(c)return c}return null}i(Z,"getSoundById");var it=require("babylonjs"),q=require("babylonjs"),st=require("babylonjs"),X=require("babylonjs"),at=require("babylonjs"),ct=require("babylonjs-gui");function ve(e,o,t,r,n){let c=r.constructor;if(c){if(c._NodesFromScene?.forEach(s=>{r[s.propertyKey.toString()]=e.getNodeByName(s.nodeName)}),c._NodesFromDescendants?.forEach(s=>{let l=o.getDescendants?.(s.directDescendantsOnly,m=>m.name===s.nodeName)[0];r[s.propertyKey.toString()]=l??null}),c._AnimationGroups?.forEach(s=>{r[s.propertyKey.toString()]=e.getAnimationGroupByName(s.animationGroupName)}),c._SoundsFromScene?.forEach(s=>{let l=e.getSoundByName?.(s.soundName);r[s.propertyKey.toString()]=l??null}),(c._GuiFromAsset??[]).map(async s=>{let l=`${n}assets/${s.pathInAssets}`;try{let u=await(await fetch(l)).json(),S=ct.AdvancedDynamicTexture.CreateFullscreenUI(u.name,!0,e);S.parseSerializedObject(u.content,!1),r[s.propertyKey.toString()]=S,s.onGuiCreated?.(r,S)}catch(m){throw console.error(`Failed to load GUI from asset: ${l}`),m}}),c._ParticleSystemsFromScene?.forEach(s=>{let l=e.particleSystems?.find(m=>m.name!==s.particleSystemName?!1:s.directDescendantsOnly?m.emitter===o:m);r[s.propertyKey.toString()]=l}),(c._VisibleInInspector??[]).map(async s=>{let l=s.propertyKey.toString(),m=t.values;if(m.hasOwnProperty(l)&&m[l].hasOwnProperty("value")){let u=m[l].value;switch(s.configuration.type){case"number":case"boolean":case"keymap":case"string":r[l]=u;break;case"vector2":r[l]=X.Vector2.FromArray(u);break;case"vector3":r[l]=X.Vector3.FromArray(u);break;case"color3":r[l]=q.Color3.FromArray(u);break;case"color4":r[l]=q.Color4.FromArray(u);break;case"entity":switch(s.configuration.entityType){case"node":r[l]=e.getNodeById(u)??null;break;case"animationGroup":r[l]=e.getAnimationGroupByName(u)??null;break;case"sound":r[l]=Z(u,e);break;case"particleSystem":r[l]=e.particleSystems?.find(C=>C.id===u)??null;break}break;case"texture":u&&(r[l]=st.Texture.Parse(u,e,n));break;case"asset":if(u){let C=s.configuration.assetType,I=M.get(u);switch(C){case"json":r[l]=I;break;case"nodeParticleSystemSet":let f=at.NodeParticleSystemSet.Parse(I);r[l]=f;break;case"material":r[l]=it.Material.Parse(I,e,n);break}}}}}),c._PointerEvents?.length){if(c._PointerEvents.find(m=>m.options.mode==="attachedMeshOnly")&&!$(o))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(c._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 u=null;c._PointerEvents.forEach(S=>{if(!S.eventTypes.includes(m.type))return;let C=S.propertyKey.toString();if(S.options.mode==="global")return r[C]?.(m);u=m.pickInfo,u||(u=e.pick(e.pointerX,e.pointerY,f=>f.isVisible&&f.isPickable&&f.isEnabled(!0)&&!f._masterMesh,!1));let I=u.pickedMesh;if(I&&(S.options.mode==="attachedMeshOnly"&&I===o||S.options.mode==="includeDescendants"&&F(o)&&[o,...o.getDescendants(!1)].find(g=>g===I)))return r[C]?.(m)})})}c._KeyboardEvents?.length&&e.onKeyboardObservable.add(s=>{c._KeyboardEvents.forEach(l=>{l.eventTypes.includes(s.type)&&r[l.propertyKey.toString()]?.(s)})})}}i(ve,"applyDecorators");var M=new Map;async function Oe(e,o){[e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].filter(c=>c.metadata?.scripts?.length).map(c=>c.metadata.scripts).flat().forEach(c=>{for(let s in c.values){if(!c.values.hasOwnProperty(s))continue;let l=c.values[s];l.type==="asset"&&l.value&&M.set(l.value,null)}});let n=[];M.forEach((c,s)=>{M.get(s)||n.push(new Promise(async l=>{try{let u=await(await fetch(`${o}${s}`)).json();M.set(s,u)}catch(m){console.error(m)}l()}))}),await Promise.all(n)}i(Oe,"_preloadScriptsAssets");function w(e,o,t,r){o.metadata?.scripts&&(o.metadata.scripts?.forEach(async n=>{if(!n.enabled)return;let c=t[n.key];if(c)if(c.default){let s=new c.default(o);lt(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 c.onStart&&e.onBeforeRenderObservable.addOnce(()=>c.onStart(o)),c.onUpdate&&e.onBeforeRenderObservable.add(()=>c.onUpdate(o))}),o.metadata.scripts=void 0)}i(w,"_applyScriptsForObject");function jt(e,o,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let r=new o(e);return ve(t,e,{values:{}},r,""),r.onStart&&t.onBeforeRenderObservable.addOnce(()=>r.onStart()),r.onUpdate&&t.onBeforeRenderObservable.add(()=>r.onUpdate()),r}i(jt,"applyScriptOnObject");var K=new Map;function lt(e,o,t){let r={key:t,instance:o};K.has(e)?K.get(e).push(r):K.set(e,[r]),e.__editorRunningScripts??=[],e.__editorRunningScripts.push(r),(F(e)||ce(e)||ae(e))&&e.onDisposeObservable.addOnce(()=>{K.delete(e)})}i(lt,"registerScriptInstance");function mt(e,o){return K.get(e)?.filter(n=>n.instance.constructor===o)?.map(n=>n.instance)??null}i(mt,"getAllScriptsByClassForObject");function Ut(e,o){return mt(e,o)?.[0]??null}i(Ut,"getScriptByClassForObject");var Re=require("babylonjs"),J=require("babylonjs"),$t=(0,J.GetParser)(Re.SceneComponentConstants.NAME_AUDIO);(0,J.AddParser)(Re.SceneComponentConstants.NAME_AUDIO,(e,o,t,r)=>{$t?.(e,o,t,r),e.sounds?.forEach(n=>{let c=t.sounds?.find(s=>s.name===n.name);c&&(c.id=n.id,c.uniqueId=n.uniqueId)})});function x(e){let o=1;for(;o<=e;)o<<=1;return o>>1}i(x,"getPowerOfTwoUntil");var Me=require("babylonjs"),ee=Me.SerializationHelper._TextureParser;Me.SerializationHelper._TextureParser=(e,o,t)=>{if(o.loadingQuality==="high"||!e.metadata?.baseSize)return ee(e,o,t);let r=e.metadata.baseSize.width,n=e.metadata.baseSize.height,c=r===x(r)||n===x(n),s="";switch(o.loadingQuality){case"medium":let f=r*.66>>0,y=n*.66>>0;c&&(f=x(f),y=x(y)),s=`_${f}_${y}`;break;case"low":let g=r*.33>>0,d=n*.33>>0;c&&(g=x(g),d=x(d)),s=`_${g}_${d}`;break}let l=e.name;if(!l||!s)return ee(e,o,t);let m=l.split("/"),u=m.pop();if(!u)return ee(e,o,t);let S=u.split(".").pop(),I=`${u.replace(`.${S}`,"")}${s}.${S}`;return m.push(I),e.name=m.join("/"),ee(e,o,t)};var we=require("babylonjs"),te=require("babylonjs"),Qt=(0,te.GetParser)(we.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,te.AddParser)(we.SceneComponentConstants.NAME_SHADOWGENERATOR,(e,o,t,r)=>{o.loadingQuality!=="high"&&e.shadowGenerators?.forEach(n=>{switch(o.loadingQuality){case"medium":n.mapSize=n.mapSize*.5;break;case"low":n.mapSize=n.mapSize*.25;break}n.mapSize=Math.max(128,x(n.mapSize))}),Qt?.(e,o,t,r)});var pt=require("babylonjs"),Ne=require("babylonjs"),ut=require("babylonjs"),gt=require("babylonjs");async function Zt(e,o,t,r,n){t.loadingQuality=n?.quality??"high",await(0,ut.AppendSceneAsync)(`${e}${o}`,t,{pluginExtension:".babylon",onProgress:i(s=>{let l=Math.min(s.loaded/s.total*.5);n?.onProgress?.(l)},"onProgress")}),gt.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(s=>O(s)&&s._checkDelayState());let c=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(l=>setTimeout(l,150));let s=c-t.getWaitingItemsCount();s===c&&t.textures.forEach(l=>{l.delayLoadState===Ne.Constants.DELAYLOADSTATE_NONE&&(l.delayLoadState=Ne.Constants.DELAYLOADSTATE_LOADED)}),n?.onProgress?.(.5+s/c*.5)}await Oe(t,e),n?.onProgress?.(1),le(t),me(t),t.metadata?.rendering&&(ot(t,t.metadata.rendering),t.activeCamera&&tt(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(pt.Vector3.FromArray(t.metadata?.physicsGravity)),w(t,t,r,e),t.transformNodes.forEach(s=>{w(t,s,r,e)}),t.meshes.forEach(s=>{nt(s),w(t,s,r,e)}),t.lights.forEach(s=>{w(t,s,r,e)}),t.cameras.forEach(s=>{w(t,s,r,e)})}i(Zt,"loadScene");var ft=require("babylonjs");async function qt(e,o,t){let n=await(await fetch(e+o)).json(),s=ft.Tools.Instantiate(n.customType).Parse(n,t,e);return s.id=n.id,s.uniqueId=n.uniqueId,s}i(qt,"loadMaterialFromFile");function Xt(e){return Promise.all(e.materials.map(async o=>{let t=o.getBindedMeshes();await Promise.all(t.map(async r=>{k(r)||await o.forceCompilationAsync(r,{clipPlane:!!e.clipPlane,useInstances:r.hasInstances})}))}))}i(Xt,"forceCompileAllSceneMaterials");function Jt(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(Jt,"configureEngineToUseCompressedTextures");var T=require("babylonjs");function H(e){if(!isNaN(parseFloat(e))&&isFinite(e))return T.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return T.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return T.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return T.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return T.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return T.Animation.ANIMATIONTYPE_COLOR4;case"Size":return T.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return T.Animation.ANIMATIONTYPE_MATRIX}return null}i(H,"getAnimationTypeForObject");function er(e){return function(o,t){let r=o.constructor;r._NodesFromScene??=[],r._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(er,"nodeFromScene");function tr(e,o=!1){return function(t,r){let n=t.constructor;n._NodesFromDescendants??=[],n._NodesFromDescendants.push({propertyKey:r,nodeName:e,directDescendantsOnly:o})}}i(tr,"nodeFromDescendants");function rr(e){return function(o,t){let r=o.constructor;r._AnimationGroups??=[],r._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(rr,"animationGroupFromScene");function nr(e,o){return function(t,r){let n=t.constructor;n._GuiFromAsset??=[],n._GuiFromAsset.push({propertyKey:r,pathInAssets:e,onGuiCreated:o})}}i(nr,"guiFromAsset");function or(e){return function(o,t){let r=o.constructor;r._SoundsFromScene??=[],r._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(or,"soundFromScene");function ir(e,o=!1){return function(t,r){let n=t.constructor;n._ParticleSystemsFromScene??=[],n._ParticleSystemsFromScene.push({propertyKey:r,particleSystemName:e,directDescendantsOnly:o})}}i(ir,"particleSystemFromScene");function sr(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"boolean"}})}}i(sr,"visibleAsBoolean");function ar(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"string"}})}}i(ar,"visibleAsString");function cr(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"number"}})}}i(cr,"visibleAsNumber");function lr(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"vector2"}})}}i(lr,"visibleAsVector2");function mr(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"vector3"}})}}i(mr,"visibleAsVector3");function pr(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"color3"}})}}i(pr,"visibleAsColor3");function ur(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"color4"}})}}i(ur,"visibleAsColor4");function gr(e,o,t){return function(r,n){let c=r.constructor;c._VisibleInInspector??=[],c._VisibleInInspector.push({label:o,propertyKey:n,configuration:{...t,entityType:e,type:"entity"}})}}i(gr,"visibleAsEntity");function fr(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"texture"}})}}i(fr,"visibleAsTexture");function dr(e,o){return function(t,r){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:r,configuration:{...o,type:"keymap"}})}}i(dr,"visibleAsKeyMap");function yr(e,o,t){return function(r,n){let c=r.constructor;c._VisibleInInspector??=[],c._VisibleInInspector.push({label:o,propertyKey:n,configuration:{...t,assetType:e,type:"asset"}})}}i(yr,"visibleAsAsset");function hr(e,o){return function(t,r){let n=t.constructor;n._PointerEvents??=[],n._PointerEvents.push({propertyKey:r,options:{mode:"global",...o??{}},eventTypes:Array.isArray(e)?e:[e]})}}i(hr,"onPointerEvent");function Sr(e){return function(o,t){let r=o.constructor;r._KeyboardEvents??=[],r._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(Sr,"onKeyboardEvent");var re=require("babylonjs");function dt(e,o){let t;switch(e){case re.Animation.ANIMATIONTYPE_FLOAT:t=o.value;break;default:t=o.value.clone();break}return{value:t,frame:o.frame,interpolation:o.interpolation,inTangent:e===re.Animation.ANIMATIONTYPE_FLOAT?o.inTangent:o.inTangent?.clone(),outTangent:e===re.Animation.ANIMATIONTYPE_FLOAT?o.outTangent:o.outTangent?.clone()}}i(dt,"cloneKey");function ne(e,o){let t=o.split("."),r=e;for(let n=0;n<t.length;++n)r=r[t[n]];return r}i(ne,"getPropertyValue");var R=require("babylonjs"),oe=require("babylonjs"),E=require("babylonjs");function br(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=z()),t.propertyPath){let s=ne(r,t.propertyPath);n=H(s)}let c=null;return t.sound&&(c=Z(t.sound,o)),{node:r,sound:c,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 l={...s};switch(s.data?.type){case"set-enabled":l.data={type:"set-enabled",value:s.data.value,node:o.getNodeById(s.data.node)};break;case"apply-impulse":l.data={type:"apply-impulse",radius:s.data.radius,mesh:o.getMeshById(s.data.mesh),force:E.Vector3.FromArray(s.data.force),contactPoint:E.Vector3.FromArray(s.data.contactPoint)};break}return l}),keyFrameAnimations:r&&n!==null&&t.keyFrameAnimations?.map(s=>{let l=s.type==="key"?s:null;if(l)return{...l,value:A(l.value,n),inTangent:A(l.inTangent,n),outTangent:A(l.outTangent,n)};let m=s.type==="cut"?s:null;if(m)return{...m,key1:{...m.key1,value:A(m.key1.value,n),inTangent:A(m.key1.inTangent,n),outTangent:A(m.key1.outTangent,n)},key2:{...m.key2,value:A(m.key2.value,n),inTangent:A(m.key2.inTangent,n),outTangent:A(m.key2.outTangent,n)}};throw new Error(`Unknown key frame type: ${s.type}`)})}})}}i(br,"parseCinematic");function A(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 E.Vector2.FromArray(e);case R.Animation.ANIMATIONTYPE_VECTOR3:return E.Vector3.FromArray(e);case R.Animation.ANIMATIONTYPE_QUATERNION:return E.Quaternion.FromArray(e);case R.Animation.ANIMATIONTYPE_COLOR3:return oe.Color3.FromArray(e);case R.Animation.ANIMATIONTYPE_COLOR4:return oe.Color4.FromArray(e);case R.Animation.ANIMATIONTYPE_MATRIX:return E.Matrix.FromArray(e)}}i(A,"parseCinematicKeyValue");function yt(e){e.node?.setEnabled(e.value)}i(yt,"handleSetEnabledEvent");var Fe=require("babylonjs"),ht=Fe.Vector3.Zero();function St(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 Fe.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(ht),r.physicsAggregate.body.setAngularVelocity(ht),r.physicsAggregate.body.applyImpulse(n.negateInPlace(),o.contactPoint)}})}i(St,"handleApplyImpulseEvent");var bt=require("babylonjs"),v=require("babylonjs"),W=require("babylonjs"),Pt=require("babylonjs");function Pr(e,o,t){let r=new Pt.AnimationGroup(e.name,o);return e.tracks.forEach(n=>{let c=n.animationGroup;c&&n.animationGroups?.forEach(f=>{c.targetedAnimations.forEach(y=>{let g=null;e:{let D=r.targetedAnimations.filter(j=>j.target===y.target);if(D.length){let j=D.find(It=>It.animation.targetProperty===y.animation.targetProperty);if(j){g=j.animation;break e}}g=y.animation.clone(),g.setKeys([]),g.name=bt.Tools.RandomId(),g.framePerSecond=e.framesPerSecond}let d=g.getKeys(),N=y.animation.getKeys(),ie=f.speed,Ve=e.framesPerSecond/y.animation.framePerSecond/ie;N.forEach(D=>{D.frame>=f.startFrame&&D.frame<=f.endFrame&&d.push({...dt(y.animation.dataType,D),frame:f.frame+D.frame*Ve})}),g.setKeys(d),r.addTargetedAnimation(g,y.target)})});let s=n.sound,l=s?.getAudioBuffer();if(!t?.ignoreSounds&&s&&l&&n.sounds?.length){let f={dummy:0},y=new v.Animation(s.name,"dummy",60,v.Animation.ANIMATIONTYPE_FLOAT,v.Animation.ANIMATIONLOOPMODE_CYCLE,!1),g=0;n.sounds?.forEach(d=>{let N=d.endFrame-d.startFrame;g=Math.max(g,d.frame+N),y.addEvent(new W.AnimationEvent(d.frame,ie=>{let D=(ie-d.frame+d.startFrame)/e.framesPerSecond;s.play(0,D)},!1)),y.addEvent(new W.AnimationEvent(d.frame+N,()=>{s.stop()}))}),y.setKeys([{frame:0,value:0},{frame:g,value:g}]),r.addTargetedAnimation(y,f)}if(n.keyFrameEvents){let f={dummy:0},y=new v.Animation("events","dummy",60,v.Animation.ANIMATIONTYPE_FLOAT,v.Animation.ANIMATIONLOOPMODE_CYCLE,!1),g=0;n.keyFrameEvents?.forEach(d=>{g=Math.max(g,d.frame),y.addEvent(new W.AnimationEvent(d.frame,()=>{switch(d.data?.type){case"set-enabled":yt(d.data);break;case"apply-impulse":St(o,d.data);break}}))}),y.setKeys([{frame:0,value:0},{frame:g,value:g}]),r.addTargetedAnimation(y,f)}let m=n.defaultRenderingPipeline?z():n.node;if(!m||!n.propertyPath||!n.keyFrameAnimations)return;let u=ne(m,n.propertyPath),S=H(u);if(S===null)return;let C=new v.Animation(n.propertyPath,n.propertyPath,60,S,v.Animation.ANIMATIONLOOPMODE_CYCLE,!1),I=[];n.keyFrameAnimations?.forEach(f=>{let y=f.type==="key"?f:null;if(y)return I.push(y);let g=f.type==="cut"?f:null;g&&(I.push(g.key1),I.push(g.key2),Q(m)&&n.propertyPath==="position"&&C.addEvent(new W.AnimationEvent(g.key1.frame,()=>{let d=Pe();if(!d)return;let N=d.motionStrength;d.motionStrength=0,requestAnimationFrame(()=>{d.motionStrength=N})})))}),C.setKeys(I),r.addTargetedAnimation(C,m)}),r.normalize(),r}i(Pr,"generateCinematicAnimationGroup");function Ir(e){return e.type==="key"}i(Ir,"isCinematicKey");function Cr(e){return e.type==="cut"}i(Cr,"isCinematicKeyCut");function xr(e){return e.type==="event"}i(xr,"isCinematicKeyEvent");function Ar(e){return e.type==="group"}i(Ar,"isCinematicGroup");function Er(e){return e.type==="sound"}i(Er,"isCinematicSound");0&&(module.exports={_applyScriptsForObject,_preloadScriptsAssets,animationGroupFromScene,applyScriptOnObject,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,scriptAssetsCache,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setVLSPostProcessRef,soundFromScene,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
|
|
1
|
+
var Z=Object.defineProperty;var tr=Object.getOwnPropertyDescriptor;var rr=Object.getOwnPropertyNames;var or=Object.prototype.hasOwnProperty;var i=(e,r)=>Z(e,"name",{value:r,configurable:!0});var nr=(e,r)=>{for(var t in r)Z(e,t,{get:r[t],enumerable:!0})},ir=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of rr(r))!or.call(e,n)&&n!==t&&Z(e,n,{get:()=>r[n],enumerable:!(o=tr(r,n))||o.enumerable});return e};var sr=e=>ir(Z({},"__esModule",{value:!0}),e);var no={};nr(no,{Cinematic:()=>H,_applyScriptsForObject:()=>N,_preloadScriptsAssets:()=>Ve,_registerScriptInstance:()=>St,_removeRegisteredScriptInstance:()=>ht,animationFromSprite:()=>Zr,animationGroupFromScene:()=>Fr,applyScriptOnObject:()=>vr,configureEngineToUseCompressedTextures:()=>wr,configureShadowMapRefreshRate:()=>ye,configureShadowMapRenderListPredicate:()=>de,createDefaultRenderingPipeline:()=>lt,createMotionBlurPostProcess:()=>ot,createSSAO2RenderingPipeline:()=>tt,createSSRRenderingPipeline:()=>Xe,createVLSPostProcess:()=>Je,defaultPipelineCameraConfigurations:()=>k,disposeDefaultRenderingPipeline:()=>we,disposeMotionBlurPostProcess:()=>Te,disposeSSAO2RenderingPipeline:()=>Ce,disposeSSRRenderingPipeline:()=>Pe,disposeVLSPostProcess:()=>Se,forceCompileAllSceneMaterials:()=>Mr,generateCinematicAnimationGroup:()=>oo,getAllScriptsByClassForObject:()=>bt,getAnimationTypeForObject:()=>Q,getDefaultRenderingPipeline:()=>$,getMotionBlurPostProcess:()=>Ee,getPowerOfTwoUntil:()=>E,getSSAO2RenderingPipeline:()=>Ir,getSSRRenderingPipeline:()=>br,getScriptByClassForObject:()=>Er,getVLSPostProcess:()=>Sr,guiFromAsset:()=>Vr,isAbstractMesh:()=>X,isAnyParticleSystem:()=>fe,isArcRotateCamera:()=>mr,isBone:()=>ar,isCamera:()=>te,isCinematicGroup:()=>to,isCinematicKey:()=>$e,isCinematicKeyCut:()=>j,isCinematicKeyEvent:()=>eo,isCinematicSound:()=>ro,isDirectionalLight:()=>ur,isFreeCamera:()=>cr,isGPUParticleSystem:()=>yr,isGroundMesh:()=>lr,isHemisphericLight:()=>gr,isInstancedMesh:()=>Y,isLight:()=>We,isMesh:()=>w,isNode:()=>L,isParticleSystem:()=>dr,isPointLight:()=>pr,isScene:()=>ue,isSpotLight:()=>fr,isSprite:()=>ge,isTexture:()=>pe,isTransformNode:()=>ee,loadMaterialFromFile:()=>Or,loadScene:()=>Dr,motionBlurPostProcessCameraConfigurations:()=>K,nodeFromDescendants:()=>Nr,nodeFromScene:()=>Rr,normalizeAtlasJson:()=>_e,onKeyboardEvent:()=>qr,onPointerEvent:()=>Ur,parseCinematic:()=>Xr,parseCinematicKeyValue:()=>T,parseDefaultRenderingPipeline:()=>Ne,parseKeyFrameAnimations:()=>ze,parseMotionBlurPostProcess:()=>Oe,parseSSAO2RenderingPipeline:()=>ve,parseSSRRenderingPipeline:()=>Ae,parseVLSPostProcess:()=>be,particleSystemFromScene:()=>_r,playSpriteAnimationFromName:()=>Tr,scriptAssetsCache:()=>V,scriptsDictionary:()=>R,serializeDefaultRenderingPipeline:()=>Re,serializeMotionBlurPostProcess:()=>De,serializeSSAO2RenderingPipeline:()=>xe,serializeSSRRenderingPipeline:()=>Ie,serializeVLSPostProcess:()=>he,setDefaultRenderingPipelineRef:()=>xr,setMotionBlurPostProcessRef:()=>Cr,setSSAO2RenderingPipelineRef:()=>Ar,setSSRRenderingPipelineRef:()=>Pr,setVLSPostProcessRef:()=>hr,soundFromScene:()=>Lr,spriteFromSpriteManager:()=>Jr,ssaoRenderingPipelineCameraConfigurations:()=>G,ssrRenderingPipelineCameraConfigurations:()=>B,visibleAsAsset:()=>jr,visibleAsBoolean:()=>Br,visibleAsColor3:()=>Yr,visibleAsColor4:()=>$r,visibleAsEntity:()=>Wr,visibleAsKeyMap:()=>Hr,visibleAsNumber:()=>Kr,visibleAsString:()=>Gr,visibleAsTexture:()=>Qr,visibleAsVector2:()=>kr,visibleAsVector3:()=>zr,vlsPostProcessCameraConfigurations:()=>_});module.exports=sr(no);function X(e){switch(e.getClassName?.()){case"Mesh":case"LineMesh":case"GroundMesh":case"InstancedMesh":return!0}return!1}i(X,"isAbstractMesh");function w(e){switch(e.getClassName?.()){case"Mesh":case"GroundMesh":return!0}return!1}i(w,"isMesh");function Y(e){return e.getClassName?.()==="InstancedMesh"}i(Y,"isInstancedMesh");function ar(e){return e.getClassName?.()==="Bone"}i(ar,"isBone");function lr(e){return e.getClassName?.()==="GroundMesh"}i(lr,"isGroundMesh");function ee(e){return e.getClassName?.()==="TransformNode"}i(ee,"isTransformNode");function pe(e){return e?.getClassName?.()==="Texture"}i(pe,"isTexture");function te(e){switch(e.getClassName?.()){case"Camera":case"FreeCamera":case"TargetCamera":case"EditorCamera":case"ArcRotateCamera":case"UniversalCamera":return!0}return!1}i(te,"isCamera");function cr(e){switch(e.getClassName?.()){case"FreeCamera":case"UniversalCamera":return!0}return!1}i(cr,"isFreeCamera");function mr(e){return e.getClassName?.()==="ArcRotateCamera"}i(mr,"isArcRotateCamera");function pr(e){return e.getClassName?.()==="PointLight"}i(pr,"isPointLight");function ur(e){return e.getClassName?.()==="DirectionalLight"}i(ur,"isDirectionalLight");function fr(e){return e.getClassName?.()==="SpotLight"}i(fr,"isSpotLight");function gr(e){return e.getClassName?.()==="HemisphericLight"}i(gr,"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 L(e){return X(e)||ee(e)||We(e)||te(e)}i(L,"isNode");function ue(e){return e.getClassName?.()==="Scene"}i(ue,"isScene");function dr(e){return e.getClassName?.()==="ParticleSystem"}i(dr,"isParticleSystem");function yr(e){return e.getClassName?.()==="GPUParticleSystem"}i(yr,"isGPUParticleSystem");function fe(e){switch(e.getClassName?.()){case"ParticleSystem":case"GPUParticleSystem":return!0}return!1}i(fe,"isAnyParticleSystem");function ge(e){return e.getClassName?.()==="Sprite"}i(ge,"isSprite");var Qe=require("babylonjs"),He=require("babylonjs");function de(e){e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.renderListPredicate=o=>Qe.Vector3.Distance(o.getAbsolutePosition(),r.getAbsolutePosition())<=r.range)})}i(de,"configureShadowMapRenderListPredicate");async function ye(e){e.executeWhenReady(()=>{e.lights.forEach(r=>{let t=r.getShadowGenerator()?.getShadowMap();t&&(t.refreshRate=r.metadata?.refreshRate??He.RenderTargetTexture.REFRESHRATE_RENDER_ONEVERYFRAME)})})}i(ye,"configureShadowMapRefreshRate");var je=require("babylonjs"),Ue=require("babylonjs"),qe=require("babylonjs"),A=null,_=new Map;function Sr(){return A}i(Sr,"getVLSPostProcess");function hr(e){A=e}i(hr,"setVLSPostProcessRef");function Se(e){A&&e.activeCamera&&(A.dispose(e.activeCamera),A=null)}i(Se,"disposeVLSPostProcess");function Je(e,r){return r??=e.meshes.find(t=>w(t)),A=new qe.VolumetricLightScatteringPostProcess("VolumetricLightScatteringPostProcess",1,e.activeCamera,r,100,Ue.Texture.BILINEAR_SAMPLINGMODE,e.getEngine(),!1),A}i(Je,"createVLSPostProcess");function he(){return A?{meshId:A.mesh?.id,exposure:A.exposure,decay:A.decay,weight:A.weight,density:A.density,invert:A.invert,useCustomMeshPosition:A.useCustomMeshPosition,customMeshPosition:A.customMeshPosition.asArray()}:null}i(he,"serializeVLSPostProcess");function be(e,r){let t=null;if(r.meshId){let n=e.getMeshById(r.meshId);n&&w(n)&&(t=n)}let o=Je(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(je.Vector3.FromArray(r.customMeshPosition)),o}i(be,"parseVLSPostProcess");var Ze=require("babylonjs"),h=null,B=new Map;function br(){return h}i(br,"getSSRRenderingPipeline");function Pr(e){h=e}i(Pr,"setSSRRenderingPipelineRef");function Pe(){h&&(h.dispose(),h=null)}i(Pe,"disposeSSRRenderingPipeline");function Xe(e,r){return h=new Ze.SSRRenderingPipeline("SSRRenderingPipeline",e,[r]),h.samples=4,h}i(Xe,"createSSRRenderingPipeline");function Ie(){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(Ie,"serializeSSRRenderingPipeline");function Ae(e,r,t){if(h)return h;let o=Xe(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(Ae,"parseSSRRenderingPipeline");var et=require("babylonjs"),P=null,G=new Map;function Ir(){return P}i(Ir,"getSSAO2RenderingPipeline");function Ar(e){P=e}i(Ar,"setSSAO2RenderingPipelineRef");function Ce(){P&&(P.dispose(),P=null)}i(Ce,"disposeSSAO2RenderingPipeline");function tt(e,r){return P=new et.SSAO2RenderingPipeline("SSAO2RenderingPipeline",e,1,[r]),P.samples=4,P}i(tt,"createSSAO2RenderingPipeline");function xe(){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(xe,"serializeSSAO2RenderingPipeline");function ve(e,r,t){if(P)return P;let o=tt(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(ve,"parseSSAO2RenderingPipeline");var rt=require("babylonjs"),C=null,K=new Map;function Ee(){return C}i(Ee,"getMotionBlurPostProcess");function Cr(e){C=e}i(Cr,"setMotionBlurPostProcessRef");function Te(){C&&(C.dispose(),C=null)}i(Te,"disposeMotionBlurPostProcess");function ot(e,r){return C=new rt.MotionBlurPostProcess("MotionBlurPostProcess",e,1,r),C.motionStrength=1,C.isObjectBased=!0,C}i(ot,"createMotionBlurPostProcess");function De(){return C?{isObjectBased:C.isObjectBased,motionStrength:C.motionStrength,motionBlurSamples:C.motionBlurSamples}:null}i(De,"serializeMotionBlurPostProcess");function Oe(e,r,t){if(C)return C;let o=ot(e,r);return o.isObjectBased=t.isObjectBased,o.motionStrength=t.motionStrength,o.motionBlurSamples=t.motionBlurSamples,o}i(Oe,"parseMotionBlurPostProcess");var nt=require("babylonjs"),Me=require("babylonjs"),it=require("babylonjs"),st=require("babylonjs"),at=require("babylonjs"),l=null,k=new Map;function $(){return l}i($,"getDefaultRenderingPipeline");function xr(e){l=e}i(xr,"setDefaultRenderingPipelineRef");function we(){l&&(l.dispose(),l=null)}i(we,"disposeDefaultRenderingPipeline");function lt(e,r){return l=new at.DefaultRenderingPipeline("DefaultRenderingPipeline",!0,e,[r]),l.samples=4,l.depthOfField.lensSize=512,l.depthOfField.fStop=.25,l.depthOfField.focusDistance=55e3,l}i(lt,"createDefaultRenderingPipeline");function Re(){return l?{samples:l.samples,fxaaEnabled:l.fxaaEnabled,imageProcessingEnabled:l.imageProcessingEnabled,exposure:l.imageProcessing?.exposure,contrast:l.imageProcessing?.contrast,fromLinearSpace:l.imageProcessing?.fromLinearSpace,toneMappingEnabled:l.imageProcessing?.toneMappingEnabled,toneMappingType:l.imageProcessing?.toneMappingType,ditheringEnabled:l.imageProcessing?.ditheringEnabled,ditheringIntensity:l.imageProcessing?.ditheringIntensity,bloomEnabled:l.bloomEnabled,bloomThreshold:l.bloomThreshold,bloomWeight:l.bloomWeight,bloomScale:l.bloomScale,bloomKernel:l.bloomKernel,sharpenEnabled:l.sharpenEnabled,sharpenEdgeAmount:l.sharpen.edgeAmount,sharpenColorAmount:l.sharpen.colorAmount,grainEnabled:l.grainEnabled,grainIntensity:l.grain.intensity,grainAnimated:l.grain.animated,depthOfFieldEnabled:l.depthOfFieldEnabled,depthOfFieldBlurLevel:l.depthOfFieldBlurLevel,lensSize:l.depthOfField.lensSize,fStop:l.depthOfField.fStop,focusDistance:l.depthOfField.focusDistance,focalLength:l.depthOfField.focalLength,vignetteEnabled:l.imageProcessing?.vignetteEnabled,vignetteColor:l.imageProcessing?.vignetteColor.asArray(),vignetteWeight:l.imageProcessing?.vignetteWeight,chromaticAberrationEnabled:l.chromaticAberrationEnabled,aberrationAmount:l.chromaticAberration.aberrationAmount,radialIntensity:l.chromaticAberration.radialIntensity,direction:l.chromaticAberration.direction.asArray(),centerPosition:l.chromaticAberration.centerPosition.asArray(),glowLayerEnabled:l.glowLayerEnabled,glowLayerIntensity:l.glowLayer?.intensity,glowLayerBlurKernelSize:l.glowLayer?.blurKernelSize,colorGradingEnabled:l.imageProcessing.colorGradingEnabled,colorGradingTexture:l.imageProcessing.colorGradingTexture?.serialize(),colorGradingWithGreenDepth:l.imageProcessing.imageProcessingConfiguration.colorGradingWithGreenDepth,colorCurvesEnabled:l.imageProcessing.colorCurvesEnabled,globalHue:l.imageProcessing.colorCurves?.globalHue,globalDensity:l.imageProcessing.colorCurves?.globalDensity,globalExposure:l.imageProcessing.colorCurves?.globalExposure,globalSaturation:l.imageProcessing.colorCurves?.globalSaturation,highlightsHue:l.imageProcessing.colorCurves?.highlightsHue,highlightsDensity:l.imageProcessing.colorCurves?.highlightsDensity,highlightsExposure:l.imageProcessing.colorCurves?.highlightsExposure,highlightsSaturation:l.imageProcessing.colorCurves?.highlightsSaturation,midtonesHue:l.imageProcessing.colorCurves?.midtonesHue,midtonesDensity:l.imageProcessing.colorCurves?.midtonesDensity,midtonesExposure:l.imageProcessing.colorCurves?.midtonesExposure,midtonesSaturation:l.imageProcessing.colorCurves?.midtonesSaturation,shadowsHue:l.imageProcessing.colorCurves?.shadowsHue,shadowsDensity:l.imageProcessing.colorCurves?.shadowsDensity,shadowsExposure:l.imageProcessing.colorCurves?.shadowsExposure,shadowsSaturation:l.imageProcessing.colorCurves?.shadowsSaturation}:null}i(Re,"serializeDefaultRenderingPipeline");function Ne(e,r,t,o){if(l)return l;let n=lt(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=nt.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 st.ColorGradingTexture(a,e),s.level=t.colorGradingTexture.level}else{let a=it.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=Me.Vector2.FromArray(t.direction??[0,0]),n.chromaticAberration.centerPosition=Me.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(Ne,"parseDefaultRenderingPipeline");function kn(e){G.set(e,xe()),_.set(e,he()),B.set(e,Ie()),K.set(e,De()),k.set(e,Re())}i(kn,"saveRenderingConfigurationForCamera");function ct(e,r){Ce(),Se(e.getScene()),Pe(),Te(),we();let t=G.get(e);t&&ve(e.getScene(),e,t);let o=_.get(e);o&&be(e.getScene(),o);let n=B.get(e);n&&Ae(e.getScene(),e,n);let s=K.get(e);s&&Oe(e.getScene(),e,s);let a=k.get(e);a&&Ne(e.getScene(),e,a,r)}i(ct,"applyRenderingConfigurationForCamera");var W=require("babylonjs"),mt=require("babylonjs");function pt(e){let r=e.metadata?.physicsAggregate;if(!r)return;let t;w(e)?t=e:Y(e)&&(t=e.sourceMesh);let o=new mt.PhysicsAggregate(e,r.shape.type,{mesh:t,mass:r.massProperties.mass});o.body.setMassProperties({mass:r.massProperties.mass,inertia:r.massProperties.inertia?W.Vector3.FromArray(r.massProperties.inertia):void 0,centerOfMass:r.massProperties.centerOfMass?W.Vector3.FromArray(r.massProperties.centerOfMass):void 0,inertiaOrientation:r.massProperties.inertiaOrientation?W.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(pt,"configurePhysicsAggregate");function ut(e,r){(Array.isArray(r)?r:[]).forEach(o=>{let n=e.getCameraById(o.cameraId);n&&(o.ssao2RenderingPipeline&&G.set(n,o.ssao2RenderingPipeline),o.vlsPostProcess&&_.set(n,o.vlsPostProcess),o.ssrRenderingPipeline&&B.set(n,o.ssrRenderingPipeline),o.motionBlurPostProcess&&K.set(n,o.motionBlurPostProcess),o.defaultRenderingPipeline&&k.set(n,o.defaultRenderingPipeline))})}i(ut,"applyRenderingConfigurations");function re(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(re,"getSoundById");var ft=require("babylonjs"),oe=require("babylonjs"),gt=require("babylonjs"),ne=require("babylonjs"),dt=require("babylonjs"),yt=require("babylonjs-gui");function Fe(e,r,t,o,n){let s=o.constructor;if(!s)return;s._NodesFromScene?.forEach(c=>{o[c.propertyKey.toString()]=e.getNodeByName(c.nodeName)}),s._NodesFromDescendants?.forEach(c=>{let p=r.getDescendants?.(c.directDescendantsOnly,f=>f.name===c.nodeName)[0];o[c.propertyKey.toString()]=p??null}),s._AnimationGroups?.forEach(c=>{o[c.propertyKey.toString()]=e.getAnimationGroupByName(c.animationGroupName)}),s._SoundsFromScene?.forEach(c=>{let p=e.getSoundByName?.(c.soundName);o[c.propertyKey.toString()]=p??null}),(s._GuiFromAsset??[]).map(async c=>{let p=`${n}assets/${c.pathInAssets}`;try{let g=await(await fetch(p)).json(),I=yt.AdvancedDynamicTexture.CreateFullscreenUI(g.name,!0,e);I.parseSerializedObject(g.content,!1),o[c.propertyKey.toString()]=I,c.onGuiCreated?.(o,I)}catch(f){throw console.error(`Failed to load GUI from asset: ${p}`),f}}),s._ParticleSystemsFromScene?.forEach(c=>{let p=e.particleSystems?.find(f=>f.name!==c.particleSystemName?!1:c.directDescendantsOnly?f.emitter===r:f);o[c.propertyKey.toString()]=p}),(s._VisibleInInspector??[]).map(async c=>{let p=c.propertyKey.toString(),f=t.values;if(f.hasOwnProperty(p)&&f[p].hasOwnProperty("value")){let g=f[p].value;switch(c.configuration.type){case"number":case"boolean":case"keymap":case"string":o[p]=g;break;case"vector2":o[p]=ne.Vector2.FromArray(g);break;case"vector3":o[p]=ne.Vector3.FromArray(g);break;case"color3":o[p]=oe.Color3.FromArray(g);break;case"color4":o[p]=oe.Color4.FromArray(g);break;case"entity":switch(c.configuration.entityType){case"node":o[p]=e.getNodeById(g)??null;break;case"animationGroup":o[p]=e.getAnimationGroupByName(g)??null;break;case"sound":o[p]=re(g,e);break;case"particleSystem":o[p]=e.particleSystems?.find(S=>S.id===g)??null;break}break;case"texture":g&&(o[p]=gt.Texture.Parse(g,e,n));break;case"asset":if(g){let S=c.configuration.assetType,d=V.get(g);switch(S){case"json":o[p]=d;break;case"nodeParticleSystemSet":let y=dt.NodeParticleSystemSet.Parse(d);o[p]=y;break;case"material":o[p]=ft.Material.Parse(d,e,n);break}}}}});let a=null,m=null;if(s._PointerEvents?.length){if(s._PointerEvents.find(f=>f.options.mode==="attachedMeshOnly")&&!X(r))throw new Error('@onPointerEvent with mode "attachedMeshOnly" can only be used on scripts attached to meshes (extends AbstractMesh).');if(s._PointerEvents.find(f=>f.options.mode!=="global")&&!L(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(f=>{let g=null;s._PointerEvents.forEach(I=>{if(!I.eventTypes.includes(f.type))return;let S=I.propertyKey.toString();if(I.options.mode==="global")return o[S]?.(f);g=f.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&&(I.options.mode==="attachedMeshOnly"&&d===r||I.options.mode==="includeDescendants"&&L(r)&&[r,...r.getDescendants(!1)].find(b=>b===d)))return o[S]?.(f)})})}if(s._KeyboardEvents?.length&&(m=e.onKeyboardObservable.add(c=>{s._KeyboardEvents.forEach(p=>{p.eventTypes.includes(c.type)&&o[p.propertyKey.toString()]?.(c)})})),s._SpritesFromSpriteManager?.length){let c=r;if(!ee(c)||!c.isSpriteManager)return console.error("@spriteFromSpriteManager decorator can only be used on SpriteManagerNode.");if(!c.spriteManager)return console.error(`SpriteManagerNode "${c.name}" has no sprite manager assigned.`);s._SpritesFromSpriteManager?.forEach(p=>{let f=c.spriteManager?.sprites.find(g=>g.name===p.spriteName)||null;o[p.propertyKey.toString()]=f})}if(s._AnimationsFromSprite?.length){if(!ge(r))return console.error("@animationFromSprite decorator can only be used in scripts attached on Sprite.");let c=r.metadata?.spriteAnimations;if(!c?.length)return console.error(`Sprite "${r.name}" has no sprite animations assigned.`);s._AnimationsFromSprite.forEach(p=>{let f=c.find(g=>g.name===p.animationName);f?o[p.propertyKey.toString()]=f??null:console.warn(`Sprite animation named "${p.animationName}" not found on sprite "${r.name}".`)})}return{observers:{pointerObserver:a,keyboardObserver:m}}}i(Fe,"applyDecorators");var V=new Map;async function Ve(e,r){[e,...e.transformNodes,...e.meshes,...e.lights,...e.cameras].filter(s=>s.metadata?.scripts?.length).map(s=>s.metadata.scripts).flat().forEach(s=>{for(let a in s.values){if(!s.values.hasOwnProperty(a))continue;let m=s.values[a];m.type==="asset"&&m.value&&V.set(m.value,null)}});let n=[];V.forEach((s,a)=>{V.get(a)||n.push(new Promise(async m=>{try{let p=await(await fetch(`${r}${a}`)).json();V.set(a,p)}catch(c){console.error(c)}m()}))}),await Promise.all(n)}i(Ve,"_preloadScriptsAssets");function N(e,r,t,o){r.metadata?.scripts&&(r.metadata.scripts?.forEach(async n=>{if(!n.enabled)return;let s=t[n.key];if(!s)return;let a=s,m={};if(s.default){a=new s.default(r);let c=Fe(e,r,n,a,o);Object.assign(m,c?.observers??{})}a.onStart&&(m.onStartObserver=e.onBeforeRenderObservable.addOnce(()=>a.onStart(r))),a.onUpdate&&(m.onUpdateObserver=e.onBeforeRenderObservable.add(()=>a.onUpdate(r))),St(r,a,n.key,m)}),r.metadata.scripts=void 0)}i(N,"_applyScriptsForObject");function vr(e,r,t){if(t??=e.getScene?.(),!t)throw new Error("Cannot apply script on object: no scene available.");let o=new r(e);return Fe(t,e,{values:{}},o,""),o.onStart&&t.onBeforeRenderObservable.addOnce(()=>o.onStart()),o.onUpdate&&t.onBeforeRenderObservable.add(()=>o.onUpdate()),o}i(vr,"applyScriptOnObject");var R=new Map;function St(e,r,t,o){let n={key:t,observers:o,instance:r};R.has(e)?R.get(e).push(n):R.set(e,[n]),(L(e)||fe(e)||ue(e))&&e.onDisposeObservable.addOnce(()=>{R.get(e)?.forEach(s=>{ht(e,s)}),R.delete(e)})}i(St,"_registerScriptInstance");function ht(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=R.get(e),o=t?.indexOf(r)??-1;o!==-1&&t?.splice(o,1)}i(ht,"_removeRegisteredScriptInstance");function bt(e,r){return R.get(e)?.filter(n=>n.instance.constructor===r)?.map(n=>n.instance)??null}i(bt,"getAllScriptsByClassForObject");function Er(e,r){return bt(e,r)?.[0]??null}i(Er,"getScriptByClassForObject");var It=require("babylonjs"),ie=require("babylonjs"),Pt=!1;function At(){if(Pt)return;Pt=!0;let e=(0,ie.GetParser)(It.SceneComponentConstants.NAME_AUDIO);(0,ie.AddParser)("AudioEditorPlugin",(r,t,o,n)=>{e?.(r,t,o,n),r.sounds?.forEach(s=>{let a=o.sounds?.find(m=>m.name===s.name);a&&(a.id=s.id,a.uniqueId=s.uniqueId)})})}i(At,"registerAudioParser");function E(e){let r=1;for(;r<=e;)r<<=1;return r>>1}i(E,"getPowerOfTwoUntil");var Le=require("babylonjs"),Ct=!1;function xt(){if(Ct)return;Ct=!0;let e=Le.SerializationHelper._TextureParser;Le.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===E(n)||s===E(s),m="";switch(t.loadingTexturesQuality){case"medium":let d=n*.66>>0,y=s*.66>>0;a&&(d=E(d),y=E(y)),m=`_${d}_${y}`;break;case"low":case"very-low":let u=n*.33>>0,b=s*.33>>0;a&&(u=E(u),b=E(b)),m=`_${u}_${b}`;break}let c=r.name;if(!c||!m)return e(r,t,o);let p=c.split("/"),f=p.pop();if(!f)return e(r,t,o);let g=f.split(".").pop(),S=`${f.replace(`.${g}`,"")}${m}.${g}`;return p.push(S),r.name=p.join("/"),e(r,t,o)}}i(xt,"registerTextureParser");var Et=require("babylonjs"),se=require("babylonjs"),vt=!1;function Tt(){if(vt)return;vt=!0;let e=(0,se.GetParser)(Et.SceneComponentConstants.NAME_SHADOWGENERATOR);(0,se.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,E(s.mapSize))}),e?.(r,t,o,n)})}i(Tt,"registerShadowGeneratorParser");function _e(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(_e,"normalizeAtlasJson");function Tr(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(Tr,"playSpriteAnimationFromName");var Ot=require("babylonjs"),Mt=require("babylonjs"),wt=require("babylonjs"),Rt=require("babylonjs"),Be=require("babylonjs"),z=require("babylonjs"),Nt=require("babylonjs"),Dt=!1;function Ft(){Dt||(Dt=!0,(0,Nt.AddParser)("SpriteMapNode",(e,r,t,o)=>{e.transformNodes?.forEach(n=>{if(!n.isSpriteMap)return;let s=t.transformNodes?.find(c=>c.id===n.id);if(!s)return;s.isSpriteMap=n.isSpriteMap;let a=`${o}${n.atlasJsonRelativePath}`;r.addPendingData(a);let m=new wt.WebRequest;m.open("GET",a),m.send(),m.addEventListener("load",()=>{r.removePendingData(a);let c=JSON.parse(m.responseText);_e(c);let p=`${Ot.Tools.GetFolderPath(a)}${c.meta.image}`,f=new Be.Texture(p,r,!1,!1,Be.Texture.NEAREST_NEAREST,null,null,null,!1,Mt.Engine.TEXTUREFORMAT_RGBA),g=new Rt.SpriteMap(s.name,c,f,{layerCount:n.options.layerCount,stageSize:z.Vector2.FromArray(n.options.stageSize??[10,1]),outputSize:z.Vector2.FromArray(n.options.outputSize??[100,100]),colorMultiply:z.Vector3.FromArray(n.options.colorMultiply??[1,1,1]),flipU:!0},r);n.tiles.forEach(S=>{for(let d=0,y=S.repeatCount.x+1;d<y;++d)for(let u=0,b=S.repeatCount.y+1;u<b;++u){let v=d*(S.repeatOffset.x+1),q=u*(S.repeatOffset.y+1);g.changeTiles(S.layer,new z.Vector2(S.position.x+v,(g.options.stageSize?.y??0)-1-S.position.y-q),S.tile)}});let I=g._output;I.parent=s,s.spriteMap=g})})}))}i(Ft,"registerSpriteMapParser");var _t=require("babylonjs"),Bt=require("babylonjs"),Gt=require("babylonjs"),Ge=require("babylonjs"),Kt=require("babylonjs");function Vt(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=Bt.Sprite.Parse(t,e);o.uniqueId=t.uniqueId,o.metadata=t.metadata}}i(Vt,"parseSerializedSpriteManager");var Lt=!1;function kt(){Lt||(Lt=!0,(0,Kt.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 m=new Gt.WebRequest;m.open("GET",a),m.send(),m.addEventListener("load",()=>{r.removePendingData(a);let c=JSON.parse(m.responseText),p=`${_t.Tools.GetFolderPath(a)}${c.meta.image}`,f=new Ge.SpriteManager(s.name,p,1e3,64,r,void 0,void 0,!0,c);s.spriteManager=f,n.spriteManager&&Vt(f,n.spriteManager)})}else if(n.spriteManager?.textureUrl){let a=`${o}${n.spriteManager.textureUrl}`,m=new Ge.SpriteManager(s.name,a,1e3,{width:n.spriteManager.cellWidth,height:n.spriteManager.cellHeight},r,void 0,void 0,!1);s.spriteManager=m,n.spriteManager&&Vt(m,n.spriteManager)}}})}))}i(kt,"registerSpriteManagerParser");var zt=require("babylonjs"),Ke=require("babylonjs"),Yt=require("babylonjs"),$t=require("babylonjs");async function Dr(e,r,t,o,n){t.loadingQuality=n?.quality??"high",t.loadingTexturesQuality=n?.texturesQuality??t.loadingQuality,t.loadingShadowsQuality=n?.shadowsQuality??t.loadingQuality,At(),xt(),Tt(),Ft(),kt(),await(0,Yt.AppendSceneAsync)(`${e}${r}`,t,{pluginExtension:".babylon",onProgress:i(a=>{let m=Math.min(a.loaded/a.total*.5);n?.onProgress?.(m)},"onProgress")}),$t.SceneLoaderFlags.ForceFullSceneLoadingForIncremental&&t.meshes.forEach(a=>w(a)&&a._checkDelayState());let s=t.getWaitingItemsCount();for(;!t.isDisposed&&(!t.isReady()||t.getWaitingItemsCount()>0);){await new Promise(m=>setTimeout(m,150));let a=s-t.getWaitingItemsCount();a===s&&t.textures.forEach(m=>{m.delayLoadState===Ke.Constants.DELAYLOADSTATE_NONE&&(m.delayLoadState=Ke.Constants.DELAYLOADSTATE_LOADED)}),n?.onProgress?.(.5+a/s*.5)}await Ve(t,e),n?.onProgress?.(1),de(t),ye(t),t.metadata?.rendering&&(ut(t,t.metadata.rendering),t.activeCamera&&ct(t.activeCamera,e)),t.metadata?.physicsGravity&&t.getPhysicsEngine()?.setGravity(zt.Vector3.FromArray(t.metadata?.physicsGravity)),N(t,t,o,e),t.transformNodes.forEach(a=>{N(t,a,o,e)}),t.meshes.forEach(a=>{pt(a),N(t,a,o,e)}),t.lights.forEach(a=>{N(t,a,o,e)}),t.cameras.forEach(a=>{N(t,a,o,e)}),t.spriteManagers?.forEach(a=>{a.sprites.forEach(m=>{N(t,m,o,e)})})}i(Dr,"loadScene");var Wt=require("babylonjs");async function Or(e,r,t){let n=await(await fetch(e+r)).json(),a=Wt.Tools.Instantiate(n.customType).Parse(n,t,e);return a.id=n.id,a.uniqueId=n.uniqueId,a}i(Or,"loadMaterialFromFile");function Mr(e){return Promise.all(e.materials.map(async r=>{let t=r.getBindedMeshes();await Promise.all(t.map(async o=>{Y(o)||await r.forceCompilationAsync(o,{clipPlane:!!e.clipPlane,useInstances:o.hasInstances})}))}))}i(Mr,"forceCompileAllSceneMaterials");function wr(e){e.setTextureFormatToUse(["-dxt.ktx","-astc.ktx","-pvrtc.ktx","-etc1.ktx","-etc2.ktx"])}i(wr,"configureEngineToUseCompressedTextures");var O=require("babylonjs");function Q(e){if(!isNaN(parseFloat(e))&&isFinite(e))return O.Animation.ANIMATIONTYPE_FLOAT;switch(e?.getClassName?.()){case"Vector2":return O.Animation.ANIMATIONTYPE_VECTOR2;case"Vector3":return O.Animation.ANIMATIONTYPE_VECTOR3;case"Quaternion":return O.Animation.ANIMATIONTYPE_QUATERNION;case"Color3":return O.Animation.ANIMATIONTYPE_COLOR3;case"Color4":return O.Animation.ANIMATIONTYPE_COLOR4;case"Size":return O.Animation.ANIMATIONTYPE_SIZE;case"Matrix":return O.Animation.ANIMATIONTYPE_MATRIX}return null}i(Q,"getAnimationTypeForObject");function Rr(e){return function(r,t){let o=r.constructor;o._NodesFromScene??=[],o._NodesFromScene.push({propertyKey:t,nodeName:e})}}i(Rr,"nodeFromScene");function Nr(e,r=!1){return function(t,o){let n=t.constructor;n._NodesFromDescendants??=[],n._NodesFromDescendants.push({propertyKey:o,nodeName:e,directDescendantsOnly:r})}}i(Nr,"nodeFromDescendants");function Fr(e){return function(r,t){let o=r.constructor;o._AnimationGroups??=[],o._AnimationGroups.push({animationGroupName:e,propertyKey:t})}}i(Fr,"animationGroupFromScene");function Vr(e,r){return function(t,o){let n=t.constructor;n._GuiFromAsset??=[],n._GuiFromAsset.push({propertyKey:o,pathInAssets:e,onGuiCreated:r})}}i(Vr,"guiFromAsset");function Lr(e){return function(r,t){let o=r.constructor;o._SoundsFromScene??=[],o._SoundsFromScene.push({propertyKey:t,soundName:e})}}i(Lr,"soundFromScene");function _r(e,r=!1){return function(t,o){let n=t.constructor;n._ParticleSystemsFromScene??=[],n._ParticleSystemsFromScene.push({propertyKey:o,particleSystemName:e,directDescendantsOnly:r})}}i(_r,"particleSystemFromScene");function Br(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"boolean"}})}}i(Br,"visibleAsBoolean");function Gr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"string"}})}}i(Gr,"visibleAsString");function Kr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"number"}})}}i(Kr,"visibleAsNumber");function kr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector2"}})}}i(kr,"visibleAsVector2");function zr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"vector3"}})}}i(zr,"visibleAsVector3");function Yr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color3"}})}}i(Yr,"visibleAsColor3");function $r(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"color4"}})}}i($r,"visibleAsColor4");function Wr(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(Wr,"visibleAsEntity");function Qr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"texture"}})}}i(Qr,"visibleAsTexture");function Hr(e,r){return function(t,o){let n=t.constructor;n._VisibleInInspector??=[],n._VisibleInInspector.push({label:e,propertyKey:o,configuration:{...r,type:"keymap"}})}}i(Hr,"visibleAsKeyMap");function jr(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(jr,"visibleAsAsset");function Ur(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(Ur,"onPointerEvent");function qr(e){return function(r,t){let o=r.constructor;o._KeyboardEvents??=[],o._KeyboardEvents.push({propertyKey:t,eventTypes:Array.isArray(e)?e:[e]})}}i(qr,"onKeyboardEvent");function Jr(e){return function(r,t){let o=r.constructor;o._SpritesFromSpriteManager??=[],o._SpritesFromSpriteManager.push({propertyKey:t,spriteName:e})}}i(Jr,"spriteFromSpriteManager");function Zr(e){return function(r,t){let o=r.constructor;o._AnimationsFromSprite??=[],o._AnimationsFromSprite.push({propertyKey:t,animationName:e})}}i(Zr,"animationFromSprite");var ae=require("babylonjs");function Qt(e,r){let t;switch(e){case ae.Animation.ANIMATIONTYPE_FLOAT:t=r.value;break;default:t=r.value.clone();break}return{value:t,frame:r.frame,interpolation:r.interpolation,inTangent:e===ae.Animation.ANIMATIONTYPE_FLOAT?r.inTangent:r.inTangent?.clone(),outTangent:e===ae.Animation.ANIMATIONTYPE_FLOAT?r.outTangent:r.outTangent?.clone()}}i(Qt,"cloneKey");function le(e,r){let t=r.split("."),o=e;for(let n=0;n<t.length;++n)o=o[t[n]];return o}i(le,"getPropertyValue");function ke(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(ke,"registerAfterAnimationCallback");var M=require("babylonjs"),ce=require("babylonjs"),D=require("babylonjs");function Xr(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=r.getNodeById(t.node),o||(o=r.particleSystems?.find(a=>a.id===t.node)??null)):t.defaultRenderingPipeline&&(o=$()),t.propertyPath){let a=le(o,t.propertyPath);n=Q(a)}let s=null;return t.sound&&(s=re(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:ze(t.soundVolume??[],M.Animation.ANIMATIONTYPE_FLOAT),keyFrameEvents:t.keyFrameEvents?.map(a=>{let m={...a};switch(a.data?.type){case"set-enabled":m.data={type:"set-enabled",value:a.data.value,node:r.getNodeById(a.data.node)};break;case"apply-impulse":m.data={type:"apply-impulse",radius:a.data.radius,mesh:r.getMeshById(a.data.mesh),force:D.Vector3.FromArray(a.data.force),contactPoint:D.Vector3.FromArray(a.data.contactPoint)};break}return m}),keyFrameAnimations:o&&n!==null&&ze(t.keyFrameAnimations??[],n)}})}}i(Xr,"parseCinematic");function T(e,r){if(e===null)return null;if(e!==void 0)switch(r){case M.Animation.ANIMATIONTYPE_FLOAT:return e;case M.Animation.ANIMATIONTYPE_VECTOR2:return D.Vector2.FromArray(e);case M.Animation.ANIMATIONTYPE_VECTOR3:return D.Vector3.FromArray(e);case M.Animation.ANIMATIONTYPE_QUATERNION:return D.Quaternion.FromArray(e);case M.Animation.ANIMATIONTYPE_COLOR3:return ce.Color3.FromArray(e);case M.Animation.ANIMATIONTYPE_COLOR4:return ce.Color4.FromArray(e);case M.Animation.ANIMATIONTYPE_MATRIX:return D.Matrix.FromArray(e)}}i(T,"parseCinematicKeyValue");function ze(e,r){return e?.map(t=>{let o=t.type==="key"?t:null;if(o)return{...o,value:T(o.value,r),inTangent:T(o.inTangent,r),outTangent:T(o.outTangent,r)};let n=t.type==="cut"?t:null;if(n)return{...n,key1:{...n.key1,value:T(n.key1.value,r),inTangent:T(n.key1.inTangent,r),outTangent:T(n.key1.outTangent,r)},key2:{...n.key2,value:T(n.key2.value,r),inTangent:T(n.key2.inTangent,r),outTangent:T(n.key2.outTangent,r)}};throw new Error(`Unknown key frame type: ${t.type}`)})}i(ze,"parseKeyFrameAnimations");function Ht(e,r){e.onEventObservable.notifyObservers(r.eventName)}i(Ht,"handleApplyEvent");function jt(e){e.node?.setEnabled(e.value)}i(jt,"handleSetEnabledEvent");var Ye=require("babylonjs"),Ut=Ye.Vector3.Zero();function qt(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 Ye.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(Ut),o.physicsAggregate.body.setAngularVelocity(Ut),o.physicsAggregate.body.applyImpulse(n.negateInPlace(),r.contactPoint)}})}i(qt,"handleApplyImpulseEvent");var Jt=require("babylonjs"),Zt=require("babylonjs"),H=class extends Zt.AnimationGroup{static{i(this,"Cinematic")}onEventObservable=new Jt.Observable;onEvent(r,t){this.onEventObservable.add(o=>{r===o&&t()})}};function $e(e){return e.type==="key"}i($e,"isCinematicKey");function j(e){return e.type==="cut"}i(j,"isCinematicKeyCut");function eo(e){return e.type==="event"}i(eo,"isCinematicKeyEvent");function to(e){return e.type==="group"}i(to,"isCinematicGroup");function ro(e){return e.type==="sound"}i(ro,"isCinematicSound");var Xt=require("babylonjs"),x=require("babylonjs"),U=require("babylonjs");function oo(e,r,t){let o=new H(e.name,r);return e.tracks.forEach(n=>{let s=n.animationGroup;if(s){let S=[];if(n.animationGroups?.forEach(d=>{s.targetedAnimations.forEach(y=>{let u=null;e:{let F=o.targetedAnimations.filter(J=>J.target===y.target);if(F.length){let J=F.find(er=>er.animation.targetProperty===y.animation.targetProperty);if(J){u=J.animation;break e}}u=y.animation.clone(),u.setKeys([]),u.name=Xt.Tools.RandomId(),u.framePerSecond=e.framesPerSecond}let b=u.getKeys(),v=y.animation.getKeys(),q=d.speed,me=e.framesPerSecond/y.animation.framePerSecond/q;v.forEach(F=>{F.frame>=d.startFrame&&F.frame<=d.endFrame&&b.push({...Qt(y.animation.dataType,F),frame:d.frame+F.frame*me})}),u.setKeys(b),o.addTargetedAnimation(u,y.target),S.push(u)})}),S.length&&(n.animationGroupWeight?.length??0)>=2){let d={weight:0},y=new x.Animation(`${s.name}-weights`,"weight",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),u=[];n.animationGroupWeight.forEach(b=>{j(b)?(u.push(b.key1),u.push(b.key2)):u.push(b)}),y.setKeys(u),o.addTargetedAnimation(y,d),ke(o,r,()=>{o.animatables.forEach(b=>{for(let v of b.getAnimations())if(S.includes(v.animation)){b.weight=d.weight;break}})})}}let a=n.sound,m=a?.getAudioBuffer();if(!t?.ignoreSounds&&a&&m&&n.sounds?.length){let S={dummy:0,volume:0},d=new x.Animation(a.name,"dummy",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;if(n.sounds?.forEach(u=>{let b=u.endFrame-u.startFrame;y=Math.max(y,u.frame+b),d.addEvent(new U.AnimationEvent(u.frame,v=>{let me=(v-u.frame+u.startFrame)/e.framesPerSecond;a.play(0,me)},!1)),d.addEvent(new U.AnimationEvent(u.frame+b,()=>{a.stop()}))}),d.setKeys([{frame:0,value:0},{frame:y,value:y}]),o.addTargetedAnimation(d,S),(n.soundVolume?.length??0)>=2){let u=new x.Animation(a.name,"volume",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),b=[];n.soundVolume.forEach(v=>{j(v)?(b.push(v.key1),b.push(v.key2)):b.push(v)}),u.setKeys(b),o.addTargetedAnimation(u,S),ke(o,r,()=>{a.setVolume(S.volume)})}}if(n.keyFrameEvents){let S={dummy:0},d=new x.Animation("events","dummy",60,x.Animation.ANIMATIONTYPE_FLOAT,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),y=0;n.keyFrameEvents?.forEach(u=>{y=Math.max(y,u.frame),d.addEvent(new U.AnimationEvent(u.frame,()=>{switch(u.data?.type){case"event":Ht(o,u.data);break;case"set-enabled":jt(u.data);break;case"apply-impulse":qt(r,u.data);break}}))}),d.setKeys([{frame:0,value:0},{frame:y+1,value:y+1}]),o.addTargetedAnimation(d,S)}let c=n.defaultRenderingPipeline?$():n.node;if(!c||!n.propertyPath||!n.keyFrameAnimations)return;let p=le(c,n.propertyPath),f=Q(p);if(f===null)return;let g=new x.Animation(n.propertyPath,n.propertyPath,60,f,x.Animation.ANIMATIONLOOPMODE_CYCLE,!1),I=[];n.keyFrameAnimations?.forEach(S=>{if($e(S))return I.push(S);j(S)&&(I.push(S.key1),I.push(S.key2),te(c)&&n.propertyPath==="position"&&g.addEvent(new U.AnimationEvent(S.key1.frame,()=>{let d=Ee();if(!d)return;let y=d.motionStrength;d.motionStrength=0,requestAnimationFrame(()=>{d.motionStrength=y})})))}),g.setKeys(I),o.addTargetedAnimation(g,c)}),o.normalize(),o}i(oo,"generateCinematicAnimationGroup");0&&(module.exports={Cinematic,_applyScriptsForObject,_preloadScriptsAssets,_registerScriptInstance,_removeRegisteredScriptInstance,animationFromSprite,animationGroupFromScene,applyScriptOnObject,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,isSprite,isTexture,isTransformNode,loadMaterialFromFile,loadScene,motionBlurPostProcessCameraConfigurations,nodeFromDescendants,nodeFromScene,normalizeAtlasJson,onKeyboardEvent,onPointerEvent,parseCinematic,parseCinematicKeyValue,parseDefaultRenderingPipeline,parseKeyFrameAnimations,parseMotionBlurPostProcess,parseSSAO2RenderingPipeline,parseSSRRenderingPipeline,parseVLSPostProcess,particleSystemFromScene,playSpriteAnimationFromName,scriptAssetsCache,scriptsDictionary,serializeDefaultRenderingPipeline,serializeMotionBlurPostProcess,serializeSSAO2RenderingPipeline,serializeSSRRenderingPipeline,serializeVLSPostProcess,setDefaultRenderingPipelineRef,setMotionBlurPostProcessRef,setSSAO2RenderingPipelineRef,setSSRRenderingPipelineRef,setVLSPostProcessRef,soundFromScene,spriteFromSpriteManager,ssaoRenderingPipelineCameraConfigurations,ssrRenderingPipelineCameraConfigurations,visibleAsAsset,visibleAsBoolean,visibleAsColor3,visibleAsColor4,visibleAsEntity,visibleAsKeyMap,visibleAsNumber,visibleAsString,visibleAsTexture,visibleAsVector2,visibleAsVector3,vlsPostProcessCameraConfigurations});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
2
|
+
import { AnimationGroup } from "@babylonjs/core/Animations/animationGroup";
|
|
3
|
+
export class Cinematic extends AnimationGroup {
|
|
4
|
+
/**
|
|
5
|
+
* Defines the observable used to notify observers when an event is raised during the cinematic playback.
|
|
6
|
+
*/
|
|
7
|
+
onEventObservable = new Observable();
|
|
8
|
+
/**
|
|
9
|
+
* Registers and calls the given callback on the provided event name is emitted during the cinematic playback.
|
|
10
|
+
* @param eventName defines the name of the event to listen to
|
|
11
|
+
* @param callback defines the callback to call when the event is raised
|
|
12
|
+
*/
|
|
13
|
+
onEvent(eventName, callback) {
|
|
14
|
+
this.onEventObservable.add((event) => {
|
|
15
|
+
if (eventName === event) {
|
|
16
|
+
callback();
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=cinematic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cinematic.js","sourceRoot":"","sources":["../../../src/cinematic/cinematic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,MAAM,OAAO,SAAU,SAAQ,cAAc;IAC5C;;OAEG;IACI,iBAAiB,GAAuB,IAAI,UAAU,EAAU,CAAC;IAExE;;;;OAIG;IACI,OAAO,CAAC,SAAiB,EAAE,QAAoB;QACrD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACzB,QAAQ,EAAE,CAAC;YACZ,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../src/cinematic/events/event.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAAC,SAAoB,EAAE,SAAoB;IAC1E,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { Tools } from "@babylonjs/core/Misc/tools";
|
|
2
2
|
import { Animation } from "@babylonjs/core/Animations/animation";
|
|
3
3
|
import { AnimationEvent } from "@babylonjs/core/Animations/animationEvent";
|
|
4
|
-
import { AnimationGroup } from "@babylonjs/core/Animations/animationGroup";
|
|
5
4
|
import { isCamera } from "../tools/guards";
|
|
6
5
|
import { getAnimationTypeForObject } from "../tools/animation";
|
|
7
6
|
import { getMotionBlurPostProcess } from "../rendering/motion-blur";
|
|
8
7
|
import { getDefaultRenderingPipeline } from "../rendering/default-pipeline";
|
|
8
|
+
import { handleApplyEvent } from "./events/event";
|
|
9
9
|
import { handleSetEnabledEvent } from "./events/set-enabled";
|
|
10
10
|
import { handleApplyImpulseEvent } from "./events/apply-impulse";
|
|
11
|
-
import {
|
|
11
|
+
import { Cinematic } from "./cinematic";
|
|
12
|
+
import { isCinematicKey, isCinematicKeyCut } from "./guards";
|
|
13
|
+
import { cloneKey, getPropertyValue, registerAfterAnimationCallback } from "./tools";
|
|
12
14
|
/**
|
|
13
15
|
* Parses the given cinematic object and generates a new playable animation group.
|
|
14
16
|
* @param cinematic defines the cinematic object to parse that was previously loaded.
|
|
@@ -16,11 +18,12 @@ import { cloneKey, getPropertyValue } from "./tools";
|
|
|
16
18
|
* @param options defines the options to use when generating the animation group.
|
|
17
19
|
*/
|
|
18
20
|
export function generateCinematicAnimationGroup(cinematic, scene, options) {
|
|
19
|
-
const result = new
|
|
21
|
+
const result = new Cinematic(cinematic.name, scene);
|
|
20
22
|
cinematic.tracks.forEach((track) => {
|
|
21
23
|
// Animation groups
|
|
22
24
|
const animationGroup = track.animationGroup;
|
|
23
25
|
if (animationGroup) {
|
|
26
|
+
const groupedAnimations = [];
|
|
24
27
|
track.animationGroups?.forEach((configuration) => {
|
|
25
28
|
animationGroup.targetedAnimations.forEach((targetedAnimation) => {
|
|
26
29
|
let animation = null;
|
|
@@ -52,14 +55,45 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
|
|
|
52
55
|
});
|
|
53
56
|
animation.setKeys(keys);
|
|
54
57
|
result.addTargetedAnimation(animation, targetedAnimation.target);
|
|
58
|
+
groupedAnimations.push(animation);
|
|
55
59
|
});
|
|
56
60
|
});
|
|
61
|
+
// TODO: fix that
|
|
62
|
+
if (groupedAnimations.length && (track.animationGroupWeight?.length ?? 0) >= 2) {
|
|
63
|
+
const dummyObject = {
|
|
64
|
+
weight: 0,
|
|
65
|
+
};
|
|
66
|
+
const weightAnimation = new Animation(`${animationGroup.name}-weights`, "weight", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
|
|
67
|
+
const weightKeys = [];
|
|
68
|
+
track.animationGroupWeight.forEach((keyFrame) => {
|
|
69
|
+
if (isCinematicKeyCut(keyFrame)) {
|
|
70
|
+
weightKeys.push(keyFrame.key1);
|
|
71
|
+
weightKeys.push(keyFrame.key2);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
weightKeys.push(keyFrame);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
weightAnimation.setKeys(weightKeys);
|
|
78
|
+
result.addTargetedAnimation(weightAnimation, dummyObject);
|
|
79
|
+
registerAfterAnimationCallback(result, scene, () => {
|
|
80
|
+
result.animatables.forEach((animatable) => {
|
|
81
|
+
for (const animation of animatable.getAnimations()) {
|
|
82
|
+
if (groupedAnimations.includes(animation.animation)) {
|
|
83
|
+
animatable.weight = dummyObject.weight;
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
57
90
|
}
|
|
58
91
|
const sound = track.sound;
|
|
59
92
|
const soundBuffer = sound?.getAudioBuffer();
|
|
60
93
|
if (!options?.ignoreSounds && sound && soundBuffer && track.sounds?.length) {
|
|
61
94
|
const dummyObject = {
|
|
62
95
|
dummy: 0,
|
|
96
|
+
volume: 0,
|
|
63
97
|
};
|
|
64
98
|
const soundAnimation = new Animation(sound.name, "dummy", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
|
|
65
99
|
let maxFrame = 0;
|
|
@@ -81,6 +115,24 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
|
|
|
81
115
|
{ frame: maxFrame, value: maxFrame },
|
|
82
116
|
]);
|
|
83
117
|
result.addTargetedAnimation(soundAnimation, dummyObject);
|
|
118
|
+
if ((track.soundVolume?.length ?? 0) >= 2) {
|
|
119
|
+
const volumeAnimation = new Animation(sound.name, "volume", 60, Animation.ANIMATIONTYPE_FLOAT, Animation.ANIMATIONLOOPMODE_CYCLE, false);
|
|
120
|
+
const volumeKeys = [];
|
|
121
|
+
track.soundVolume.forEach((keyFrame) => {
|
|
122
|
+
if (isCinematicKeyCut(keyFrame)) {
|
|
123
|
+
volumeKeys.push(keyFrame.key1);
|
|
124
|
+
volumeKeys.push(keyFrame.key2);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
volumeKeys.push(keyFrame);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
volumeAnimation.setKeys(volumeKeys);
|
|
131
|
+
result.addTargetedAnimation(volumeAnimation, dummyObject);
|
|
132
|
+
registerAfterAnimationCallback(result, scene, () => {
|
|
133
|
+
sound.setVolume(dummyObject.volume);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
84
136
|
}
|
|
85
137
|
if (track.keyFrameEvents) {
|
|
86
138
|
const dummyObject = {
|
|
@@ -92,6 +144,9 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
|
|
|
92
144
|
maxFrame = Math.max(maxFrame, configuration.frame);
|
|
93
145
|
eventsAnimation.addEvent(new AnimationEvent(configuration.frame, () => {
|
|
94
146
|
switch (configuration.data?.type) {
|
|
147
|
+
case "event":
|
|
148
|
+
handleApplyEvent(result, configuration.data);
|
|
149
|
+
break;
|
|
95
150
|
case "set-enabled":
|
|
96
151
|
handleSetEnabledEvent(configuration.data);
|
|
97
152
|
break;
|
|
@@ -103,7 +158,7 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
|
|
|
103
158
|
});
|
|
104
159
|
eventsAnimation.setKeys([
|
|
105
160
|
{ frame: 0, value: 0 },
|
|
106
|
-
{ frame: maxFrame, value: maxFrame },
|
|
161
|
+
{ frame: maxFrame + 1, value: maxFrame + 1 },
|
|
107
162
|
]);
|
|
108
163
|
result.addTargetedAnimation(eventsAnimation, dummyObject);
|
|
109
164
|
}
|
|
@@ -119,16 +174,14 @@ export function generateCinematicAnimationGroup(cinematic, scene, options) {
|
|
|
119
174
|
const animation = new Animation(track.propertyPath, track.propertyPath, 60, animationType, Animation.ANIMATIONLOOPMODE_CYCLE, false);
|
|
120
175
|
const keys = [];
|
|
121
176
|
track.keyFrameAnimations?.forEach((keyFrame) => {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return keys.push(animationKey);
|
|
177
|
+
if (isCinematicKey(keyFrame)) {
|
|
178
|
+
return keys.push(keyFrame);
|
|
125
179
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
keys.push(
|
|
129
|
-
keys.push(animationKeyCut.key2);
|
|
180
|
+
if (isCinematicKeyCut(keyFrame)) {
|
|
181
|
+
keys.push(keyFrame.key1);
|
|
182
|
+
keys.push(keyFrame.key2);
|
|
130
183
|
if (isCamera(node) && track.propertyPath === "position") {
|
|
131
|
-
animation.addEvent(new AnimationEvent(
|
|
184
|
+
animation.addEvent(new AnimationEvent(keyFrame.key1.frame, () => {
|
|
132
185
|
const motionBlur = getMotionBlurPostProcess();
|
|
133
186
|
if (!motionBlur) {
|
|
134
187
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cinematic/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cinematic/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ export function parseCinematic(data, scene) {
|
|
|
43
43
|
animationGroup: track.animationGroup ? scene.getAnimationGroupByName(track.animationGroup) : null,
|
|
44
44
|
animationGroups: track.animationGroups,
|
|
45
45
|
sounds: track.sounds,
|
|
46
|
+
soundVolume: parseKeyFrameAnimations(track.soundVolume ?? [], Animation.ANIMATIONTYPE_FLOAT),
|
|
46
47
|
keyFrameEvents: track.keyFrameEvents?.map((event) => {
|
|
47
48
|
const result = {
|
|
48
49
|
...event,
|
|
@@ -67,38 +68,7 @@ export function parseCinematic(data, scene) {
|
|
|
67
68
|
}
|
|
68
69
|
return result;
|
|
69
70
|
}),
|
|
70
|
-
keyFrameAnimations: node &&
|
|
71
|
-
animationType !== null &&
|
|
72
|
-
track.keyFrameAnimations?.map((keyFrame) => {
|
|
73
|
-
const animationKey = keyFrame.type === "key" ? keyFrame : null;
|
|
74
|
-
if (animationKey) {
|
|
75
|
-
return {
|
|
76
|
-
...animationKey,
|
|
77
|
-
value: parseCinematicKeyValue(animationKey.value, animationType),
|
|
78
|
-
inTangent: parseCinematicKeyValue(animationKey.inTangent, animationType),
|
|
79
|
-
outTangent: parseCinematicKeyValue(animationKey.outTangent, animationType),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
const animationKeyCut = keyFrame.type === "cut" ? keyFrame : null;
|
|
83
|
-
if (animationKeyCut) {
|
|
84
|
-
return {
|
|
85
|
-
...animationKeyCut,
|
|
86
|
-
key1: {
|
|
87
|
-
...animationKeyCut.key1,
|
|
88
|
-
value: parseCinematicKeyValue(animationKeyCut.key1.value, animationType),
|
|
89
|
-
inTangent: parseCinematicKeyValue(animationKeyCut.key1.inTangent, animationType),
|
|
90
|
-
outTangent: parseCinematicKeyValue(animationKeyCut.key1.outTangent, animationType),
|
|
91
|
-
},
|
|
92
|
-
key2: {
|
|
93
|
-
...animationKeyCut.key2,
|
|
94
|
-
value: parseCinematicKeyValue(animationKeyCut.key2.value, animationType),
|
|
95
|
-
inTangent: parseCinematicKeyValue(animationKeyCut.key2.inTangent, animationType),
|
|
96
|
-
outTangent: parseCinematicKeyValue(animationKeyCut.key2.outTangent, animationType),
|
|
97
|
-
},
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
throw new Error(`Unknown key frame type: ${keyFrame.type}`);
|
|
101
|
-
}),
|
|
71
|
+
keyFrameAnimations: node && animationType !== null && parseKeyFrameAnimations(track.keyFrameAnimations ?? [], animationType),
|
|
102
72
|
};
|
|
103
73
|
}),
|
|
104
74
|
};
|
|
@@ -133,4 +103,36 @@ export function parseCinematicKeyValue(value, type) {
|
|
|
133
103
|
return Matrix.FromArray(value);
|
|
134
104
|
}
|
|
135
105
|
}
|
|
106
|
+
export function parseKeyFrameAnimations(keyFrameAnimations, animationType) {
|
|
107
|
+
return keyFrameAnimations?.map((keyFrame) => {
|
|
108
|
+
const animationKey = keyFrame.type === "key" ? keyFrame : null;
|
|
109
|
+
if (animationKey) {
|
|
110
|
+
return {
|
|
111
|
+
...animationKey,
|
|
112
|
+
value: parseCinematicKeyValue(animationKey.value, animationType),
|
|
113
|
+
inTangent: parseCinematicKeyValue(animationKey.inTangent, animationType),
|
|
114
|
+
outTangent: parseCinematicKeyValue(animationKey.outTangent, animationType),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const animationKeyCut = keyFrame.type === "cut" ? keyFrame : null;
|
|
118
|
+
if (animationKeyCut) {
|
|
119
|
+
return {
|
|
120
|
+
...animationKeyCut,
|
|
121
|
+
key1: {
|
|
122
|
+
...animationKeyCut.key1,
|
|
123
|
+
value: parseCinematicKeyValue(animationKeyCut.key1.value, animationType),
|
|
124
|
+
inTangent: parseCinematicKeyValue(animationKeyCut.key1.inTangent, animationType),
|
|
125
|
+
outTangent: parseCinematicKeyValue(animationKeyCut.key1.outTangent, animationType),
|
|
126
|
+
},
|
|
127
|
+
key2: {
|
|
128
|
+
...animationKeyCut.key2,
|
|
129
|
+
value: parseCinematicKeyValue(animationKeyCut.key2.value, animationType),
|
|
130
|
+
inTangent: parseCinematicKeyValue(animationKeyCut.key2.inTangent, animationType),
|
|
131
|
+
outTangent: parseCinematicKeyValue(animationKeyCut.key2.outTangent, animationType),
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
throw new Error(`Unknown key frame type: ${keyFrame.type}`);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
136
138
|
//# sourceMappingURL=parse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cinematic/parse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAEzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,KAAY;IAC5D,OAAO;QACN,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,IAAI,IAAI,GAAQ,IAAI,CAAC;YACrB,IAAI,aAAa,GAAkB,IAAI,CAAC;YAExC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACX,IAAI,GAAG,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;gBAC1E,CAAC;YACF,CAAC;iBAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;gBAC3C,IAAI,GAAG,2BAA2B,EAAE,CAAC;YACtC,CAAC;YAED,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBACzD,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,KAAK,GAAiB,IAAI,CAAC;YAC/B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;YAED,OAAO;gBACN,IAAI;gBACJ,KAAK;gBACL,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;gBACxD,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;gBACjG,eAAe,EAAE,KAAK,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/cinematic/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,4 +32,24 @@ export function getPropertyValue(object, property) {
|
|
|
32
32
|
}
|
|
33
33
|
return value;
|
|
34
34
|
}
|
|
35
|
+
export function registerAfterAnimationCallback(cinematic, scene, callback) {
|
|
36
|
+
let sceneRenderObserver = null;
|
|
37
|
+
cinematic.onAnimationGroupPlayObservable.add(() => {
|
|
38
|
+
sceneRenderObserver = scene.onAfterAnimationsObservable.add(() => {
|
|
39
|
+
callback();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
cinematic.onAnimationGroupPauseObservable.add(() => {
|
|
43
|
+
if (sceneRenderObserver) {
|
|
44
|
+
scene.onAfterAnimationsObservable.remove(sceneRenderObserver);
|
|
45
|
+
sceneRenderObserver = null;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
cinematic.onAnimationGroupEndObservable.add(() => {
|
|
49
|
+
if (sceneRenderObserver) {
|
|
50
|
+
scene.onAfterAnimationsObservable.remove(sceneRenderObserver);
|
|
51
|
+
sceneRenderObserver = null;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
35
55
|
//# sourceMappingURL=tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cinematic/tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/cinematic/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAKjE,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,GAAkB;IAC5D,IAAI,KAAU,CAAC;IACf,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,mBAAmB;YACjC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YAClB,MAAM;QACP;YACC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM;IACR,CAAC;IAED,OAAO;QACN,KAAK;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,SAAS,EAAE,QAAQ,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE;QAC9F,UAAU,EAAE,QAAQ,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE;KACjG,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,QAAgB;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,KAAK,GAAG,MAAM,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,SAAoB,EAAE,KAAY,EAAE,QAAoB;IACtG,IAAI,mBAAmB,GAA2B,IAAI,CAAC;IAEvD,SAAS,CAAC,8BAA8B,CAAC,GAAG,CAAC,GAAG,EAAE;QACjD,mBAAmB,GAAG,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAG,EAAE;YAChE,QAAQ,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,+BAA+B,CAAC,GAAG,CAAC,GAAG,EAAE;QAClD,IAAI,mBAAmB,EAAE,CAAC;YACzB,KAAK,CAAC,2BAA2B,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC9D,mBAAmB,GAAG,IAAI,CAAC;QAC5B,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,6BAA6B,CAAC,GAAG,CAAC,GAAG,EAAE;QAChD,IAAI,mBAAmB,EAAE,CAAC;YACzB,KAAK,CAAC,2BAA2B,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC9D,mBAAmB,GAAG,IAAI,CAAC;QAC5B,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
|