starry / backend /libs /three /loaders /AnimationLoader.js
k-l-lambda's picture
feat: add Python ML services (CPU mode) with model download
2b7aae2
import { AnimationClip } from '../animation/AnimationClip.js';
import { FileLoader } from './FileLoader.js';
import { Loader } from './Loader.js';
class AnimationLoader extends Loader {
constructor(manager) {
super(manager);
}
load(url, onLoad, onProgress, onError) {
const scope = this;
const loader = new FileLoader(this.manager);
loader.setPath(this.path);
loader.setRequestHeader(this.requestHeader);
loader.setWithCredentials(this.withCredentials);
loader.load(
url,
function (text) {
try {
onLoad(scope.parse(JSON.parse(text)));
} catch (e) {
if (onError) {
onError(e);
} else {
console.error(e);
}
scope.manager.itemError(url);
}
},
onProgress,
onError
);
}
parse(json) {
const animations = [];
for (let i = 0; i < json.length; i++) {
const clip = AnimationClip.parse(json[i]);
animations.push(clip);
}
return animations;
}
}
export { AnimationLoader };