Răsfoiți Sursa

CmdSetMaterial: Simplified .toJSON()

Daniel 9 ani în urmă
părinte
comite
257b59650d
1 a modificat fișierele cu 4 adăugiri și 48 ștergeri
  1. 4 48
      editor/js/CmdSetMaterial.js

+ 4 - 48
editor/js/CmdSetMaterial.js

@@ -43,55 +43,11 @@ CmdSetMaterial.prototype = {
 		var output = Cmd.prototype.toJSON.call( this );
 
 		output.objectUuid = this.object.uuid;
-		output.oldMaterial = serializeMaterial( this.oldMaterial );
-		output.newMaterial = serializeMaterial( this.newMaterial );
+		output.oldMaterial = this.oldMaterial.toJSON();
+		output.newMaterial = this.newMaterial.toJSON();
 
 		return output;
 
-
-		function serializeMaterial ( material ) {
-
-			if ( material === undefined ) return null;
-
-			var meta = {
-				geometries: {},
-				materials: {},
-				textures: {},
-				images: {}
-			};
-
-			var json = {};
-			json.materials = [ material.toJSON( meta ) ];
-
-			var textures = extractFromCache( meta.textures );
-			var images = extractFromCache( meta.images );
-
-			if ( textures.length > 0 ) json.textures = textures;
-			if ( images.length > 0 ) json.images = images;
-
-			return json;
-
-		}
-
-		// Note: The function 'extractFromCache' is copied from Object3D.toJSON()
-
-		// extract data from the cache hash
-		// remove metadata on each item
-		// and return as array
-		function extractFromCache ( cache ) {
-
-			var values = [];
-			for ( var key in cache ) {
-
-				var data = cache[ key ];
-				delete data.metadata;
-				values.push( data );
-
-			}
-			return values;
-
-		}
-
 	},
 
 	fromJSON: function ( json ) {
@@ -108,8 +64,8 @@ CmdSetMaterial.prototype = {
 			var loader = new THREE.ObjectLoader();
 			var images = loader.parseImages( json.images );
 			var textures  = loader.parseTextures( json.textures, images );
-			var materials = loader.parseMaterials( json.materials, textures );
-			return materials[ json.materials[ 0 ].uuid ];
+			var materials = loader.parseMaterials( [ json ], textures );
+			return materials[ json.uuid ];
 
 		}