webvr js meetup initial commit
This commit is contained in:
73
node_modules/three/examples/js/MorphAnimation.js
generated
vendored
Normal file
73
node_modules/three/examples/js/MorphAnimation.js
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* @author mrdoob / http://mrdoob.com
|
||||
* @author willy-vvu / http://willy-vvu.github.io
|
||||
*/
|
||||
|
||||
THREE.MorphAnimation = function ( mesh ) {
|
||||
|
||||
this.mesh = mesh;
|
||||
this.frames = mesh.morphTargetInfluences.length;
|
||||
this.currentTime = 0;
|
||||
this.duration = 1000;
|
||||
this.loop = true;
|
||||
this.lastFrame = 0;
|
||||
this.currentFrame = 0;
|
||||
|
||||
this.isPlaying = false;
|
||||
|
||||
};
|
||||
|
||||
THREE.MorphAnimation.prototype = {
|
||||
|
||||
constructor: THREE.MorphAnimation,
|
||||
|
||||
play: function () {
|
||||
|
||||
this.isPlaying = true;
|
||||
|
||||
},
|
||||
|
||||
pause: function () {
|
||||
|
||||
this.isPlaying = false;
|
||||
|
||||
},
|
||||
|
||||
update: function ( delta ) {
|
||||
|
||||
if ( this.isPlaying === false ) return;
|
||||
|
||||
this.currentTime += delta;
|
||||
|
||||
if ( this.loop === true && this.currentTime > this.duration ) {
|
||||
|
||||
this.currentTime %= this.duration;
|
||||
|
||||
}
|
||||
|
||||
this.currentTime = Math.min( this.currentTime, this.duration );
|
||||
|
||||
var frameTime = this.duration / this.frames;
|
||||
var frame = Math.floor( this.currentTime / frameTime );
|
||||
|
||||
var influences = this.mesh.morphTargetInfluences;
|
||||
|
||||
if ( frame !== this.currentFrame ) {
|
||||
|
||||
influences[ this.lastFrame ] = 0;
|
||||
influences[ this.currentFrame ] = 1;
|
||||
influences[ frame ] = 0;
|
||||
|
||||
this.lastFrame = this.currentFrame;
|
||||
this.currentFrame = frame;
|
||||
|
||||
}
|
||||
|
||||
var mix = ( this.currentTime % frameTime ) / frameTime;
|
||||
|
||||
influences[ frame ] = mix;
|
||||
influences[ this.lastFrame ] = 1 - mix;
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user