@dcl/wearable-preview 2.8.4-22683201410.commit-c1871ad → 2.8.4-22683224481.commit-8ea31d8

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.
@@ -0,0 +1 @@
1
+ import{c as D,a as k,r as c,b as q,R as se,j as U}from"./index-B-dFu7TC.js";import{m as oe,d,u as ee,s as ie,f as de,a as ce,b as le,i as ue,g as ge,c as Se,e as $,h as z,j as me,k as Ee,l as fe,n as ye,o as F,p as I}from"./useController-sQAoFuJ4.js";var G=(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))(G||{});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"},we={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)},_=(e,r,n)=>{if(e)try{const t=String(r);Object.values(G).includes(t)||(console.warn(`Unknown Unity method: ${t}. Sending anyway...`),D(`Unknown Unity method: ${t}`,{method:t,value:n})),n!==void 0?e.SendMessage("JSBridge",t,n):e.SendMessage("JSBridge",t)}catch(t){console.error(`Failed to send Unity message ${r}:`,t),k(t,{method:String(r),value:n})}else console.warn(`Unity instance not ready, cannot send message: ${r}`),D(`Unity instance not ready, cannot send message: ${r}`,{method:String(r)})},he=(e,r,n)=>{if(!e){console.warn("Unity instance not available, cannot send override messages"),D("Unity instance not available, cannot send override messages");return}let t=0;r.base64s!==void 0&&n.base64s&&(_(e,"ClearBase64"),t++,Array.isArray(r.base64s)&&r.base64s.length>0&&r.base64s.forEach(a=>{_(e,"AddBase64",a),t++})),Object.entries(r).forEach(([a,s])=>{if(a!=="base64s"&&n[a]&&s!==void 0){const o=pe[a];if(o){const i=we[a],l=i?i(s):String(s);_(e,o,l),t++}else console.warn(`No Unity method mapping found for property: ${a}`),D(`No Unity method mapping found for property: ${a}`,{property:a,value:s})}}),t>0&&_(e,"Reload")};var Re={VITE_BASE_URL:"https://cdn.decentraland.org/@dcl/wearable-preview/2.8.4-22683224481.commit-8ea31d8"};const V=new Map,O=(e,r)=>{if(!r)return e;const n=e.replace(/\/$/,""),t=r.replace(/^\//,"");return`${n}/${t}`};function be(e){if(V.has(e))return V.get(e);const r=new Promise((n,t)=>{const a=document.querySelector(`script[src="${e}"]`);if(a){a.addEventListener("load",()=>n(a)),a.addEventListener("error",o=>t(o));return}const s=document.createElement("script");s.src=e,s.async=!0,s.onload=()=>n(s),s.onerror=o=>t(o),document.body.appendChild(s)});return V.set(e,r),r}const Pe=async(e,r,n,t,a,s,o,i,l,u,g,f)=>{try{const S=Re.VITE_BASE_URL||"";return await be(O(S,r)),await createUnityInstance(e,{dataUrl:O(S,n),frameworkUrl:O(S,t),codeUrl:O(S,a),streamingAssetsUrl:O(S,o),symbolUrl:O(S,s),companyName:i,productName:l,productVersion:u,matchWebGLToCanvasSize:g,arguments:f})}catch(S){throw console.error("❌ Failed to load Unity instance:",S),S}};function Le(e){return{getScreenshot:()=>new Promise(r=>{if(!e){r("");return}e.SendMessage("JSBridge","TakeScreenshot",""),window.addEventListener("message",function n(t){if(t.data.type==="unity-renderer"){const{type:a,payload:s}=t.data.payload;a==="screenshot"&&(window.removeEventListener("message",n),r(s))}})}),getMetrics:()=>new Promise(r=>{if(!e){r({triangles:0,materials:0,textures:0,meshes:0,bodies:0,entities:0});return}e.SendMessage("JSBridge","GetMetrics",""),window.addEventListener("message",function n(t){if(t.data.type==="unity-renderer"){const{type:a,payload:s}=t.data.payload;a==="metrics"&&(window.removeEventListener("message",n),r(s))}})}),changeZoom:async r=>{e&&e.SendMessage("JSBridge","SetZoom",r.toString())},panCamera:async r=>{if(!e)return;const n=r.x??0,t=r.y??0,a=r.z??0;e.SendMessage("JSBridge","SetOffset",`${n},${t},${a}`)},changeCameraPosition:async r=>{if(!e)return;const n=r.alpha??0,t=r.beta??0,a=r.radius??0;e.SendMessage("JSBridge","SetCameraPosition",`${n},${t},${a}`)},setUsername:async r=>{e&&e.SendMessage("JSBridge","SetUsername",r)},cleanup:async()=>{e&&e.SendMessage("JSBridge","Cleanup","")}}}function Te(e){const r=oe();return{getLength:async()=>new Promise(n=>{if(!e){n(0);return}e.SendMessage("JSBridge","GetEmoteLength",""),window.addEventListener("message",function t(a){if(a.data.type==="unity-renderer"){const{type:s,payload:o}=a.data.payload;s==="emoteLength"&&(window.removeEventListener("message",t),n(o))}})}),isPlaying:async()=>new Promise(n=>{if(!e){n(!1);return}e.SendMessage("JSBridge","IsEmotePlaying",""),window.addEventListener("message",function t(a){if(a.data.type==="unity-renderer"){const{type:s,payload:o}=a.data.payload;s==="isEmotePlaying"&&(window.removeEventListener("message",t),n(o))}})}),goTo:async n=>{e&&(e.SendMessage("JSBridge","GoToEmote",n.toString()),r.emit(d.PreviewEmoteEventType.ANIMATION_PLAYING,{length:n}))},play:async()=>{e&&(e.SendMessage("JSBridge","PlayEmote",""),r.emit(d.PreviewEmoteEventType.ANIMATION_PLAY))},pause:async()=>{e&&(e.SendMessage("JSBridge","PauseEmote",""),r.emit(d.PreviewEmoteEventType.ANIMATION_PAUSE))},stop:async()=>{e&&(e.SendMessage("JSBridge","StopEmote",""),r.emit(d.PreviewEmoteEventType.ANIMATION_END))},enableSound:async()=>{e&&e.SendMessage("JSBridge","EnableSound","")},disableSound:async()=>{e&&e.SendMessage("JSBridge","DisableSound","")},hasSound:async()=>new Promise(n=>{if(!e){n(!1);return}e.SendMessage("JSBridge","HasSound",""),window.addEventListener("message",function t(a){if(a.data.type==="unity-renderer"){const{type:s,payload:o}=a.data.payload;s==="hasSound"&&(window.removeEventListener("message",t),n(o))}})}),events:r}}async function ve(e){let r=null;try{if(r=await Pe(e,"/unity/Build/aang-renderer.loader.js","/unity/Build/aang-renderer.data.br","/unity/Build/aang-renderer.framework.js.br","/unity/Build/aang-renderer.wasm.br","/unity/Build/aang-renderer.symbols.json.br","/emotes","Decentraland","AangRenderer","2.2.2",!0,[]),!r)throw new Error("Failed to load Unity instance");const n=Le(r),t=Te(r);return{scene:n,emote:t,unity:r}}catch(n){if(console.error("Unity render failed:",n),r!=null&&r.Quit)try{r.Quit()}catch(t){console.error("Error quitting Unity instance:",t),k(t,{phase:"unityQuit"})}throw n}}const Ie=()=>Math.floor(Math.random()*159)+1,re=()=>`default${Ie()}`,Oe=(e,r)=>{var n,t,a,s,o,i;return{eyes:$(r.eyes||((t=(n=e==null?void 0:e.avatar)==null?void 0:n.eyes)==null?void 0:t.color)&&z(e.avatar.eyes.color)||"#000000"),hair:$(r.hair||((s=(a=e==null?void 0:e.avatar)==null?void 0:a.hair)==null?void 0:s.color)&&z(e.avatar.hair.color)||"#000000"),skin:$(r.skin||((i=(o=e==null?void 0:e.avatar)==null?void 0:o.skin)==null?void 0:i.color)&&z(e.avatar.skin.color)||"#cc9b76")}},A=e=>e||"",K=e=>e||[],B=e=>e.replace("#","");function X(e){const r=new URL(window.location.href);Object.entries(e).forEach(([n,t])=>{r.searchParams.delete(n),Array.isArray(t)?t.forEach(a=>{a!==""&&r.searchParams.append(n,a)}):t!==""&&r.searchParams.set(n,t)}),window.history.replaceState({},"",r.toString())}function Ce(){const{options:e,overrideSources:r}=ee(),[n,t]=c.useState(null),[a,s]=c.useState(!0),[o,i]=c.useState(null),l=c.useRef(null),u=c.useRef(e),g=c.useRef(!0);return c.useEffect(()=>{const f=JSON.stringify(e),S=JSON.stringify(u.current);if(!g.current&&f===S)return;g.current=!1,u.current=e,(async()=>{var m,E;try{s(!0),i(null);const w=e.peerUrl||q.get("PEER_URL"),j=e.marketplaceServerUrl||e.nftServerUrl||q.get("MARKETPLACE_SERVER_URL");let C=d.PreviewType.WEARABLE,P={color:e.background||"#4b4852",transparent:e.disableBackground===!0};const L=ie(e.profile);let h=L==null?void 0:L.value;h==="default"&&(h=re());const y=h&&L?L.type==="address"?await de(h,w):await ce(h,w):null,R=e.bodyShape||((m=y==null?void 0:y.avatar)==null?void 0:m.bodyShape)||d.BodyShape.MALE;let p=null;if(e.contractAddress&&(p=await le({contractAddress:e.contractAddress,tokenId:e.tokenId,itemId:e.itemId,peerUrl:w,marketplaceServerUrl:j}),p&&ue(p))){P={...P,image:p.thumbnail};const N=ge(p);Se(N)&&(C=d.PreviewType.TEXTURE)}const{eyes:T,hair:H,skin:Y}=Oe(y,{eyes:e.eyes,hair:e.hair,skin:e.skin}),M=e.unityMode||null,te=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,v=e.disableDefaultEmotes?null:e.emote&&Object.values(d.PreviewEmote).includes(e.emote)?e.emote:d.PreviewEmote.IDLE,x={background:P,bodyShape:R,mode:M,projection:Q,type:C,base64:((E=e.base64s)==null?void 0:E[0])||null,contract:e.contractAddress||null,disableLoader:e.disableLoader||!1,emote:(v==null?void 0:v.toString())||null,eyeColor:T.replace("#",""),hairColor:H.replace("#",""),item:e.itemId||null,profile:h||null,skinColor:Y.replace("#",""),token:e.tokenId||null,urn:e.urns||null,showAnimationReference:null},ne=JSON.stringify(x),ae=JSON.stringify(l.current);if(ne!==ae){if(l.current=x,Object.keys(r).length===0){const N=K(e.urns),W=K(e.base64s);if(M===d.PreviewUnityMode.CONFIG){const J={mode:A(M||"")};X(J)}else{const J={background:P.transparent?"":B(P.color),disableLoader:e.disableLoader?"true":"",profile:A(h||""),bodyShape:A(R||""),eyeColor:B(T||""),hairColor:B(H||""),skinColor:B(Y||""),mode:A(M||""),camera:te,projection:Q,emote:A((v==null?void 0:v.toString())||""),urn:N.length>0?N:[""],base64:W.length>0?W:[""]};X(J)}}t(x)}s(!1)}catch(w){console.error("[useUnityConfig] Failed to load config:",w),i(w instanceof Error?w.message:"Failed to load config"),s(!1)}})()},[e,r]),[n,a,o]}const Ae="unity-renderer",_e="unity-canvas",Z=1,Me="Failed to load Unity";var Ne=(e=>(e.LOADED="loaded",e.ERROR="error",e.SCREENSHOT="screenshot",e.CUSTOMIZATION_DONE="customization-done",e.ELEMENT_BOUNDS="element-bounds",e))(Ne||{});const Ue="get_element_bounds",Be="element_bounds_response",De=(e,r,n,t)=>{const[a,s]=c.useState({isLoaded:!1,isInitialized:!1,error:null}),o=c.useCallback(l=>{if(l.data.type===Ae){const{type:u,payload:g}=l.data.payload;u==="loaded"&&(g===!0||g==="true")?(s(f=>({...f,isLoaded:!0,isInitialized:!0})),d.sendMessage(I(),d.PreviewMessageType.LOAD,{renderer:d.PreviewRenderer.UNITY})):u==="customization-done"?d.sendMessage(I(),d.PreviewMessageType.CONTROLLER_RESPONSE,{id:"customization-done",ok:!0,result:JSON.parse(l.data.payload.payload)}):u==="element-bounds"?d.sendMessage(I(),Be,g):u==="error"&&(k(new Error(g),{component:"UnityPreview",phase:"unityMessage"}),s(f=>({...f,error:g})),d.sendMessage(I(),d.PreviewMessageType.ERROR,{message:"Error loading the wearable. Please try again."}))}},[]),i=c.useCallback(async()=>{if(!(!e.canvas.current||e.isInitializing.current||e.unityInstance.current)){e.isInitializing.current=!0,s(l=>({...l,isLoaded:!1,error:null}));try{const{unity:l,scene:u,emote:g}=await ve(e.canvas.current);e.unityInstance.current=l,r.current={scene:u,emote:g},s(f=>({...f,isLoaded:!0,isInitialized:!0})),d.sendMessage(I(),d.PreviewMessageType.LOAD,{renderer:d.PreviewRenderer.UNITY})}catch(l){const u=l instanceof Error?l.message:Me;console.error("Unity init failed:",l),k(l,{component:"UnityPreview",phase:"initializeUnity"}),s(g=>({...g,error:u})),d.sendMessage(I(),d.PreviewMessageType.ERROR,{message:u})}finally{e.isInitializing.current=!1}}},[e,r]);return c.useEffect(()=>{a.isInitialized||t||!n||i()},[n,t,a.isInitialized,i]),c.useEffect(()=>{if(n)return window.addEventListener("message",o,!1),()=>{window.removeEventListener("message",o,!1)}},[n,o]),a},ke=e=>{const[r,n]=c.useState({pixelRatio:window.devicePixelRatio||Z,is3D:!0,backgroundImage:""});return c.useEffect(()=>{const t=()=>{n(s=>({...s,pixelRatio:window.devicePixelRatio||Z}))},a=window.matchMedia(`(resolution: ${r.pixelRatio}dppx)`);return a.addEventListener("change",t),()=>{a.removeEventListener("change",t)}},[r.pixelRatio]),c.useEffect(()=>{e&&n(t=>({...t,backgroundImage:e.background.image||"",is3D:e.type!==d.PreviewType.TEXTURE}))},[e]),r},je=(e,r,n,t,a)=>{const s=c.useMemo(()=>{const o={};for(const i of Object.keys(a))a[i]&&t[i]!==void 0&&(o[i]=t[i]);return o},[a,t]);c.useEffect(()=>{if(!(!n.isInitialized||!n.isLoaded||!e.current)){if(s.profile==="default"){const o=r.current.profile;s.profile=o!=null&&o.match(/^default\d+$/)?o:re()}Object.keys(s).length>0&&(he(e.current,s,a),r.current=s)}},[n.isInitialized,n.isLoaded,s,a,e,r])},xe=()=>{const{width:e=window.innerWidth,height:r=window.innerHeight}=me(),n=c.useRef(null),t=c.useRef(null),a=c.useRef(!1),s=c.useRef({}),o=Ee(),[i,l,u]=Ce(),{options:g,overrideSources:f}=ee(),S=c.useMemo(()=>({canvas:n,unityInstance:t,isInitializing:a,lastSentOverrides:s}),[]);fe(y=>{var R,p;if(((R=y.data)==null?void 0:R.type)===Ue&&t.current){const T=(p=y.data.payload)==null?void 0:p.elementName;T&&_(t.current,G.GET_ELEMENT_BOUNDS,T)}});const b=De(S,o,i,l),m=ke(i);je(S.unityInstance,S.lastSentOverrides,b,g,f),ye();const E=c.useMemo(()=>{const y=b.error||u,R=!b.isLoaded&&!y,p=!!m.backgroundImage&&!m.is3D&&!R,T=m.is3D&&!R;return{error:y,isLoading:R,showImage:p,showCanvas:T}},[b.error,b.isLoaded,u,m.backgroundImage,m.is3D]),w=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]),j=c.useMemo(()=>({width:`${e}px`,height:`${r}px`}),[e,r]),C=c.useMemo(()=>({width:Math.round(e*m.pixelRatio),height:Math.round(r*m.pixelRatio)}),[e,r,m.pixelRatio]),P=c.useMemo(()=>F("Preview",{"is-loading":E.isLoading,"is-loaded":b.isLoaded,"is-3d":m.is3D,"has-error":!!E.error}),[E.isLoading,b.isLoaded,m.is3D,E.error]),L=c.useMemo(()=>F("thumbnail",{"is-visible":E.showImage}),[E.showImage]),h=c.useMemo(()=>F({"is-visible":E.showCanvas}),[E.showCanvas]);return U.jsxs("div",{className:P,style:w,children:[U.jsx("img",{src:m.backgroundImage,className:L,alt:"preview"}),U.jsx("canvas",{ref:S.canvas,id:_e,className:h,width:C.width,height:C.height,style:j}),E.error&&U.jsx("div",{className:"error",children:E.error})]})},ze=se.memo(xe);export{Ne as UnityMessageType,ze as default};
@@ -1 +1 @@
1
- .Preview{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity ease .3s}.Preview.is-loading{visibility:hidden}.Preview.is-3d.is-loaded{cursor:grab}.Preview canvas{position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;transition:opacity ease .3s}.Preview canvas.is-visible{opacity:1}.Preview.is-3d.is-dragging{cursor:grabbing}.Preview.is-3d.has-error{opacity:1;cursor:default}.Preview .thumbnail{max-height:256px;margin:auto;opacity:0;transition:opacity ease .3s}.Preview .thumbnail.is-visible{opacity:1}.Preview .error{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;color:#000}.Preview .ui.loader:before{border-color:transparent!important}#babylonjsLoadingDiv{display:none!important}.Preview.no-fade-effect,.Preview.no-fade-effect canvas,.Preview.no-fade-effect .thumbnail{transition:none}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:transparent!important}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
1
+ .Preview{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity ease .3s}.Preview.is-loading{visibility:hidden}.Preview.is-3d.is-loaded{cursor:grab}.Preview canvas{position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;transition:opacity ease .3s}.Preview canvas.is-visible{opacity:1}.Preview.is-3d.is-dragging{cursor:grabbing}.Preview.is-3d.has-error{opacity:1;cursor:default}.Preview .thumbnail{max-height:256px;margin:auto;opacity:0;transition:opacity ease .3s}.Preview .thumbnail.is-visible{opacity:1}.Preview .error{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;color:#000}.Preview .ui.loader:before{border-color:transparent!important}#babylonjsLoadingDiv{display:none!important}.Preview.no-fade-effect,.Preview.no-fade-effect canvas,.Preview.no-fade-effect .thumbnail{transition:none}
@@ -1,6 +1,6 @@
1
- import{A as Pa,a as fC,b as pC,c as dC,d as mC,e as hC,f as vC,g as CC,h as gC,i as bC,j as yC,k as EC,l as MC,m as OC,n as LC,o as PC,p as SC,q as xC,r as TC,s as zC,t as AC,u as DC,v as RC,w as NC,x as gp,y as IC,z as HC,B as VC,C as BC,D as UC,E as jC,F as GC,G as FC,H as WC,I as KC,J as YC,K as ZC,L as XC,M as QC,N as $C,O as JC,P as wC,Q as kC,R as qC,S as _C,T as eg,U as tg,V as ng,W as rg,X as ag,Y as og,Z as ig,_ as sg,$ as lg,a0 as cg,a1 as ug,a2 as fg,a3 as pg,a4 as dg,a5 as mg,a6 as hg,a7 as vg,a8 as Cg,a9 as gg,aa as bg,ab as yg,ac as Eg,ad as Mg,ae as Og,af as Lg,ag as Pg,ah as Sg,ai as xg,aj as Tg,ak as zg,al as Ag,am as Dg,an as Rg,ao as Ng,ap as Ig,aq as Hg,ar as Vg,as as Bg,at as Ug,au as jg,av as Gg,aw as Fg,ax as Wg,ay as Kg,az as Yg,aA as Zg,aB as Xg,aC as Qg,aD as $g,aE as Jg,aF as wg,aG as kg,aH as qg,aI as Jn,aJ as _g,aK as bp,aL as eb,aM as tb,aN as nb,aO as rb,aP as ab,aQ as ob,aR as ib,aS as sb,aT as lb,aU as is,aV as cb,aW as ub,aX as fb,aY as pb,aZ as db,a_ as mb,a$ as hb,b0 as vb,b1 as Cb,b2 as gb,b3 as bb,b4 as yb,b5 as Eb,b6 as Mb,b7 as Ob,b8 as Lb,b9 as Pb,ba as Sb,bb as xb,bc as Tb,bd as zb,be as Ab,bf as Db,bg as Rb,bh as Nb,bi as Ib,bj as Hb,bk as Vb,bl as Bb,bm as Ub,bn as jb,bo as Gb,bp as Fb,bq as Wb,br as Kb,bs as Yb,bt as Zb,bu as Xb,bv as Qb,bw as $b,bx as Jb,by as wb,bz as kb,bA as qb,bB as _b,bC as ey,bD as ty,bE as ny,bF as dm,bG as ry,bH as ay,bI as oy,bJ as iy,bK as sy,bL as ly,bM as cy,bN as uy,bO as fy,bP as py,bQ as dy,bR as my,bS as hy,bT as vy,bU as Cy,bV as gy,bW as mm,bX as by,bY as yy,bZ as Ey,b_ as My,b$ as Oy,c0 as Ly,c1 as hm,c2 as Py,c3 as Sy,c4 as xy,c5 as Ty,c6 as zy,c7 as vm,c8 as Ay,c9 as Dy,ca as Ry,cb as Ny,cc as Iy,cd as Hy,ce as Vy,cf as By,cg as Uy,ch as jy,ci as Gy,cj as Fy,ck as Wy,cl as Ky,cm as Yy,cn as Zy,co as Xy,cp as Qy,cq as $y,cr as Jy,cs as wy,ct as ky,cu as qy,cv as _y,cw as eE,cx as tE,cy as nE,cz as rE,cA as aE,cB as oE,cC as iE,cD as sE,cE as lE,cF as cE,cG as uE,cH as fE,cI as pE,cJ as dE,cK as mE,cL as hE,cM as vE,cN as CE,cO as gE,cP as bE,cQ as yE,cR as EE,cS as ME,cT as OE,cU as LE,cV as PE,cW as SE,cX as xE,cY as TE,cZ as zE,c_ as AE,c$ as DE,d0 as RE,d1 as NE,d2 as IE,d3 as HE,d4 as VE,d5 as BE,d6 as UE,d7 as jE,d8 as GE,d9 as FE,da as WE,db as KE,dc as YE,dd as ZE,de as XE,df as QE,dg as $E,dh as JE,di as wE,dj as kE,dk as qE,dl as _E,dm as eM,dn as tM,dp as nM,dq as rM,dr as aM,ds as Q9,dt as oM,du as iM,dv as sM,dw as lM,dx as cM,dy as uM,dz as fM,dA as pM,dB as dM,dC as mM,dD as hM,dE as vM,dF as CM,dG as gM,dH as bM,dI as yM,dJ as EM,dK as MM,dL as OM,dM as LM,dN as PM,dO as SM,dP as xM,dQ as bc,dR as TM,dS as zM,dT as AM,dU as DM,dV as RM,dW as yp,dX as NM,dY as Ep,dZ as $n,d_ as IM,d$ as HM,e0 as VM,e1 as Qo,e2 as BM,e3 as UM,e4 as A4,e5 as jM,e6 as GM,e7 as FM,e8 as WM,e9 as KM,ea as YM,eb as ZM,ec as XM,ed as QM,ee as $M,ef as $9,eg as JM,eh as wM,ei as kM,ej as qM,ek as Cm,el as _M,em as eO,en as tO,eo as nO,ep as rO,eq as aO,er as oO,es as iO,et as sO,eu as lO,ev as cO,ew as uO,ex as fO,ey as pO,ez as dO,eA as mO,eB as hO,eC as vO,eD as CO,eE as gO,eF as bO,eG as yO,eH as EO,eI as MO,eJ as OO,eK as LO,eL as PO,eM as SO,eN as xO,eO as TO,eP as zO,eQ as AO,eR as DO,eS as RO,eT as NO,eU as IO,eV as HO,eW as VO,eX as Ec,eY as BO,eZ as UO,e_ as gm,e$ as jO,f0 as GO,f1 as FO,f2 as WO,f3 as KO,f4 as YO,f5 as ZO,f6 as XO,f7 as QO,f8 as $O,f9 as JO,fa as wO,fb as kO,fc as qO,fd as _O,fe as eL,ff as tL,fg as nL,fh as rL,fi as aL,fj as oL,fk as iL,fl as sL,fm as lL,fn as cL,fo as uL,fp as fL,fq as pL,fr as dL,fs as mL,ft as hL,fu as vL,fv as CL,fw as gL,fx as bL,fy as yL,fz as EL,fA as ML,fB as OL,fC as LL,fD as PL,fE as SL,fF as xL,fG as TL,fH as zL,fI as AL,fJ as DL,fK as RL,fL as NL,fM as IL,fN as HL,fO as VL,fP as BL,fQ as UL,fR as jL,fS as GL,fT as FL,fU as WL,fV as KL,fW as bm,fX as YL,fY as ZL,fZ as XL,f_ as QL,f$ as $L,g0 as JL,g1 as wL,g2 as kL,g3 as qL,g4 as _L,g5 as eP,g6 as tP,g7 as nP,g8 as ym,g9 as rP,ga as aP,gb as oP,gc as iP,gd as sP,ge as lP,gf as cP,gg as wt,gh as uP,gi as fP,gj as pP,gk as dP,gl as Em,gm as mP,gn as hP,go as vP,gp as CP,gq as gP,gr as bP,gs as yP,gt as EP,gu as MP,gv as OP,gw as LP,gx as PP,gy as SP,gz as xP,gA as TP,gB as zP,gC as AP,gD as DP,gE as RP,gF as NP,gG as IP,gH as HP,gI as VP,gJ as BP,gK as UP,gL as jP,gM as GP,gN as FP,gO as WP,gP as KP,gQ as YP,gR as ZP,gS as ss,gT as XP,gU as QP,gV as Mm,gW as $P,gX as JP,gY as wP,gZ as kP,g_ as qP,g$ as _P,h0 as eS,h1 as tS,h2 as nS,h3 as rS,h4 as aS,h5 as oS,h6 as iS,h7 as sS,h8 as lS,h9 as cS,ha as uS,hb as fS,hc as pS,hd as dS,he as mS,hf as hS,hg as vS,hh as Om,hi as CS,hj as gS,hk as bS,hl as yS,hm as ES,hn as MS,ho as OS,hp as LS,hq as PS,hr as SS,hs as xS,ht as TS,hu as zS,hv as AS,hw as DS,hx as RS,hy as NS,hz as IS,hA as HS,hB as VS,hC as BS,hD as US,hE as jS,hF as GS,hG as FS,hH as WS,hI as KS,hJ as YS,hK as ZS,hL as XS,hM as QS,hN as $S,hO as JS,hP as wS,hQ as kS,hR as k9,hS as qS,hT as _S,hU as ex,hV as tx,hW as nx,hX as rx,hY as ax,hZ as ox,h_ as ix,h$ as sx,i0 as lx,i1 as cx,i2 as ux,i3 as fx,i4 as px,i5 as dx,i6 as mx,i7 as hx,i8 as vx,i9 as Cx,ia as gx,ib as bx,ic as yx,id as Ex,ie as Mx,ig as Ox,ih as Lx,ii as Px,ij as Sx,ik as hn,il as xx,im as Tx,io as zx,ip as Ax,iq as Dx,ir as Mp,is as Rx,it as Nx,iu as Ix,iv as Hx,iw as Vx,ix as Bx,iy as T4,iz as Ux,iA as jx,iB as Gx,iC as Fx,iD as ut,iE as Wx,iF as Kx,iG as Yx,iH as Zx,iI as Xx,iJ as Qx,iK as $x,iL as Xo,iM as Jx,iN as wx,iO as kx,iP as qx,iQ as _x,iR as eT,iS as tT,iT as nT,iU as rT,iV as aT,iW as oT,iX as iT,iY as sT,iZ as lT,i_ as pr,i$ as Ct,j0 as i1,j1 as cT,j2 as uT,j3 as $e,j4 as fT,j5 as pT,j6 as dT,j7 as mT,j8 as hT,j9 as vT,ja as Lm,jb as CT,jc as gT,jd as bT,je as yT,jf as ET,jg as MT,jh as OT,ji as LT,jj as PT,jk as ST,jl as xT,jm as TT,jn as zT,jo as AT,jp as DT,jq as RT,jr as NT,js as IT,jt as HT,ju as VT,jv as BT,jw as UT,jx as jT,jy as GT,jz as FT,jA as WT,jB as KT,jC as YT,jD as ZT,jE as XT,jF as QT,jG as $T,jH as JT,jI as wT,jJ as kT,jK as qT,jL as _T,jM as ez,jN as tz,jO as nz,jP as rz,jQ as az,jR as oz,jS as iz,jT as sz,jU as lz,jV as cz,jW as uz,jX as fz,jY as pz,jZ as dz,j_ as mz,j$ as hz,k0 as vz,k1 as Cz,k2 as gz,k3 as bz,k4 as yz,k5 as Ez,k6 as Mz,k7 as Oz,k8 as Lz,k9 as Pz,ka as Sz,kb as xz,kc as Tz,kd as zz,ke as Az,kf as Dz,kg as Rz,kh as Nz,ki as Iz,kj as Hz,kk as Vz,kl as Bz,km as Uz,kn as jz,ko as Gz,kp as Fz,kq as Wz,kr as Kz,ks as Yz,kt as Zz,ku as Xz,kv as Qz,kw as $z,kx as Jz,ky as wz,kz,kA as qz,kB as _z,kC as eA,kD as tA,kE as nA,kF as rA,kG as aA,kH as oA,kI as iA,kJ as sA,kK as lA,kL as cA,kM as uA,kN as fA,kO as pA,kP as dA,kQ as mA,kR as hA,kS as vA,kT as CA,kU as gA,kV as bA,kW as yA,kX as EA,kY as MA,kZ as OA,k_ as LA,k$ as PA,l0 as SA,l1 as xA,l2 as TA,l3 as zA,l4 as AA,l5 as DA,l6 as RA,l7 as NA,l8 as IA,l9 as HA,la as VA,lb as BA,lc as UA,ld as jA,le as GA,lf as FA,lg as WA,lh as KA,li as YA,lj as ZA,lk as XA,ll as QA,lm as $A,ln as JA,lo as wA,lp as kA,lq as qA,lr as _A,ls as eD,lt as tD,lu as nD,lv as rD,lw as aD,lx as oD,ly as iD,lz as sD,lA as lD,lB as cD,lC as uD,lD as fD,lE as pD,lF as dD,lG as mD,lH as hD,lI as vD,lJ as CD,lK as gD,lL as bD,lM as yD,lN as ED,lO as MD,lP as OD,lQ as LD,lR as PD,lS as SD,lT as xD,lU as TD,lV as zD,lW as AD,lX as DD,lY as RD,lZ as ND,l_ as ID,l$ as HD,m0 as VD,m1 as BD,m2 as UD,m3 as jD,m4 as GD,m5 as FD,m6 as WD,m7 as KD,m8 as YD,m9 as ZD,ma as XD,mb as QD,mc as $D,md as JD,me as wD,mf as kD,mg as qD,mh as _D,mi as eR,mj as tR,mk as nR,ml as rR,mm as aR,mn as oR,mo as iR,mp as sR,mq as lR,mr as cR,ms as uR,mt as fR,mu as pR,mv as dR,mw as mR,mx as Mc,my as hR,mz as fm,mA as vR}from"./index-DWoCKdae.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:fC,AbstractAssetTask:pC,AbstractMesh:dC,AbstractScene:mC,Action:hC,ActionEvent:vC,ActionManager:CC,AddBlock:gC,AdvancedTimer:bC,AlphaState:yC,AmmoJSPlugin:EC,AnaglyphArcRotateCamera:MC,AnaglyphFreeCamera:OC,AnaglyphGamepadCamera:LC,AnaglyphPostProcess:PC,AnaglyphUniversalCamera:SC,Analyser:xC,AndOrNotEvaluator:TC,Angle:zC,Animatable:AC,get AnimatedInputBlockTypes(){return DC},Animation:Pa,AnimationEvent:RC,AnimationGroup:NC,get AnimationKeyInterpolation(){return gp},AnimationPropertiesOverride:gR,AnimationRange:IC,AnisotropyBlock:HC,Arc2:VC,ArcFollowCamera:BC,ArcRotateCamera:UC,ArcRotateCameraGamepadInput:jC,ArcRotateCameraInputsManager:GC,ArcRotateCameraKeyboardMoveInput:FC,ArcRotateCameraMouseWheelInput:WC,ArcRotateCameraPointersInput:KC,ArcRotateCameraVRDeviceOrientationInput:YC,ArcTan2Block:ZC,AssetContainer:XC,get AssetTaskState(){return QC},AssetsManager:$C,AssetsProgressEvent:JC,AsyncLoop:wC,AttachToBoxBehavior:kC,AudioEngine:qC,AudioSceneComponent:_C,AutoRotationBehavior:eg,AxesViewer:tg,Axis:ng,AxisDragGizmo:rg,AxisScaleGizmo:ag,BRDFTextureTools:og,BabylonFileLoaderConfiguration:ig,BackEase:sg,BackgroundMaterial:lg,BaseParticleSystem:cg,BaseTexture:ug,BasisTools:fg,BasisTranscodeConfiguration:pg,BezierCurve:dg,BezierCurveEase:mg,BinaryFileAssetTask:hg,BlackAndWhitePostProcess:vg,BloomEffect:Cg,BloomMergePostProcess:gg,BlurPostProcess:bg,Bone:yg,BoneAxesViewer:Eg,BoneIKController:Mg,BoneLookController:Og,BonesBlock:Lg,BounceEase:Pg,BouncingBehavior:Sg,BoundingBox:xg,BoundingBoxGizmo:Tg,BoundingBoxRenderer:zg,BoundingInfo:Ag,BoundingSphere:Dg,BoxBuilder:Rg,BoxParticleEmitter:Ng,Buffer:Ig,CSG:Hg,Camera:Vg,CameraGizmo:Bg,CameraInputTypes:Ug,CameraInputsManager:jg,CannonJSPlugin:Gg,CanvasGenerator:Fg,CapsuleBuilder:Wg,CascadedShadowGenerator:Kg,ChromaticAberrationPostProcess:Yg,CircleEase:Zg,CircleOfConfusionPostProcess:Xg,ClampBlock:Qg,ClearCoatBlock:$g,ClipboardEventTypes:Jg,ClipboardInfo:wg,CloudPoint:kg,Collider:qg,Color3:Jn,Color3Gradient:_g,Color4:bp,ColorCorrectionPostProcess:eb,ColorCurves:tb,ColorGradient:nb,ColorGradingTexture:rb,ColorMergerBlock:ab,ColorSplitterBlock:ob,CombineAction:ib,Condition:sb,ConeParticleEmitter:lb,Constants:is,ContainerAssetTask:cb,ConvolutionPostProcess:ub,get Coordinate(){return fb},CopyTools:pb,CrossBlock:db,CubeMapToSphericalPolynomialTools:mb,CubeTexture:hb,CubeTextureAssetTask:vb,CubicEase:Cb,CurrentScreenBlock:gb,Curve3:bb,CustomOptimization:yb,CustomParticleEmitter:Eb,CustomProceduralTexture:Mb,CylinderBuilder:Ob,CylinderDirectedParticleEmitter:Lb,CylinderParticleEmitter:Pb,DDSTools:Sb,DataBuffer:xb,DataReader:Tb,DataStorage:zb,Database:Ab,DaydreamController:Db,DebugLayer:Rb,get DebugLayerTab(){return Nb},DecalBuilder:Ib,DeepCopier:Hb,DefaultCollisionCoordinator:Vb,DefaultLoadingScreen:Bb,DefaultRenderingPipeline:Ub,Deferred:jb,DepthCullingState:Gb,DepthOfFieldBlurPostProcess:Fb,DepthOfFieldEffect:Wb,get DepthOfFieldEffectBlurLevel(){return Kb},DepthOfFieldMergePostProcess:Yb,DepthOfFieldMergePostProcessOptions:Zb,DepthReducer:Xb,DepthRenderer:Qb,DepthRendererSceneComponent:$b,DepthSortedParticle:Jb,DerivativeBlock:wb,DesaturateBlock:kb,DeviceInputSystem:qb,DeviceOrientationCamera:_b,DeviceSource:ey,DeviceSourceManager:ty,get DeviceType(){return ny},DirectionalLight:dm,DiscBuilder:ry,DiscardBlock:ay,DisplayPassPostProcess:oy,DistanceBlock:iy,DistanceJoint:sy,DivideBlock:ly,DoNothingAction:cy,DotBlock:uy,DracoCompression:fy,get DualShockButton(){return py},get DualShockDpad(){return dy},get DualShockInput(){return my},DualShockPad:hy,DynamicTexture:vy,EasingFunction:Cy,EdgesRenderer:gy,Effect:mm,EffectFallbacks:by,EffectLayer:yy,EffectLayerSceneComponent:Ey,EffectRenderer:My,EffectWrapper:Oy,ElasticEase:Ly,Engine:hm,EngineInstrumentation:Py,EngineStore:Sy,EngineView:xy,EnvironmentHelper:Ty,EnvironmentTextureTools:zy,Epsilon:vm,EquiRectangularCubeTexture:Ay,EquiRectangularCubeTextureAssetTask:Dy,EventState:Ry,ExecuteCodeAction:Ny,ExponentialEase:Iy,ExtractHighlightsPostProcess:Hy,FactorGradient:Vy,FadeInOutBehavior:By,FileTools:Uy,FilesInput:jy,FilesInputStore:Gy,FilterPostProcess:Fy,FlyCamera:Wy,FlyCameraInputsManager:Ky,FlyCameraKeyboardInput:Yy,FlyCameraMouseInput:Zy,FogBlock:Xy,FollowCamera:Qy,FollowCameraInputsManager:$y,FollowCameraKeyboardMoveInput:Jy,FollowCameraMouseWheelInput:wy,FollowCameraPointersInput:ky,FragCoordBlock:qy,FragmentOutputBlock:_y,FramingBehavior:eE,FreeCamera:tE,FreeCameraDeviceOrientationInput:nE,FreeCameraGamepadInput:rE,FreeCameraInputsManager:aE,FreeCameraKeyboardMoveInput:oE,FreeCameraMouseInput:iE,FreeCameraMouseWheelInput:sE,FreeCameraTouchInput:lE,FreeCameraVirtualJoystickInput:cE,FresnelBlock:uE,FresnelParameters:fE,FrontFacingBlock:pE,Frustum:dE,FxaaPostProcess:mE,GPUParticleSystem:hE,Gamepad:vE,GamepadCamera:CE,GamepadManager:gE,GamepadSystemSceneComponent:bE,GearVRController:yE,GenericController:EE,GenericPad:ME,Geometry:OE,GeometryBufferRenderer:LE,GeometryBufferRendererSceneComponent:PE,Gizmo:SE,GizmoManager:xE,GlowLayer:TE,GradientBlock:zE,GradientBlockColorStep:AE,GradientHelper:DE,GrainPostProcess:RE,GroundBuilder:NE,GroundMesh:IE,HDRCubeTexture:HE,HDRCubeTextureAssetTask:VE,HDRFiltering:BE,HDRTools:UE,HardwareScalingOptimization:jE,HemisphereBuilder:GE,HemisphericLight:FE,HemisphericParticleEmitter:WE,HighlightLayer:KE,HighlightsPostProcess:YE,Hinge2Joint:ZE,HingeJoint:XE,HtmlElementTexture:QE,IWebXRControllerPhysicsOptions:$E,IcoSphereBuilder:JE,ImageAssetTask:wE,ImageProcessingBlock:kE,ImageProcessingConfiguration:qE,ImageProcessingConfigurationDefines:_E,ImageProcessingPostProcess:eM,IncrementValueAction:tM,InputBlock:nM,get InspectableType(){return rM},InstancedLinesMesh:aM,InstancedMesh:Q9,InstancesBlock:oM,InstantiatedEntries:iM,InternalTexture:sM,get InternalTextureSource(){return lM},InterpolateValueAction:cM,IntersectionInfo:uM,get JoystickAxis(){return fM},KeepAssets:pM,KeyboardEventTypes:dM,KeyboardInfo:mM,KeyboardInfoPre:hM,KhronosTextureContainer:vM,KhronosTextureContainer2:CM,LatheBuilder:gM,Layer:bM,LayerSceneComponent:yM,LengthBlock:EM,LensFlare:MM,LensFlareSystem:OM,LensFlareSystemSceneComponent:LM,LensFlaresOptimization:PM,LensRenderingPipeline:SM,LerpBlock:xM,Light:bc,LightBlock:TM,LightGizmo:zM,LightInformationBlock:AM,LineEdgesRenderer:DM,LinesBuilder:RM,LinesMesh:yp,LoadFileError:NM,Logger:Ep,Material:$n,MaterialDefines:IM,MaterialFlags:HM,MaterialHelper:VM,Matrix:Qo,MaxBlock:BM,MergeMeshesOptimization:UM,Mesh:A4,MeshAssetTask:jM,MeshBuilder:GM,MeshExploder:FM,MeshLODLevel:WM,MeshParticleEmitter:KM,MinBlock:YM,MinMaxReducer:ZM,MirrorTexture:XM,ModBlock:QM,ModelShape:$M,MorphTarget:$9,MorphTargetManager:JM,MorphTargetsBlock:wM,MotionBlurPostProcess:kM,MotorEnabledJoint:qM,MultiMaterial:Cm,MultiObserver:_M,MultiPointerScaleBehavior:eO,MultiRenderTarget:tO,MultiplyBlock:nO,NLerpBlock:rO,NativeEngine:aO,NegateBlock:oO,Node:iO,NodeMaterial:sO,NodeMaterialBlock:lO,get NodeMaterialBlockConnectionPointMode(){return cO},get NodeMaterialBlockConnectionPointTypes(){return uO},get NodeMaterialBlockTargets(){return fO},NodeMaterialConnectionPoint:pO,get NodeMaterialConnectionPointCompatibilityStates(){return dO},get NodeMaterialConnectionPointDirection(){return mO},NodeMaterialDefines:hO,get NodeMaterialModes(){return vO},NodeMaterialOptimizer:CO,get NodeMaterialSystemValues(){return gO},NoiseProceduralTexture:bO,NormalBlendBlock:yO,NormalizeBlock:EO,NullEngine:MO,NullEngineOptions:OO,Observable:LO,Observer:PO,Octree:SO,OctreeBlock:xO,OctreeSceneComponent:TO,OculusTouchController:zO,OimoJSPlugin:AO,OnAfterEnteringVRObservableEvent:DO,OneMinusBlock:RO,get Orientation(){return NO},OutlineRenderer:IO,PBRBaseMaterial:HO,PBRBaseSimpleMaterial:VO,PBRMaterial:Ec,PBRMaterialDefines:BO,PBRMetallicRoughnessBlock:UO,PBRMetallicRoughnessMaterial:gm,PBRSpecularGlossinessMaterial:jO,PanoramaToCubeMapTools:GO,Particle:FO,ParticleBlendMultiplyBlock:WO,ParticleHelper:KO,ParticleRampGradientBlock:YO,ParticleSystem:ZO,ParticleSystemSet:XO,ParticleTextureBlock:QO,ParticlesOptimization:$O,PassCubePostProcess:JO,PassPostProcess:wO,Path2:kO,Path3D:qO,PerfCounter:_O,PerformanceConfigurator:eL,PerformanceMonitor:tL,PerturbNormalBlock:nL,PhotoDome:rL,PhysicsEngine:aL,PhysicsEngineSceneComponent:oL,PhysicsHelper:iL,PhysicsImpostor:sL,PhysicsJoint:lL,PhysicsRadialExplosionEventOptions:cL,get PhysicsRadialImpulseFalloff(){return uL},PhysicsUpdraftEventOptions:fL,get PhysicsUpdraftMode(){return pL},PhysicsViewer:dL,PhysicsVortexEventOptions:mL,PickingInfo:hL,PivotTools:vL,Plane:CL,PlaneBuilder:gL,PlaneDragGizmo:bL,PlaneRotationGizmo:yL,PlayAnimationAction:EL,PlaySoundAction:ML,get PointColor(){return OL},PointLight:LL,PointParticleEmitter:PL,PointerDragBehavior:SL,PointerEventTypes:xL,PointerInfo:TL,PointerInfoBase:zL,PointerInfoPre:AL,get PointerInput(){return DL},PointsCloudSystem:RL,PointsGroup:NL,Polygon:IL,PolygonBuilder:HL,PolygonMeshBuilder:VL,PolyhedronBuilder:BL,PoseEnabledController:UL,PoseEnabledControllerHelper:jL,get PoseEnabledControllerType(){return GL},PositionGizmo:FL,PositionNormalTextureVertex:WL,PositionNormalVertex:KL,PostProcess:bm,PostProcessManager:YL,PostProcessRenderEffect:ZL,PostProcessRenderPipeline:XL,PostProcessRenderPipelineManager:QL,PostProcessRenderPipelineManagerSceneComponent:$L,PostProcessesOptimization:JL,PosterizeBlock:wL,PowBlock:kL,PowerEase:qL,PrePassRenderer:_L,PrePassRendererSceneComponent:eP,PrecisionDate:tP,PredicateCondition:nP,ProceduralTexture:ym,ProceduralTextureSceneComponent:rP,PromisePolyfill:aP,get PropertyTypeForEdition(){return oP},PushMaterial:iP,QuadraticEase:sP,QuadraticErrorSimplification:lP,QuarticEase:cP,Quaternion:wt,QuinticEase:uP,RGBDTextureTools:fP,RandomNumberBlock:pP,RawCubeTexture:dP,RawTexture:Em,RawTexture2DArray:mP,RawTexture3D:hP,Ray:vP,RayHelper:CP,ReadFileError:gP,RecastJSCrowd:bP,RecastJSPlugin:yP,ReciprocalBlock:EP,ReflectBlock:MP,ReflectionBlock:OP,ReflectionProbe:LP,ReflectionTextureBlock:PP,RefractBlock:SP,RefractionBlock:xP,RefractionPostProcess:TP,RefractionTexture:zP,RemapBlock:AP,RenderTargetTexture:DP,RenderTargetsOptimization:RP,RenderingGroup:NP,RenderingGroupInfo:IP,RenderingManager:HP,ReplaceColorBlock:VP,RequestFileError:BP,RetryStrategy:UP,RibbonBuilder:jP,RollingAverage:GP,Rotate2dBlock:FP,RotationGizmo:WP,RuntimeAnimation:KP,SSAO2RenderingPipeline:YP,SSAORenderingPipeline:ZP,Scalar:ss,ScaleBlock:XP,ScaleGizmo:QP,Scene:Mm,SceneComponentConstants:$P,SceneInstrumentation:JP,SceneLoader:wP,get SceneLoaderAnimationGroupLoadingMode(){return kP},SceneLoaderFlags:qP,SceneOptimization:_P,SceneOptimizer:eS,SceneOptimizerOptions:tS,SceneRecorder:nS,SceneSerializer:rS,ScreenSizeBlock:aS,ScreenSpaceCurvaturePostProcess:oS,ScreenSpaceReflectionPostProcess:iS,ScreenshotTools:sS,SerializationHelper:lS,SetParentAction:cS,SetStateAction:uS,SetValueAction:fS,ShaderCodeInliner:pS,ShaderMaterial:dS,ShadowDepthWrapper:mS,ShadowGenerator:hS,ShadowGeneratorSceneComponent:vS,ShadowLight:Om,ShadowsOptimization:CS,ShapeBuilder:gS,SharpenPostProcess:bS,SheenBlock:yS,SimplexPerlin3DBlock:ES,SimplicationQueueSceneComponent:MS,SimplificationQueue:OS,SimplificationSettings:LS,get SimplificationType(){return PS},SineEase:SS,SixDofDragBehavior:xS,Size:TS,Skeleton:zS,SkeletonViewer:AS,SmartArray:DS,SmartArrayNoDuplicate:RS,SmoothStepBlock:NS,SolidParticle:IS,SolidParticleSystem:HS,SolidParticleVertex:VS,Sound:BS,SoundTrack:US,get Space(){return jS},SphereBuilder:GS,SphereDirectedParticleEmitter:FS,SphereParticleEmitter:WS,SphericalHarmonics:KS,SphericalPolynomial:YS,SpotLight:ZS,Sprite:XS,SpriteManager:QS,SpriteMap:$S,SpritePackedManager:JS,SpriteSceneComponent:wS,Stage:kS,StandardMaterial:k9,StandardMaterialDefines:qS,StandardRenderingPipeline:_S,StateCondition:ex,StencilState:tx,StepBlock:nx,StereoscopicArcRotateCamera:rx,StereoscopicFreeCamera:ax,StereoscopicGamepadCamera:ox,StereoscopicInterlacePostProcess:ix,StereoscopicInterlacePostProcessI:sx,StereoscopicUniversalCamera:lx,StickValues:cx,StopAnimationAction:ux,StopSoundAction:fx,StringDictionary:px,StringTools:dx,SubEmitter:mx,get SubEmitterType(){return hx},SubMesh:vx,SubSurfaceBlock:Cx,SubSurfaceSceneComponent:gx,SubtractBlock:bx,SwitchBooleanAction:yx,get SwitchInput(){return Ex},TGATools:Mx,Tags:Ox,TargetCamera:Lx,TargetedAnimation:Px,TextFileAssetTask:Sx,Texture:hn,TextureAssetTask:xx,TextureBlock:Tx,TextureOptimization:zx,TexturePacker:Ax,TexturePackerFrame:Dx,TextureTools:Mp,ThinEngine:Rx,ThinMaterialHelper:Nx,TiledBoxBuilder:Ix,TiledPlaneBuilder:Hx,get TimerState(){return Vx},TmpColors:Bx,TmpVectors:T4,ToGammaSpace:Ux,ToLinearSpace:jx,TonemapPostProcess:Gx,get TonemappingOperator(){return Fx},Tools:ut,TorusBuilder:Wx,TorusKnotBuilder:Kx,TouchCamera:Yx,TrailMesh:Zx,Trajectory:Xx,TrajectoryClassifier:Qx,TransformBlock:$x,TransformNode:Xo,TrigonometryBlock:Jx,get TrigonometryBlockOperations(){return wx},TubeBuilder:kx,UniformBuffer:qx,UniversalCamera:_x,UtilityLayerRenderer:eT,VRCameraMetrics:tT,VRDeviceOrientationArcRotateCamera:nT,VRDeviceOrientationFreeCamera:rT,VRDeviceOrientationGamepadCamera:aT,VRDistortionCorrectionPostProcess:oT,VRExperienceHelper:iT,VRMultiviewToSingleviewPostProcess:sT,ValueCondition:lT,Vector2:pr,Vector3:Ct,Vector4:i1,VectorMergerBlock:cT,VectorSplitterBlock:uT,VertexBuffer:$e,VertexData:fT,VertexOutputBlock:pT,VideoDome:dT,VideoRecorder:mT,VideoTexture:hT,ViewDirectionBlock:vT,Viewport:Lm,VirtualJoystick:CT,VirtualJoysticksCamera:gT,ViveController:bT,VolumetricLightScatteringPostProcess:yT,WaveBlock:ET,get WaveBlockKind(){return MT},WebGL2ShaderProcessor:OT,WebGLDataBuffer:LT,WebGLPipelineContext:PT,WebRequest:ST,WebVRController:xT,WebVRFreeCamera:TT,WebXRAbstractFeature:zT,WebXRAbstractMotionController:AT,WebXRAnchorSystem:DT,WebXRBackgroundRemover:RT,WebXRCamera:NT,WebXRControllerComponent:IT,WebXRControllerPhysics:HT,WebXRControllerPointerSelection:VT,WebXRDefaultExperience:BT,WebXRDefaultExperienceOptions:UT,WebXREnterExitUI:jT,WebXREnterExitUIButton:GT,WebXREnterExitUIOptions:FT,WebXRExperienceHelper:WT,WebXRFeatureName:KT,WebXRFeaturePointSystem:YT,WebXRFeaturesManager:ZT,WebXRGenericTriggerMotionController:XT,WebXRHTCViveMotionController:QT,WebXRHand:$T,WebXRHandTracking:JT,WebXRHitTest:wT,WebXRHitTestLegacy:kT,WebXRInput:qT,WebXRInputSource:_T,WebXRManagedOutputCanvas:ez,WebXRManagedOutputCanvasOptions:tz,WebXRMicrosoftMixedRealityController:nz,WebXRMotionControllerManager:rz,WebXRMotionControllerTeleportation:az,WebXROculusTouchMotionController:oz,WebXRPlaneDetector:iz,WebXRProfiledMotionController:sz,WebXRSessionManager:lz,get WebXRState(){return cz},get WebXRTrackingState(){return uz},WeightedSound:fz,WindowsMotionController:pz,WorkerPool:dz,WorleyNoise3DBlock:mz,XRWindowsMotionController:hz,get Xbox360Button(){return vz},get Xbox360Dpad(){return Cz},Xbox360Pad:gz,get XboxInput(){return bz},_BabylonLoaderRegistered:yz,_BasisTextureLoader:Ez,_CreationDataStorage:Mz,_DDSTextureLoader:Oz,_ENVTextureLoader:Lz,_IAnimationState:Pz,_InstancesBatch:Sz,_KTXTextureLoader:xz,_MeshCollisionData:Tz,_OcclusionDataStorage:zz,_TGATextureLoader:Az,_TimeToken:Dz,_TypeStore:Rz,_forceSceneHelpersToBundle:Nz,_forceTransformFeedbackToBundle:Iz,className:Hz,editableInPropertyPage:Vz,expandToProperty:Bz,extractMinAndMax:Uz,extractMinAndMaxIndexed:jz,serialize:Gz,serializeAsCameraReference:Fz,serializeAsColor3:Wz,serializeAsColor4:Kz,serializeAsColorCurves:Yz,serializeAsFresnelParameters:Zz,serializeAsImageProcessingConfiguration:Xz,serializeAsMatrix:Qz,serializeAsMeshReference:$z,serializeAsQuaternion:Jz,serializeAsTexture:wz,serializeAsVector2:kz,serializeAsVector3:qz,setAndStartTimer:_z},Symbol.toStringTag,{value:"Module"})),yR=Object.freeze(Object.defineProperty({__proto__:null,AbstractButton3D:eA,AdvancedDynamicTexture:tA,AdvancedDynamicTextureInstrumentation:nA,BaseSlider:rA,Button:aA,Button3D:oA,Checkbox:iA,CheckboxGroup:sA,ColorPicker:lA,Container:cA,Container3D:uA,Control:fA,Control3D:pA,CylinderPanel:dA,DisplayGrid:mA,Ellipse:hA,FluentMaterial:vA,FluentMaterialDefines:CA,GUI3DManager:gA,Grid:bA,HolographicButton:yA,Image:EA,ImageBasedSlider:MA,ImageScrollBar:OA,InputPassword:LA,InputText:PA,KeyPropertySet:SA,Line:xA,Matrix2D:TA,Measure:zA,MeshButton3D:AA,MultiLine:DA,MultiLinePoint:RA,PlanePanel:NA,RadioButton:IA,RadioGroup:HA,Rectangle:VA,ScatterPanel:BA,ScrollBar:UA,ScrollViewer:jA,SelectionPanel:GA,SelectorGroup:FA,Slider:WA,SliderGroup:KA,SpherePanel:YA,StackPanel:ZA,StackPanel3D:XA,Style:QA,TextBlock:$A,TextWrapper:JA,get TextWrapping(){return wA},ValueAndUnit:kA,Vector2WithInfo:qA,Vector3WithInfo:_A,VirtualKeyboard:eD,VolumeBasedPanel:tD,XmlLoader:nD,name:rD},Symbol.toStringTag,{value:"Module"})),ER=Object.freeze(Object.defineProperty({__proto__:null,get EBlendingFunction(){return aD},get EComponentType(){return oD},get ECullingType(){return iD},get EParameterType(){return sD},get EShaderType(){return lD},get ETextureFilterType(){return cD},get ETextureFormat(){return uD},get ETextureWrapMode(){return fD},GLTFBinaryExtension:pD,GLTFLoader:dD,GLTFLoaderBase:mD,GLTFLoaderExtension:hD,GLTFMaterialsCommonExtension:vD,GLTFUtils:CD},Symbol.toStringTag,{value:"Module"})),MR=Object.freeze(Object.defineProperty({__proto__:null,ArrayItem:gD,EXT_lights_image_based:bD,EXT_mesh_gpu_instancing:yD,EXT_texture_webp:ED,ExtrasAsMetadata:MD,GLTFLoader:OD,KHR_draco_mesh_compression:LD,KHR_lights:PD,KHR_materials_clearcoat:SD,KHR_materials_ior:xD,KHR_materials_pbrSpecularGlossiness:TD,KHR_materials_sheen:zD,KHR_materials_specular:AD,KHR_materials_translucency:DD,KHR_materials_transmission:RD,KHR_materials_unlit:ND,KHR_materials_variants:ID,KHR_mesh_quantization:HD,KHR_texture_basisu:VD,KHR_texture_transform:BD,MSFT_audio_emitter:UD,MSFT_lod:jD,MSFT_minecraftMesh:GD,MSFT_sRGBFactors:FD},Symbol.toStringTag,{value:"Module"})),OR=Object.freeze(Object.defineProperty({__proto__:null,GLTF1:ER,GLTF2:MR,GLTFFileLoader:WD,get GLTFLoaderAnimationStartMode(){return KD},get GLTFLoaderCoordinateSystemMode(){return YD},get GLTFLoaderState(){return ZD},GLTFValidation:XD,MTLFileLoader:QD,OBJFileLoader:$D,STLFileLoader:JD},Symbol.toStringTag,{value:"Module"})),LR=Object.freeze(Object.defineProperty({__proto__:null,CellMaterial:wD,CustomMaterial:kD,CustomShaderStructure:qD,FireMaterial:_D,FurMaterial:eR,GradientMaterial:tR,GridMaterial:nR,LavaMaterial:rR,MixMaterial:aR,NormalMaterial:oR,PBRCustomMaterial:iR,ShaderAlebdoParts:sR,ShaderSpecialParts:lR,ShadowOnlyMaterial:cR,SimpleMaterial:uR,SkyMaterial:fR,TerrainMaterial:pR,TriPlanarMaterial:dR,WaterMaterial:mR},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-B-dFu7TC.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-DKM5kSAv.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
- `);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=hR(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;
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;
5
5
  uniform sampler2D textureSampler;
6
6
  uniform mat4 textureTransformMat;
@@ -2557,4 +2557,4 @@ void main(void)
2557
2557
  #ifdef NEGATIVEZ
2558
2558
  gl_FragColor=textureCube(textureSampler,vec3(uv,-1.001),lod);
2559
2559
  #endif
2560
- }`;y.Effect.ShadersStore[r]=f;var d={name:r,shader:f}},"./textureHelper.ts":function(A,a,t){t.r(a),t.d(a,"TextureHelper",function(){return r});var y=t("@babylonjs/core/Misc/observable");t("./lod.ts"),t("./lodCube.ts");var r=function(){function f(){}return f._ProcessAsync=function(d,g,c,l,i,u,v,h,C){var p=this,b=d.getScene(),E=b.getEngine(),P;if(!d.isCube)P=new y.PostProcess("lod","lod",["lod"],null,1,null,y.Texture.NEAREST_NEAREST_MIPNEAREST,E);else{var I=["#define POSITIVEX","#define NEGATIVEX","#define POSITIVEY","#define NEGATIVEY","#define POSITIVEZ","#define NEGATIVEZ"];P=new y.PostProcess("lodCube","lodCube",["lod"],null,1,null,y.Texture.NEAREST_NEAREST_MIPNEAREST,E,!1,I[l])}if(!P.getEffect().isReady()){P.dispose(),setTimeout(function(){p._ProcessAsync(d,g,c,l,i,u,v,h,C)},250);return}v&&(v.blockMutationUpdates=!0);var S=new y.RenderTargetTexture("temp",{width:g,height:c},b,!1);P.onApply=function(he){he.setTexture("textureSampler",d),he.setFloat("lod",u)};var D=S.getInternalTexture();if(D){var R=D.samplingMode;d.updateSamplingMode(y.Texture.NEAREST_NEAREST_MIPNEAREST),b.postProcessManager.directRender([P],D),d.updateSamplingMode(R);var H=g*4,L=c/2,T=E.readPixels(0,0,g,c);if(!i.R||!i.G||!i.B||!i.A)for(var x=0;x<g*c*4;x+=4){if(i.A&&!i.R&&!i.G&&!i.B){T[x]=T[x+3],T[x+1]=T[x+3],T[x+2]=T[x+3],T[x+3]=255;continue}var J=T[x],X=T[x+1],$=T[x+2],G=T[x+3];i.A||(G=255),i.R||(i.G&&!i.B?J=X:i.B&&!i.G?J=$:J=0),i.G||(i.R&&!i.B?X=J:i.B&&!i.R?X=$:X=0),i.B||(i.R&&!i.G?$=J:i.G&&!i.R?$=X:$=0),T[x]=J,T[x+1]=X,T[x+2]=$,T[x+3]=G}if(d.invertY||d.isCube)for(var x=0;x<L;x++)for(var Y=0;Y<H;Y++){var _=Y+x*H,F=c-x-1,ne=Y+F*H,pe=T[_];T[_]=T[ne],T[ne]=pe}h(T),E.unBindFramebuffer(D)}else C();S.dispose(),P.dispose(),v&&(v.blockMutationUpdates=!1)},f.GetTextureDataAsync=function(d,g,c,l,i,u,v){var h=this;return v===void 0&&(v=0),new Promise(function(C,p){if(!d.isReady()&&d._texture){d._texture.onLoadedObservable.addOnce(function(){h._ProcessAsync(d,g,c,l,i,v,u||null,C,p)});return}h._ProcessAsync(d,g,c,l,i,v,u||null,C,p)})},f}()},"./tools.ts":function(A,a,t){t.r(a),t.d(a,"Tools",function(){return y});var y=function(){function r(){}return r.LookForItem=function(f,d){if(f===d)return!0;var g=f.getChildren?f.getChildren():f.children;if(g&&f.getClassName()!=="MultiMaterial")for(var c=0,l=g;c<l.length;c++){var i=l[c];if(r.LookForItem(i,d))return!0}return!1},r._RecursiveRemoveHiddenMeshesAndHoistChildren=function(f){for(var d=[],g=0,c=f;g<c.length;g++){var l=c[g];l.reservedDataStore&&l.reservedDataStore.hidden&&l.getChildMeshes?r._RecursiveRemoveHiddenMeshesAndHoistChildren(l.getChildMeshes()).forEach(function(i){d.push(i)}):(!l.reservedDataStore||!l.reservedDataStore.hidden)&&d.push(l)}return d},r.SortAndFilter=function(f,d){if(!d)return[];var g=r._RecursiveRemoveHiddenMeshesAndHoistChildren(d);return f&&f.reservedDataStore&&f.reservedDataStore.detachedChildren&&g.push.apply(g,f.reservedDataStore.detachedChildren),g.sort(function(c,l){var i=(c.name||"").toLowerCase(),u=(l.name||"").toLowerCase();return i===u?0:i>u?1:-1})},r}()},"@babylonjs/core/Misc/observable":function(A,a){A.exports=N},"@babylonjs/gui/2D/controls/image":function(A,a){A.exports=V},"@babylonjs/loaders/glTF/index":function(A,a){A.exports=W},"@babylonjs/materials/grid/gridMaterial":function(A,a){A.exports=j},"@babylonjs/serializers/glTF/2.0/index":function(A,a){A.exports=q}})})}(J9)),J9.exports}var Dm=jR();const GR=vR(Dm),WR=CR({__proto__:null,default:GR},[Dm]);export{WR as b};
2560
+ }`;y.Effect.ShadersStore[r]=f;var d={name:r,shader:f}},"./textureHelper.ts":function(A,a,t){t.r(a),t.d(a,"TextureHelper",function(){return r});var y=t("@babylonjs/core/Misc/observable");t("./lod.ts"),t("./lodCube.ts");var r=function(){function f(){}return f._ProcessAsync=function(d,g,c,l,i,u,v,h,C){var p=this,b=d.getScene(),E=b.getEngine(),P;if(!d.isCube)P=new y.PostProcess("lod","lod",["lod"],null,1,null,y.Texture.NEAREST_NEAREST_MIPNEAREST,E);else{var I=["#define POSITIVEX","#define NEGATIVEX","#define POSITIVEY","#define NEGATIVEY","#define POSITIVEZ","#define NEGATIVEZ"];P=new y.PostProcess("lodCube","lodCube",["lod"],null,1,null,y.Texture.NEAREST_NEAREST_MIPNEAREST,E,!1,I[l])}if(!P.getEffect().isReady()){P.dispose(),setTimeout(function(){p._ProcessAsync(d,g,c,l,i,u,v,h,C)},250);return}v&&(v.blockMutationUpdates=!0);var S=new y.RenderTargetTexture("temp",{width:g,height:c},b,!1);P.onApply=function(he){he.setTexture("textureSampler",d),he.setFloat("lod",u)};var D=S.getInternalTexture();if(D){var R=D.samplingMode;d.updateSamplingMode(y.Texture.NEAREST_NEAREST_MIPNEAREST),b.postProcessManager.directRender([P],D),d.updateSamplingMode(R);var H=g*4,L=c/2,T=E.readPixels(0,0,g,c);if(!i.R||!i.G||!i.B||!i.A)for(var x=0;x<g*c*4;x+=4){if(i.A&&!i.R&&!i.G&&!i.B){T[x]=T[x+3],T[x+1]=T[x+3],T[x+2]=T[x+3],T[x+3]=255;continue}var J=T[x],X=T[x+1],$=T[x+2],G=T[x+3];i.A||(G=255),i.R||(i.G&&!i.B?J=X:i.B&&!i.G?J=$:J=0),i.G||(i.R&&!i.B?X=J:i.B&&!i.R?X=$:X=0),i.B||(i.R&&!i.G?$=J:i.G&&!i.R?$=X:$=0),T[x]=J,T[x+1]=X,T[x+2]=$,T[x+3]=G}if(d.invertY||d.isCube)for(var x=0;x<L;x++)for(var Y=0;Y<H;Y++){var _=Y+x*H,F=c-x-1,ne=Y+F*H,pe=T[_];T[_]=T[ne],T[ne]=pe}h(T),E.unBindFramebuffer(D)}else C();S.dispose(),P.dispose(),v&&(v.blockMutationUpdates=!1)},f.GetTextureDataAsync=function(d,g,c,l,i,u,v){var h=this;return v===void 0&&(v=0),new Promise(function(C,p){if(!d.isReady()&&d._texture){d._texture.onLoadedObservable.addOnce(function(){h._ProcessAsync(d,g,c,l,i,v,u||null,C,p)});return}h._ProcessAsync(d,g,c,l,i,v,u||null,C,p)})},f}()},"./tools.ts":function(A,a,t){t.r(a),t.d(a,"Tools",function(){return y});var y=function(){function r(){}return r.LookForItem=function(f,d){if(f===d)return!0;var g=f.getChildren?f.getChildren():f.children;if(g&&f.getClassName()!=="MultiMaterial")for(var c=0,l=g;c<l.length;c++){var i=l[c];if(r.LookForItem(i,d))return!0}return!1},r._RecursiveRemoveHiddenMeshesAndHoistChildren=function(f){for(var d=[],g=0,c=f;g<c.length;g++){var l=c[g];l.reservedDataStore&&l.reservedDataStore.hidden&&l.getChildMeshes?r._RecursiveRemoveHiddenMeshesAndHoistChildren(l.getChildMeshes()).forEach(function(i){d.push(i)}):(!l.reservedDataStore||!l.reservedDataStore.hidden)&&d.push(l)}return d},r.SortAndFilter=function(f,d){if(!d)return[];var g=r._RecursiveRemoveHiddenMeshesAndHoistChildren(d);return f&&f.reservedDataStore&&f.reservedDataStore.detachedChildren&&g.push.apply(g,f.reservedDataStore.detachedChildren),g.sort(function(c,l){var i=(c.name||"").toLowerCase(),u=(l.name||"").toLowerCase();return i===u?0:i>u?1:-1})},r}()},"@babylonjs/core/Misc/observable":function(A,a){A.exports=N},"@babylonjs/gui/2D/controls/image":function(A,a){A.exports=V},"@babylonjs/loaders/glTF/index":function(A,a){A.exports=W},"@babylonjs/materials/grid/gridMaterial":function(A,a){A.exports=j},"@babylonjs/serializers/glTF/2.0/index":function(A,a){A.exports=q}})})}(J9)),J9.exports}var Dm=jR();const GR=fC(Dm),KR=CR({__proto__:null,default:GR},[Dm]);export{KR as b};