Ver código fonte

Fix ColladaExporter empty names

Prevents some programs from loading the model (eg. Sweet Home 3D)
Marek Jędrzejewski 6 anos atrás
pai
commit
512ad1719e

+ 2 - 2
examples/js/exporters/ColladaExporter.js

@@ -220,7 +220,7 @@ THREE.ColladaExporter.prototype = {
 						bufferGeometry.groups :
 						bufferGeometry.groups :
 						[ { start: 0, count: indexCount, materialIndex: 0 } ];
 						[ { start: 0, count: indexCount, materialIndex: 0 } ];
 
 
-				var gnode = `<geometry id="${ meshid }" name="${ g.name }"><mesh>`;
+				var gnode = `<geometry id="${ meshid }" name="${ g.name || meshid }"><mesh>`;
 
 
 				// define the geometry node and the vertices for the geometry
 				// define the geometry node and the vertices for the geometry
 				var posName = `${ meshid }-position`;
 				var posName = `${ meshid }-position`;
@@ -493,7 +493,7 @@ THREE.ColladaExporter.prototype = {
 
 
 					'</effect>';
 					'</effect>';
 
 
-				libraryMaterials.push( `<material id="${ matid }" name="${ m.name }"><instance_effect url="#${ matid }-effect" /></material>` );
+				libraryMaterials.push( `<material id="${ matid }" name="${ m.name || matid }"><instance_effect url="#${ matid }-effect" /></material>` );
 				libraryEffects.push( effectnode );
 				libraryEffects.push( effectnode );
 				materialMap.set( m, matid );
 				materialMap.set( m, matid );
 
 

+ 2 - 2
examples/jsm/exporters/ColladaExporter.js

@@ -231,7 +231,7 @@ ColladaExporter.prototype = {
 						bufferGeometry.groups :
 						bufferGeometry.groups :
 						[ { start: 0, count: indexCount, materialIndex: 0 } ];
 						[ { start: 0, count: indexCount, materialIndex: 0 } ];
 
 
-				var gnode = `<geometry id="${ meshid }" name="${ g.name }"><mesh>`;
+				var gnode = `<geometry id="${ meshid }" name="${ g.name || meshid }"><mesh>`;
 
 
 				// define the geometry node and the vertices for the geometry
 				// define the geometry node and the vertices for the geometry
 				var posName = `${ meshid }-position`;
 				var posName = `${ meshid }-position`;
@@ -504,7 +504,7 @@ ColladaExporter.prototype = {
 
 
 					'</effect>';
 					'</effect>';
 
 
-				libraryMaterials.push( `<material id="${ matid }" name="${ m.name }"><instance_effect url="#${ matid }-effect" /></material>` );
+				libraryMaterials.push( `<material id="${ matid }" name="${ m.name || matid }"><instance_effect url="#${ matid }-effect" /></material>` );
 				libraryEffects.push( effectnode );
 				libraryEffects.push( effectnode );
 				materialMap.set( m, matid );
 				materialMap.set( m, matid );