UNPKG

three-stdlib

Version:

stand-alone library of threejs examples

42 lines (41 loc) 1.14 kB
import { Mesh, AnimationMixer, AnimationClip } from "three"; class MorphAnimMesh extends Mesh { constructor(geometry, material) { super(geometry, material); this.type = "MorphAnimMesh"; this.mixer = new AnimationMixer(this); this.activeAction = null; } setDirectionForward() { this.mixer.timeScale = 1; } setDirectionBackward() { this.mixer.timeScale = -1; } playAnimation(label, fps) { if (this.activeAction) { this.activeAction.stop(); this.activeAction = null; } const clip = AnimationClip.findByName(this, label); if (clip) { const action = this.mixer.clipAction(clip); action.timeScale = clip.tracks.length * fps / clip.duration; this.activeAction = action.play(); } else { throw new Error("THREE.MorphAnimMesh: animations[" + label + "] undefined in .playAnimation()"); } } updateAnimation(delta) { this.mixer.update(delta); } copy(source, recursive) { super.copy(source, recursive); this.mixer = new AnimationMixer(this); return this; } } export { MorphAnimMesh }; //# sourceMappingURL=MorphAnimMesh.js.map