@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.
37 lines (34 loc) • 1.28 kB
JavaScript
import { T as ThrowLiteError } from './index-By0tcgYN.esm.js';
async function parseGltfJsonAsset(buffer, baseUrl) {
const json = JSON.parse(new TextDecoder().decode(buffer));
const buffers = json.buffers ?? [];
let binChunk;
if (buffers.length > 1) {
const multiBuffer = await import('./gltf-multi-buffer-5Wl9SblW.esm.js');
binChunk = await multiBuffer.loadMultiBuffer(json, baseUrl);
} else if (buffers[0]?.uri) {
binChunk = new DataView(await fetch(resolveBufferUri(buffers[0].uri, baseUrl)).then((r) => r.arrayBuffer()));
} else {
binChunk = new DataView(new ArrayBuffer(0));
}
return { json, binChunk, baseUrl };
}
async function resolveExternalImage(uri, baseUrl) {
const response = await fetch(new URL(uri, baseUrl + "x"));
if (!response.ok) {
ThrowLiteError(96, response.status, response.statusText);
}
return createImageBitmap(await response.blob(), { premultiplyAlpha: "none", colorSpaceConversion: "none" });
}
function resolveBufferUri(uri, baseUrl) {
if (baseUrl) {
return new URL(uri, baseUrl + "x").href;
}
try {
return new URL(uri).href;
} catch {
ThrowLiteError(97);
}
}
export { parseGltfJsonAsset, resolveBufferUri, resolveExternalImage };
//# sourceMappingURL=gltf-json-asset-Bm6pwOaU.esm.js.map