@dcl/wearable-preview 2.13.1-24096673885.commit-cf09103 → 2.14.0
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/assets/{Preview-BloXax2L.js → Preview-CTlb7FVW.js} +383 -383
- package/assets/UnityPreview-DN2SYtna.js +1 -0
- package/assets/{babylon.inspector.bundle.max-DGZCBG-7.js → babylon.inspector.bundle.max-QDIvUYw7.js} +1 -1
- package/{static-local/assets/emote-events-jjoBnMzo.js → assets/emote-events-Dn-X3ox5.js} +5 -5
- package/assets/{index-KYuRa154.js → index-DsOKf6lp.js} +3 -3
- package/index.html +3 -3
- package/package.json +3 -3
- package/static-local/assets/{Preview-CGqOUw_I.js → Preview-CvMZxPcZ.js} +383 -383
- package/static-local/assets/UnityPreview-oBykrVJt.js +1 -0
- package/static-local/assets/{babylon.inspector.bundle.max-DDnqGh7g.js → babylon.inspector.bundle.max-CKYbVI_Y.js} +1 -1
- package/{assets/emote-events-R7O4OQgI.js → static-local/assets/emote-events-BIN_p4P1.js} +5 -5
- package/static-local/assets/{index-D4VHDB8W.js → index-D54LH2T6.js} +2 -2
- package/static-local/index.html +1 -1
- package/static-local/package.json +1 -1
- package/static-local/unity/Build/aang-renderer.data.br +0 -0
- package/static-local/unity/Build/aang-renderer.framework.js.br +0 -0
- package/static-local/unity/Build/aang-renderer.loader.js +1 -1
- package/static-local/unity/Build/aang-renderer.symbols.json.br +0 -0
- package/static-local/unity/Build/aang-renderer.wasm.br +0 -0
- package/unity/Build/aang-renderer.data.br +0 -0
- package/unity/Build/aang-renderer.framework.js.br +0 -0
- package/unity/Build/aang-renderer.loader.js +1 -1
- package/unity/Build/aang-renderer.symbols.json.br +0 -0
- package/unity/Build/aang-renderer.wasm.br +0 -0
- package/assets/UnityPreview-CaPSWPNu.js +0 -1
- package/static-local/assets/UnityPreview-Co9Lu6Zt.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as k,a as j,r as c,b as W,R as oe,j as U}from"./index-D54LH2T6.js";import{m as ie,i as K,d,L as le,a as de,u as te,s as ce,f as ue,b as Se,c as me,e as ge,g as Ee,h as ye,j as $,k as G,l as fe,n as pe,o as we,p as he,q as F,r as L,t as Re}from"./emote-events-BIN_p4P1.js";var x=(e=>(e.SET_MODE="SetMode",e.SET_PROFILE="SetProfile",e.SET_EMOTE="SetEmote",e.SET_URNS="SetUrns",e.SET_BACKGROUND="SetBackground",e.SET_SKIN_COLOR="SetSkinColor",e.SET_HAIR_COLOR="SetHairColor",e.SET_EYE_COLOR="SetEyeColor",e.SET_BODY_SHAPE="SetBodyShape",e.SET_SHOW_ANIMATION_REFERENCE="SetShowAnimationReference",e.SET_PROJECTION="SetProjection",e.ADD_BASE64="AddBase64",e.CLEAR_BASE64="ClearBase64",e.SET_CONTRACT="SetContract",e.SET_ITEM_ID="SetItemID",e.SET_TOKEN_ID="SetTokenID",e.SET_DISABLE_LOADER="SetDisableLoader",e.RELOAD="Reload",e.CLEANUP="Cleanup",e.GET_ELEMENT_BOUNDS="GetElementBounds",e.SET_SPRING_BONES_PARAMS="SetSpringBonesParams",e))(x||{});const Pe={unityMode:"SetMode",profile:"SetProfile",emote:"SetEmote",urns:"SetUrns",background:"SetBackground",skin:"SetSkinColor",hair:"SetHairColor",eyes:"SetEyeColor",bodyShape:"SetBodyShape",showAnimationReference:"SetShowAnimationReference",projection:"SetProjection",base64s:"AddBase64",contractAddress:"SetContract",itemId:"SetItemID",tokenId:"SetTokenID",disableLoader:"SetDisableLoader"},Ie={unityMode:e=>String(e),profile:e=>String(e),emote:e=>String(e),urns:e=>Array.isArray(e)?e.join(","):String(e),background:e=>typeof e=="string"?e.replace("#",""):String(e),skin:e=>typeof e=="string"?e.replace("#",""):String(e),hair:e=>typeof e=="string"?e.replace("#",""):String(e),eyes:e=>typeof e=="string"?e.replace("#",""):String(e),bodyShape:e=>String(e),showAnimationReference:e=>String(e),projection:e=>String(e),contractAddress:e=>String(e),itemId:e=>String(e),tokenId:e=>String(e),disableLoader:e=>String(e)},C=(e,t,s)=>{if(e)try{const r=String(t);Object.values(x).includes(r)||(console.warn(`Unknown Unity method: ${r}. Sending anyway...`),k(`Unknown Unity method: ${r}`,{method:r,value:s})),s!==void 0?e.SendMessage("JSBridge",r,s):e.SendMessage("JSBridge",r)}catch(r){console.error(`Failed to send Unity message ${t}:`,r),j(r,{method:String(t),value:s})}else console.warn(`Unity instance not ready, cannot send message: ${t}`),k(`Unity instance not ready, cannot send message: ${t}`,{method:String(t)})},Ae=(e,t,s)=>{if(!e){console.warn("Unity instance not available, cannot send override messages"),k("Unity instance not available, cannot send override messages");return}let r=0;t.base64s!==void 0&&s.base64s&&(C(e,"ClearBase64"),r++,Array.isArray(t.base64s)&&t.base64s.length>0&&t.base64s.forEach(n=>{C(e,"AddBase64",n),r++})),Object.entries(t).forEach(([n,a])=>{if(n!=="base64s"&&s[n]&&a!==void 0){const o=Pe[n];if(o){const i=Ie[n],g=i?i(a):String(a);C(e,o,g),r++}else console.warn(`No Unity method mapping found for property: ${n}`),k(`No Unity method mapping found for property: ${n}`,{property:n,value:a})}}),r>0&&C(e,"Reload")};var Te={VITE_BASE_URL:""};const V=new Map,_=(e,t)=>t;function be(e){if(V.has(e))return V.get(e);const t=new Promise((s,r)=>{const n=document.querySelector(`script[src="${e}"]`);if(n){n.addEventListener("load",()=>s(n)),n.addEventListener("error",o=>r(o));return}const a=document.createElement("script");a.src=e,a.async=!0,a.onload=()=>s(a),a.onerror=o=>r(o),document.body.appendChild(a)});return V.set(e,t),t}const ve=async(e,t,s,r,n,a,o,i,g,m,S,E)=>{try{const u=Te.VITE_BASE_URL||"";return await be(_(u,t)),await createUnityInstance(e,{dataUrl:_(u,s),frameworkUrl:_(u,r),codeUrl:_(u,n),streamingAssetsUrl:_(u,o),symbolUrl:_(u,a),companyName:i,productName:g,productVersion:m,matchWebGLToCanvasSize:S,arguments:E})}catch(u){throw console.error("❌ Failed to load Unity instance:",u),u}},Oe="data:image/png;base64,";function Le(e){return{getScreenshot:()=>new Promise(t=>{if(!e){t("");return}e.SendMessage("JSBridge","TakeScreenshot",""),window.addEventListener("message",function s(r){if(r.data.type==="unity-renderer"){const{type:n,payload:a}=r.data.payload;n==="screenshot"&&(window.removeEventListener("message",s),t(Oe+a))}})}),getMetrics:()=>new Promise(t=>{if(!e){t({triangles:0,materials:0,textures:0,meshes:0,bodies:0,entities:0});return}e.SendMessage("JSBridge","GetMetrics",""),window.addEventListener("message",function s(r){if(r.data.type==="unity-renderer"){const{type:n,payload:a}=r.data.payload;n==="metrics"&&(window.removeEventListener("message",s),t(a))}})}),changeZoom:async t=>{e&&e.SendMessage("JSBridge","SetZoom",t.toString())},panCamera:async t=>{if(!e)return;const s=t.x??0,r=t.y??0,n=t.z??0;e.SendMessage("JSBridge","SetOffset",`${s},${r},${n}`)},changeCameraPosition:async t=>{if(!e)return;const s=t.alpha??0,r=t.beta??0,n=t.radius??0;e.SendMessage("JSBridge","SetCameraPosition",`${s},${r},${n}`)},setUsername:async t=>{e&&e.SendMessage("JSBridge","SetUsername",t)},cleanup:async()=>{e&&e.SendMessage("JSBridge","Cleanup","")}}}function _e(e,t,s,r){const n=ie();let a=0,o=0,i="stopped",g=null,m=0;const S=()=>{var l;return s?s.loop:!!((l=t==null?void 0:t.emoteDataADR74)!=null&&l.loop||r&&le.includes(r))},E=()=>{u(),m=Date.now(),g=setInterval(()=>{if(i!=="playing")return;const l=Date.now(),y=(l-m)/1e3;if(m=l,o+=y,a>0&&o>=a)if(S())o=o%a,n.emit(d.PreviewEmoteEventType.ANIMATION_LOOP);else{o=a,u(),i="stopped",e.SendMessage("JSBridge","StopEmote",""),n.emit(d.PreviewEmoteEventType.ANIMATION_PLAYING,{length:o}),n.emit(d.PreviewEmoteEventType.ANIMATION_END);return}n.emit(d.PreviewEmoteEventType.ANIMATION_PLAYING,{length:o})},15)},u=()=>{g!==null&&(clearInterval(g),g=null)},f=(l,y,p)=>new Promise(v=>{if(!e){v(p);return}const T=R=>{if(R.data.type==="unity-renderer"){const{type:I,payload:w}=R.data.payload;I===y&&(window.removeEventListener("message",T),v(w))}};window.addEventListener("message",T),l()});return{getLength:async()=>await f(()=>e.SendMessage("JSBridge","GetEmoteLength",""),"emoteLength",0)??0,isPlaying:async()=>f(()=>e.SendMessage("JSBridge","IsEmotePlaying",""),"isEmotePlaying",!1),goTo:async l=>{e&&(o=l,e.SendMessage("JSBridge","GoToEmote",l.toString()),n.emit(d.PreviewEmoteEventType.ANIMATION_PLAYING,{length:l}))},play:async()=>{e&&(a<=0&&(a=await f(()=>e.SendMessage("JSBridge","GetEmoteLength",""),"emoteLength",0)),i==="stopped"&&(o=0),i="playing",e.SendMessage("JSBridge","PlayEmote",""),E(),n.emit(d.PreviewEmoteEventType.ANIMATION_PLAY))},pause:async()=>{e&&(i="paused",u(),e.SendMessage("JSBridge","PauseEmote",""),n.emit(d.PreviewEmoteEventType.ANIMATION_PAUSE))},stop:async()=>{e&&(i="stopped",o=0,u(),e.SendMessage("JSBridge","StopEmote",""),n.emit(d.PreviewEmoteEventType.ANIMATION_END))},enableSound:async()=>{e&&e.SendMessage("JSBridge","EnableSound","")},disableSound:async()=>{e&&e.SendMessage("JSBridge","DisableSound","")},hasSound:async()=>f(()=>e.SendMessage("JSBridge","HasSound",""),"hasSound",!1),isSocialEmote:async()=>K(t),getSocialEmoteAnimations:async()=>!t||!K(t)?null:[{title:"Start Animation",...t.emoteDataADR74.startAnimation},...t.emoteDataADR74.outcomes.map(l=>({title:l.title,loop:l.loop,audio:l.audio,...l.clips}))],getPlayingSocialEmoteAnimation:async()=>s??null,emote:t,events:n}}function Ne(e){return{setSpringBonesParams:async(t,s)=>{e&&e.SendMessage("JSBridge",x.SET_SPRING_BONES_PARAMS,JSON.stringify({itemHash:t,params:s}))}}}const Ce={dataUrl:"/unity/Build/aang-renderer.data.br",frameworkUrl:"/unity/Build/aang-renderer.framework.js.br",codeUrl:"/unity/Build/aang-renderer.wasm.br",symbolUrl:"/unity/Build/aang-renderer.symbols.json.br"};function Me(){return Ce}async function De(e,t){let s=null;try{const r=Me();if(s=await ve(e,"/unity/Build/aang-renderer.loader.js",r.dataUrl,r.frameworkUrl,r.codeUrl,r.symbolUrl,"/emotes","Decentraland","AangRenderer","2.2.2",!0,[]),!s)throw new Error("Failed to load Unity instance");const n=t!=null&&t.itemDefinition&&de(t.itemDefinition)?t.itemDefinition:null,a=(t==null?void 0:t.socialEmote)||void 0,o=(t==null?void 0:t.emote)||null,i=Le(s),g=_e(s,n,a,o),m=Ne(s);return{scene:i,emote:g,physics:m,unity:s}}catch(r){if(console.error("Unity render failed:",r),s!=null&&s.Quit)try{s.Quit()}catch(n){console.error("Error quitting Unity instance:",n),j(n,{phase:"unityQuit"})}throw r}}const Ue=()=>Math.floor(Math.random()*159)+1,re=()=>`default${Ue()}`,Be=(e,t)=>{var s,r,n,a,o,i;return{eyes:$(t.eyes||((r=(s=e==null?void 0:e.avatar)==null?void 0:s.eyes)==null?void 0:r.color)&&G(e.avatar.eyes.color)||"#000000"),hair:$(t.hair||((a=(n=e==null?void 0:e.avatar)==null?void 0:n.hair)==null?void 0:a.color)&&G(e.avatar.hair.color)||"#000000"),skin:$(t.skin||((i=(o=e==null?void 0:e.avatar)==null?void 0:o.skin)==null?void 0:i.color)&&G(e.avatar.skin.color)||"#cc9b76")}},N=e=>e||"",X=e=>e||[],B=e=>e.replace("#","");function Z(e){const t=new URL(window.location.href);Object.entries(e).forEach(([s,r])=>{t.searchParams.delete(s),Array.isArray(r)?r.forEach(n=>{n!==""&&t.searchParams.append(s,n)}):r!==""&&t.searchParams.set(s,r)}),window.history.replaceState({},"",t.toString())}function ke(){const{options:e,overrideSources:t}=te(),[s,r]=c.useState(null),[n,a]=c.useState(!0),[o,i]=c.useState(null),g=c.useRef(null),m=c.useRef(e),S=c.useRef(!0);return c.useEffect(()=>{const E=JSON.stringify(e),u=JSON.stringify(m.current);if(!S.current&&E===u)return;S.current=!1,m.current=e,(async()=>{var l,y;try{a(!0),i(null);const p=e.peerUrl||W.get("PEER_URL"),v=e.marketplaceServerUrl||e.nftServerUrl||W.get("MARKETPLACE_SERVER_URL");let T=d.PreviewType.WEARABLE,R={color:e.background||"#4b4852",transparent:e.disableBackground===!0};const I=ce(e.profile);let w=I==null?void 0:I.value;w==="default"&&(w=re());const P=w&&I?I.type==="address"?await ue(w,p):await Se(w,p):null,A=e.bodyShape||((l=P==null?void 0:P.avatar)==null?void 0:l.bodyShape)||d.BodyShape.MALE;let h=null;if(e.contractAddress&&(h=await me({contractAddress:e.contractAddress,tokenId:e.tokenId,itemId:e.itemId,peerUrl:p,marketplaceServerUrl:v}),h&&ge(h))){R={...R,image:h.thumbnail};const D=Ee(h);ye(D)&&(T=d.PreviewType.TEXTURE)}const{eyes:b,hair:H,skin:Y}=Be(P,{eyes:e.eyes,hair:e.hair,skin:e.skin}),M=e.unityMode||null,ne=e.camera&&Object.values(d.PreviewCamera).includes(e.camera)?e.camera:d.PreviewCamera.INTERACTIVE,Q=e.projection&&Object.values(d.PreviewProjection).includes(e.projection)?e.projection:d.PreviewProjection.PERSPECTIVE,O=e.disableDefaultEmotes?null:e.emote&&Object.values(d.PreviewEmote).includes(e.emote)?e.emote:d.PreviewEmote.IDLE,J={background:R,bodyShape:A,mode:M,projection:Q,type:T,base64:((y=e.base64s)==null?void 0:y[0])||null,contract:e.contractAddress||null,disableLoader:e.disableLoader||!1,emote:(O==null?void 0:O.toString())||null,eyeColor:b.replace("#",""),hairColor:H.replace("#",""),item:e.itemId||null,profile:w||null,skinColor:Y.replace("#",""),token:e.tokenId||null,urn:e.urns||null,showAnimationReference:null,itemDefinition:h,socialEmote:e.socialEmote||null},se=JSON.stringify(J),ae=JSON.stringify(g.current);if(se!==ae){if(g.current=J,Object.keys(t).length===0){const D=X(e.urns),q=X(e.base64s);if(M===d.PreviewUnityMode.CONFIG){const z={mode:N(M||"")};Z(z)}else{const z={background:R.transparent?"":B(R.color),disableLoader:e.disableLoader?"true":"",profile:N(w||""),bodyShape:N(A||""),eyeColor:B(b||""),hairColor:B(H||""),skinColor:B(Y||""),mode:N(M||""),camera:ne,projection:Q,emote:N((O==null?void 0:O.toString())||""),urn:D.length>0?D:[""],base64:q.length>0?q:[""]};Z(z)}}r(J)}a(!1)}catch(p){console.error("[useUnityConfig] Failed to load config:",p),i(p instanceof Error?p.message:"Failed to load config"),a(!1)}})()},[e,t]),[s,n,o]}const je="unity-renderer",xe="unity-canvas",ee=1,Je="Failed to load Unity";var ze=(e=>(e.LOADED="loaded",e.ERROR="error",e.SCREENSHOT="screenshot",e.CUSTOMIZATION_DONE="customization-done",e.CUSTOMIZATION_STEP="avatar-customization-step",e.ELEMENT_BOUNDS="element-bounds",e))(ze||{});const $e="get_element_bounds",Ge="element_bounds_response",Fe=(e,t,s,r)=>{const[n,a]=c.useState({isLoaded:!1,isInitialized:!1,error:null}),o=c.useRef(null),i=c.useCallback(m=>{if(m.data.type===je){const{type:S,payload:E}=m.data.payload;S==="loaded"&&(E===!0||E==="true")?(a(u=>({...u,isLoaded:!0,isInitialized:!0})),d.sendMessage(L(),d.PreviewMessageType.LOAD,{renderer:d.PreviewRenderer.UNITY}),t.current&&t.current.emote.play()):S==="customization-done"?d.sendMessage(L(),d.PreviewMessageType.CONTROLLER_RESPONSE,{id:"customization-done",ok:!0,result:JSON.parse(m.data.payload.payload)}):S==="avatar-customization-step"?d.sendMessage(L(),d.PreviewMessageType.CONTROLLER_RESPONSE,{id:"avatar-customization-step",ok:!0,result:{step:m.data.payload.payload}}):S==="element-bounds"?d.sendMessage(L(),Ge,E):S==="error"&&(j(new Error(E),{component:"UnityPreview",phase:"unityMessage"}),a(u=>({...u,error:E})),d.sendMessage(L(),d.PreviewMessageType.ERROR,{message:"Error loading the wearable. Please try again."}))}},[]),g=c.useCallback(async m=>{if(!(!e.canvas.current||e.isInitializing.current||e.unityInstance.current)){e.isInitializing.current=!0,a(S=>({...S,isLoaded:!1,error:null}));try{const{unity:S,...E}=await De(e.canvas.current,m);e.unityInstance.current=S,t.current=E,o.current&&o.current(),o.current=Re(t.current),a(u=>({...u,isInitialized:!0}))}catch(S){const E=S instanceof Error?S.message:Je;console.error("Unity init failed:",S),j(S,{component:"UnityPreview",phase:"initializeUnity"}),a(u=>({...u,error:E})),d.sendMessage(L(),d.PreviewMessageType.ERROR,{message:E})}finally{e.isInitializing.current=!1}}},[e,t]);return c.useEffect(()=>{n.isInitialized||r||!s||g(s)},[s,r,n.isInitialized,g]),c.useEffect(()=>()=>{o.current&&o.current()},[]),c.useEffect(()=>{if(s)return window.addEventListener("message",i,!1),()=>{window.removeEventListener("message",i,!1)}},[s,i]),n},Ve=e=>{const[t,s]=c.useState({pixelRatio:window.devicePixelRatio||ee,is3D:!0,backgroundImage:""});return c.useEffect(()=>{const r=()=>{s(a=>({...a,pixelRatio:window.devicePixelRatio||ee}))},n=window.matchMedia(`(resolution: ${t.pixelRatio}dppx)`);return n.addEventListener("change",r),()=>{n.removeEventListener("change",r)}},[t.pixelRatio]),c.useEffect(()=>{e&&s(r=>({...r,backgroundImage:e.background.image||"",is3D:e.type!==d.PreviewType.TEXTURE}))},[e]),t},He=(e,t,s,r,n)=>{const a=c.useMemo(()=>{const o={};for(const i of Object.keys(n))n[i]&&r[i]!==void 0&&(o[i]=r[i]);return o},[n,r]);c.useEffect(()=>{if(!(!s.isInitialized||!s.isLoaded||!e.current)){if(a.profile==="default"){const o=t.current.profile;a.profile=o!=null&&o.match(/^default\d+$/)?o:re()}Object.keys(a).length>0&&(Ae(e.current,a,n),t.current=a)}},[s.isInitialized,s.isLoaded,a,n,e,t])},Ye=()=>{const{width:e=window.innerWidth,height:t=window.innerHeight}=fe(),s=c.useRef(null),r=c.useRef(null),n=c.useRef(!1),a=c.useRef({}),o=pe(),[i,g,m]=ke(),{options:S,overrideSources:E}=te(),u=c.useMemo(()=>({canvas:s,unityInstance:r,isInitializing:n,lastSentOverrides:a}),[]);we(P=>{var A,h;if(((A=P.data)==null?void 0:A.type)===$e&&r.current){const b=(h=P.data.payload)==null?void 0:h.elementName;b&&C(r.current,x.GET_ELEMENT_BOUNDS,b)}});const f=Fe(u,o,i,g),l=Ve(i);He(u.unityInstance,u.lastSentOverrides,f,S,E),he();const y=c.useMemo(()=>{const P=f.error||m,A=!f.isLoaded&&!P,h=!!l.backgroundImage&&!l.is3D&&!A,b=l.is3D&&!A;return{error:P,isLoading:A,showImage:h,showCanvas:b}},[f.error,f.isLoaded,m,l.backgroundImage,l.is3D]),p=c.useMemo(()=>({opacity:1,backgroundColor:!(i!=null&&i.background.transparent)&&(i==null?void 0:i.type)===d.PreviewType.TEXTURE?i.background.color:void 0}),[i]),v=c.useMemo(()=>({width:`${e}px`,height:`${t}px`}),[e,t]),T=c.useMemo(()=>({width:Math.round(e*l.pixelRatio),height:Math.round(t*l.pixelRatio)}),[e,t,l.pixelRatio]),R=c.useMemo(()=>F("Preview",{"is-loading":y.isLoading,"is-loaded":f.isLoaded,"is-3d":l.is3D,"has-error":!!y.error}),[y.isLoading,f.isLoaded,l.is3D,y.error]),I=c.useMemo(()=>F("thumbnail",{"is-visible":y.showImage}),[y.showImage]),w=c.useMemo(()=>F({"is-visible":y.showCanvas}),[y.showCanvas]);return U.jsxs("div",{className:R,style:p,children:[U.jsx("img",{src:l.backgroundImage,className:I,alt:"preview"}),U.jsx("canvas",{ref:u.canvas,id:xe,className:w,width:T.width,height:T.height,style:v}),y.error&&U.jsx("div",{className:"error",children:y.error})]})},We=oe.memo(Ye);export{ze as UnityMessageType,We as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as Mc,e as fm,g as fC}from"./index-D4VHDB8W.js";import{A as Pa,a as pC,b as dC,c as mC,d as hC,e as vC,f as CC,g as gC,h as bC,i as yC,j as EC,k as MC,l as OC,m as LC,n as PC,o as SC,p as xC,q as TC,r as zC,s as AC,t as DC,u as RC,v as NC,w as IC,x as gp,y as HC,z as VC,B as BC,C as UC,D as jC,E as GC,F as FC,G as WC,H as KC,I as YC,J as ZC,K as XC,L as QC,M as $C,N as JC,O as wC,P as kC,Q as qC,R as _C,S as eg,T as tg,U as ng,V as rg,W as ag,X as og,Y as ig,Z as sg,_ as lg,$ as cg,a0 as ug,a1 as fg,a2 as pg,a3 as dg,a4 as mg,a5 as hg,a6 as vg,a7 as Cg,a8 as gg,a9 as bg,aa as yg,ab as Eg,ac as Mg,ad as Og,ae as Lg,af as Pg,ag as Sg,ah as xg,ai as Tg,aj as zg,ak as Ag,al as Dg,am as Rg,an as Ng,ao as Ig,ap as Hg,aq as Vg,ar as Bg,as as Ug,at as jg,au as Gg,av as Fg,aw as Wg,ax as Kg,ay as Yg,az as Zg,aA as Xg,aB as Qg,aC as $g,aD as Jg,aE as wg,aF as kg,aG as qg,aH as _g,aI as Jn,aJ as eb,aK as bp,aL as tb,aM as nb,aN as rb,aO as ab,aP as ob,aQ as ib,aR as sb,aS as lb,aT as cb,aU as is,aV as ub,aW as fb,aX as pb,aY as db,aZ as mb,a_ as hb,a$ as vb,b0 as Cb,b1 as gb,b2 as bb,b3 as yb,b4 as Eb,b5 as Mb,b6 as Ob,b7 as Lb,b8 as Pb,b9 as Sb,ba as xb,bb as Tb,bc as zb,bd as Ab,be as Db,bf as Rb,bg as Nb,bh as Ib,bi as Hb,bj as Vb,bk as Bb,bl as Ub,bm as jb,bn as Gb,bo as Fb,bp as Wb,bq as Kb,br as Yb,bs as Zb,bt as Xb,bu as Qb,bv as $b,bw as Jb,bx as wb,by as kb,bz as qb,bA as _b,bB as ey,bC as ty,bD as ny,bE as ry,bF as dm,bG as ay,bH as oy,bI as iy,bJ as sy,bK as ly,bL as cy,bM as uy,bN as fy,bO as py,bP as dy,bQ as my,bR as hy,bS as vy,bT as Cy,bU as gy,bV as by,bW as mm,bX as yy,bY as Ey,bZ as My,b_ as Oy,b$ as Ly,c0 as Py,c1 as hm,c2 as Sy,c3 as xy,c4 as Ty,c5 as zy,c6 as Ay,c7 as vm,c8 as Dy,c9 as Ry,ca as Ny,cb as Iy,cc as Hy,cd as Vy,ce as By,cf as Uy,cg as jy,ch as Gy,ci as Fy,cj as Wy,ck as Ky,cl as Yy,cm as Zy,cn as Xy,co as Qy,cp as $y,cq as Jy,cr as wy,cs as ky,ct as qy,cu as _y,cv as eE,cw as tE,cx as nE,cy as rE,cz as aE,cA as oE,cB as iE,cC as sE,cD as lE,cE,cF as uE,cG as fE,cH as pE,cI as dE,cJ as mE,cK as hE,cL as vE,cM as CE,cN as gE,cO as bE,cP as yE,cQ as EE,cR as ME,cS as OE,cT as LE,cU as PE,cV as SE,cW as xE,cX as TE,cY as zE,cZ as AE,c_ as DE,c$ as RE,d0 as NE,d1 as IE,d2 as HE,d3 as VE,d4 as BE,d5 as UE,d6 as jE,d7 as GE,d8 as FE,d9 as WE,da as KE,db as YE,dc as ZE,dd as XE,de as QE,df as $E,dg as JE,dh as wE,di as kE,dj as qE,dk as _E,dl as eM,dm as tM,dn as nM,dp as rM,dq as aM,dr as oM,ds as Q9,dt as iM,du as sM,dv as lM,dw as cM,dx as uM,dy as fM,dz as pM,dA as dM,dB as mM,dC as hM,dD as vM,dE as CM,dF as gM,dG as bM,dH as yM,dI as EM,dJ as MM,dK as OM,dL as LM,dM as PM,dN as SM,dO as xM,dP as TM,dQ as bc,dR as zM,dS as AM,dT as DM,dU as RM,dV as NM,dW as yp,dX as IM,dY as Ep,dZ as $n,d_ as HM,d$ as VM,e0 as BM,e1 as Qo,e2 as UM,e3 as jM,e4 as A4,e5 as GM,e6 as FM,e7 as WM,e8 as KM,e9 as YM,ea as ZM,eb as XM,ec as QM,ed as $M,ee as JM,ef as $9,eg as wM,eh as kM,ei as qM,ej as _M,ek as Cm,el as eO,em as tO,en as nO,eo as rO,ep as aO,eq as oO,er as iO,es as sO,et as lO,eu as cO,ev as uO,ew as fO,ex as pO,ey as dO,ez as mO,eA as hO,eB as vO,eC as CO,eD as gO,eE as bO,eF as yO,eG as EO,eH as MO,eI as OO,eJ as LO,eK as PO,eL as SO,eM as xO,eN as TO,eO as zO,eP as AO,eQ as DO,eR as RO,eS as NO,eT as IO,eU as HO,eV as VO,eW as BO,eX as Ec,eY as UO,eZ as jO,e_ as gm,e$ as GO,f0 as FO,f1 as WO,f2 as KO,f3 as YO,f4 as ZO,f5 as XO,f6 as QO,f7 as $O,f8 as JO,f9 as wO,fa as kO,fb as qO,fc as _O,fd as eL,fe as tL,ff as nL,fg as rL,fh as aL,fi as oL,fj as iL,fk as sL,fl as lL,fm as cL,fn as uL,fo as fL,fp as pL,fq as dL,fr as mL,fs as hL,ft as vL,fu as CL,fv as gL,fw as bL,fx as yL,fy as EL,fz as ML,fA as OL,fB as LL,fC as PL,fD as SL,fE as xL,fF as TL,fG as zL,fH as AL,fI as DL,fJ as RL,fK as NL,fL as IL,fM as HL,fN as VL,fO as BL,fP as UL,fQ as jL,fR as GL,fS as FL,fT as WL,fU as KL,fV as YL,fW as bm,fX as ZL,fY as XL,fZ as QL,f_ as $L,f$ as JL,g0 as wL,g1 as kL,g2 as qL,g3 as _L,g4 as eP,g5 as tP,g6 as nP,g7 as rP,g8 as ym,g9 as aP,ga as oP,gb as iP,gc as sP,gd as lP,ge as cP,gf as uP,gg as wt,gh as fP,gi as pP,gj as dP,gk as mP,gl as Em,gm as hP,gn as vP,go as CP,gp as gP,gq as bP,gr as yP,gs as EP,gt as MP,gu as OP,gv as LP,gw as PP,gx as SP,gy as xP,gz as TP,gA as zP,gB as AP,gC as DP,gD as RP,gE as NP,gF as IP,gG as HP,gH as VP,gI as BP,gJ as UP,gK as jP,gL as GP,gM as FP,gN as WP,gO as KP,gP as YP,gQ as ZP,gR as XP,gS as ss,gT as QP,gU as $P,gV as Mm,gW as JP,gX as wP,gY as kP,gZ as qP,g_ as _P,g$ as eS,h0 as tS,h1 as nS,h2 as rS,h3 as aS,h4 as oS,h5 as iS,h6 as sS,h7 as lS,h8 as cS,h9 as uS,ha as fS,hb as pS,hc as dS,hd as mS,he as hS,hf as vS,hg as CS,hh as Om,hi as gS,hj as bS,hk as yS,hl as ES,hm as MS,hn as OS,ho as LS,hp as PS,hq as SS,hr as xS,hs as TS,ht as zS,hu as AS,hv as DS,hw as RS,hx as NS,hy as IS,hz as HS,hA as VS,hB as BS,hC as US,hD as jS,hE as GS,hF as FS,hG as WS,hH as KS,hI as YS,hJ as ZS,hK as XS,hL as QS,hM as $S,hN as JS,hO as wS,hP as kS,hQ as qS,hR as k9,hS as _S,hT as ex,hU as tx,hV as nx,hW as rx,hX as ax,hY as ox,hZ as ix,h_ as sx,h$ as lx,i0 as cx,i1 as ux,i2 as fx,i3 as px,i4 as dx,i5 as mx,i6 as hx,i7 as vx,i8 as Cx,i9 as gx,ia as bx,ib as yx,ic as Ex,id as Mx,ie as Ox,ig as Lx,ih as Px,ii as Sx,ij as xx,ik as hn,il as Tx,im as zx,io as Ax,ip as Dx,iq as Rx,ir as Mp,is as Nx,it as Ix,iu as Hx,iv as Vx,iw as Bx,ix as Ux,iy as T4,iz as jx,iA as Gx,iB as Fx,iC as Wx,iD as ut,iE as Kx,iF as Yx,iG as Zx,iH as Xx,iI as Qx,iJ as $x,iK as Jx,iL as Xo,iM as wx,iN as kx,iO as qx,iP as _x,iQ as eT,iR as tT,iS as nT,iT as rT,iU as aT,iV as oT,iW as iT,iX as sT,iY as lT,iZ as cT,i_ as pr,i$ as Ct,j0 as i1,j1 as uT,j2 as fT,j3 as $e,j4 as pT,j5 as dT,j6 as mT,j7 as hT,j8 as vT,j9 as CT,ja as Lm,jb as gT,jc as bT,jd as yT,je as ET,jf as MT,jg as OT,jh as LT,ji as PT,jj as ST,jk as xT,jl as TT,jm as zT,jn as AT,jo as DT,jp as RT,jq as NT,jr as IT,js as HT,jt as VT,ju as BT,jv as UT,jw as jT,jx as GT,jy as FT,jz as WT,jA as KT,jB as YT,jC as ZT,jD as XT,jE as QT,jF as $T,jG as JT,jH as wT,jI as kT,jJ as qT,jK as _T,jL as ez,jM as tz,jN as nz,jO as rz,jP as az,jQ as oz,jR as iz,jS as sz,jT as lz,jU as cz,jV as uz,jW as fz,jX as pz,jY as dz,jZ as mz,j_ as hz,j$ as vz,k0 as Cz,k1 as gz,k2 as bz,k3 as yz,k4 as Ez,k5 as Mz,k6 as Oz,k7 as Lz,k8 as Pz,k9 as Sz,ka as xz,kb as Tz,kc as zz,kd as Az,ke as Dz,kf as Rz,kg as Nz,kh as Iz,ki as Hz,kj as Vz,kk as Bz,kl as Uz,km as jz,kn as Gz,ko as Fz,kp as Wz,kq as Kz,kr as Yz,ks as Zz,kt as Xz,ku as Qz,kv as $z,kw as Jz,kx as wz,ky as kz,kz as qz,kA as _z,kB as eA,kC as tA,kD as nA,kE as rA,kF as aA,kG as oA,kH as iA,kI as sA,kJ as lA,kK as cA,kL as uA,kM as fA,kN as pA,kO as dA,kP as mA,kQ as hA,kR as vA,kS as CA,kT as gA,kU as bA,kV as yA,kW as EA,kX as MA,kY as OA,kZ as LA,k_ as PA,k$ as SA,l0 as xA,l1 as TA,l2 as zA,l3 as AA,l4 as DA,l5 as RA,l6 as NA,l7 as IA,l8 as HA,l9 as VA,la as BA,lb as UA,lc as jA,ld as GA,le as FA,lf as WA,lg as KA,lh as YA,li as ZA,lj as XA,lk as QA,ll as $A,lm as JA,ln as wA,lo as kA,lp as qA,lq as _A,lr as eD,ls as tD,lt as nD,lu as rD,lv as aD,lw as oD,lx as iD,ly as sD,lz as lD,lA as cD,lB as uD,lC as fD,lD as pD,lE as dD,lF as mD,lG as hD,lH as vD,lI as CD,lJ as gD,lK as bD,lL as yD,lM as ED,lN as MD,lO as OD,lP as LD,lQ as PD,lR as SD,lS as xD,lT as TD,lU as zD,lV as AD,lW as DD,lX as RD,lY as ND,lZ as ID,l_ as HD,l$ as VD,m0 as BD,m1 as UD,m2 as jD,m3 as GD,m4 as FD,m5 as WD,m6 as KD,m7 as YD,m8 as ZD,m9 as XD,ma as QD,mb as $D,mc as JD,md as wD,me as kD,mf as qD,mg as _D,mh as eR,mi as tR,mj as nR,mk as rR,ml as aR,mm as oR,mn as iR,mo as sR,mp as lR,mq as cR,mr as uR,ms as fR,mt as pR,mu as dR,mv as mR,mw as hR,mx as vR}from"./Preview-CGqOUw_I.js";function CR(k,O){for(var N=0;N<O.length;N++){const V=O[N];if(typeof V!="string"&&!Array.isArray(V)){for(const W in V)if(W!=="default"&&!(W in k)){const j=Object.getOwnPropertyDescriptor(V,W);j&&Object.defineProperty(k,W,j.get?j:{enumerable:!0,get:()=>V[W]})}}}return Object.freeze(Object.defineProperty(k,Symbol.toStringTag,{value:"Module"}))}var gR=function(){function k(){this.enableBlending=!1,this.blendingSpeed=.01,this.loopMode=Pa.ANIMATIONLOOPMODE_CYCLE}return k}();const bR=Object.freeze(Object.defineProperty({__proto__:null,AbstractActionManager:pC,AbstractAssetTask:dC,AbstractMesh:mC,AbstractScene:hC,Action:vC,ActionEvent:CC,ActionManager:gC,AddBlock:bC,AdvancedTimer:yC,AlphaState:EC,AmmoJSPlugin:MC,AnaglyphArcRotateCamera:OC,AnaglyphFreeCamera:LC,AnaglyphGamepadCamera:PC,AnaglyphPostProcess:SC,AnaglyphUniversalCamera:xC,Analyser:TC,AndOrNotEvaluator:zC,Angle:AC,Animatable:DC,get AnimatedInputBlockTypes(){return RC},Animation:Pa,AnimationEvent:NC,AnimationGroup:IC,get AnimationKeyInterpolation(){return gp},AnimationPropertiesOverride:gR,AnimationRange:HC,AnisotropyBlock:VC,Arc2:BC,ArcFollowCamera:UC,ArcRotateCamera:jC,ArcRotateCameraGamepadInput:GC,ArcRotateCameraInputsManager:FC,ArcRotateCameraKeyboardMoveInput:WC,ArcRotateCameraMouseWheelInput:KC,ArcRotateCameraPointersInput:YC,ArcRotateCameraVRDeviceOrientationInput:ZC,ArcTan2Block:XC,AssetContainer:QC,get AssetTaskState(){return $C},AssetsManager:JC,AssetsProgressEvent:wC,AsyncLoop:kC,AttachToBoxBehavior:qC,AudioEngine:_C,AudioSceneComponent:eg,AutoRotationBehavior:tg,AxesViewer:ng,Axis:rg,AxisDragGizmo:ag,AxisScaleGizmo:og,BRDFTextureTools:ig,BabylonFileLoaderConfiguration:sg,BackEase:lg,BackgroundMaterial:cg,BaseParticleSystem:ug,BaseTexture:fg,BasisTools:pg,BasisTranscodeConfiguration:dg,BezierCurve:mg,BezierCurveEase:hg,BinaryFileAssetTask:vg,BlackAndWhitePostProcess:Cg,BloomEffect:gg,BloomMergePostProcess:bg,BlurPostProcess:yg,Bone:Eg,BoneAxesViewer:Mg,BoneIKController:Og,BoneLookController:Lg,BonesBlock:Pg,BounceEase:Sg,BouncingBehavior:xg,BoundingBox:Tg,BoundingBoxGizmo:zg,BoundingBoxRenderer:Ag,BoundingInfo:Dg,BoundingSphere:Rg,BoxBuilder:Ng,BoxParticleEmitter:Ig,Buffer:Hg,CSG:Vg,Camera:Bg,CameraGizmo:Ug,CameraInputTypes:jg,CameraInputsManager:Gg,CannonJSPlugin:Fg,CanvasGenerator:Wg,CapsuleBuilder:Kg,CascadedShadowGenerator:Yg,ChromaticAberrationPostProcess:Zg,CircleEase:Xg,CircleOfConfusionPostProcess:Qg,ClampBlock:$g,ClearCoatBlock:Jg,ClipboardEventTypes:wg,ClipboardInfo:kg,CloudPoint:qg,Collider:_g,Color3:Jn,Color3Gradient:eb,Color4:bp,ColorCorrectionPostProcess:tb,ColorCurves:nb,ColorGradient:rb,ColorGradingTexture:ab,ColorMergerBlock:ob,ColorSplitterBlock:ib,CombineAction:sb,Condition:lb,ConeParticleEmitter:cb,Constants:is,ContainerAssetTask:ub,ConvolutionPostProcess:fb,get Coordinate(){return pb},CopyTools:db,CrossBlock:mb,CubeMapToSphericalPolynomialTools:hb,CubeTexture:vb,CubeTextureAssetTask:Cb,CubicEase:gb,CurrentScreenBlock:bb,Curve3:yb,CustomOptimization:Eb,CustomParticleEmitter:Mb,CustomProceduralTexture:Ob,CylinderBuilder:Lb,CylinderDirectedParticleEmitter:Pb,CylinderParticleEmitter:Sb,DDSTools:xb,DataBuffer:Tb,DataReader:zb,DataStorage:Ab,Database:Db,DaydreamController:Rb,DebugLayer:Nb,get DebugLayerTab(){return Ib},DecalBuilder:Hb,DeepCopier:Vb,DefaultCollisionCoordinator:Bb,DefaultLoadingScreen:Ub,DefaultRenderingPipeline:jb,Deferred:Gb,DepthCullingState:Fb,DepthOfFieldBlurPostProcess:Wb,DepthOfFieldEffect:Kb,get DepthOfFieldEffectBlurLevel(){return Yb},DepthOfFieldMergePostProcess:Zb,DepthOfFieldMergePostProcessOptions:Xb,DepthReducer:Qb,DepthRenderer:$b,DepthRendererSceneComponent:Jb,DepthSortedParticle:wb,DerivativeBlock:kb,DesaturateBlock:qb,DeviceInputSystem:_b,DeviceOrientationCamera:ey,DeviceSource:ty,DeviceSourceManager:ny,get DeviceType(){return ry},DirectionalLight:dm,DiscBuilder:ay,DiscardBlock:oy,DisplayPassPostProcess:iy,DistanceBlock:sy,DistanceJoint:ly,DivideBlock:cy,DoNothingAction:uy,DotBlock:fy,DracoCompression:py,get DualShockButton(){return dy},get DualShockDpad(){return my},get DualShockInput(){return hy},DualShockPad:vy,DynamicTexture:Cy,EasingFunction:gy,EdgesRenderer:by,Effect:mm,EffectFallbacks:yy,EffectLayer:Ey,EffectLayerSceneComponent:My,EffectRenderer:Oy,EffectWrapper:Ly,ElasticEase:Py,Engine:hm,EngineInstrumentation:Sy,EngineStore:xy,EngineView:Ty,EnvironmentHelper:zy,EnvironmentTextureTools:Ay,Epsilon:vm,EquiRectangularCubeTexture:Dy,EquiRectangularCubeTextureAssetTask:Ry,EventState:Ny,ExecuteCodeAction:Iy,ExponentialEase:Hy,ExtractHighlightsPostProcess:Vy,FactorGradient:By,FadeInOutBehavior:Uy,FileTools:jy,FilesInput:Gy,FilesInputStore:Fy,FilterPostProcess:Wy,FlyCamera:Ky,FlyCameraInputsManager:Yy,FlyCameraKeyboardInput:Zy,FlyCameraMouseInput:Xy,FogBlock:Qy,FollowCamera:$y,FollowCameraInputsManager:Jy,FollowCameraKeyboardMoveInput:wy,FollowCameraMouseWheelInput:ky,FollowCameraPointersInput:qy,FragCoordBlock:_y,FragmentOutputBlock:eE,FramingBehavior:tE,FreeCamera:nE,FreeCameraDeviceOrientationInput:rE,FreeCameraGamepadInput:aE,FreeCameraInputsManager:oE,FreeCameraKeyboardMoveInput:iE,FreeCameraMouseInput:sE,FreeCameraMouseWheelInput:lE,FreeCameraTouchInput:cE,FreeCameraVirtualJoystickInput:uE,FresnelBlock:fE,FresnelParameters:pE,FrontFacingBlock:dE,Frustum:mE,FxaaPostProcess:hE,GPUParticleSystem:vE,Gamepad:CE,GamepadCamera:gE,GamepadManager:bE,GamepadSystemSceneComponent:yE,GearVRController:EE,GenericController:ME,GenericPad:OE,Geometry:LE,GeometryBufferRenderer:PE,GeometryBufferRendererSceneComponent:SE,Gizmo:xE,GizmoManager:TE,GlowLayer:zE,GradientBlock:AE,GradientBlockColorStep:DE,GradientHelper:RE,GrainPostProcess:NE,GroundBuilder:IE,GroundMesh:HE,HDRCubeTexture:VE,HDRCubeTextureAssetTask:BE,HDRFiltering:UE,HDRTools:jE,HardwareScalingOptimization:GE,HemisphereBuilder:FE,HemisphericLight:WE,HemisphericParticleEmitter:KE,HighlightLayer:YE,HighlightsPostProcess:ZE,Hinge2Joint:XE,HingeJoint:QE,HtmlElementTexture:$E,IWebXRControllerPhysicsOptions:JE,IcoSphereBuilder:wE,ImageAssetTask:kE,ImageProcessingBlock:qE,ImageProcessingConfiguration:_E,ImageProcessingConfigurationDefines:eM,ImageProcessingPostProcess:tM,IncrementValueAction:nM,InputBlock:rM,get InspectableType(){return aM},InstancedLinesMesh:oM,InstancedMesh:Q9,InstancesBlock:iM,InstantiatedEntries:sM,InternalTexture:lM,get InternalTextureSource(){return cM},InterpolateValueAction:uM,IntersectionInfo:fM,get JoystickAxis(){return pM},KeepAssets:dM,KeyboardEventTypes:mM,KeyboardInfo:hM,KeyboardInfoPre:vM,KhronosTextureContainer:CM,KhronosTextureContainer2:gM,LatheBuilder:bM,Layer:yM,LayerSceneComponent:EM,LengthBlock:MM,LensFlare:OM,LensFlareSystem:LM,LensFlareSystemSceneComponent:PM,LensFlaresOptimization:SM,LensRenderingPipeline:xM,LerpBlock:TM,Light:bc,LightBlock:zM,LightGizmo:AM,LightInformationBlock:DM,LineEdgesRenderer:RM,LinesBuilder:NM,LinesMesh:yp,LoadFileError:IM,Logger:Ep,Material:$n,MaterialDefines:HM,MaterialFlags:VM,MaterialHelper:BM,Matrix:Qo,MaxBlock:UM,MergeMeshesOptimization:jM,Mesh:A4,MeshAssetTask:GM,MeshBuilder:FM,MeshExploder:WM,MeshLODLevel:KM,MeshParticleEmitter:YM,MinBlock:ZM,MinMaxReducer:XM,MirrorTexture:QM,ModBlock:$M,ModelShape:JM,MorphTarget:$9,MorphTargetManager:wM,MorphTargetsBlock:kM,MotionBlurPostProcess:qM,MotorEnabledJoint:_M,MultiMaterial:Cm,MultiObserver:eO,MultiPointerScaleBehavior:tO,MultiRenderTarget:nO,MultiplyBlock:rO,NLerpBlock:aO,NativeEngine:oO,NegateBlock:iO,Node:sO,NodeMaterial:lO,NodeMaterialBlock:cO,get NodeMaterialBlockConnectionPointMode(){return uO},get NodeMaterialBlockConnectionPointTypes(){return fO},get NodeMaterialBlockTargets(){return pO},NodeMaterialConnectionPoint:dO,get NodeMaterialConnectionPointCompatibilityStates(){return mO},get NodeMaterialConnectionPointDirection(){return hO},NodeMaterialDefines:vO,get NodeMaterialModes(){return CO},NodeMaterialOptimizer:gO,get NodeMaterialSystemValues(){return bO},NoiseProceduralTexture:yO,NormalBlendBlock:EO,NormalizeBlock:MO,NullEngine:OO,NullEngineOptions:LO,Observable:PO,Observer:SO,Octree:xO,OctreeBlock:TO,OctreeSceneComponent:zO,OculusTouchController:AO,OimoJSPlugin:DO,OnAfterEnteringVRObservableEvent:RO,OneMinusBlock:NO,get Orientation(){return IO},OutlineRenderer:HO,PBRBaseMaterial:VO,PBRBaseSimpleMaterial:BO,PBRMaterial:Ec,PBRMaterialDefines:UO,PBRMetallicRoughnessBlock:jO,PBRMetallicRoughnessMaterial:gm,PBRSpecularGlossinessMaterial:GO,PanoramaToCubeMapTools:FO,Particle:WO,ParticleBlendMultiplyBlock:KO,ParticleHelper:YO,ParticleRampGradientBlock:ZO,ParticleSystem:XO,ParticleSystemSet:QO,ParticleTextureBlock:$O,ParticlesOptimization:JO,PassCubePostProcess:wO,PassPostProcess:kO,Path2:qO,Path3D:_O,PerfCounter:eL,PerformanceConfigurator:tL,PerformanceMonitor:nL,PerturbNormalBlock:rL,PhotoDome:aL,PhysicsEngine:oL,PhysicsEngineSceneComponent:iL,PhysicsHelper:sL,PhysicsImpostor:lL,PhysicsJoint:cL,PhysicsRadialExplosionEventOptions:uL,get PhysicsRadialImpulseFalloff(){return fL},PhysicsUpdraftEventOptions:pL,get PhysicsUpdraftMode(){return dL},PhysicsViewer:mL,PhysicsVortexEventOptions:hL,PickingInfo:vL,PivotTools:CL,Plane:gL,PlaneBuilder:bL,PlaneDragGizmo:yL,PlaneRotationGizmo:EL,PlayAnimationAction:ML,PlaySoundAction:OL,get PointColor(){return LL},PointLight:PL,PointParticleEmitter:SL,PointerDragBehavior:xL,PointerEventTypes:TL,PointerInfo:zL,PointerInfoBase:AL,PointerInfoPre:DL,get PointerInput(){return RL},PointsCloudSystem:NL,PointsGroup:IL,Polygon:HL,PolygonBuilder:VL,PolygonMeshBuilder:BL,PolyhedronBuilder:UL,PoseEnabledController:jL,PoseEnabledControllerHelper:GL,get PoseEnabledControllerType(){return FL},PositionGizmo:WL,PositionNormalTextureVertex:KL,PositionNormalVertex:YL,PostProcess:bm,PostProcessManager:ZL,PostProcessRenderEffect:XL,PostProcessRenderPipeline:QL,PostProcessRenderPipelineManager:$L,PostProcessRenderPipelineManagerSceneComponent:JL,PostProcessesOptimization:wL,PosterizeBlock:kL,PowBlock:qL,PowerEase:_L,PrePassRenderer:eP,PrePassRendererSceneComponent:tP,PrecisionDate:nP,PredicateCondition:rP,ProceduralTexture:ym,ProceduralTextureSceneComponent:aP,PromisePolyfill:oP,get PropertyTypeForEdition(){return iP},PushMaterial:sP,QuadraticEase:lP,QuadraticErrorSimplification:cP,QuarticEase:uP,Quaternion:wt,QuinticEase:fP,RGBDTextureTools:pP,RandomNumberBlock:dP,RawCubeTexture:mP,RawTexture:Em,RawTexture2DArray:hP,RawTexture3D:vP,Ray:CP,RayHelper:gP,ReadFileError:bP,RecastJSCrowd:yP,RecastJSPlugin:EP,ReciprocalBlock:MP,ReflectBlock:OP,ReflectionBlock:LP,ReflectionProbe:PP,ReflectionTextureBlock:SP,RefractBlock:xP,RefractionBlock:TP,RefractionPostProcess:zP,RefractionTexture:AP,RemapBlock:DP,RenderTargetTexture:RP,RenderTargetsOptimization:NP,RenderingGroup:IP,RenderingGroupInfo:HP,RenderingManager:VP,ReplaceColorBlock:BP,RequestFileError:UP,RetryStrategy:jP,RibbonBuilder:GP,RollingAverage:FP,Rotate2dBlock:WP,RotationGizmo:KP,RuntimeAnimation:YP,SSAO2RenderingPipeline:ZP,SSAORenderingPipeline:XP,Scalar:ss,ScaleBlock:QP,ScaleGizmo:$P,Scene:Mm,SceneComponentConstants:JP,SceneInstrumentation:wP,SceneLoader:kP,get SceneLoaderAnimationGroupLoadingMode(){return qP},SceneLoaderFlags:_P,SceneOptimization:eS,SceneOptimizer:tS,SceneOptimizerOptions:nS,SceneRecorder:rS,SceneSerializer:aS,ScreenSizeBlock:oS,ScreenSpaceCurvaturePostProcess:iS,ScreenSpaceReflectionPostProcess:sS,ScreenshotTools:lS,SerializationHelper:cS,SetParentAction:uS,SetStateAction:fS,SetValueAction:pS,ShaderCodeInliner:dS,ShaderMaterial:mS,ShadowDepthWrapper:hS,ShadowGenerator:vS,ShadowGeneratorSceneComponent:CS,ShadowLight:Om,ShadowsOptimization:gS,ShapeBuilder:bS,SharpenPostProcess:yS,SheenBlock:ES,SimplexPerlin3DBlock:MS,SimplicationQueueSceneComponent:OS,SimplificationQueue:LS,SimplificationSettings:PS,get SimplificationType(){return SS},SineEase:xS,SixDofDragBehavior:TS,Size:zS,Skeleton:AS,SkeletonViewer:DS,SmartArray:RS,SmartArrayNoDuplicate:NS,SmoothStepBlock:IS,SolidParticle:HS,SolidParticleSystem:VS,SolidParticleVertex:BS,Sound:US,SoundTrack:jS,get Space(){return GS},SphereBuilder:FS,SphereDirectedParticleEmitter:WS,SphereParticleEmitter:KS,SphericalHarmonics:YS,SphericalPolynomial:ZS,SpotLight:XS,Sprite:QS,SpriteManager:$S,SpriteMap:JS,SpritePackedManager:wS,SpriteSceneComponent:kS,Stage:qS,StandardMaterial:k9,StandardMaterialDefines:_S,StandardRenderingPipeline:ex,StateCondition:tx,StencilState:nx,StepBlock:rx,StereoscopicArcRotateCamera:ax,StereoscopicFreeCamera:ox,StereoscopicGamepadCamera:ix,StereoscopicInterlacePostProcess:sx,StereoscopicInterlacePostProcessI:lx,StereoscopicUniversalCamera:cx,StickValues:ux,StopAnimationAction:fx,StopSoundAction:px,StringDictionary:dx,StringTools:mx,SubEmitter:hx,get SubEmitterType(){return vx},SubMesh:Cx,SubSurfaceBlock:gx,SubSurfaceSceneComponent:bx,SubtractBlock:yx,SwitchBooleanAction:Ex,get SwitchInput(){return Mx},TGATools:Ox,Tags:Lx,TargetCamera:Px,TargetedAnimation:Sx,TextFileAssetTask:xx,Texture:hn,TextureAssetTask:Tx,TextureBlock:zx,TextureOptimization:Ax,TexturePacker:Dx,TexturePackerFrame:Rx,TextureTools:Mp,ThinEngine:Nx,ThinMaterialHelper:Ix,TiledBoxBuilder:Hx,TiledPlaneBuilder:Vx,get TimerState(){return Bx},TmpColors:Ux,TmpVectors:T4,ToGammaSpace:jx,ToLinearSpace:Gx,TonemapPostProcess:Fx,get TonemappingOperator(){return Wx},Tools:ut,TorusBuilder:Kx,TorusKnotBuilder:Yx,TouchCamera:Zx,TrailMesh:Xx,Trajectory:Qx,TrajectoryClassifier:$x,TransformBlock:Jx,TransformNode:Xo,TrigonometryBlock:wx,get TrigonometryBlockOperations(){return kx},TubeBuilder:qx,UniformBuffer:_x,UniversalCamera:eT,UtilityLayerRenderer:tT,VRCameraMetrics:nT,VRDeviceOrientationArcRotateCamera:rT,VRDeviceOrientationFreeCamera:aT,VRDeviceOrientationGamepadCamera:oT,VRDistortionCorrectionPostProcess:iT,VRExperienceHelper:sT,VRMultiviewToSingleviewPostProcess:lT,ValueCondition:cT,Vector2:pr,Vector3:Ct,Vector4:i1,VectorMergerBlock:uT,VectorSplitterBlock:fT,VertexBuffer:$e,VertexData:pT,VertexOutputBlock:dT,VideoDome:mT,VideoRecorder:hT,VideoTexture:vT,ViewDirectionBlock:CT,Viewport:Lm,VirtualJoystick:gT,VirtualJoysticksCamera:bT,ViveController:yT,VolumetricLightScatteringPostProcess:ET,WaveBlock:MT,get WaveBlockKind(){return OT},WebGL2ShaderProcessor:LT,WebGLDataBuffer:PT,WebGLPipelineContext:ST,WebRequest:xT,WebVRController:TT,WebVRFreeCamera:zT,WebXRAbstractFeature:AT,WebXRAbstractMotionController:DT,WebXRAnchorSystem:RT,WebXRBackgroundRemover:NT,WebXRCamera:IT,WebXRControllerComponent:HT,WebXRControllerPhysics:VT,WebXRControllerPointerSelection:BT,WebXRDefaultExperience:UT,WebXRDefaultExperienceOptions:jT,WebXREnterExitUI:GT,WebXREnterExitUIButton:FT,WebXREnterExitUIOptions:WT,WebXRExperienceHelper:KT,WebXRFeatureName:YT,WebXRFeaturePointSystem:ZT,WebXRFeaturesManager:XT,WebXRGenericTriggerMotionController:QT,WebXRHTCViveMotionController:$T,WebXRHand:JT,WebXRHandTracking:wT,WebXRHitTest:kT,WebXRHitTestLegacy:qT,WebXRInput:_T,WebXRInputSource:ez,WebXRManagedOutputCanvas:tz,WebXRManagedOutputCanvasOptions:nz,WebXRMicrosoftMixedRealityController:rz,WebXRMotionControllerManager:az,WebXRMotionControllerTeleportation:oz,WebXROculusTouchMotionController:iz,WebXRPlaneDetector:sz,WebXRProfiledMotionController:lz,WebXRSessionManager:cz,get WebXRState(){return uz},get WebXRTrackingState(){return fz},WeightedSound:pz,WindowsMotionController:dz,WorkerPool:mz,WorleyNoise3DBlock:hz,XRWindowsMotionController:vz,get Xbox360Button(){return Cz},get Xbox360Dpad(){return gz},Xbox360Pad:bz,get XboxInput(){return yz},_BabylonLoaderRegistered:Ez,_BasisTextureLoader:Mz,_CreationDataStorage:Oz,_DDSTextureLoader:Lz,_ENVTextureLoader:Pz,_IAnimationState:Sz,_InstancesBatch:xz,_KTXTextureLoader:Tz,_MeshCollisionData:zz,_OcclusionDataStorage:Az,_TGATextureLoader:Dz,_TimeToken:Rz,_TypeStore:Nz,_forceSceneHelpersToBundle:Iz,_forceTransformFeedbackToBundle:Hz,className:Vz,editableInPropertyPage:Bz,expandToProperty:Uz,extractMinAndMax:jz,extractMinAndMaxIndexed:Gz,serialize:Fz,serializeAsCameraReference:Wz,serializeAsColor3:Kz,serializeAsColor4:Yz,serializeAsColorCurves:Zz,serializeAsFresnelParameters:Xz,serializeAsImageProcessingConfiguration:Qz,serializeAsMatrix:$z,serializeAsMeshReference:Jz,serializeAsQuaternion:wz,serializeAsTexture:kz,serializeAsVector2:qz,serializeAsVector3:_z,setAndStartTimer:eA},Symbol.toStringTag,{value:"Module"})),yR=Object.freeze(Object.defineProperty({__proto__:null,AbstractButton3D:tA,AdvancedDynamicTexture:nA,AdvancedDynamicTextureInstrumentation:rA,BaseSlider:aA,Button:oA,Button3D:iA,Checkbox:sA,CheckboxGroup:lA,ColorPicker:cA,Container:uA,Container3D:fA,Control:pA,Control3D:dA,CylinderPanel:mA,DisplayGrid:hA,Ellipse:vA,FluentMaterial:CA,FluentMaterialDefines:gA,GUI3DManager:bA,Grid:yA,HolographicButton:EA,Image:MA,ImageBasedSlider:OA,ImageScrollBar:LA,InputPassword:PA,InputText:SA,KeyPropertySet:xA,Line:TA,Matrix2D:zA,Measure:AA,MeshButton3D:DA,MultiLine:RA,MultiLinePoint:NA,PlanePanel:IA,RadioButton:HA,RadioGroup:VA,Rectangle:BA,ScatterPanel:UA,ScrollBar:jA,ScrollViewer:GA,SelectionPanel:FA,SelectorGroup:WA,Slider:KA,SliderGroup:YA,SpherePanel:ZA,StackPanel:XA,StackPanel3D:QA,Style:$A,TextBlock:JA,TextWrapper:wA,get TextWrapping(){return kA},ValueAndUnit:qA,Vector2WithInfo:_A,Vector3WithInfo:eD,VirtualKeyboard:tD,VolumeBasedPanel:nD,XmlLoader:rD,name:aD},Symbol.toStringTag,{value:"Module"})),ER=Object.freeze(Object.defineProperty({__proto__:null,get EBlendingFunction(){return oD},get EComponentType(){return iD},get ECullingType(){return sD},get EParameterType(){return lD},get EShaderType(){return cD},get ETextureFilterType(){return uD},get ETextureFormat(){return fD},get ETextureWrapMode(){return pD},GLTFBinaryExtension:dD,GLTFLoader:mD,GLTFLoaderBase:hD,GLTFLoaderExtension:vD,GLTFMaterialsCommonExtension:CD,GLTFUtils:gD},Symbol.toStringTag,{value:"Module"})),MR=Object.freeze(Object.defineProperty({__proto__:null,ArrayItem:bD,EXT_lights_image_based:yD,EXT_mesh_gpu_instancing:ED,EXT_texture_webp:MD,ExtrasAsMetadata:OD,GLTFLoader:LD,KHR_draco_mesh_compression:PD,KHR_lights:SD,KHR_materials_clearcoat:xD,KHR_materials_ior:TD,KHR_materials_pbrSpecularGlossiness:zD,KHR_materials_sheen:AD,KHR_materials_specular:DD,KHR_materials_translucency:RD,KHR_materials_transmission:ND,KHR_materials_unlit:ID,KHR_materials_variants:HD,KHR_mesh_quantization:VD,KHR_texture_basisu:BD,KHR_texture_transform:UD,MSFT_audio_emitter:jD,MSFT_lod:GD,MSFT_minecraftMesh:FD,MSFT_sRGBFactors:WD},Symbol.toStringTag,{value:"Module"})),OR=Object.freeze(Object.defineProperty({__proto__:null,GLTF1:ER,GLTF2:MR,GLTFFileLoader:KD,get GLTFLoaderAnimationStartMode(){return YD},get GLTFLoaderCoordinateSystemMode(){return ZD},get GLTFLoaderState(){return XD},GLTFValidation:QD,MTLFileLoader:$D,OBJFileLoader:JD,STLFileLoader:wD},Symbol.toStringTag,{value:"Module"})),LR=Object.freeze(Object.defineProperty({__proto__:null,CellMaterial:kD,CustomMaterial:qD,CustomShaderStructure:_D,FireMaterial:eR,FurMaterial:tR,GradientMaterial:nR,GridMaterial:rR,LavaMaterial:aR,MixMaterial:oR,NormalMaterial:iR,PBRCustomMaterial:sR,ShaderAlebdoParts:lR,ShaderSpecialParts:cR,ShadowOnlyMaterial:uR,SimpleMaterial:fR,SkyMaterial:pR,TerrainMaterial:dR,TriPlanarMaterial:mR,WaterMaterial:hR},Symbol.toStringTag,{value:"Module"}));var J9={exports:{}};const PR=Mc(bR),SR=Mc(yR),xR=Mc(OR),TR=Mc(LR);var zR=function(){function k(){}return k.OBJ=function(O,N,V,W){var j=[],q=1;N&&(V||(V="mat"),j.push("mtllib "+V+".mtl"));for(var A=0;A<O.length;A++){j.push("g object"+A),j.push("o object_"+A);var a=null;if(W){var t=Qo.Translation(O[A].position.x,O[A].position.y,O[A].position.z);a=Qo.Translation(-O[A].position.x,-O[A].position.y,-O[A].position.z),O[A].bakeTransformIntoVertices(t)}if(N){var y=O[A].material;y&&j.push("usemtl "+y.id)}var r=O[A].geometry;if(!r){ut.Warn("No geometry is present on the mesh");continue}var f=r.getVerticesData("position"),d=r.getVerticesData("normal"),g=r.getVerticesData("uv"),c=r.getIndices(),l=0;if(!f||!c){ut.Warn("There are no position vertices or indices on the mesh!");continue}for(var i=0;i<f.length;i+=3)O[0].getScene().useRightHandedSystem?j.push("v "+f[i]+" "+f[i+1]+" "+f[i+2]):j.push("v "+f[i]+" "+f[i+1]+" "+-f[i+2]),l++;if(d!=null)for(i=0;i<d.length;i+=3)j.push("vn "+d[i]+" "+d[i+1]+" "+d[i+2]);if(g!=null)for(i=0;i<g.length;i+=2)j.push("vt "+g[i]+" "+g[i+1]);for(i=0;i<c.length;i+=3){var u=[String(c[i+2]+q),String(c[i+1]+q),String(c[i]+q)],v=["","",""],h=u,C=g!=null?u:v,p=d!=null?u:v;j.push("f "+h[0]+"/"+C[0]+"/"+p[0]+" "+h[1]+"/"+C[1]+"/"+p[1]+" "+h[2]+"/"+C[2]+"/"+p[2])}W&&a&&O[A].bakeTransformIntoVertices(a),q+=l}var b=j.join(`
|
|
1
|
+
import{d as Mc,e as fm,g as fC}from"./index-D54LH2T6.js";import{A as Pa,a as pC,b as dC,c as mC,d as hC,e as vC,f as CC,g as gC,h as bC,i as yC,j as EC,k as MC,l as OC,m as LC,n as PC,o as SC,p as xC,q as TC,r as zC,s as AC,t as DC,u as RC,v as NC,w as IC,x as gp,y as HC,z as VC,B as BC,C as UC,D as jC,E as GC,F as FC,G as WC,H as KC,I as YC,J as ZC,K as XC,L as QC,M as $C,N as JC,O as wC,P as kC,Q as qC,R as _C,S as eg,T as tg,U as ng,V as rg,W as ag,X as og,Y as ig,Z as sg,_ as lg,$ as cg,a0 as ug,a1 as fg,a2 as pg,a3 as dg,a4 as mg,a5 as hg,a6 as vg,a7 as Cg,a8 as gg,a9 as bg,aa as yg,ab as Eg,ac as Mg,ad as Og,ae as Lg,af as Pg,ag as Sg,ah as xg,ai as Tg,aj as zg,ak as Ag,al as Dg,am as Rg,an as Ng,ao as Ig,ap as Hg,aq as Vg,ar as Bg,as as Ug,at as jg,au as Gg,av as Fg,aw as Wg,ax as Kg,ay as Yg,az as Zg,aA as Xg,aB as Qg,aC as $g,aD as Jg,aE as wg,aF as kg,aG as qg,aH as _g,aI as Jn,aJ as eb,aK as bp,aL as tb,aM as nb,aN as rb,aO as ab,aP as ob,aQ as ib,aR as sb,aS as lb,aT as cb,aU as is,aV as ub,aW as fb,aX as pb,aY as db,aZ as mb,a_ as hb,a$ as vb,b0 as Cb,b1 as gb,b2 as bb,b3 as yb,b4 as Eb,b5 as Mb,b6 as Ob,b7 as Lb,b8 as Pb,b9 as Sb,ba as xb,bb as Tb,bc as zb,bd as Ab,be as Db,bf as Rb,bg as Nb,bh as Ib,bi as Hb,bj as Vb,bk as Bb,bl as Ub,bm as jb,bn as Gb,bo as Fb,bp as Wb,bq as Kb,br as Yb,bs as Zb,bt as Xb,bu as Qb,bv as $b,bw as Jb,bx as wb,by as kb,bz as qb,bA as _b,bB as ey,bC as ty,bD as ny,bE as ry,bF as dm,bG as ay,bH as oy,bI as iy,bJ as sy,bK as ly,bL as cy,bM as uy,bN as fy,bO as py,bP as dy,bQ as my,bR as hy,bS as vy,bT as Cy,bU as gy,bV as by,bW as mm,bX as yy,bY as Ey,bZ as My,b_ as Oy,b$ as Ly,c0 as Py,c1 as hm,c2 as Sy,c3 as xy,c4 as Ty,c5 as zy,c6 as Ay,c7 as vm,c8 as Dy,c9 as Ry,ca as Ny,cb as Iy,cc as Hy,cd as Vy,ce as By,cf as Uy,cg as jy,ch as Gy,ci as Fy,cj as Wy,ck as Ky,cl as Yy,cm as Zy,cn as Xy,co as Qy,cp as $y,cq as Jy,cr as wy,cs as ky,ct as qy,cu as _y,cv as eE,cw as tE,cx as nE,cy as rE,cz as aE,cA as oE,cB as iE,cC as sE,cD as lE,cE,cF as uE,cG as fE,cH as pE,cI as dE,cJ as mE,cK as hE,cL as vE,cM as CE,cN as gE,cO as bE,cP as yE,cQ as EE,cR as ME,cS as OE,cT as LE,cU as PE,cV as SE,cW as xE,cX as TE,cY as zE,cZ as AE,c_ as DE,c$ as RE,d0 as NE,d1 as IE,d2 as HE,d3 as VE,d4 as BE,d5 as UE,d6 as jE,d7 as GE,d8 as FE,d9 as WE,da as KE,db as YE,dc as ZE,dd as XE,de as QE,df as $E,dg as JE,dh as wE,di as kE,dj as qE,dk as _E,dl as eM,dm as tM,dn as nM,dp as rM,dq as aM,dr as oM,ds as Q9,dt as iM,du as sM,dv as lM,dw as cM,dx as uM,dy as fM,dz as pM,dA as dM,dB as mM,dC as hM,dD as vM,dE as CM,dF as gM,dG as bM,dH as yM,dI as EM,dJ as MM,dK as OM,dL as LM,dM as PM,dN as SM,dO as xM,dP as TM,dQ as bc,dR as zM,dS as AM,dT as DM,dU as RM,dV as NM,dW as yp,dX as IM,dY as Ep,dZ as $n,d_ as HM,d$ as VM,e0 as BM,e1 as Qo,e2 as UM,e3 as jM,e4 as A4,e5 as GM,e6 as FM,e7 as WM,e8 as KM,e9 as YM,ea as ZM,eb as XM,ec as QM,ed as $M,ee as JM,ef as $9,eg as wM,eh as kM,ei as qM,ej as _M,ek as Cm,el as eO,em as tO,en as nO,eo as rO,ep as aO,eq as oO,er as iO,es as sO,et as lO,eu as cO,ev as uO,ew as fO,ex as pO,ey as dO,ez as mO,eA as hO,eB as vO,eC as CO,eD as gO,eE as bO,eF as yO,eG as EO,eH as MO,eI as OO,eJ as LO,eK as PO,eL as SO,eM as xO,eN as TO,eO as zO,eP as AO,eQ as DO,eR as RO,eS as NO,eT as IO,eU as HO,eV as VO,eW as BO,eX as Ec,eY as UO,eZ as jO,e_ as gm,e$ as GO,f0 as FO,f1 as WO,f2 as KO,f3 as YO,f4 as ZO,f5 as XO,f6 as QO,f7 as $O,f8 as JO,f9 as wO,fa as kO,fb as qO,fc as _O,fd as eL,fe as tL,ff as nL,fg as rL,fh as aL,fi as oL,fj as iL,fk as sL,fl as lL,fm as cL,fn as uL,fo as fL,fp as pL,fq as dL,fr as mL,fs as hL,ft as vL,fu as CL,fv as gL,fw as bL,fx as yL,fy as EL,fz as ML,fA as OL,fB as LL,fC as PL,fD as SL,fE as xL,fF as TL,fG as zL,fH as AL,fI as DL,fJ as RL,fK as NL,fL as IL,fM as HL,fN as VL,fO as BL,fP as UL,fQ as jL,fR as GL,fS as FL,fT as WL,fU as KL,fV as YL,fW as bm,fX as ZL,fY as XL,fZ as QL,f_ as $L,f$ as JL,g0 as wL,g1 as kL,g2 as qL,g3 as _L,g4 as eP,g5 as tP,g6 as nP,g7 as rP,g8 as ym,g9 as aP,ga as oP,gb as iP,gc as sP,gd as lP,ge as cP,gf as uP,gg as wt,gh as fP,gi as pP,gj as dP,gk as mP,gl as Em,gm as hP,gn as vP,go as CP,gp as gP,gq as bP,gr as yP,gs as EP,gt as MP,gu as OP,gv as LP,gw as PP,gx as SP,gy as xP,gz as TP,gA as zP,gB as AP,gC as DP,gD as RP,gE as NP,gF as IP,gG as HP,gH as VP,gI as BP,gJ as UP,gK as jP,gL as GP,gM as FP,gN as WP,gO as KP,gP as YP,gQ as ZP,gR as XP,gS as ss,gT as QP,gU as $P,gV as Mm,gW as JP,gX as wP,gY as kP,gZ as qP,g_ as _P,g$ as eS,h0 as tS,h1 as nS,h2 as rS,h3 as aS,h4 as oS,h5 as iS,h6 as sS,h7 as lS,h8 as cS,h9 as uS,ha as fS,hb as pS,hc as dS,hd as mS,he as hS,hf as vS,hg as CS,hh as Om,hi as gS,hj as bS,hk as yS,hl as ES,hm as MS,hn as OS,ho as LS,hp as PS,hq as SS,hr as xS,hs as TS,ht as zS,hu as AS,hv as DS,hw as RS,hx as NS,hy as IS,hz as HS,hA as VS,hB as BS,hC as US,hD as jS,hE as GS,hF as FS,hG as WS,hH as KS,hI as YS,hJ as ZS,hK as XS,hL as QS,hM as $S,hN as JS,hO as wS,hP as kS,hQ as qS,hR as k9,hS as _S,hT as ex,hU as tx,hV as nx,hW as rx,hX as ax,hY as ox,hZ as ix,h_ as sx,h$ as lx,i0 as cx,i1 as ux,i2 as fx,i3 as px,i4 as dx,i5 as mx,i6 as hx,i7 as vx,i8 as Cx,i9 as gx,ia as bx,ib as yx,ic as Ex,id as Mx,ie as Ox,ig as Lx,ih as Px,ii as Sx,ij as xx,ik as hn,il as Tx,im as zx,io as Ax,ip as Dx,iq as Rx,ir as Mp,is as Nx,it as Ix,iu as Hx,iv as Vx,iw as Bx,ix as Ux,iy as T4,iz as jx,iA as Gx,iB as Fx,iC as Wx,iD as ut,iE as Kx,iF as Yx,iG as Zx,iH as Xx,iI as Qx,iJ as $x,iK as Jx,iL as Xo,iM as wx,iN as kx,iO as qx,iP as _x,iQ as eT,iR as tT,iS as nT,iT as rT,iU as aT,iV as oT,iW as iT,iX as sT,iY as lT,iZ as cT,i_ as pr,i$ as Ct,j0 as i1,j1 as uT,j2 as fT,j3 as $e,j4 as pT,j5 as dT,j6 as mT,j7 as hT,j8 as vT,j9 as CT,ja as Lm,jb as gT,jc as bT,jd as yT,je as ET,jf as MT,jg as OT,jh as LT,ji as PT,jj as ST,jk as xT,jl as TT,jm as zT,jn as AT,jo as DT,jp as RT,jq as NT,jr as IT,js as HT,jt as VT,ju as BT,jv as UT,jw as jT,jx as GT,jy as FT,jz as WT,jA as KT,jB as YT,jC as ZT,jD as XT,jE as QT,jF as $T,jG as JT,jH as wT,jI as kT,jJ as qT,jK as _T,jL as ez,jM as tz,jN as nz,jO as rz,jP as az,jQ as oz,jR as iz,jS as sz,jT as lz,jU as cz,jV as uz,jW as fz,jX as pz,jY as dz,jZ as mz,j_ as hz,j$ as vz,k0 as Cz,k1 as gz,k2 as bz,k3 as yz,k4 as Ez,k5 as Mz,k6 as Oz,k7 as Lz,k8 as Pz,k9 as Sz,ka as xz,kb as Tz,kc as zz,kd as Az,ke as Dz,kf as Rz,kg as Nz,kh as Iz,ki as Hz,kj as Vz,kk as Bz,kl as Uz,km as jz,kn as Gz,ko as Fz,kp as Wz,kq as Kz,kr as Yz,ks as Zz,kt as Xz,ku as Qz,kv as $z,kw as Jz,kx as wz,ky as kz,kz as qz,kA as _z,kB as eA,kC as tA,kD as nA,kE as rA,kF as aA,kG as oA,kH as iA,kI as sA,kJ as lA,kK as cA,kL as uA,kM as fA,kN as pA,kO as dA,kP as mA,kQ as hA,kR as vA,kS as CA,kT as gA,kU as bA,kV as yA,kW as EA,kX as MA,kY as OA,kZ as LA,k_ as PA,k$ as SA,l0 as xA,l1 as TA,l2 as zA,l3 as AA,l4 as DA,l5 as RA,l6 as NA,l7 as IA,l8 as HA,l9 as VA,la as BA,lb as UA,lc as jA,ld as GA,le as FA,lf as WA,lg as KA,lh as YA,li as ZA,lj as XA,lk as QA,ll as $A,lm as JA,ln as wA,lo as kA,lp as qA,lq as _A,lr as eD,ls as tD,lt as nD,lu as rD,lv as aD,lw as oD,lx as iD,ly as sD,lz as lD,lA as cD,lB as uD,lC as fD,lD as pD,lE as dD,lF as mD,lG as hD,lH as vD,lI as CD,lJ as gD,lK as bD,lL as yD,lM as ED,lN as MD,lO as OD,lP as LD,lQ as PD,lR as SD,lS as xD,lT as TD,lU as zD,lV as AD,lW as DD,lX as RD,lY as ND,lZ as ID,l_ as HD,l$ as VD,m0 as BD,m1 as UD,m2 as jD,m3 as GD,m4 as FD,m5 as WD,m6 as KD,m7 as YD,m8 as ZD,m9 as XD,ma as QD,mb as $D,mc as JD,md as wD,me as kD,mf as qD,mg as _D,mh as eR,mi as tR,mj as nR,mk as rR,ml as aR,mm as oR,mn as iR,mo as sR,mp as lR,mq as cR,mr as uR,ms as fR,mt as pR,mu as dR,mv as mR,mw as hR,mx as vR}from"./Preview-CvMZxPcZ.js";function CR(k,O){for(var N=0;N<O.length;N++){const V=O[N];if(typeof V!="string"&&!Array.isArray(V)){for(const W in V)if(W!=="default"&&!(W in k)){const j=Object.getOwnPropertyDescriptor(V,W);j&&Object.defineProperty(k,W,j.get?j:{enumerable:!0,get:()=>V[W]})}}}return Object.freeze(Object.defineProperty(k,Symbol.toStringTag,{value:"Module"}))}var gR=function(){function k(){this.enableBlending=!1,this.blendingSpeed=.01,this.loopMode=Pa.ANIMATIONLOOPMODE_CYCLE}return k}();const bR=Object.freeze(Object.defineProperty({__proto__:null,AbstractActionManager:pC,AbstractAssetTask:dC,AbstractMesh:mC,AbstractScene:hC,Action:vC,ActionEvent:CC,ActionManager:gC,AddBlock:bC,AdvancedTimer:yC,AlphaState:EC,AmmoJSPlugin:MC,AnaglyphArcRotateCamera:OC,AnaglyphFreeCamera:LC,AnaglyphGamepadCamera:PC,AnaglyphPostProcess:SC,AnaglyphUniversalCamera:xC,Analyser:TC,AndOrNotEvaluator:zC,Angle:AC,Animatable:DC,get AnimatedInputBlockTypes(){return RC},Animation:Pa,AnimationEvent:NC,AnimationGroup:IC,get AnimationKeyInterpolation(){return gp},AnimationPropertiesOverride:gR,AnimationRange:HC,AnisotropyBlock:VC,Arc2:BC,ArcFollowCamera:UC,ArcRotateCamera:jC,ArcRotateCameraGamepadInput:GC,ArcRotateCameraInputsManager:FC,ArcRotateCameraKeyboardMoveInput:WC,ArcRotateCameraMouseWheelInput:KC,ArcRotateCameraPointersInput:YC,ArcRotateCameraVRDeviceOrientationInput:ZC,ArcTan2Block:XC,AssetContainer:QC,get AssetTaskState(){return $C},AssetsManager:JC,AssetsProgressEvent:wC,AsyncLoop:kC,AttachToBoxBehavior:qC,AudioEngine:_C,AudioSceneComponent:eg,AutoRotationBehavior:tg,AxesViewer:ng,Axis:rg,AxisDragGizmo:ag,AxisScaleGizmo:og,BRDFTextureTools:ig,BabylonFileLoaderConfiguration:sg,BackEase:lg,BackgroundMaterial:cg,BaseParticleSystem:ug,BaseTexture:fg,BasisTools:pg,BasisTranscodeConfiguration:dg,BezierCurve:mg,BezierCurveEase:hg,BinaryFileAssetTask:vg,BlackAndWhitePostProcess:Cg,BloomEffect:gg,BloomMergePostProcess:bg,BlurPostProcess:yg,Bone:Eg,BoneAxesViewer:Mg,BoneIKController:Og,BoneLookController:Lg,BonesBlock:Pg,BounceEase:Sg,BouncingBehavior:xg,BoundingBox:Tg,BoundingBoxGizmo:zg,BoundingBoxRenderer:Ag,BoundingInfo:Dg,BoundingSphere:Rg,BoxBuilder:Ng,BoxParticleEmitter:Ig,Buffer:Hg,CSG:Vg,Camera:Bg,CameraGizmo:Ug,CameraInputTypes:jg,CameraInputsManager:Gg,CannonJSPlugin:Fg,CanvasGenerator:Wg,CapsuleBuilder:Kg,CascadedShadowGenerator:Yg,ChromaticAberrationPostProcess:Zg,CircleEase:Xg,CircleOfConfusionPostProcess:Qg,ClampBlock:$g,ClearCoatBlock:Jg,ClipboardEventTypes:wg,ClipboardInfo:kg,CloudPoint:qg,Collider:_g,Color3:Jn,Color3Gradient:eb,Color4:bp,ColorCorrectionPostProcess:tb,ColorCurves:nb,ColorGradient:rb,ColorGradingTexture:ab,ColorMergerBlock:ob,ColorSplitterBlock:ib,CombineAction:sb,Condition:lb,ConeParticleEmitter:cb,Constants:is,ContainerAssetTask:ub,ConvolutionPostProcess:fb,get Coordinate(){return pb},CopyTools:db,CrossBlock:mb,CubeMapToSphericalPolynomialTools:hb,CubeTexture:vb,CubeTextureAssetTask:Cb,CubicEase:gb,CurrentScreenBlock:bb,Curve3:yb,CustomOptimization:Eb,CustomParticleEmitter:Mb,CustomProceduralTexture:Ob,CylinderBuilder:Lb,CylinderDirectedParticleEmitter:Pb,CylinderParticleEmitter:Sb,DDSTools:xb,DataBuffer:Tb,DataReader:zb,DataStorage:Ab,Database:Db,DaydreamController:Rb,DebugLayer:Nb,get DebugLayerTab(){return Ib},DecalBuilder:Hb,DeepCopier:Vb,DefaultCollisionCoordinator:Bb,DefaultLoadingScreen:Ub,DefaultRenderingPipeline:jb,Deferred:Gb,DepthCullingState:Fb,DepthOfFieldBlurPostProcess:Wb,DepthOfFieldEffect:Kb,get DepthOfFieldEffectBlurLevel(){return Yb},DepthOfFieldMergePostProcess:Zb,DepthOfFieldMergePostProcessOptions:Xb,DepthReducer:Qb,DepthRenderer:$b,DepthRendererSceneComponent:Jb,DepthSortedParticle:wb,DerivativeBlock:kb,DesaturateBlock:qb,DeviceInputSystem:_b,DeviceOrientationCamera:ey,DeviceSource:ty,DeviceSourceManager:ny,get DeviceType(){return ry},DirectionalLight:dm,DiscBuilder:ay,DiscardBlock:oy,DisplayPassPostProcess:iy,DistanceBlock:sy,DistanceJoint:ly,DivideBlock:cy,DoNothingAction:uy,DotBlock:fy,DracoCompression:py,get DualShockButton(){return dy},get DualShockDpad(){return my},get DualShockInput(){return hy},DualShockPad:vy,DynamicTexture:Cy,EasingFunction:gy,EdgesRenderer:by,Effect:mm,EffectFallbacks:yy,EffectLayer:Ey,EffectLayerSceneComponent:My,EffectRenderer:Oy,EffectWrapper:Ly,ElasticEase:Py,Engine:hm,EngineInstrumentation:Sy,EngineStore:xy,EngineView:Ty,EnvironmentHelper:zy,EnvironmentTextureTools:Ay,Epsilon:vm,EquiRectangularCubeTexture:Dy,EquiRectangularCubeTextureAssetTask:Ry,EventState:Ny,ExecuteCodeAction:Iy,ExponentialEase:Hy,ExtractHighlightsPostProcess:Vy,FactorGradient:By,FadeInOutBehavior:Uy,FileTools:jy,FilesInput:Gy,FilesInputStore:Fy,FilterPostProcess:Wy,FlyCamera:Ky,FlyCameraInputsManager:Yy,FlyCameraKeyboardInput:Zy,FlyCameraMouseInput:Xy,FogBlock:Qy,FollowCamera:$y,FollowCameraInputsManager:Jy,FollowCameraKeyboardMoveInput:wy,FollowCameraMouseWheelInput:ky,FollowCameraPointersInput:qy,FragCoordBlock:_y,FragmentOutputBlock:eE,FramingBehavior:tE,FreeCamera:nE,FreeCameraDeviceOrientationInput:rE,FreeCameraGamepadInput:aE,FreeCameraInputsManager:oE,FreeCameraKeyboardMoveInput:iE,FreeCameraMouseInput:sE,FreeCameraMouseWheelInput:lE,FreeCameraTouchInput:cE,FreeCameraVirtualJoystickInput:uE,FresnelBlock:fE,FresnelParameters:pE,FrontFacingBlock:dE,Frustum:mE,FxaaPostProcess:hE,GPUParticleSystem:vE,Gamepad:CE,GamepadCamera:gE,GamepadManager:bE,GamepadSystemSceneComponent:yE,GearVRController:EE,GenericController:ME,GenericPad:OE,Geometry:LE,GeometryBufferRenderer:PE,GeometryBufferRendererSceneComponent:SE,Gizmo:xE,GizmoManager:TE,GlowLayer:zE,GradientBlock:AE,GradientBlockColorStep:DE,GradientHelper:RE,GrainPostProcess:NE,GroundBuilder:IE,GroundMesh:HE,HDRCubeTexture:VE,HDRCubeTextureAssetTask:BE,HDRFiltering:UE,HDRTools:jE,HardwareScalingOptimization:GE,HemisphereBuilder:FE,HemisphericLight:WE,HemisphericParticleEmitter:KE,HighlightLayer:YE,HighlightsPostProcess:ZE,Hinge2Joint:XE,HingeJoint:QE,HtmlElementTexture:$E,IWebXRControllerPhysicsOptions:JE,IcoSphereBuilder:wE,ImageAssetTask:kE,ImageProcessingBlock:qE,ImageProcessingConfiguration:_E,ImageProcessingConfigurationDefines:eM,ImageProcessingPostProcess:tM,IncrementValueAction:nM,InputBlock:rM,get InspectableType(){return aM},InstancedLinesMesh:oM,InstancedMesh:Q9,InstancesBlock:iM,InstantiatedEntries:sM,InternalTexture:lM,get InternalTextureSource(){return cM},InterpolateValueAction:uM,IntersectionInfo:fM,get JoystickAxis(){return pM},KeepAssets:dM,KeyboardEventTypes:mM,KeyboardInfo:hM,KeyboardInfoPre:vM,KhronosTextureContainer:CM,KhronosTextureContainer2:gM,LatheBuilder:bM,Layer:yM,LayerSceneComponent:EM,LengthBlock:MM,LensFlare:OM,LensFlareSystem:LM,LensFlareSystemSceneComponent:PM,LensFlaresOptimization:SM,LensRenderingPipeline:xM,LerpBlock:TM,Light:bc,LightBlock:zM,LightGizmo:AM,LightInformationBlock:DM,LineEdgesRenderer:RM,LinesBuilder:NM,LinesMesh:yp,LoadFileError:IM,Logger:Ep,Material:$n,MaterialDefines:HM,MaterialFlags:VM,MaterialHelper:BM,Matrix:Qo,MaxBlock:UM,MergeMeshesOptimization:jM,Mesh:A4,MeshAssetTask:GM,MeshBuilder:FM,MeshExploder:WM,MeshLODLevel:KM,MeshParticleEmitter:YM,MinBlock:ZM,MinMaxReducer:XM,MirrorTexture:QM,ModBlock:$M,ModelShape:JM,MorphTarget:$9,MorphTargetManager:wM,MorphTargetsBlock:kM,MotionBlurPostProcess:qM,MotorEnabledJoint:_M,MultiMaterial:Cm,MultiObserver:eO,MultiPointerScaleBehavior:tO,MultiRenderTarget:nO,MultiplyBlock:rO,NLerpBlock:aO,NativeEngine:oO,NegateBlock:iO,Node:sO,NodeMaterial:lO,NodeMaterialBlock:cO,get NodeMaterialBlockConnectionPointMode(){return uO},get NodeMaterialBlockConnectionPointTypes(){return fO},get NodeMaterialBlockTargets(){return pO},NodeMaterialConnectionPoint:dO,get NodeMaterialConnectionPointCompatibilityStates(){return mO},get NodeMaterialConnectionPointDirection(){return hO},NodeMaterialDefines:vO,get NodeMaterialModes(){return CO},NodeMaterialOptimizer:gO,get NodeMaterialSystemValues(){return bO},NoiseProceduralTexture:yO,NormalBlendBlock:EO,NormalizeBlock:MO,NullEngine:OO,NullEngineOptions:LO,Observable:PO,Observer:SO,Octree:xO,OctreeBlock:TO,OctreeSceneComponent:zO,OculusTouchController:AO,OimoJSPlugin:DO,OnAfterEnteringVRObservableEvent:RO,OneMinusBlock:NO,get Orientation(){return IO},OutlineRenderer:HO,PBRBaseMaterial:VO,PBRBaseSimpleMaterial:BO,PBRMaterial:Ec,PBRMaterialDefines:UO,PBRMetallicRoughnessBlock:jO,PBRMetallicRoughnessMaterial:gm,PBRSpecularGlossinessMaterial:GO,PanoramaToCubeMapTools:FO,Particle:WO,ParticleBlendMultiplyBlock:KO,ParticleHelper:YO,ParticleRampGradientBlock:ZO,ParticleSystem:XO,ParticleSystemSet:QO,ParticleTextureBlock:$O,ParticlesOptimization:JO,PassCubePostProcess:wO,PassPostProcess:kO,Path2:qO,Path3D:_O,PerfCounter:eL,PerformanceConfigurator:tL,PerformanceMonitor:nL,PerturbNormalBlock:rL,PhotoDome:aL,PhysicsEngine:oL,PhysicsEngineSceneComponent:iL,PhysicsHelper:sL,PhysicsImpostor:lL,PhysicsJoint:cL,PhysicsRadialExplosionEventOptions:uL,get PhysicsRadialImpulseFalloff(){return fL},PhysicsUpdraftEventOptions:pL,get PhysicsUpdraftMode(){return dL},PhysicsViewer:mL,PhysicsVortexEventOptions:hL,PickingInfo:vL,PivotTools:CL,Plane:gL,PlaneBuilder:bL,PlaneDragGizmo:yL,PlaneRotationGizmo:EL,PlayAnimationAction:ML,PlaySoundAction:OL,get PointColor(){return LL},PointLight:PL,PointParticleEmitter:SL,PointerDragBehavior:xL,PointerEventTypes:TL,PointerInfo:zL,PointerInfoBase:AL,PointerInfoPre:DL,get PointerInput(){return RL},PointsCloudSystem:NL,PointsGroup:IL,Polygon:HL,PolygonBuilder:VL,PolygonMeshBuilder:BL,PolyhedronBuilder:UL,PoseEnabledController:jL,PoseEnabledControllerHelper:GL,get PoseEnabledControllerType(){return FL},PositionGizmo:WL,PositionNormalTextureVertex:KL,PositionNormalVertex:YL,PostProcess:bm,PostProcessManager:ZL,PostProcessRenderEffect:XL,PostProcessRenderPipeline:QL,PostProcessRenderPipelineManager:$L,PostProcessRenderPipelineManagerSceneComponent:JL,PostProcessesOptimization:wL,PosterizeBlock:kL,PowBlock:qL,PowerEase:_L,PrePassRenderer:eP,PrePassRendererSceneComponent:tP,PrecisionDate:nP,PredicateCondition:rP,ProceduralTexture:ym,ProceduralTextureSceneComponent:aP,PromisePolyfill:oP,get PropertyTypeForEdition(){return iP},PushMaterial:sP,QuadraticEase:lP,QuadraticErrorSimplification:cP,QuarticEase:uP,Quaternion:wt,QuinticEase:fP,RGBDTextureTools:pP,RandomNumberBlock:dP,RawCubeTexture:mP,RawTexture:Em,RawTexture2DArray:hP,RawTexture3D:vP,Ray:CP,RayHelper:gP,ReadFileError:bP,RecastJSCrowd:yP,RecastJSPlugin:EP,ReciprocalBlock:MP,ReflectBlock:OP,ReflectionBlock:LP,ReflectionProbe:PP,ReflectionTextureBlock:SP,RefractBlock:xP,RefractionBlock:TP,RefractionPostProcess:zP,RefractionTexture:AP,RemapBlock:DP,RenderTargetTexture:RP,RenderTargetsOptimization:NP,RenderingGroup:IP,RenderingGroupInfo:HP,RenderingManager:VP,ReplaceColorBlock:BP,RequestFileError:UP,RetryStrategy:jP,RibbonBuilder:GP,RollingAverage:FP,Rotate2dBlock:WP,RotationGizmo:KP,RuntimeAnimation:YP,SSAO2RenderingPipeline:ZP,SSAORenderingPipeline:XP,Scalar:ss,ScaleBlock:QP,ScaleGizmo:$P,Scene:Mm,SceneComponentConstants:JP,SceneInstrumentation:wP,SceneLoader:kP,get SceneLoaderAnimationGroupLoadingMode(){return qP},SceneLoaderFlags:_P,SceneOptimization:eS,SceneOptimizer:tS,SceneOptimizerOptions:nS,SceneRecorder:rS,SceneSerializer:aS,ScreenSizeBlock:oS,ScreenSpaceCurvaturePostProcess:iS,ScreenSpaceReflectionPostProcess:sS,ScreenshotTools:lS,SerializationHelper:cS,SetParentAction:uS,SetStateAction:fS,SetValueAction:pS,ShaderCodeInliner:dS,ShaderMaterial:mS,ShadowDepthWrapper:hS,ShadowGenerator:vS,ShadowGeneratorSceneComponent:CS,ShadowLight:Om,ShadowsOptimization:gS,ShapeBuilder:bS,SharpenPostProcess:yS,SheenBlock:ES,SimplexPerlin3DBlock:MS,SimplicationQueueSceneComponent:OS,SimplificationQueue:LS,SimplificationSettings:PS,get SimplificationType(){return SS},SineEase:xS,SixDofDragBehavior:TS,Size:zS,Skeleton:AS,SkeletonViewer:DS,SmartArray:RS,SmartArrayNoDuplicate:NS,SmoothStepBlock:IS,SolidParticle:HS,SolidParticleSystem:VS,SolidParticleVertex:BS,Sound:US,SoundTrack:jS,get Space(){return GS},SphereBuilder:FS,SphereDirectedParticleEmitter:WS,SphereParticleEmitter:KS,SphericalHarmonics:YS,SphericalPolynomial:ZS,SpotLight:XS,Sprite:QS,SpriteManager:$S,SpriteMap:JS,SpritePackedManager:wS,SpriteSceneComponent:kS,Stage:qS,StandardMaterial:k9,StandardMaterialDefines:_S,StandardRenderingPipeline:ex,StateCondition:tx,StencilState:nx,StepBlock:rx,StereoscopicArcRotateCamera:ax,StereoscopicFreeCamera:ox,StereoscopicGamepadCamera:ix,StereoscopicInterlacePostProcess:sx,StereoscopicInterlacePostProcessI:lx,StereoscopicUniversalCamera:cx,StickValues:ux,StopAnimationAction:fx,StopSoundAction:px,StringDictionary:dx,StringTools:mx,SubEmitter:hx,get SubEmitterType(){return vx},SubMesh:Cx,SubSurfaceBlock:gx,SubSurfaceSceneComponent:bx,SubtractBlock:yx,SwitchBooleanAction:Ex,get SwitchInput(){return Mx},TGATools:Ox,Tags:Lx,TargetCamera:Px,TargetedAnimation:Sx,TextFileAssetTask:xx,Texture:hn,TextureAssetTask:Tx,TextureBlock:zx,TextureOptimization:Ax,TexturePacker:Dx,TexturePackerFrame:Rx,TextureTools:Mp,ThinEngine:Nx,ThinMaterialHelper:Ix,TiledBoxBuilder:Hx,TiledPlaneBuilder:Vx,get TimerState(){return Bx},TmpColors:Ux,TmpVectors:T4,ToGammaSpace:jx,ToLinearSpace:Gx,TonemapPostProcess:Fx,get TonemappingOperator(){return Wx},Tools:ut,TorusBuilder:Kx,TorusKnotBuilder:Yx,TouchCamera:Zx,TrailMesh:Xx,Trajectory:Qx,TrajectoryClassifier:$x,TransformBlock:Jx,TransformNode:Xo,TrigonometryBlock:wx,get TrigonometryBlockOperations(){return kx},TubeBuilder:qx,UniformBuffer:_x,UniversalCamera:eT,UtilityLayerRenderer:tT,VRCameraMetrics:nT,VRDeviceOrientationArcRotateCamera:rT,VRDeviceOrientationFreeCamera:aT,VRDeviceOrientationGamepadCamera:oT,VRDistortionCorrectionPostProcess:iT,VRExperienceHelper:sT,VRMultiviewToSingleviewPostProcess:lT,ValueCondition:cT,Vector2:pr,Vector3:Ct,Vector4:i1,VectorMergerBlock:uT,VectorSplitterBlock:fT,VertexBuffer:$e,VertexData:pT,VertexOutputBlock:dT,VideoDome:mT,VideoRecorder:hT,VideoTexture:vT,ViewDirectionBlock:CT,Viewport:Lm,VirtualJoystick:gT,VirtualJoysticksCamera:bT,ViveController:yT,VolumetricLightScatteringPostProcess:ET,WaveBlock:MT,get WaveBlockKind(){return OT},WebGL2ShaderProcessor:LT,WebGLDataBuffer:PT,WebGLPipelineContext:ST,WebRequest:xT,WebVRController:TT,WebVRFreeCamera:zT,WebXRAbstractFeature:AT,WebXRAbstractMotionController:DT,WebXRAnchorSystem:RT,WebXRBackgroundRemover:NT,WebXRCamera:IT,WebXRControllerComponent:HT,WebXRControllerPhysics:VT,WebXRControllerPointerSelection:BT,WebXRDefaultExperience:UT,WebXRDefaultExperienceOptions:jT,WebXREnterExitUI:GT,WebXREnterExitUIButton:FT,WebXREnterExitUIOptions:WT,WebXRExperienceHelper:KT,WebXRFeatureName:YT,WebXRFeaturePointSystem:ZT,WebXRFeaturesManager:XT,WebXRGenericTriggerMotionController:QT,WebXRHTCViveMotionController:$T,WebXRHand:JT,WebXRHandTracking:wT,WebXRHitTest:kT,WebXRHitTestLegacy:qT,WebXRInput:_T,WebXRInputSource:ez,WebXRManagedOutputCanvas:tz,WebXRManagedOutputCanvasOptions:nz,WebXRMicrosoftMixedRealityController:rz,WebXRMotionControllerManager:az,WebXRMotionControllerTeleportation:oz,WebXROculusTouchMotionController:iz,WebXRPlaneDetector:sz,WebXRProfiledMotionController:lz,WebXRSessionManager:cz,get WebXRState(){return uz},get WebXRTrackingState(){return fz},WeightedSound:pz,WindowsMotionController:dz,WorkerPool:mz,WorleyNoise3DBlock:hz,XRWindowsMotionController:vz,get Xbox360Button(){return Cz},get Xbox360Dpad(){return gz},Xbox360Pad:bz,get XboxInput(){return yz},_BabylonLoaderRegistered:Ez,_BasisTextureLoader:Mz,_CreationDataStorage:Oz,_DDSTextureLoader:Lz,_ENVTextureLoader:Pz,_IAnimationState:Sz,_InstancesBatch:xz,_KTXTextureLoader:Tz,_MeshCollisionData:zz,_OcclusionDataStorage:Az,_TGATextureLoader:Dz,_TimeToken:Rz,_TypeStore:Nz,_forceSceneHelpersToBundle:Iz,_forceTransformFeedbackToBundle:Hz,className:Vz,editableInPropertyPage:Bz,expandToProperty:Uz,extractMinAndMax:jz,extractMinAndMaxIndexed:Gz,serialize:Fz,serializeAsCameraReference:Wz,serializeAsColor3:Kz,serializeAsColor4:Yz,serializeAsColorCurves:Zz,serializeAsFresnelParameters:Xz,serializeAsImageProcessingConfiguration:Qz,serializeAsMatrix:$z,serializeAsMeshReference:Jz,serializeAsQuaternion:wz,serializeAsTexture:kz,serializeAsVector2:qz,serializeAsVector3:_z,setAndStartTimer:eA},Symbol.toStringTag,{value:"Module"})),yR=Object.freeze(Object.defineProperty({__proto__:null,AbstractButton3D:tA,AdvancedDynamicTexture:nA,AdvancedDynamicTextureInstrumentation:rA,BaseSlider:aA,Button:oA,Button3D:iA,Checkbox:sA,CheckboxGroup:lA,ColorPicker:cA,Container:uA,Container3D:fA,Control:pA,Control3D:dA,CylinderPanel:mA,DisplayGrid:hA,Ellipse:vA,FluentMaterial:CA,FluentMaterialDefines:gA,GUI3DManager:bA,Grid:yA,HolographicButton:EA,Image:MA,ImageBasedSlider:OA,ImageScrollBar:LA,InputPassword:PA,InputText:SA,KeyPropertySet:xA,Line:TA,Matrix2D:zA,Measure:AA,MeshButton3D:DA,MultiLine:RA,MultiLinePoint:NA,PlanePanel:IA,RadioButton:HA,RadioGroup:VA,Rectangle:BA,ScatterPanel:UA,ScrollBar:jA,ScrollViewer:GA,SelectionPanel:FA,SelectorGroup:WA,Slider:KA,SliderGroup:YA,SpherePanel:ZA,StackPanel:XA,StackPanel3D:QA,Style:$A,TextBlock:JA,TextWrapper:wA,get TextWrapping(){return kA},ValueAndUnit:qA,Vector2WithInfo:_A,Vector3WithInfo:eD,VirtualKeyboard:tD,VolumeBasedPanel:nD,XmlLoader:rD,name:aD},Symbol.toStringTag,{value:"Module"})),ER=Object.freeze(Object.defineProperty({__proto__:null,get EBlendingFunction(){return oD},get EComponentType(){return iD},get ECullingType(){return sD},get EParameterType(){return lD},get EShaderType(){return cD},get ETextureFilterType(){return uD},get ETextureFormat(){return fD},get ETextureWrapMode(){return pD},GLTFBinaryExtension:dD,GLTFLoader:mD,GLTFLoaderBase:hD,GLTFLoaderExtension:vD,GLTFMaterialsCommonExtension:CD,GLTFUtils:gD},Symbol.toStringTag,{value:"Module"})),MR=Object.freeze(Object.defineProperty({__proto__:null,ArrayItem:bD,EXT_lights_image_based:yD,EXT_mesh_gpu_instancing:ED,EXT_texture_webp:MD,ExtrasAsMetadata:OD,GLTFLoader:LD,KHR_draco_mesh_compression:PD,KHR_lights:SD,KHR_materials_clearcoat:xD,KHR_materials_ior:TD,KHR_materials_pbrSpecularGlossiness:zD,KHR_materials_sheen:AD,KHR_materials_specular:DD,KHR_materials_translucency:RD,KHR_materials_transmission:ND,KHR_materials_unlit:ID,KHR_materials_variants:HD,KHR_mesh_quantization:VD,KHR_texture_basisu:BD,KHR_texture_transform:UD,MSFT_audio_emitter:jD,MSFT_lod:GD,MSFT_minecraftMesh:FD,MSFT_sRGBFactors:WD},Symbol.toStringTag,{value:"Module"})),OR=Object.freeze(Object.defineProperty({__proto__:null,GLTF1:ER,GLTF2:MR,GLTFFileLoader:KD,get GLTFLoaderAnimationStartMode(){return YD},get GLTFLoaderCoordinateSystemMode(){return ZD},get GLTFLoaderState(){return XD},GLTFValidation:QD,MTLFileLoader:$D,OBJFileLoader:JD,STLFileLoader:wD},Symbol.toStringTag,{value:"Module"})),LR=Object.freeze(Object.defineProperty({__proto__:null,CellMaterial:kD,CustomMaterial:qD,CustomShaderStructure:_D,FireMaterial:eR,FurMaterial:tR,GradientMaterial:nR,GridMaterial:rR,LavaMaterial:aR,MixMaterial:oR,NormalMaterial:iR,PBRCustomMaterial:sR,ShaderAlebdoParts:lR,ShaderSpecialParts:cR,ShadowOnlyMaterial:uR,SimpleMaterial:fR,SkyMaterial:pR,TerrainMaterial:dR,TriPlanarMaterial:mR,WaterMaterial:hR},Symbol.toStringTag,{value:"Module"}));var J9={exports:{}};const PR=Mc(bR),SR=Mc(yR),xR=Mc(OR),TR=Mc(LR);var zR=function(){function k(){}return k.OBJ=function(O,N,V,W){var j=[],q=1;N&&(V||(V="mat"),j.push("mtllib "+V+".mtl"));for(var A=0;A<O.length;A++){j.push("g object"+A),j.push("o object_"+A);var a=null;if(W){var t=Qo.Translation(O[A].position.x,O[A].position.y,O[A].position.z);a=Qo.Translation(-O[A].position.x,-O[A].position.y,-O[A].position.z),O[A].bakeTransformIntoVertices(t)}if(N){var y=O[A].material;y&&j.push("usemtl "+y.id)}var r=O[A].geometry;if(!r){ut.Warn("No geometry is present on the mesh");continue}var f=r.getVerticesData("position"),d=r.getVerticesData("normal"),g=r.getVerticesData("uv"),c=r.getIndices(),l=0;if(!f||!c){ut.Warn("There are no position vertices or indices on the mesh!");continue}for(var i=0;i<f.length;i+=3)O[0].getScene().useRightHandedSystem?j.push("v "+f[i]+" "+f[i+1]+" "+f[i+2]):j.push("v "+f[i]+" "+f[i+1]+" "+-f[i+2]),l++;if(d!=null)for(i=0;i<d.length;i+=3)j.push("vn "+d[i]+" "+d[i+1]+" "+d[i+2]);if(g!=null)for(i=0;i<g.length;i+=2)j.push("vt "+g[i]+" "+g[i+1]);for(i=0;i<c.length;i+=3){var u=[String(c[i+2]+q),String(c[i+1]+q),String(c[i]+q)],v=["","",""],h=u,C=g!=null?u:v,p=d!=null?u:v;j.push("f "+h[0]+"/"+C[0]+"/"+p[0]+" "+h[1]+"/"+C[1]+"/"+p[1]+" "+h[2]+"/"+C[2]+"/"+p[2])}W&&a&&O[A].bakeTransformIntoVertices(a),q+=l}var b=j.join(`
|
|
2
2
|
`);return b},k.MTL=function(O){var N=[],V=O.material;N.push("newmtl mat1"),N.push(" Ns "+V.specularPower.toFixed(4)),N.push(" Ni 1.5000"),N.push(" d "+V.alpha.toFixed(4)),N.push(" Tr 0.0000"),N.push(" Tf 1.0000 1.0000 1.0000"),N.push(" illum 2"),N.push(" Ka "+V.ambientColor.r.toFixed(4)+" "+V.ambientColor.g.toFixed(4)+" "+V.ambientColor.b.toFixed(4)),N.push(" Kd "+V.diffuseColor.r.toFixed(4)+" "+V.diffuseColor.g.toFixed(4)+" "+V.diffuseColor.b.toFixed(4)),N.push(" Ks "+V.specularColor.r.toFixed(4)+" "+V.specularColor.g.toFixed(4)+" "+V.specularColor.b.toFixed(4)),N.push(" Ke "+V.emissiveColor.r.toFixed(4)+" "+V.emissiveColor.g.toFixed(4)+" "+V.emissiveColor.b.toFixed(4));var W="";V.ambientTexture&&N.push(" map_Ka "+W+V.ambientTexture.name),V.diffuseTexture&&N.push(" map_Kd "+W+V.diffuseTexture.name),V.specularTexture&&N.push(" map_Ks "+W+V.specularTexture.name),V.bumpTexture&&N.push(" map_bump -imfchan z "+W+V.bumpTexture.name),V.opacityTexture&&N.push(" map_d "+W+V.opacityTexture.name);var j=N.join(`
|
|
3
3
|
`);return j},k}(),AR=0,st=function(){function k(){}return k._CreateBufferView=function(O,N,V,W,j){var q={buffer:O,byteLength:V};return N&&(q.byteOffset=N),j&&(q.name=j),W&&(q.byteStride=W),q},k._CreateAccessor=function(O,N,V,W,j,q,A,a){var t={name:N,bufferView:O,componentType:W,count:j,type:V};return A!=null&&(t.min=A),a!=null&&(t.max=a),q!=null&&(t.byteOffset=q),t},k._CalculateMinMaxPositions=function(O,N,V,W){var j=[1/0,1/0,1/0],q=[-1/0,-1/0,-1/0],A=3,a,t,y;if(V)for(var r=N,f=N+V;r<f;++r){a=A*r,t=Ct.FromArray(O,a),W&&k._GetRightHandedPositionVector3FromRef(t),y=t.asArray();for(var d=0;d<A;++d){var g=y[d];g<j[d]&&(j[d]=g),g>q[d]&&(q[d]=g),++a}}return{min:j,max:q}},k._GetRightHandedPositionVector3=function(O){return new Ct(O.x,O.y,-O.z)},k._GetRightHandedPositionVector3FromRef=function(O){O.z*=-1},k._GetRightHandedPositionArray3FromRef=function(O){O[2]*=-1},k._GetRightHandedNormalVector3=function(O){return new Ct(O.x,O.y,-O.z)},k._GetRightHandedNormalVector3FromRef=function(O){O.z*=-1},k._GetRightHandedNormalArray3FromRef=function(O){O[2]*=-1},k._GetRightHandedVector4FromRef=function(O){O.z*=-1,O.w*=-1},k._GetRightHandedArray4FromRef=function(O){O[2]*=-1,O[3]*=-1},k._GetRightHandedQuaternionFromRef=function(O){O.x*=-1,O.y*=-1},k._GetRightHandedQuaternionArrayFromRef=function(O){O[0]*=-1,O[1]*=-1},k._NormalizeTangentFromRef=function(O){var N=Math.sqrt(O.x*O.x+O.y*O.y+O.z*O.z);N>0&&(O.x/=N,O.y/=N,O.z/=N)},k._GetRightHandedMatrixFromRef=function(O){var N=O.m;Qo.FromValuesToRef(N[0],N[1],-N[2],N[3],N[4],N[5],-N[6],N[7],-N[8],N[9],N[10],N[11],N[12],N[13],N[14],N[15],O)},k._GetDataAccessorElementCount=function(O){switch(O){case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16;case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":return 4}},k}(),yc;(function(k){k[k.INTANGENT=0]="INTANGENT",k[k.OUTTANGENT=1]="OUTTANGENT"})(yc||(yc={}));var w9=function(){function k(){}return k._CreateNodeAnimation=function(O,N,V,W,j,q){var A=[],a=[],t=N.getKeys(),y=k.calculateMinMaxKeyFrames(t),r=k._DeduceInterpolation(t,V,j),f=y.max-y.min,d=r.interpolationType,g=r.shouldBakeAnimation;if(g?k._CreateBakedAnimation(O,N,V,y.min,y.max,N.framePerSecond,q,A,a,y,W,j):d==="LINEAR"||d==="STEP"?k._CreateLinearOrStepAnimation(O,N,V,f,A,a,W,j):d==="CUBICSPLINE"?k._CreateCubicSplineAnimation(O,N,V,f,A,a,W,j):k._CreateBakedAnimation(O,N,V,y.min,y.max,N.framePerSecond,q,A,a,y,W,j),A.length&&a.length){var c={inputs:A,outputs:a,samplerInterpolation:d,inputsMin:g?y.min:ut.FloatRound(y.min/N.framePerSecond),inputsMax:g?y.max:ut.FloatRound(y.max/N.framePerSecond)};return c}return null},k._DeduceAnimationInfo=function(O){var N=null,V="VEC3",W=!1,j=O.targetProperty.split(".");switch(j[0]){case"scaling":{N="scale";break}case"position":{N="translation";break}case"rotation":{V="VEC4",N="rotation";break}case"rotationQuaternion":{V="VEC4",W=!0,N="rotation";break}case"influence":{V="SCALAR",N="weights";break}default:ut.Error("Unsupported animatable property "+j[0])}return N?{animationChannelTargetPath:N,dataAccessorType:V,useQuaternion:W}:(ut.Error("animation channel target path and data accessor type could be deduced"),null)},k._CreateNodeAnimationFromNodeAnimations=function(O,N,V,W,j,q,A,a,t,y){var r;if(O instanceof Xo&&O.animations)for(var f=0,d=O.animations;f<d.length;f++){var g=d[f],c=k._DeduceAnimationInfo(g);c&&(r={name:g.name,samplers:[],channels:[]},k.AddAnimation(""+g.name,g.hasRunningRuntimeAnimations?N:r,O,g,c.dataAccessorType,c.animationChannelTargetPath,W,q,A,a,t,c.useQuaternion,y),r.samplers.length&&r.channels.length&&V.push(r))}},k._CreateMorphTargetAnimationFromMorphTargetAnimations=function(O,N,V,W,j,q,A,a,t,y){var r;if(O instanceof A4){var f=O.morphTargetManager;if(f)for(var d=0;d<f.numTargets;++d)for(var g=f.getTarget(d),c=0,l=g.animations;c<l.length;c++){for(var i=l[c],u=new Pa(""+i.name,"influence",i.framePerSecond,i.dataType,i.loopMode,i.enableBlending),v=[],h=i.getKeys(),C=0;C<h.length;++C)for(var p=h[C],b=0;b<f.numTargets;++b)b==d?v.push(p):v.push({frame:p.frame,value:0});u.setKeys(v);var E=k._DeduceAnimationInfo(u);E&&(r={name:u.name,samplers:[],channels:[]},k.AddAnimation(i.name,i.hasRunningRuntimeAnimations?N:r,O,u,E.dataAccessorType,E.animationChannelTargetPath,W,q,A,a,t,E.useQuaternion,y,f.numTargets),r.samplers.length&&r.channels.length&&V.push(r))}}},k._CreateNodeAndMorphAnimationFromAnimationGroups=function(O,N,V,W,j,q,A,a,t){var y,r;if(O.animationGroups)for(var f=O.animationGroups,d=function(i){var u=new Map,v=new Map,h=new Set,C=i.to-i.from;r={name:i.name,channels:[],samplers:[]};for(var p=function(E){var P=i.targetedAnimations[E],I=P.target,S=P.animation;if(I instanceof Xo||I.length===1&&I[0]instanceof Xo){var D=k._DeduceAnimationInfo(P.animation);if(D){var R=I instanceof Xo?I:I[0],H=a[R.uniqueId];k.AddAnimation(""+S.name,r,R,S,D.dataAccessorType,D.animationChannelTargetPath,V,j,q,A,H,D.useQuaternion,t)}}else if(I instanceof $9||I.length===1&&I[0]instanceof $9){var D=k._DeduceAnimationInfo(P.animation);if(D){var L=I instanceof $9?I:I[0];if(L){var T=O.morphTargetManagers.find(function(X){for(var $=0;$<X.numTargets;++$)if(X.getTarget($)===L)return!0;return!1});if(T){var x=O.meshes.find(function(X){return X.morphTargetManager===T});x&&(u.has(x)||u.set(x,new Map),(y=u.get(x))===null||y===void 0||y.set(L,S),h.add(x),v.set(x,S))}}}}},b=0;b<i.targetedAnimations.length;++b)p(b);h.forEach(function(E){for(var P=E.morphTargetManager,I=null,S=[],D=v.get(E),R=D.getKeys(),H=R.length,L=0;L<H;++L)for(var T=0;T<P.numTargets;++T){var x=P.getTarget(T),J=u.get(E);if(J){var X=J.get(x);X?(I||(I=new Pa(i.name+"_"+E.name+"_MorphWeightAnimation","influence",X.framePerSecond,Pa.ANIMATIONTYPE_FLOAT,X.loopMode,X.enableBlending)),S.push(X.getKeys()[L])):S.push({frame:i.from+C/H*L,value:x.influence,inTangent:R[0].inTangent?0:void 0,outTangent:R[0].outTangent?0:void 0})}}I.setKeys(S);var $=k._DeduceAnimationInfo(I);$&&k.AddAnimation(i.name+"_"+E.name+"_MorphWeightAnimation",r,E,I,$.dataAccessorType,$.animationChannelTargetPath,V,j,q,A,!1,$.useQuaternion,t,P==null?void 0:P.numTargets)}),r.channels.length&&r.samplers.length&&N.push(r)},g=0,c=f;g<c.length;g++){var l=c[g];d(l)}},k.AddAnimation=function(O,N,V,W,j,q,A,a,t,y,r,f,d,g){var c=k._CreateNodeAnimation(V,W,q,r,f,d),l,i,u,v,h,C,p;if(c){if(g){for(var b=0,E=0,P=[];c.inputs.length>0;)E=c.inputs.shift(),b%g==0&&P.push(E),b++;c.inputs=P}var I=A[V.uniqueId],S=c.inputs.length*4;l=st._CreateBufferView(0,a.getByteOffset(),S,void 0,O+" keyframe data view"),t.push(l),c.inputs.forEach(function(D){a.setFloat32(D)}),i=st._CreateAccessor(t.length-1,O+" keyframes","SCALAR",5126,c.inputs.length,null,[c.inputsMin],[c.inputsMax]),y.push(i),u=y.length-1,h=c.outputs.length,S=st._GetDataAccessorElementCount(j)*4*c.outputs.length,l=st._CreateBufferView(0,a.getByteOffset(),S,void 0,O+" data view"),t.push(l),c.outputs.forEach(function(D){D.forEach(function(R){a.setFloat32(R)})}),i=st._CreateAccessor(t.length-1,O+" data",j,5126,h,null,null,null),y.push(i),v=y.length-1,C={interpolation:c.samplerInterpolation,input:u,output:v},N.samplers.push(C),p={sampler:N.samplers.length-1,target:{node:I,path:q}},N.channels.push(p)}},k._CreateBakedAnimation=function(O,N,V,W,j,q,A,a,t,y,r,f){var d,g=wt.Identity(),c=null,l,i=null,u=null,v=null,h=null,C=null;y.min=ut.FloatRound(W/q);for(var p=N.getKeys(),b=0,E=p.length;b<E;++b){if(C=null,u=p[b],b+1<E)if(v=p[b+1],u.value.equals&&u.value.equals(v.value)||u.value===v.value)if(b===0)C=u.frame;else continue;else C=v.frame;else{if(h=p[b-1],u.value.equals&&u.value.equals(h.value)||u.value===h.value)continue;C=j}if(C){for(var P=u.frame;P<=C;P+=A)if(l=ut.FloatRound(P/q),l!==c){c=l,i=l;var I={key:0,repeatCount:0,loopMode:N.loopMode};d=N._interpolate(P,I),k._SetInterpolatedValue(O,d,l,N,V,g,a,t,r,f)}}}i&&(y.max=i)},k._ConvertFactorToVector3OrQuaternion=function(O,N,V,W,j,q,A){var a,t,y=null,r=k._GetBasePositionRotationOrScale(N,j,q,A);if(W===Pa.ANIMATIONTYPE_FLOAT)switch(a=V.targetProperty.split("."),t=a?a[1]:"",y=A?wt.FromArray(r).normalize():Ct.FromArray(r),t){case"x":{y[t]=q&&A&&j!=="scale"?-O:O;break}case"y":{y[t]=q&&A&&j!=="scale"?-O:O;break}case"z":{y[t]=q&&!A&&j!=="scale"?-O:O;break}case"w":{y.w=O;break}default:ut.Error('glTFAnimation: Unsupported component type "'+t+'" for scale animation!')}return y},k._SetInterpolatedValue=function(O,N,V,W,j,q,A,a,t,y){var r=W.dataType,f;A.push(V),typeof N=="number"&&O instanceof Xo&&(N=this._ConvertFactorToVector3OrQuaternion(N,O,W,r,j,t,y)),N&&(j==="rotation"?(y?q=N:(f=N,wt.RotationYawPitchRollToRef(f.y,f.x,f.z,q)),t&&(st._GetRightHandedQuaternionFromRef(q),O.parent||(q=wt.FromArray([0,1,0,0]).multiply(q))),a.push(q.asArray())):j==="weights"?a.push([N]):(f=N,t&&j!=="scale"&&(st._GetRightHandedPositionVector3FromRef(f),O.parent||(f.x*=-1,f.z*=-1)),a.push(f.asArray())))},k._CreateLinearOrStepAnimation=function(O,N,V,W,j,q,A,a){for(var t=0,y=N.getKeys();t<y.length;t++){var r=y[t];j.push(r.frame/N.framePerSecond),k._AddKeyframeValue(r,N,q,V,O,A,a)}},k._CreateCubicSplineAnimation=function(O,N,V,W,j,q,A,a){N.getKeys().forEach(function(t){j.push(t.frame/N.framePerSecond),k.AddSplineTangent(O,yc.INTANGENT,q,V,"CUBICSPLINE",t,W,a,A),k._AddKeyframeValue(t,N,q,V,O,A,a),k.AddSplineTangent(O,yc.OUTTANGENT,q,V,"CUBICSPLINE",t,W,a,A)})},k._GetBasePositionRotationOrScale=function(O,N,V,W){var j;return N==="rotation"?W?O.rotationQuaternion?(j=O.rotationQuaternion.asArray(),V&&(st._GetRightHandedQuaternionArrayFromRef(j),O.parent||(j=wt.FromArray([0,1,0,0]).multiply(wt.FromArray(j)).asArray()))):j=wt.Identity().asArray():(j=O.rotation.asArray(),st._GetRightHandedNormalArray3FromRef(j)):N==="translation"?(j=O.position.asArray(),V&&st._GetRightHandedPositionArray3FromRef(j)):j=O.scaling.asArray(),j},k._AddKeyframeValue=function(O,N,V,W,j,q,A){var a,t,y=N.dataType;if(y===Pa.ANIMATIONTYPE_VECTOR3){if(a=O.value.asArray(),W==="rotation"){var r=Ct.FromArray(a),f=wt.RotationYawPitchRoll(r.y,r.x,r.z);q&&(st._GetRightHandedQuaternionFromRef(f),j.parent||(f=wt.FromArray([0,1,0,0]).multiply(f))),a=f.asArray()}else W==="translation"&&q&&(st._GetRightHandedNormalArray3FromRef(a),j.parent||(a[0]*=-1,a[2]*=-1));V.push(a)}else if(y===Pa.ANIMATIONTYPE_FLOAT){if(W==="weights")V.push([O.value]);else if(t=this._ConvertFactorToVector3OrQuaternion(O.value,j,N,y,W,q,A),t){if(W==="rotation"){var d=A?t:wt.RotationYawPitchRoll(t.y,t.x,t.z).normalize();q&&(st._GetRightHandedQuaternionFromRef(d),j.parent||(d=wt.FromArray([0,1,0,0]).multiply(d))),V.push(d.asArray())}else W==="translation"&&q&&(st._GetRightHandedNormalVector3FromRef(t),j.parent||(t.x*=-1,t.z*=-1));V.push(t.asArray())}}else y===Pa.ANIMATIONTYPE_QUATERNION?(a=O.value.normalize().asArray(),q&&(st._GetRightHandedQuaternionArrayFromRef(a),j.parent||(a=wt.FromArray([0,1,0,0]).multiply(wt.FromArray(a)).asArray())),V.push(a)):ut.Error("glTFAnimation: Unsupported key frame values for animation!")},k._DeduceInterpolation=function(O,N,V){var W,j=!1,q;if(N==="rotation"&&!V)return{interpolationType:"LINEAR",shouldBakeAnimation:!0};for(var A=0,a=O.length;A<a;++A)if(q=O[A],q.inTangent||q.outTangent)if(W){if(W!=="CUBICSPLINE"){W="LINEAR",j=!0;break}}else W="CUBICSPLINE";else if(W){if(W==="CUBICSPLINE"||q.interpolation&&q.interpolation===gp.STEP&&W!=="STEP"){W="LINEAR",j=!0;break}}else q.interpolation&&q.interpolation===gp.STEP?W="STEP":W="LINEAR";return W||(W="LINEAR"),{interpolationType:W,shouldBakeAnimation:j}},k.AddSplineTangent=function(O,N,V,W,j,q,A,a,t){var y,r=N===yc.INTANGENT?q.inTangent:q.outTangent;if(j==="CUBICSPLINE"){if(W==="rotation")if(r){if(a)y=r.asArray();else{var f=r;y=wt.RotationYawPitchRoll(f.y,f.x,f.z).asArray()}t&&(st._GetRightHandedQuaternionArrayFromRef(y),O.parent||(y=wt.FromArray([0,1,0,0]).multiply(wt.FromArray(y)).asArray()))}else y=[0,0,0,0];else W==="weights"?r?y=[r]:y=[0]:r?(y=r.asArray(),t&&W==="translation"&&(st._GetRightHandedPositionArray3FromRef(y),O.parent||(y[0]*=-1,y[2]*=-1))):y=[0,0,0];V.push(y)}},k.calculateMinMaxKeyFrames=function(O){var N=1/0,V=-1/0;return O.forEach(function(W){N=Math.min(N,W.frame),V=Math.max(V,W.frame)}),{min:N,max:V}},k}(),Op=function(){function k(){this.glTFFiles={}}return k.prototype.downloadFiles=function(){function O(q,A){return q.indexOf(A,q.length-A.length)!==-1}for(var N in this.glTFFiles){var V=document.createElement("a");document.body.appendChild(V),V.setAttribute("type","hidden"),V.download=N;var W=this.glTFFiles[N],j=void 0;O(N,".glb")?j={type:"model/gltf-binary"}:O(N,".bin")?j={type:"application/octet-stream"}:O(N,".gltf")?j={type:"model/gltf+json"}:O(N,".jpeg")?j={type:"image/jpeg"}:O(N,".png")&&(j={type:"image/png"}),V.href=window.URL.createObjectURL(new Blob([W],j)),V.click()}},k}(),Pm=function(){function k(O){this._textureMap={},this._textureMap={},this._exporter=O}return k.FuzzyEquals=function(O,N,V){return ss.WithinEpsilon(O.r,N.r,V)&&ss.WithinEpsilon(O.g,N.g,V)&&ss.WithinEpsilon(O.b,N.b,V)},k.prototype._convertMaterialsToGLTFAsync=function(O,N,V){for(var W=[],j=0,q=O;j<q.length;j++){var A=q[j];A instanceof k9?W.push(this._convertStandardMaterialAsync(A,N,V)):A instanceof gm?W.push(this._convertPBRMetallicRoughnessMaterialAsync(A,N,V)):A instanceof Ec?W.push(this._convertPBRMaterialAsync(A,N,V)):ut.Warn("Unsupported material type: "+A.name)}return Promise.all(W).then(function(){})},k.prototype._stripTexturesFromMaterial=function(O){var N={};if(O){N.name=O.name,N.doubleSided=O.doubleSided,N.alphaMode=O.alphaMode,N.alphaCutoff=O.alphaCutoff,N.emissiveFactor=O.emissiveFactor;var V=O.pbrMetallicRoughness;V&&(N.pbrMetallicRoughness={},N.pbrMetallicRoughness.baseColorFactor=V.baseColorFactor,N.pbrMetallicRoughness.metallicFactor=V.metallicFactor,N.pbrMetallicRoughness.roughnessFactor=V.roughnessFactor)}return N},k.prototype._hasTexturesPresent=function(O){if(O.emissiveTexture||O.normalTexture||O.occlusionTexture)return!0;var N=O.pbrMetallicRoughness;return!!(N&&(N.baseColorTexture||N.metallicRoughnessTexture))},k.prototype._convertToGLTFPBRMetallicRoughness=function(O){var N=new pr(0,1),V=new pr(0,.1),W=new pr(0,.1),j=new pr(1300,.1);function q(d,g,c,l,i){return(1-d)*(1-d)*(1-d)*g+3*(1-d)*(1-d)*d*c+3*(1-d)*d*d*l+d*d*d*i}function A(d){var g=Math.pow(d/j.x,.333333);return q(g,N.y,V.y,W.y,j.y)}var a=O.diffuseColor.toLinearSpace().scale(.5),t=O.alpha,y=ss.Clamp(O.specularPower,0,k._MaxSpecularPower),r=A(y),f={baseColorFactor:[a.r,a.g,a.b,t],metallicFactor:0,roughnessFactor:r};return f},k._SolveMetallic=function(O,N,V){if(N<this._DielectricSpecular.r)return this._DielectricSpecular,0;var W=this._DielectricSpecular.r,j=O*V/(1-this._DielectricSpecular.r)+N-2*this._DielectricSpecular.r,q=this._DielectricSpecular.r-N,A=j*j-4*W*q;return ss.Clamp((-j+Math.sqrt(A))/(2*W),0,1)},k._SetAlphaMode=function(O,N){N.needAlphaBlending()?O.alphaMode="BLEND":N.needAlphaTesting()&&(O.alphaMode="MASK",O.alphaCutoff=N.alphaCutOff)},k.prototype._convertStandardMaterialAsync=function(O,N,V){var W=this._exporter._materialMap,j=this._exporter._materials,q=[],A=this._convertToGLTFPBRMetallicRoughness(O),a={name:O.name};return O.backFaceCulling!=null&&!O.backFaceCulling&&(O.twoSidedLighting||ut.Warn(O.name+": Back-face culling enabled and two-sided lighting disabled is not supported in glTF."),a.doubleSided=!0),V&&(O.diffuseTexture&&q.push(this._exportTextureAsync(O.diffuseTexture,N).then(function(t){t&&(A.baseColorTexture=t)})),O.bumpTexture&&q.push(this._exportTextureAsync(O.bumpTexture,N).then(function(t){t&&(a.normalTexture=t,O.bumpTexture!=null&&O.bumpTexture.level!==1&&(a.normalTexture.scale=O.bumpTexture.level))})),O.emissiveTexture&&(a.emissiveFactor=[1,1,1],q.push(this._exportTextureAsync(O.emissiveTexture,N).then(function(t){t&&(a.emissiveTexture=t)}))),O.ambientTexture&&q.push(this._exportTextureAsync(O.ambientTexture,N).then(function(t){if(t){var y={index:t.index};a.occlusionTexture=y,y.strength=1}}))),(O.alpha<1||O.opacityTexture)&&(O.alphaMode===is.ALPHA_COMBINE?a.alphaMode="BLEND":ut.Warn(O.name+": glTF 2.0 does not support alpha mode: "+O.alphaMode.toString())),O.emissiveColor&&!k.FuzzyEquals(O.emissiveColor,Jn.Black(),k._Epsilon)&&(a.emissiveFactor=O.emissiveColor.asArray()),a.pbrMetallicRoughness=A,k._SetAlphaMode(a,O),j.push(a),W[O.uniqueId]=j.length-1,this._finishMaterial(q,a,O,N)},k.prototype._finishMaterial=function(O,N,V,W){var j=this;return Promise.all(O).then(function(){for(var q=j._exporter._extensionsPostExportMaterialAdditionalTextures("exportMaterial",N,V),A=null,a=0,t=q;a<t.length;a++){var y=t[a];A||(A=[]),A.push(j._exportTextureAsync(y,W))}return A||(A=[Promise.resolve(null)]),Promise.all(A).then(function(){var r=j._exporter._extensionsPostExportMaterialAsync("exportMaterial",N,V);return r?r.then(function(){return N}):N})})},k.prototype._convertPBRMetallicRoughnessMaterialAsync=function(O,N,V){var W=this._exporter._materialMap,j=this._exporter._materials,q=[],A={};O.baseColor&&(A.baseColorFactor=[O.baseColor.r,O.baseColor.g,O.baseColor.b,O.alpha]),O.metallic!=null&&O.metallic!==1&&(A.metallicFactor=O.metallic),O.roughness!=null&&O.roughness!==1&&(A.roughnessFactor=O.roughness);var a={name:O.name};return O.doubleSided&&(a.doubleSided=O.doubleSided),k._SetAlphaMode(a,O),V&&(O.baseTexture!=null&&q.push(this._exportTextureAsync(O.baseTexture,N).then(function(t){t&&(A.baseColorTexture=t)})),O.normalTexture&&q.push(this._exportTextureAsync(O.normalTexture,N).then(function(t){t&&(a.normalTexture=t,O.normalTexture.level!==1&&(a.normalTexture.scale=O.normalTexture.level))})),O.occlusionTexture&&q.push(this._exportTextureAsync(O.occlusionTexture,N).then(function(t){t&&(a.occlusionTexture=t,O.occlusionStrength!=null&&(a.occlusionTexture.strength=O.occlusionStrength))})),O.emissiveTexture&&q.push(this._exportTextureAsync(O.emissiveTexture,N).then(function(t){t&&(a.emissiveTexture=t)}))),k.FuzzyEquals(O.emissiveColor,Jn.Black(),k._Epsilon)&&(a.emissiveFactor=O.emissiveColor.asArray()),a.pbrMetallicRoughness=A,j.push(a),W[O.uniqueId]=j.length-1,this._finishMaterial(q,a,O,N)},k.prototype._createBase64FromCanvasAsync=function(O,N,V,W){var j=this;return new Promise(function(q,A){var a,t=is.TEXTURETYPE_UNSIGNED_INT,y=j._exporter._getLocalEngine();a=new Mm(y);var r=y.createRawTexture(O,N,V,is.TEXTUREFORMAT_RGBA,!1,!0,hn.NEAREST_SAMPLINGMODE,null,t),f=new bm("pass","pass",null,null,1,null,hn.NEAREST_SAMPLINGMODE,y,!1,void 0,is.TEXTURETYPE_UNSIGNED_INT,void 0,null,!1);f.getEffect().executeWhenCompiled(function(){var d,g;f.onApply=function(v){v._bindTexture("textureSampler",r)},y.setSize(N,V),a.postProcessManager.directRender([f],null),f.dispose(),r.dispose();var c=y.getRenderingCanvas(),l=document.createElement("canvas");l.width=(d=c==null?void 0:c.width)!==null&&d!==void 0?d:0,l.height=(g=c==null?void 0:c.height)!==null&&g!==void 0?g:0;var i=l.getContext("2d");if(i.drawImage(c,0,0),l)if(l.toBlob)ut.ToBlob(l,function(v){if(l=null,v){var h=new FileReader;h.onload=function(C){var p=C.target.result;a.dispose(),q(p)},h.readAsDataURL(v)}else A("gltfMaterialExporter: Failed to get blob from image canvas!")},W);else{var u=l.toDataURL();q(u)}else A("Engine is missing a canvas!")})})},k.prototype._createWhiteTexture=function(O,N,V){for(var W=new Uint8Array(O*N*4),j=0;j<W.length;j=j+4)W[j]=W[j+1]=W[j+2]=W[j+3]=255;var q=Em.CreateRGBATexture(W,O,N,V);return q},k.prototype._resizeTexturesToSameDimensions=function(O,N,V){var W=O?O.getSize():{width:0,height:0},j=N?N.getSize():{width:0,height:0},q,A;return W.width<j.width?(O&&O instanceof hn?q=Mp.CreateResizedCopy(O,j.width,j.height,!0):q=this._createWhiteTexture(j.width,j.height,V),A=N):W.width>j.width?(N&&N instanceof hn?A=Mp.CreateResizedCopy(N,W.width,W.height,!0):A=this._createWhiteTexture(W.width,W.height,V),q=O):(q=O,A=N),{texture1:q,texture2:A}},k.prototype._convertPixelArrayToFloat32=function(O){if(O instanceof Uint8Array){for(var N=O.length,V=new Float32Array(O.length),W=0;W<N;++W)V[W]=O[W]/255;return V}else{if(O instanceof Float32Array)return O;throw new Error("Unsupported pixel format!")}},k.prototype._convertSpecularGlossinessTexturesToMetallicRoughnessAsync=function(O,N,V,W){var j=[];if(!(O||N))return Promise.reject("_ConvertSpecularGlosinessTexturesToMetallicRoughness: diffuse and specular glossiness textures are not defined!");var q=O?O.getScene():N?N.getScene():null;if(q){var A=this._resizeTexturesToSameDimensions(O,N,q),a=A.texture1.getSize(),t=void 0,y=void 0,r=a.width,f=a.height,d=A.texture1.readPixels(),g=A.texture2.readPixels();if(d)t=this._convertPixelArrayToFloat32(d);else return Promise.reject("Failed to retrieve pixels from diffuse texture!");if(g)y=this._convertPixelArrayToFloat32(g);else return Promise.reject("Failed to retrieve pixels from specular glossiness texture!");for(var c=y.byteLength,l=new Uint8Array(c),i=new Uint8Array(c),u=4,v=Jn.Black(),h=0,C=0,p=0;p<f;++p)for(var b=0;b<r;++b){var E=(r*p+b)*u,P=new Jn(t[E],t[E+1],t[E+2]).toLinearSpace().multiply(V.diffuseColor),I=new Jn(y[E],y[E+1],y[E+2]).toLinearSpace().multiply(V.specularColor),S=y[E+3]*V.glossiness,D={diffuseColor:P,specularColor:I,glossiness:S},R=this._convertSpecularGlossinessToMetallicRoughness(D);v.r=Math.max(v.r,R.baseColor.r),v.g=Math.max(v.g,R.baseColor.g),v.b=Math.max(v.b,R.baseColor.b),h=Math.max(h,R.metallic),C=Math.max(C,R.roughness),i[E]=R.baseColor.r*255,i[E+1]=R.baseColor.g*255,i[E+2]=R.baseColor.b*255,i[E+3]=A.texture1.hasAlpha?t[E+3]*255:255,l[E]=0,l[E+1]=R.roughness*255,l[E+2]=R.metallic*255,l[E+3]=255}for(var H={baseColor:v,metallic:h,roughness:C},L=!1,T=!1,p=0;p<f;++p)for(var b=0;b<r;++b){var x=(r*p+b)*u;i[x]/=H.baseColor.r>k._Epsilon?H.baseColor.r:1,i[x+1]/=H.baseColor.g>k._Epsilon?H.baseColor.g:1,i[x+2]/=H.baseColor.b>k._Epsilon?H.baseColor.b:1;var J=Jn.FromInts(i[x],i[x+1],i[x+2]),X=J.toGammaSpace();i[x]=X.r*255,i[x+1]=X.g*255,i[x+2]=X.b*255,k.FuzzyEquals(X,Jn.White(),k._Epsilon)||(T=!0),l[x+1]/=H.roughness>k._Epsilon?H.roughness:1,l[x+2]/=H.metallic>k._Epsilon?H.metallic:1;var $=Jn.FromInts(255,l[x+1],l[x+2]);k.FuzzyEquals($,Jn.White(),k._Epsilon)||(L=!0)}if(L){var G=this._createBase64FromCanvasAsync(l,r,f,W).then(function(Y){H.metallicRoughnessTextureBase64=Y});j.push(G)}if(T){var G=this._createBase64FromCanvasAsync(i,r,f,W).then(function(_){H.baseColorTextureBase64=_});j.push(G)}return Promise.all(j).then(function(){return H})}else return Promise.reject("_ConvertSpecularGlossinessTexturesToMetallicRoughness: Scene from textures is missing!")},k.prototype._convertSpecularGlossinessToMetallicRoughness=function(O){var N=this._getPerceivedBrightness(O.diffuseColor),V=this._getPerceivedBrightness(O.specularColor),W=1-this._getMaxComponent(O.specularColor),j=k._SolveMetallic(N,V,W),q=O.diffuseColor.scale(W/(1-k._DielectricSpecular.r)/Math.max(1-j,k._Epsilon)),A=O.specularColor.subtract(k._DielectricSpecular.scale(1-j)).scale(1/Math.max(j,k._Epsilon)),a=Jn.Lerp(q,A,j*j);a=a.clampToRef(0,1,a);var t={baseColor:a,metallic:j,roughness:1-O.glossiness};return t},k.prototype._getPerceivedBrightness=function(O){return O?Math.sqrt(.299*O.r*O.r+.587*O.g*O.g+.114*O.b*O.b):0},k.prototype._getMaxComponent=function(O){return O?Math.max(O.r,Math.max(O.g,O.b)):0},k.prototype._convertMetalRoughFactorsToMetallicRoughnessAsync=function(O,N,V,W){var j=[],q={baseColor:O.albedoColor,metallic:O.metallic,roughness:O.roughness};return W&&(O.albedoTexture&&j.push(this._exportTextureAsync(O.albedoTexture,N).then(function(A){A&&(V.baseColorTexture=A)})),O.metallicTexture&&j.push(this._exportTextureAsync(O.metallicTexture,N).then(function(A){A&&(V.metallicRoughnessTexture=A)}))),Promise.all(j).then(function(){return q})},k.prototype._getGLTFTextureSampler=function(O){var N=this._getGLTFTextureWrapModesSampler(O),V=O instanceof hn?O.samplingMode:null;if(V!=null)switch(V){case hn.LINEAR_LINEAR:{N.magFilter=9729,N.minFilter=9729;break}case hn.LINEAR_NEAREST:{N.magFilter=9729,N.minFilter=9728;break}case hn.NEAREST_LINEAR:{N.magFilter=9728,N.minFilter=9729;break}case hn.NEAREST_LINEAR_MIPLINEAR:{N.magFilter=9728,N.minFilter=9987;break}case hn.NEAREST_NEAREST:{N.magFilter=9728,N.minFilter=9728;break}case hn.NEAREST_LINEAR_MIPNEAREST:{N.magFilter=9728,N.minFilter=9985;break}case hn.LINEAR_NEAREST_MIPNEAREST:{N.magFilter=9729,N.minFilter=9984;break}case hn.LINEAR_NEAREST_MIPLINEAR:{N.magFilter=9729,N.minFilter=9986;break}case hn.NEAREST_NEAREST_MIPLINEAR:{N.magFilter=9728,N.minFilter=9986;break}case hn.LINEAR_LINEAR_MIPLINEAR:{N.magFilter=9729,N.minFilter=9987;break}case hn.LINEAR_LINEAR_MIPNEAREST:{N.magFilter=9729,N.minFilter=9985;break}case hn.NEAREST_NEAREST_MIPNEAREST:{N.magFilter=9728,N.minFilter=9984;break}}return N},k.prototype._getGLTFTextureWrapMode=function(O){switch(O){case hn.WRAP_ADDRESSMODE:return 10497;case hn.CLAMP_ADDRESSMODE:return 33071;case hn.MIRROR_ADDRESSMODE:return 33648;default:return ut.Error("Unsupported Texture Wrap Mode "+O+"!"),10497}},k.prototype._getGLTFTextureWrapModesSampler=function(O){var N=this._getGLTFTextureWrapMode(O instanceof hn?O.wrapU:hn.WRAP_ADDRESSMODE),V=this._getGLTFTextureWrapMode(O instanceof hn?O.wrapV:hn.WRAP_ADDRESSMODE);return N===10497&&V===10497?{}:{wrapS:N,wrapT:V}},k.prototype._convertSpecGlossFactorsToMetallicRoughnessAsync=function(O,N,V,W){var j=this;return Promise.resolve().then(function(){var q=j._exporter._samplers,A=j._exporter._textures,a={diffuseColor:O.albedoColor||Jn.White(),specularColor:O.reflectivityColor||Jn.White(),glossiness:O.microSurface||1},t=null,y=j._getGLTFTextureSampler(O.albedoTexture);return y.magFilter!=null&&y.minFilter!=null&&y.wrapS!=null&&y.wrapT!=null&&(q.push(y),t=q.length-1),O.reflectivityTexture&&!O.useMicroSurfaceFromReflectivityMapAlpha?Promise.reject("_ConvertPBRMaterial: Glossiness values not included in the reflectivity texture are currently not supported"):(O.albedoTexture||O.reflectivityTexture)&&W?j._convertSpecularGlossinessTexturesToMetallicRoughnessAsync(O.albedoTexture,O.reflectivityTexture,a,N).then(function(r){if(r.baseColorTextureBase64){var f=j._getTextureInfoFromBase64(r.baseColorTextureBase64,"bjsBaseColorTexture_"+A.length+".png",N,O.albedoTexture?O.albedoTexture.coordinatesIndex:null,t);f&&(V.baseColorTexture=f)}if(r.metallicRoughnessTextureBase64){var d=j._getTextureInfoFromBase64(r.metallicRoughnessTextureBase64,"bjsMetallicRoughnessTexture_"+A.length+".png",N,O.reflectivityTexture?O.reflectivityTexture.coordinatesIndex:null,t);d&&(V.metallicRoughnessTexture=d)}return r}):j._convertSpecularGlossinessToMetallicRoughness(a)})},k.prototype._convertPBRMaterialAsync=function(O,N,V){var W=this,j={},q={name:O.name},A=O.isMetallicWorkflow();return A?(O.albedoColor&&(j.baseColorFactor=[O.albedoColor.r,O.albedoColor.g,O.albedoColor.b,O.alpha]),this._convertMetalRoughFactorsToMetallicRoughnessAsync(O,N,j,V).then(function(a){return W.setMetallicRoughnessPbrMaterial(a,O,q,j,N,V)})):this._convertSpecGlossFactorsToMetallicRoughnessAsync(O,N,j,V).then(function(a){return W.setMetallicRoughnessPbrMaterial(a,O,q,j,N,V)})},k.prototype.setMetallicRoughnessPbrMaterial=function(O,N,V,W,j,q){var A=this._exporter._materialMap,a=this._exporter._materials,t=[];if(O){if(k._SetAlphaMode(V,N),k.FuzzyEquals(O.baseColor,Jn.White(),k._Epsilon)&&N.alpha>=k._Epsilon||(W.baseColorFactor=[O.baseColor.r,O.baseColor.g,O.baseColor.b,N.alpha]),O.metallic!=null&&O.metallic!==1&&(W.metallicFactor=O.metallic),O.roughness!=null&&O.roughness!==1&&(W.roughnessFactor=O.roughness),N.backFaceCulling!=null&&!N.backFaceCulling&&(N.twoSidedLighting||ut.Warn(N.name+": Back-face culling enabled and two-sided lighting disabled is not supported in glTF."),V.doubleSided=!0),q){if(N.bumpTexture){var y=this._exportTextureAsync(N.bumpTexture,j).then(function(r){r&&(V.normalTexture=r,N.bumpTexture.level!==1&&(V.normalTexture.scale=N.bumpTexture.level))});t.push(y)}if(N.ambientTexture){var y=this._exportTextureAsync(N.ambientTexture,j).then(function(f){if(f){var d={index:f.index,texCoord:f.texCoord};V.occlusionTexture=d,N.ambientTextureStrength&&(d.strength=N.ambientTextureStrength)}});t.push(y)}if(N.emissiveTexture){var y=this._exportTextureAsync(N.emissiveTexture,j).then(function(f){f&&(V.emissiveTexture=f)});t.push(y)}}k.FuzzyEquals(N.emissiveColor,Jn.Black(),k._Epsilon)||(V.emissiveFactor=N.emissiveColor.asArray()),V.pbrMetallicRoughness=W,a.push(V),A[N.uniqueId]=a.length-1}return this._finishMaterial(t,V,N,j)},k.prototype.getPixelsFromTexture=function(O){var N=(O.textureType===is.TEXTURETYPE_UNSIGNED_INT,O.readPixels());return N},k.prototype._exportTextureAsync=function(O,N){var V=this,W=this._exporter._extensionsPreExportTextureAsync("exporter",O,N);return W?W.then(function(j){return j?V._exportTextureInfoAsync(j,N):V._exportTextureInfoAsync(O,N)}):this._exportTextureInfoAsync(O,N)},k.prototype._exportTextureInfoAsync=function(O,N){var V=this;return Promise.resolve().then(function(){var W=O.uid;if(W in V._textureMap)return V._textureMap[W];var j=V.getPixelsFromTexture(O);if(!j)return null;for(var q=V._exporter._samplers,A=V._getGLTFTextureSampler(O),a=null,t=null,y=0;y<q.length;++y){var r=q[y];if(r.minFilter===A.minFilter&&r.magFilter===A.magFilter&&r.wrapS===A.wrapS&&r.wrapT===A.wrapT){t=y;break}}t==null?(q.push(A),a=q.length-1):a=t;var f=O.getSize();if(O.mimeType)switch(O.mimeType){case"image/jpeg":N="image/jpeg";break;case"image/png":N="image/png";break}return V._createBase64FromCanvasAsync(j,f.width,f.height,N).then(function(d){var g=V._getTextureInfoFromBase64(d,O.name.replace(/\.\/|\/|\.\\|\\/g,"_"),N,O.coordinatesIndex,a);return g&&(V._textureMap[W]=g,V._exporter._extensionsPostExportTextures("linkTextureInfo",g,O)),g})})},k.prototype._getTextureInfoFromBase64=function(O,N,V,W,j){var q=this._exporter._textures,A=this._exporter._images,a=this._exporter._imageData,t=null,y={source:A.length,name:N};j!=null&&(y.sampler=j);for(var r=atob(O.split(",")[1]),f=new ArrayBuffer(r.length),d=new Uint8Array(f),g=0,c=r.length;g<c;++g)d[g]=r.charCodeAt(g);var l={data:d,mimeType:V},i=V==="image/jpeg"?".jpeg":".png",u=N+i,v=u;if(u in a&&(u=N+"_"+ut.RandomId()+i),a[u]=l,V==="image/jpeg"||V==="image/png"){for(var h={name:N,uri:u},C=null,g=0;g<A.length;++g)if(A[g].uri===v){C=g;break}C==null?(A.push(h),y.source=A.length-1):y.source=C,q.push(y),t={index:q.length-1},W!=null&&(t.texCoord=W)}else ut.Error("Unsupported texture mime type "+V);return t},k._DielectricSpecular=new Jn(.04,.04,.04),k._MaxSpecularPower=1024,k._Epsilon=1e-6,k}(),D4=function(){function k(O,N){this._includeCoordinateSystemConversionNodes=!1,this._extensions={},this._glTF={asset:{generator:"BabylonJS",version:"2.0"}},this._babylonScene=O,this._bufferViews=[],this._accessors=[],this._meshes=[],this._scenes=[],this._nodes=[],this._images=[],this._materials=[],this._materialMap=[],this._textures=[],this._samplers=[],this._skins=[],this._animations=[],this._imageData={},this._orderedImageData=[],this._options=N||{},this._animationSampleRate=N&&N.animationSampleRate?N.animationSampleRate:1/60,this._includeCoordinateSystemConversionNodes=!!(N&&N.includeCoordinateSystemConversionNodes),this._glTFMaterialExporter=new Pm(this),this._loadExtensions()}return k.prototype._applyExtension=function(O,N,V,W){var j=this;if(V>=N.length)return Promise.resolve(O);var q=W(N[V],O);return q?q.then(function(A){return j._applyExtension(A,N,V+1,W)}):this._applyExtension(O,N,V+1,W)},k.prototype._applyExtensions=function(O,N){for(var V=[],W=0,j=k._ExtensionNames;W<j.length;W++){var q=j[W];V.push(this._extensions[q])}return this._applyExtension(O,V,0,N)},k.prototype._extensionsPreExportTextureAsync=function(O,N,V){return this._applyExtensions(N,function(W,j){return W.preExportTextureAsync&&W.preExportTextureAsync(O,j,V)})},k.prototype._extensionsPostExportMeshPrimitiveAsync=function(O,N,V,W){return this._applyExtensions(N,function(j,q){return j.postExportMeshPrimitiveAsync&&j.postExportMeshPrimitiveAsync(O,q,V,W)})},k.prototype._extensionsPostExportNodeAsync=function(O,N,V,W){return this._applyExtensions(N,function(j,q){return j.postExportNodeAsync&&j.postExportNodeAsync(O,q,V,W)})},k.prototype._extensionsPostExportMaterialAsync=function(O,N,V){return this._applyExtensions(N,function(W,j){return W.postExportMaterialAsync&&W.postExportMaterialAsync(O,j,V)})},k.prototype._extensionsPostExportMaterialAdditionalTextures=function(O,N,V){for(var W=[],j=0,q=k._ExtensionNames;j<q.length;j++){var A=q[j],a=this._extensions[A];a.postExportMaterialAdditionalTextures&&W.push.apply(W,a.postExportMaterialAdditionalTextures(O,N,V))}return W},k.prototype._extensionsPostExportTextures=function(O,N,V){for(var W=0,j=k._ExtensionNames;W<j.length;W++){var q=j[W],A=this._extensions[q];A.postExportTexture&&A.postExportTexture(O,N,V)}},k.prototype._forEachExtensions=function(O){for(var N=0,V=k._ExtensionNames;N<V.length;N++){var W=V[N],j=this._extensions[W];j.enabled&&O(j)}},k.prototype._extensionsOnExporting=function(){var O=this;this._forEachExtensions(function(N){N.wasUsed&&(O._glTF.extensionsUsed==null&&(O._glTF.extensionsUsed=[]),O._glTF.extensionsUsed.indexOf(N.name)===-1&&O._glTF.extensionsUsed.push(N.name),N.required&&(O._glTF.extensionsRequired==null&&(O._glTF.extensionsRequired=[]),O._glTF.extensionsRequired.indexOf(N.name)===-1&&O._glTF.extensionsRequired.push(N.name)),O._glTF.extensions==null&&(O._glTF.extensions={}),N.onExporting&&N.onExporting())})},k.prototype._loadExtensions=function(){for(var O=0,N=k._ExtensionNames;O<N.length;O++){var V=N[O],W=k._ExtensionFactories[V](this);this._extensions[V]=W}},k.prototype.dispose=function(){for(var O in this._extensions){var N=this._extensions[O];N.dispose()}},k.RegisterExtension=function(O,N){k.UnregisterExtension(O)&&ut.Warn("Extension with the name "+O+" already exists"),k._ExtensionFactories[O]=N,k._ExtensionNames.push(O)},k.UnregisterExtension=function(O){if(!k._ExtensionFactories[O])return!1;delete k._ExtensionFactories[O];var N=k._ExtensionNames.indexOf(O);return N!==-1&&k._ExtensionNames.splice(N,1),!0},k.prototype._getLocalEngine=function(){if(!this._localEngine){var O=document.createElement("canvas");O.id="WriteCanvas",O.width=2048,O.height=2048,this._localEngine=new hm(O,!0,{premultipliedAlpha:ut.IsSafari(),preserveDrawingBuffer:!0}),this._localEngine.setViewport(new Lm(0,0,1,1))}return this._localEngine},k.prototype.reorderIndicesBasedOnPrimitiveMode=function(O,N,V,W,j){switch(N){case $n.TriangleFillMode:{W||(W=0);for(var q=O.indexStart,A=O.indexStart+O.indexCount;q<A;q=q+3){var a=W+q*4,t=j.getUInt32(a+4),y=j.getUInt32(a+8);j.setUInt32(y,a+4),j.setUInt32(t,a+8)}break}case $n.TriangleFanDrawMode:{for(var q=O.indexStart+O.indexCount-1,r=O.indexStart;q>=r;--q)j.setUInt32(V[q],W),W+=4;break}case $n.TriangleStripDrawMode:{O.indexCount>=3&&(j.setUInt32(V[O.indexStart+2],W+4),j.setUInt32(V[O.indexStart+1],W+8));break}}},k.prototype.reorderVertexAttributeDataBasedOnPrimitiveMode=function(O,N,V,W,j,q,A,a){if(a&&V===$n.ClockWiseSideOrientation)switch(N){case $n.TriangleFillMode:{this.reorderTriangleFillMode(O,N,V,W,j,q,A,a);break}case $n.TriangleStripDrawMode:{this.reorderTriangleStripDrawMode(O,N,V,W,j,q,A,a);break}case $n.TriangleFanDrawMode:{this.reorderTriangleFanMode(O,N,V,W,j,q,A,a);break}}},k.prototype.reorderTriangleFillMode=function(O,N,V,W,j,q,A,a){var t=this.getVertexBufferFromMesh(W,O.getMesh());if(t){var y=t.byteStride/$e.GetTypeByteLength(t.type);if(O.verticesCount%3!==0)ut.Error("The submesh vertices for the triangle fill mode is not divisible by 3!");else{var r=[],f=0;switch(W){case $e.PositionKind:case $e.NormalKind:{for(var d=O.verticesStart;d<O.verticesStart+O.verticesCount;d=d+3)f=d*y,r.push(Ct.FromArray(j,f)),r.push(Ct.FromArray(j,f+2*y)),r.push(Ct.FromArray(j,f+y));break}case $e.TangentKind:{for(var d=O.verticesStart;d<O.verticesStart+O.verticesCount;d=d+3)f=d*y,r.push(i1.FromArray(j,f)),r.push(i1.FromArray(j,f+2*y)),r.push(i1.FromArray(j,f+y));break}case $e.ColorKind:{for(var g=t.getSize(),d=O.verticesStart;d<O.verticesStart+O.verticesCount;d=d+g)f=d*y,g===4?(r.push(i1.FromArray(j,f)),r.push(i1.FromArray(j,f+2*y)),r.push(i1.FromArray(j,f+y))):(r.push(Ct.FromArray(j,f)),r.push(Ct.FromArray(j,f+2*y)),r.push(Ct.FromArray(j,f+y)));break}case $e.UVKind:case $e.UV2Kind:{for(var d=O.verticesStart;d<O.verticesStart+O.verticesCount;d=d+3)f=d*y,r.push(pr.FromArray(j,f)),r.push(pr.FromArray(j,f+2*y)),r.push(pr.FromArray(j,f+y));break}default:ut.Error("Unsupported Vertex Buffer type: "+W)}this.writeVertexAttributeData(r,q,W,j,A,a)}}else ut.Warn("reorderTriangleFillMode: Vertex Buffer Kind "+W+" not present!")},k.prototype.reorderTriangleStripDrawMode=function(O,N,V,W,j,q,A,a){var t=this.getVertexBufferFromMesh(W,O.getMesh());if(t){var y=t.byteStride/$e.GetTypeByteLength(t.type),r=[],f=0;switch(W){case $e.PositionKind:case $e.NormalKind:{f=O.verticesStart,r.push(Ct.FromArray(j,f+2*y)),r.push(Ct.FromArray(j,f+y));break}case $e.TangentKind:{for(var d=O.verticesStart+O.verticesCount-1;d>=O.verticesStart;--d)f=d*y,r.push(i1.FromArray(j,f));break}case $e.ColorKind:{for(var d=O.verticesStart+O.verticesCount-1;d>=O.verticesStart;--d)f=d*y,t.getSize()===4?r.push(i1.FromArray(j,f)):r.push(Ct.FromArray(j,f));break}case $e.UVKind:case $e.UV2Kind:{for(var d=O.verticesStart+O.verticesCount-1;d>=O.verticesStart;--d)f=d*y,r.push(pr.FromArray(j,f));break}default:ut.Error("Unsupported Vertex Buffer type: "+W)}this.writeVertexAttributeData(r,q+12,W,j,A,a)}else ut.Warn("reorderTriangleStripDrawMode: Vertex buffer kind "+W+" not present!")},k.prototype.reorderTriangleFanMode=function(O,N,V,W,j,q,A,a){var t=this.getVertexBufferFromMesh(W,O.getMesh());if(t){var y=t.byteStride/$e.GetTypeByteLength(t.type),r=[],f=0;switch(W){case $e.PositionKind:case $e.NormalKind:{for(var d=O.verticesStart+O.verticesCount-1;d>=O.verticesStart;--d)f=d*y,r.push(Ct.FromArray(j,f));break}case $e.TangentKind:{for(var d=O.verticesStart+O.verticesCount-1;d>=O.verticesStart;--d)f=d*y,r.push(i1.FromArray(j,f));break}case $e.ColorKind:{for(var d=O.verticesStart+O.verticesCount-1;d>=O.verticesStart;--d)f=d*y,r.push(i1.FromArray(j,f)),t.getSize()===4?r.push(i1.FromArray(j,f)):r.push(Ct.FromArray(j,f));break}case $e.UVKind:case $e.UV2Kind:{for(var d=O.verticesStart+O.verticesCount-1;d>=O.verticesStart;--d)f=d*y,r.push(pr.FromArray(j,f));break}default:ut.Error("Unsupported Vertex Buffer type: "+W)}this.writeVertexAttributeData(r,q,W,j,A,a)}else ut.Warn("reorderTriangleFanMode: Vertex buffer kind "+W+" not present!")},k.prototype.writeVertexAttributeData=function(O,N,V,W,j,q){for(var A=0,a=O;A<a.length;A++){var t=a[A];q&&V!==$e.ColorKind&&!(t instanceof pr)&&(t instanceof Ct?V===$e.NormalKind?st._GetRightHandedNormalVector3FromRef(t):V===$e.PositionKind?st._GetRightHandedPositionVector3FromRef(t):ut.Error("Unsupported vertex attribute kind!"):st._GetRightHandedVector4FromRef(t)),V===$e.NormalKind?t.normalize():V===$e.TangentKind&&t instanceof i1&&st._NormalizeTangentFromRef(t);for(var y=0,r=t.asArray();y<r.length;y++){var f=r[y];j.setFloat32(f,N),N+=4}}},k.prototype.writeAttributeData=function(O,N,V,W,j,q,A){var a=[],t;switch(O){case $e.PositionKind:{for(var y=0,r=V.length/W;y<r;++y){t=y*W;var f=Ct.FromArray(V,t);q&&st._GetRightHandedPositionVector3FromRef(f),a.push(f.asArray())}break}case $e.NormalKind:{for(var y=0,d=V.length/W;y<d;++y){t=y*W;var f=Ct.FromArray(V,t);q&&st._GetRightHandedNormalVector3FromRef(f),f.normalize(),a.push(f.asArray())}break}case $e.TangentKind:{for(var y=0,g=V.length/W;y<g;++y){t=y*W;var f=i1.FromArray(V,t);q&&st._GetRightHandedVector4FromRef(f),st._NormalizeTangentFromRef(f),a.push(f.asArray())}break}case $e.ColorKind:{for(var c=A.material,l=c?c instanceof k9:!0,f=W===3?new Jn:new bp,y=0,i=V.length/W;y<i;++y)t=y*W,W===3?(Jn.FromArrayToRef(V,t,f),l&&f.toLinearSpaceToRef(f)):(bp.FromArrayToRef(V,t,f),l&&f.toLinearSpaceToRef(f)),a.push(f.asArray());break}case $e.UVKind:case $e.UV2Kind:{for(var y=0,u=V.length/W;y<u;++y)t=y*W,a.push(q?[V[t],V[t+1]]:[V[t],V[t+1]]);break}case $e.MatricesIndicesKind:case $e.MatricesIndicesExtraKind:{for(var y=0,v=V.length/W;y<v;++y){t=y*W;var f=i1.FromArray(V,t);a.push(f.asArray())}break}case $e.MatricesWeightsKind:case $e.MatricesWeightsExtraKind:{for(var y=0,h=V.length/W;y<h;++y){t=y*W;var f=i1.FromArray(V,t);a.push(f.asArray())}break}default:ut.Warn("Unsupported Vertex Buffer Type: "+O),a=[]}var C;switch(N){case 5121:{C=j.setUInt8.bind(j);break}case 5123:{C=j.setUInt16.bind(j);break}case 5125:C=j.setUInt32.bind(j);case 5126:{C=j.setFloat32.bind(j);break}default:{ut.Warn("Unsupported Attribute Component kind: "+N);return}}for(var p=0,b=a;p<b.length;p++)for(var E=b[p],P=0,I=E;P<I.length;P++){var S=I[P];C(S)}},k.prototype.writeMorphTargetAttributeData=function(O,N,V,W,j,q,A,a,t,y){var r=[],f,d=new Ct,g=new i1(0,0,0,0);switch(O){case $e.PositionKind:{for(var c=V.verticesStart;c<V.verticesCount;++c){f=V.indexStart+c*A;var l=Ct.FromArray(j,f),i=Ct.FromArray(q,f);d=i.subtractToRef(l,d),t&&st._GetRightHandedPositionVector3FromRef(d),y&&(y.min.copyFromFloats(Math.min(d.x,y.min.x),Math.min(d.y,y.min.y),Math.min(d.z,y.min.z)),y.max.copyFromFloats(Math.max(d.x,y.max.x),Math.max(d.y,y.max.y),Math.max(d.z,y.max.z))),r.push(d.asArray())}break}case $e.NormalKind:{for(var c=V.verticesStart;c<V.verticesCount;++c){f=V.indexStart+c*A;var l=Ct.FromArray(j,f);l.normalize();var i=Ct.FromArray(q,f);i.normalize(),d=i.subtractToRef(l,d),t&&st._GetRightHandedNormalVector3FromRef(d),r.push(d.asArray())}break}case $e.TangentKind:{for(var c=V.verticesStart;c<V.verticesCount;++c){f=V.indexStart+c*(A+1);var l=i1.FromArray(j,f);st._NormalizeTangentFromRef(l);var i=i1.FromArray(q,f);st._NormalizeTangentFromRef(i),g=i.subtractToRef(l,g),t&&st._GetRightHandedVector4FromRef(g),r.push([g.x,g.y,g.z])}break}default:ut.Warn("Unsupported Vertex Buffer Type: "+O),r=[]}var u;switch(N){case 5121:{u=a.setUInt8.bind(a);break}case 5123:{u=a.setUInt16.bind(a);break}case 5125:u=a.setUInt32.bind(a);case 5126:{u=a.setFloat32.bind(a);break}default:{ut.Warn("Unsupported Attribute Component kind: "+N);return}}for(var v=0,h=r;v<h.length;v++)for(var C=h[v],p=0,b=C;p<b.length;p++){var E=b[p];u(E)}},k.prototype.generateJSON=function(O,N,V){var W=this,j={byteLength:this._totalByteLength},q,A,a,t=this._totalByteLength;j.byteLength&&(this._glTF.buffers=[j]),this._nodes&&this._nodes.length&&(this._glTF.nodes=this._nodes),this._meshes&&this._meshes.length&&(this._glTF.meshes=this._meshes),this._scenes&&this._scenes.length&&(this._glTF.scenes=this._scenes,this._glTF.scene=0),this._bufferViews&&this._bufferViews.length&&(this._glTF.bufferViews=this._bufferViews),this._accessors&&this._accessors.length&&(this._glTF.accessors=this._accessors),this._animations&&this._animations.length&&(this._glTF.animations=this._animations),this._materials&&this._materials.length&&(this._glTF.materials=this._materials),this._textures&&this._textures.length&&(this._glTF.textures=this._textures),this._samplers&&this._samplers.length&&(this._glTF.samplers=this._samplers),this._skins&&this._skins.length&&(this._glTF.skins=this._skins),this._images&&this._images.length&&(O?(this._glTF.images=[],this._images.forEach(function(r){r.uri&&(A=W._imageData[r.uri],W._orderedImageData.push(A),q=r.uri.split(".")[0]+" image",a=st._CreateBufferView(0,t,A.data.length,void 0,q),t+=A.data.buffer.byteLength,W._bufferViews.push(a),r.bufferView=W._bufferViews.length-1,r.name=q,r.mimeType=A.mimeType,r.uri=void 0,W._glTF.images||(W._glTF.images=[]),W._glTF.images.push(r))}),j.byteLength=t):this._glTF.images=this._images),O||(j.uri=N+".bin");var y=V?JSON.stringify(this._glTF,null,2):JSON.stringify(this._glTF);return y},k.prototype._generateGLTFAsync=function(O,N){var V=this;return N===void 0&&(N=!0),this._generateBinaryAsync().then(function(W){V._extensionsOnExporting();var j=V.generateJSON(!1,O,!0),q=new Blob([W],{type:"application/octet-stream"}),A=O+".gltf",a=O+".bin",t=new Op;if(t.glTFFiles[A]=j,t.glTFFiles[a]=q,V._imageData)for(var y in V._imageData)t.glTFFiles[y]=new Blob([V._imageData[y].data],{type:V._imageData[y].mimeType});return N&&V.dispose(),t})},k.prototype._generateBinaryAsync=function(){var O=this,N=new Sm(4);return this.createSceneAsync(this._babylonScene,N).then(function(){return O._localEngine&&O._localEngine.dispose(),N.getArrayBuffer()})},k.prototype._getPadding=function(O){var N=O%4,V=N===0?N:4-N;return V},k.prototype._generateGLBAsync=function(O,N){var V=this;return N===void 0&&(N=!0),this._generateBinaryAsync().then(function(W){V._extensionsOnExporting();for(var j=V.generateJSON(!0),q=O+".glb",A=12,a=8,t=j.length,y=0,r=0;r<V._orderedImageData.length;++r)y+=V._orderedImageData[r].data.byteLength;var f=V._getPadding(t),d=V._getPadding(W.byteLength),g=V._getPadding(y),c=A+2*a+t+f+W.byteLength+d+y+g,l=new ArrayBuffer(A),i=new DataView(l);i.setUint32(0,1179937895,!0),i.setUint32(4,2,!0),i.setUint32(8,c,!0);var u=new ArrayBuffer(a+t+f),v=new DataView(u);v.setUint32(0,t+f,!0),v.setUint32(4,1313821514,!0);for(var h=new Uint8Array(u,a),r=0;r<t;++r)h[r]=j.charCodeAt(r);for(var C=new Uint8Array(u,a+t),r=0;r<f;++r)C[r]=32;var p=new ArrayBuffer(a),b=new DataView(p);b.setUint32(0,W.byteLength+y+g,!0),b.setUint32(4,5130562,!0);for(var E=new ArrayBuffer(d),P=new Uint8Array(E),r=0;r<d;++r)P[r]=0;for(var I=new ArrayBuffer(g),S=new Uint8Array(I),r=0;r<g;++r)S[r]=0;for(var D=[l,u,p,W],r=0;r<V._orderedImageData.length;++r)D.push(V._orderedImageData[r].data.buffer);D.push(E),D.push(I);var R=new Blob(D,{type:"application/octet-stream"}),H=new Op;return H.glTFFiles[q]=R,V._localEngine!=null&&V._localEngine.dispose(),N&&V.dispose(),H})},k.prototype.setNodeTransformation=function(O,N,V){N.getPivotPoint().equalsToFloats(0,0,0)||ut.Warn("Pivot points are not supported in the glTF serializer"),N.position.equalsToFloats(0,0,0)||(O.translation=V?st._GetRightHandedPositionVector3(N.position).asArray():N.position.asArray()),N.scaling.equalsToFloats(1,1,1)||(O.scale=N.scaling.asArray());var W=wt.RotationYawPitchRoll(N.rotation.y,N.rotation.x,N.rotation.z);N.rotationQuaternion&&W.multiplyInPlace(N.rotationQuaternion),W.x===0&&W.y===0&&W.z===0&&W.w===1||(V&&st._GetRightHandedQuaternionFromRef(W),O.rotation=W.normalize().asArray())},k.prototype.getVertexBufferFromMesh=function(O,N){if(N.isVerticesDataPresent(O)){var V=N.getVertexBuffer(O);if(V)return V}return null},k.prototype.createBufferViewKind=function(O,N,V,W,j,q){var A=V instanceof A4?V:V instanceof Q9?V.sourceMesh:null;if(A){var a=A.getVertexBuffer(O),t=A.getVerticesData(O);if(a&&t){var y=$e.GetTypeByteLength(N),r=t.length*y,f=st._CreateBufferView(0,W.getByteOffset(),r,j,O+" - "+A.name);this._bufferViews.push(f),this.writeAttributeData(O,N,t,j/y,W,q,V)}}},k.prototype.setMorphTargetAttributes=function(O,N,V,W,j){if(V){N.targets||(N.targets=[]);var q={};if(V.hasNormals){var A=O.getMesh().getVerticesData($e.NormalKind),a=V.getNormals(),t=O.verticesCount,y=12,r=t*y,f=st._CreateBufferView(0,W.getByteOffset(),r,y,V.name+"_NORMAL");this._bufferViews.push(f);var d=this._bufferViews.length-1,g=st._CreateAccessor(d,V.name+" - NORMAL","VEC3",5126,t,0,null,null);this._accessors.push(g),q.NORMAL=this._accessors.length-1,this.writeMorphTargetAttributeData($e.NormalKind,5126,O,V,A,a,y/4,W,j)}if(V.hasPositions){var c=O.getMesh().getVerticesData($e.PositionKind),l=V.getPositions(),t=O.verticesCount,y=12,r=t*y,f=st._CreateBufferView(0,W.getByteOffset(),r,y,V.name+"_POSITION");this._bufferViews.push(f);var d=this._bufferViews.length-1,i={min:new Ct(1/0,1/0,1/0),max:new Ct(-1/0,-1/0,-1/0)},g=st._CreateAccessor(d,V.name+" - POSITION","VEC3",5126,t,0,null,null);this._accessors.push(g),q.POSITION=this._accessors.length-1,this.writeMorphTargetAttributeData($e.PositionKind,5126,O,V,c,l,y/4,W,j,i),g.min=i.min.asArray(),g.max=i.max.asArray()}if(V.hasTangents){var u=O.getMesh().getVerticesData($e.TangentKind),v=V.getTangents(),t=O.verticesCount,y=12,r=t*y,f=st._CreateBufferView(0,W.getByteOffset(),r,y,V.name+"_NORMAL");this._bufferViews.push(f);var d=this._bufferViews.length-1,g=st._CreateAccessor(d,V.name+" - TANGENT","VEC3",5126,t,0,null,null);this._accessors.push(g),q.TANGENT=this._accessors.length-1,this.writeMorphTargetAttributeData($e.TangentKind,5126,O,V,u,v,y/4,W,j)}N.targets.push(q)}},k.prototype.getMeshPrimitiveMode=function(O){return O instanceof yp?$n.LineListDrawMode:O.material?O.material.fillMode:$n.TriangleFillMode},k.prototype.setPrimitiveMode=function(O,N){switch(N){case $n.TriangleFillMode:break;case $n.TriangleStripDrawMode:{O.mode=5;break}case $n.TriangleFanDrawMode:{O.mode=6;break}case $n.PointListDrawMode:O.mode=0;case $n.PointFillMode:{O.mode=0;break}case $n.LineLoopDrawMode:{O.mode=2;break}case $n.LineListDrawMode:{O.mode=1;break}case $n.LineStripDrawMode:{O.mode=3;break}}},k.prototype.setAttributeKind=function(O,N){switch(N){case $e.PositionKind:{O.attributes.POSITION=this._accessors.length-1;break}case $e.NormalKind:{O.attributes.NORMAL=this._accessors.length-1;break}case $e.ColorKind:{O.attributes.COLOR_0=this._accessors.length-1;break}case $e.TangentKind:{O.attributes.TANGENT=this._accessors.length-1;break}case $e.UVKind:{O.attributes.TEXCOORD_0=this._accessors.length-1;break}case $e.UV2Kind:{O.attributes.TEXCOORD_1=this._accessors.length-1;break}case $e.MatricesIndicesKind:{O.attributes.JOINTS_0=this._accessors.length-1;break}case $e.MatricesIndicesExtraKind:{O.attributes.JOINTS_1=this._accessors.length-1;break}case $e.MatricesWeightsKind:{O.attributes.WEIGHTS_0=this._accessors.length-1;break}case $e.MatricesWeightsExtraKind:{O.attributes.WEIGHTS_1=this._accessors.length-1;break}default:ut.Warn("Unsupported Vertex Buffer Type: "+N)}},k.prototype.setPrimitiveAttributesAsync=function(O,N,V,W){var j,q=[],A=null,a,t;N instanceof A4?A=N:N instanceof Q9&&(A=N.sourceMesh);var y=[{kind:$e.PositionKind,accessorType:"VEC3",accessorComponentType:5126,byteStride:12},{kind:$e.NormalKind,accessorType:"VEC3",accessorComponentType:5126,byteStride:12},{kind:$e.ColorKind,accessorType:"VEC4",accessorComponentType:5126,byteStride:16},{kind:$e.TangentKind,accessorType:"VEC4",accessorComponentType:5126,byteStride:16},{kind:$e.UVKind,accessorType:"VEC2",accessorComponentType:5126,byteStride:8},{kind:$e.UV2Kind,accessorType:"VEC2",accessorComponentType:5126,byteStride:8},{kind:$e.MatricesIndicesKind,accessorType:"VEC4",accessorComponentType:5123,byteStride:8},{kind:$e.MatricesIndicesExtraKind,accessorType:"VEC4",accessorComponentType:5123,byteStride:8},{kind:$e.MatricesWeightsKind,accessorType:"VEC4",accessorComponentType:5126,byteStride:16},{kind:$e.MatricesWeightsExtraKind,accessorType:"VEC4",accessorComponentType:5126,byteStride:16}];if(A){for(var r=null,f=this.getMeshPrimitiveMode(A),d={},g=A.morphTargetManager,c=0,l=y;c<l.length;c++){var i=l[c],u=i.kind,v=i.accessorComponentType;if(A.isVerticesDataPresent(u)){var h=this.getVertexBufferFromMesh(u,A);i.byteStride=h?h.getSize()*$e.GetTypeByteLength(i.accessorComponentType):$e.DeduceStride(u)*4,i.byteStride===12&&(i.accessorType="VEC3"),this.createBufferViewKind(u,v,N,V,i.byteStride,W),i.bufferViewIndex=this._bufferViews.length-1,d[u]=i.bufferViewIndex}}if(A.getTotalIndices()){var C=A.getIndices();if(C){var p=C.length*4;a=st._CreateBufferView(0,V.getByteOffset(),p,void 0,"Indices - "+A.name),this._bufferViews.push(a),r=this._bufferViews.length-1;for(var b=0,E=C.length;b<E;++b)V.setUInt32(C[b])}}if(A.subMeshes)for(var P=0,I=A.subMeshes;P<I.length;P++){var S=I[P],D=S.getMaterial()||A.getScene().defaultMaterial,R=null;if(D)if(A instanceof yp){var H={name:A.name+" material"};(!A.color.equals(Jn.White())||A.alpha<1)&&(H.pbrMetallicRoughness={baseColorFactor:A.color.asArray().concat([A.alpha])}),this._materials.push(H),R=this._materials.length-1}else if(D instanceof Cm){var L=D.subMaterials[S.materialIndex];L&&(D=L,R=this._materialMap[D.uniqueId])}else R=this._materialMap[D.uniqueId];var T=R!=null?this._materials[R]:null,x={attributes:{}};this.setPrimitiveMode(x,f);for(var J=0,X=y;J<X.length;J++){var i=X[J],u=i.kind;if(!((u===$e.UVKind||u===$e.UV2Kind)&&T&&!this._glTFMaterialExporter._hasTexturesPresent(T))){var $=A.getVerticesData(u);if($){var h=this.getVertexBufferFromMesh(u,A);if(h){var G=h.getSize(),Y=i.bufferViewIndex;if(Y!=null){t={min:null,max:null},u==$e.PositionKind&&(t=st._CalculateMinMaxPositions($,0,$.length/G,W));var _=st._CreateAccessor(Y,u+" - "+N.name,i.accessorType,i.accessorComponentType,$.length/G,0,t.min,t.max);this._accessors.push(_),this.setAttributeKind(x,u)}}}}}if(r){var _=st._CreateAccessor(r,"indices - "+N.name,"SCALAR",5125,S.indexCount,S.indexStart*4,null,null);this._accessors.push(_),x.indices=this._accessors.length-1}if(R!=null&&Object.keys(x.attributes).length>0){var F=A.overrideMaterialSideOrientation!==null?A.overrideMaterialSideOrientation:D.sideOrientation;if(F==$n.ClockWiseSideOrientation&&this._babylonScene.useRightHandedSystem||F==$n.ClockWiseSideOrientation&&W&&A.overrideMaterialSideOrientation!==((j=A.material)===null||j===void 0?void 0:j.sideOrientation)){var ne=r!=null?this._bufferViews[r].byteOffset:null;ne==null&&(ne=0);var pe=null;if(r!=null&&(pe=A.getIndices()),pe)this.reorderIndicesBasedOnPrimitiveMode(S,f,pe,ne,V);else for(var he=0,Ee=y;he<Ee.length;he++){var i=Ee[he],$=A.getVerticesData(i.kind);if($){var w=this._bufferViews[d[i.kind]].byteOffset;w||(w=0),this.reorderVertexAttributeDataBasedOnPrimitiveMode(S,f,F,i.kind,$,w,V,W)}}}x.material=R}if(g)for(var le=void 0,Se=0;Se<g.numTargets;++Se)le=g.getTarget(Se),this.setMorphTargetAttributes(S,x,le,V,W);O.primitives.push(x);var be=this._extensionsPostExportMeshPrimitiveAsync("postExport",x,S,V);be&&q.push()}}return Promise.all(q).then(function(){})},k.prototype.isBabylonCoordinateSystemConvertingNode=function(O){if(O instanceof Xo){if(O.name!=="__root__")return!1;for(var N=O.getWorldMatrix(),V=Qo.Compose(this._convertToRightHandedSystem?new Ct(-1,1,1):Ct.One(),wt.Identity(),Ct.Zero()),W=N.multiply(V),j=Qo.IdentityReadOnly,q=0;q<16;q++)if(Math.abs(W.m[q]-j.m[q])>vm)return!1;return!(O instanceof A4&&O.geometry!==null||O instanceof Q9&&O.sourceMesh.geometry!==null||this._includeCoordinateSystemConversionNodes)}return!1},k.prototype.createSceneAsync=function(O,N){var V=this,W={nodes:[]},j,q,A,a=vR(O.transformNodes,O.meshes,O.lights),t=[];return this._convertToRightHandedSystem=!O.useRightHandedSystem,this._convertToRightHandedSystemMap={},O.rootNodes.forEach(function(y){V._convertToRightHandedSystemMap[y.uniqueId]=V._convertToRightHandedSystem,y.getDescendants(!1).forEach(function(r){V._convertToRightHandedSystemMap[r.uniqueId]=V._convertToRightHandedSystem})}),O.rootNodes.forEach(function(y){if(V.isBabylonCoordinateSystemConvertingNode(y)){t.push(y);var r=a.indexOf(y);r!==-1&&a.splice(r,1),y.getDescendants(!1).forEach(function(f){V._convertToRightHandedSystemMap[f.uniqueId]=!1})}}),this._glTFMaterialExporter._convertMaterialsToGLTFAsync(O.materials,"image/png",!0).then(function(){return V.createNodeMapAndAnimationsAsync(O,a,N).then(function(y){return V.createSkinsAsync(O,y,N).then(function(r){if(V._nodeMap=y,V._totalByteLength=N.getByteOffset(),V._totalByteLength==null)throw new Error("undefined byte length!");for(var f=0,d=a;f<d.length;f++){var g=d[f];if(j=V._nodeMap[g.uniqueId],j!==void 0){if(q=V._nodes[j],g.metadata&&(V._options.metadataSelector?q.extras=V._options.metadataSelector(g.metadata):g.metadata.gltf&&(q.extras=g.metadata.gltf.extras)),!g.parent||t.indexOf(g.parent)!==-1)if(V._options.shouldExportNode&&!V._options.shouldExportNode(g))ut.Log("Omitting "+g.name+" from scene.");else{var c=V._convertToRightHandedSystemMap[g.uniqueId];c&&(q.translation&&(q.translation[2]*=-1,q.translation[0]*=-1),q.rotation=q.rotation?wt.FromArray([0,1,0,0]).multiply(wt.FromArray(q.rotation)).asArray():wt.FromArray([0,1,0,0]).asArray()),W.nodes.push(j)}if(g instanceof A4){var l=g;l.skeleton&&(q.skin=r[l.skeleton.uniqueId])}if(A=g.getDescendants(!0),!q.children&&A&&A.length){for(var i=[],u=0,v=A;u<v.length;u++){var h=v[u];V._nodeMap[h.uniqueId]!=null&&i.push(V._nodeMap[h.uniqueId])}i.length&&(q.children=i)}}}W.nodes.length&&V._scenes.push(W)})})})},k.prototype.createNodeMapAndAnimationsAsync=function(O,N,V){for(var W=this,j=Promise.resolve(),q={},A,a={name:"runtime animations",channels:[],samplers:[]},t=[],y=function(c){!r._options.shouldExportNode||r._options.shouldExportNode(c)?j=j.then(function(){var l=W._convertToRightHandedSystemMap[c.uniqueId];return W.createNodeAsync(c,V,l,q).then(function(i){var u=W._extensionsPostExportNodeAsync("createNodeAsync",i,c,q);return u==null?(ut.Warn("Not exporting node "+c.name),Promise.resolve()):u.then(function(v){v&&(W._nodes.push(v),A=W._nodes.length-1,q[c.uniqueId]=A,O.animationGroups.length||(w9._CreateMorphTargetAnimationFromMorphTargetAnimations(c,a,t,q,W._nodes,V,W._bufferViews,W._accessors,l,W._animationSampleRate),c.animations.length&&w9._CreateNodeAnimationFromNodeAnimations(c,a,t,q,W._nodes,V,W._bufferViews,W._accessors,l,W._animationSampleRate)))})})}):""+c.name},r=this,f=0,d=N;f<d.length;f++){var g=d[f];y(g)}return j.then(function(){return a.channels.length&&a.samplers.length&&W._animations.push(a),t.forEach(function(c){c.channels.length&&c.samplers.length&&W._animations.push(c)}),O.animationGroups.length&&w9._CreateNodeAndMorphAnimationFromAnimationGroups(O,W._animations,q,W._nodes,V,W._bufferViews,W._accessors,W._convertToRightHandedSystemMap,W._animationSampleRate),q})},k.prototype.createNodeAsync=function(O,N,V,W){var j=this;return Promise.resolve().then(function(){var q={},A={primitives:[]};if(O.name&&(q.name=O.name),O instanceof Xo){if(j.setNodeTransformation(q,O,V),O instanceof A4){var a=O.morphTargetManager;if(a&&a.numTargets>0){A.weights=[];for(var t=0;t<a.numTargets;++t)A.weights.push(a.getTarget(t).influence)}}return j.setPrimitiveAttributesAsync(A,O,N,V).then(function(){return A.primitives.length&&(j._meshes.push(A),q.mesh=j._meshes.length-1),q})}else return q})},k.prototype.createSkinsAsync=function(O,N,V){for(var W=Promise.resolve(),j={},q=function(r){var f={joints:[]},d=[],g=O.meshes.find(function(L){L.skeleton});f.skeleton=r.overrideMesh===null?g?N[g.uniqueId]:void 0:N[r.overrideMesh.uniqueId];for(var c={},l=-1,i=-1,u=0,v=r.bones;u<v.length;u++){var h=v[u];i=h.getIndex(),i>-1&&(c[i]=h),l=Math.max(l,i)}for(var C=0;C<=l;++C){var h=c[C],p=h.getTransformNode();if(p){var b=h.getInvertedAbsoluteTransform();A._convertToRightHandedSystem&&st._GetRightHandedMatrixFromRef(b),d.push(b),f.joints.push(N[p.uniqueId])}}var E=64,P=d.length*E,I=V.getByteOffset(),S=st._CreateBufferView(0,I,P,E,"InverseBindMatrices - "+r.name);A._bufferViews.push(S);var D=A._bufferViews.length-1,R=st._CreateAccessor(D,"InverseBindMatrices - "+r.name,"MAT4",5126,d.length,null,null,null),H=A._accessors.push(R)-1;f.inverseBindMatrices=H,A._skins.push(f),j[r.uniqueId]=A._skins.length-1,d.forEach(function(L){L.m.forEach(function(T){V.setFloat32(T)})})},A=this,a=0,t=O.skeletons;a<t.length;a++){var y=t[a];q(y)}return W.then(function(){return j})},k._ExtensionNames=new Array,k._ExtensionFactories={},k}(),Sm=function(){function k(O){this._arrayBuffer=new ArrayBuffer(O),this._dataView=new DataView(this._arrayBuffer),this._byteOffset=0}return k.prototype.resizeBuffer=function(O){for(var N=new ArrayBuffer(O),V=new Uint8Array(this._arrayBuffer),W=new Uint8Array(N),j=0,q=W.byteLength;j<q;++j)W[j]=V[j];return this._arrayBuffer=N,this._dataView=new DataView(this._arrayBuffer),N},k.prototype.getArrayBuffer=function(){return this.resizeBuffer(this.getByteOffset())},k.prototype.getByteOffset=function(){if(this._byteOffset==null)throw new Error("Byte offset is undefined!");return this._byteOffset},k.prototype.setUInt8=function(O,N){N!=null?N<this._byteOffset?this._dataView.setUint8(N,O):ut.Error("BinaryWriter: byteoffset is greater than the current binary buffer length!"):(this._byteOffset+1>this._arrayBuffer.byteLength&&this.resizeBuffer(this._arrayBuffer.byteLength*2),this._dataView.setUint8(this._byteOffset,O),this._byteOffset+=1)},k.prototype.setUInt16=function(O,N){N!=null?N<this._byteOffset?this._dataView.setUint16(N,O,!0):ut.Error("BinaryWriter: byteoffset is greater than the current binary buffer length!"):(this._byteOffset+2>this._arrayBuffer.byteLength&&this.resizeBuffer(this._arrayBuffer.byteLength*2),this._dataView.setUint16(this._byteOffset,O,!0),this._byteOffset+=2)},k.prototype.getUInt32=function(O){if(O<this._byteOffset)return this._dataView.getUint32(O,!0);throw ut.Error("BinaryWriter: byteoffset is greater than the current binary buffer length!"),new Error("BinaryWriter: byteoffset is greater than the current binary buffer length!")},k.prototype.getVector3Float32FromRef=function(O,N){N+8>this._byteOffset?ut.Error("BinaryWriter: byteoffset is greater than the current binary buffer length!"):(O.x=this._dataView.getFloat32(N,!0),O.y=this._dataView.getFloat32(N+4,!0),O.z=this._dataView.getFloat32(N+8,!0))},k.prototype.setVector3Float32FromRef=function(O,N){N+8>this._byteOffset?ut.Error("BinaryWriter: byteoffset is greater than the current binary buffer length!"):(this._dataView.setFloat32(N,O.x,!0),this._dataView.setFloat32(N+4,O.y,!0),this._dataView.setFloat32(N+8,O.z,!0))},k.prototype.getVector4Float32FromRef=function(O,N){N+12>this._byteOffset?ut.Error("BinaryWriter: byteoffset is greater than the current binary buffer length!"):(O.x=this._dataView.getFloat32(N,!0),O.y=this._dataView.getFloat32(N+4,!0),O.z=this._dataView.getFloat32(N+8,!0),O.w=this._dataView.getFloat32(N+12,!0))},k.prototype.setVector4Float32FromRef=function(O,N){N+12>this._byteOffset?ut.Error("BinaryWriter: byteoffset is greater than the current binary buffer length!"):(this._dataView.setFloat32(N,O.x,!0),this._dataView.setFloat32(N+4,O.y,!0),this._dataView.setFloat32(N+8,O.z,!0),this._dataView.setFloat32(N+12,O.w,!0))},k.prototype.setFloat32=function(O,N){isNaN(O)&&ut.Error("Invalid data being written!"),N!=null&&(N<this._byteOffset?this._dataView.setFloat32(N,O,!0):ut.Error("BinaryWriter: byteoffset is greater than the current binary length!")),this._byteOffset+4>this._arrayBuffer.byteLength&&this.resizeBuffer(this._arrayBuffer.byteLength*2),this._dataView.setFloat32(this._byteOffset,O,!0),this._byteOffset+=4},k.prototype.setUInt32=function(O,N){N!=null?N<this._byteOffset?this._dataView.setUint32(N,O,!0):ut.Error("BinaryWriter: byteoffset is greater than the current binary buffer length!"):(this._byteOffset+4>this._arrayBuffer.byteLength&&this.resizeBuffer(this._arrayBuffer.byteLength*2),this._dataView.setUint32(this._byteOffset,O,!0),this._byteOffset+=4)},k}(),DR=0,RR=function(){function k(){}return k.GLTFAsync=function(O,N,V){return O.whenReadyAsync().then(function(){var W=N.replace(/\.[^/.]+$/,""),j=new D4(O,V);return j._generateGLTFAsync(W)})},k._PreExportAsync=function(O,N){return Promise.resolve().then(function(){return N&&N.exportWithoutWaitingForScene?Promise.resolve():O.whenReadyAsync()})},k._PostExportAsync=function(O,N,V){return Promise.resolve().then(function(){return V&&V.exportWithoutWaitingForScene,N})},k.GLBAsync=function(O,N,V){var W=this;return this._PreExportAsync(O,V).then(function(){var j=N.replace(/\.[^/.]+$/,""),q=new D4(O,V);return q._generateGLBAsync(j).then(function(A){return W._PostExportAsync(O,A,V)})})},k}(),NR="textureTransformPixelShader",IR=`precision highp float;
|
|
4
4
|
varying vec2 vUV;
|