playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
48 lines (47 loc) • 1.17 kB
JavaScript
import { Http } from "../../platform/net/http.js";
import { AnimCurve } from "../anim/evaluator/anim-curve.js";
import { AnimData } from "../anim/evaluator/anim-data.js";
import { AnimTrack } from "../anim/evaluator/anim-track.js";
class AnimClipParser {
canParse() {
return true;
}
load(url, callback, asset) {
const original = typeof url === "string" ? url : url.original;
this.handler.fetch(url, Http.ResponseType.JSON, (err, response) => {
if (err) {
callback(`Error loading animation clip resource: ${original} [${err}]`);
} else {
callback(null, response);
}
}, asset);
}
open(url, data) {
const name = data.name;
const duration = data.duration;
const inputs = data.inputs.map((input) => {
return new AnimData(1, input);
});
const outputs = data.outputs.map((output) => {
return new AnimData(output.components, output.data);
});
const curves = data.curves.map((curve) => {
return new AnimCurve(
[curve.path],
curve.inputIndex,
curve.outputIndex,
curve.interpolation
);
});
return new AnimTrack(
name,
duration,
inputs,
outputs,
curves
);
}
}
export {
AnimClipParser
};