Browse Source

allow for tracks to parse themselves via static memebers.

Ben Houston 10 years ago
parent
commit
fe6b0b36ab

+ 7 - 0
src/animation/tracks/BooleanKeyframeTrack.js

@@ -38,3 +38,10 @@ THREE.BooleanKeyframeTrack.prototype.compareValues = function( value0, value1 )
 	return ( value0 === value1 );
 
 };
+
+THREE.BooleanKeyframeTrack.parse = function( name, jsonKeys ) {
+
+	return new THREE.BooleanKeyframeTrack( name, jsonKeys );
+
+};
+ 

+ 18 - 0
src/animation/tracks/ColorKeyframeTrack.js

@@ -38,3 +38,21 @@ THREE.ColorKeyframeTrack.prototype.compareValues = function( value0, value1 ) {
 	return value0.equals( value1 );
 
 };
+
+THREE.ColorKeyframeTrack.parse = function( name, jsonKeys ) {
+
+	var keys = [];
+
+	for( var i = 0; i < jsonKeys.length; i ++ ) {
+		var jsonKey = jsonKeys[i];
+		var key = {
+			value: new THREE.Color().fromArray( jsonKey.value ),
+			time: jsonKey.time
+		};
+		keys.push( key );
+	}
+
+	return new THREE.ColorKeyframeTrack( name, keys );
+
+};
+ 

+ 7 - 0
src/animation/tracks/NumberKeyframeTrack.js

@@ -38,3 +38,10 @@ THREE.NumberKeyframeTrack.prototype.compareValues = function( value0, value1 ) {
 	return ( value0 === value1 );
 
 };
+
+THREE.NumberKeyframeTrack.parse = function( name, jsonKeys ) {
+
+	return new THREE.NumberKeyframeTrack( name, jsonKeys );
+
+};
+ 

+ 19 - 1
src/animation/tracks/QuaternionKeyframeTrack.js

@@ -37,4 +37,22 @@ THREE.QuaternionKeyframeTrack.prototype.compareValues = function( value0, value1
 
 	return value0.equals( value1 );
 
-};
+};
+
+THREE.QuaternionKeyframeTrack.parse = function( name, jsonKeys ) {
+
+	var keys = [];
+
+	for( var i = 0; i < jsonKeys.length; i ++ ) {
+		var jsonKey = jsonKeys[i];
+		var key = {
+			value: new THREE.Quaternion().fromArray( jsonKey.value ),
+			time: jsonKey.time
+		};
+		keys.push( key );
+	}
+
+	return new THREE.QuaternionKeyframeTrack( name, keys );
+
+};
+ 

+ 7 - 0
src/animation/tracks/StringKeyframeTrack.js

@@ -38,3 +38,10 @@ THREE.StringKeyframeTrack.prototype.compareValues = function( value0, value1 ) {
 	return ( value0 === value1 );
 
 };
+
+THREE.StringKeyframeTrack.parse = function( name, jsonKeys ) {
+
+	return new THREE.StringKeyframeTrack( name, jsonKeys );
+
+};
+ 

+ 21 - 0
src/animation/tracks/VectorKeyframeTrack.js

@@ -38,3 +38,24 @@ THREE.VectorKeyframeTrack.prototype.compareValues = function( value0, value1 ) {
 	return value0.equals( value1 );
 
 };
+
+THREE.VectorKeyframeTrack.parse = function( name, jsonKeys ) {
+
+	var elementCount = jsonKeys[0].value.length;
+	var valueType = THREE[ 'Vector' + elementCount ];
+
+	var keys = [];
+
+	for( var i = 0; i < jsonKeys.length; i ++ ) {
+		var jsonKey = jsonKeys[i];
+		var key = {
+			value: new valueType().fromArray( jsonKey.value ),
+			time: jsonKey.time
+		};
+		keys.push( key );
+	}
+
+	return new THREE.VectorKeyframeTrack( name, keys );
+
+};
+