UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

47 lines (46 loc) 1.17 kB
import { path } from "../../core/path.js"; import { Asset } from "../../framework/asset/asset.js"; import { GlbParser } from "./glb-parser.js"; import { GlbContainerResource } from "./glb-container-resource.js"; class GlbContainerParser { constructor(device, assets, maxRetries) { this._device = device; this._assets = assets; this._defaultMaterial = GlbParser.createDefaultMaterial(); this.maxRetries = maxRetries; } _getUrlWithoutParams(url) { return url.indexOf("?") >= 0 ? url.split("?")[0] : url; } load(url, callback, asset) { Asset.fetchArrayBuffer(url.load, (err, result) => { if (err) { callback(err); } else { GlbParser.parse( this._getUrlWithoutParams(url.original), path.extractPath(url.load), result, this._device, asset.registry, asset.options, (err2, result2) => { if (err2) { callback(err2); } else { callback(null, new GlbContainerResource(result2, asset, this._assets, this._defaultMaterial)); } } ); } }, asset, this.maxRetries); } open(url, data, asset) { return data; } patch(asset, assets) { } } export { GlbContainerParser };