| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | ( function () {	class MorphAnimMesh extends THREE.Mesh {		constructor( geometry, material ) {			super( geometry, material );			this.type = 'MorphAnimMesh';			this.mixer = new THREE.AnimationMixer( this );			this.activeAction = null;		}		setDirectionForward() {			this.mixer.timeScale = 1.0;		}		setDirectionBackward() {			this.mixer.timeScale = - 1.0;		}		playAnimation( label, fps ) {			if ( this.activeAction ) {				this.activeAction.stop();				this.activeAction = null;			}			const clip = THREE.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 ) {			super.copy( source );			this.mixer = new THREE.AnimationMixer( this );			return this;		}	}	THREE.MorphAnimMesh = MorphAnimMesh;} )();
 |