UNPKG

@babylonjs/viewer

Version:

The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.

3 lines (2 loc) 1.47 kB
import{T as e,j as t,ak as n}from"./index-DFZFpUG-.esm.min.js";let o=null;async function s(){const e=await(o||(o=new Promise((e,t)=>{const n=globalThis.MeshoptDecoder;if(n)return void e(n);const o=document.createElement("script");o.src="/meshopt_decoder.js",o.onload=()=>{const n=globalThis.MeshoptDecoder;n?e(n):t(new Error("meshopt_decoder.js loaded but MeshoptDecoder is undefined"))},o.onerror=()=>t(new Error("Failed to load meshopt_decoder.js from "+o.src)),document.head.appendChild(o)}),o));return await e.ready,e}function r(e){return e+3&-4}const f={id:"EXT_meshopt_compression",async preParse(o,f){const c=o.bufferViews??[],d=await s(),i=new Array(c.length),l=new Array(c.length);let a=0;for(let n=0;n<c.length;n++){const o=c[n],s=o.extensions?.EXT_meshopt_compression;let b;if(s){0!==(s.buffer??0)&&e(86,s.buffer);const n=new t(f.buffer,f.byteOffset+(s.byteOffset??0),s.byteLength),o=new t(s.count*s.byteStride);d.decodeGltfBuffer(o,s.count,s.byteStride,n,s.mode,s.filter??"NONE"),b=o}else 0!==(o.buffer??0)&&e(87,o.buffer),b=new t(f.buffer.slice(f.byteOffset+(o.byteOffset??0),f.byteOffset+(o.byteOffset??0)+o.byteLength));i[n]=b,l[n]=a,a=r(a+b.length)}const b=new t(a);for(let e=0;e<c.length;e++){const t=c[e];b.set(i[e],l[e]),t.buffer=0,t.byteOffset=l[e],t.byteLength=i[e].length,t.extensions&&delete t.extensions.EXT_meshopt_compression}return new n(b.buffer)}};export{f as default}; //# sourceMappingURL=gltf-feature-meshopt-BjUz280R.esm.min.js.map