UNPKG

playcanvas

Version:

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

35 lines (34 loc) 1.07 kB
import { Http } from "../../platform/net/http.js"; import { AnimEvents } from "../anim/evaluator/anim-events.js"; import { GlbParser } from "./glb-parser.js"; class GlbAnimationParser { canParse(context) { return context.ext === "glb"; } load(url, callback, asset) { const original = typeof url === "string" ? url : url.original; this.handler.fetch(url, Http.ResponseType.ARRAY_BUFFER, (err, response) => { if (err) { callback(`Error loading animation resource: ${original} [${err}]`); } else { GlbParser.parse("filename.glb", "", response, this.handler.device, this.handler.assets, asset?.options ?? {}, (err2, parseResult) => { if (err2) { callback(err2); } else { const animations = parseResult.animations; if (asset?.data?.events) { for (let i = 0; i < animations.length; i++) { animations[i].events = new AnimEvents(Object.values(asset.data.events)); } } parseResult.destroy(); callback(null, animations); } }); } }, asset); } } export { GlbAnimationParser };