Browse Source

Missing name on collada-imported materials

Juan Linietsky 11 years ago
parent
commit
8ffc113b70

+ 5 - 0
tools/collada/collada.cpp

@@ -378,6 +378,8 @@ void Collada::_parse_material(XMLParser& parser) {
 	Material material;
 
 	String id=parser.get_attribute_value("id");
+	if (parser.has_attribute("name"))
+		material.name=parser.get_attribute_value("name");
 
 	if (state.version<State::Version(1,4,0)) {
 		/* <1.4 */
@@ -775,9 +777,12 @@ void Collada::_parse_effect(XMLParser& parser) {
 	String id=parser.get_attribute_value("id");
 
 	Effect effect;
+	if (parser.has_attribute("name"))
+		effect.name=parser.get_attribute_value("name");
 	_parse_effect_material(parser,effect,id);
 
 
+
 	state.effect_map[id]=effect;
 
 	COLLADA_PRINT("Effect ID:"+id);

+ 2 - 0
tools/collada/collada.h

@@ -53,12 +53,14 @@ public:
 
 	struct Material {
 
+		String name;
 		String instance_effect;
 	};
 
 
 	struct Effect {
 
+		String name;
 		Map<String, Variant> params;
 
 		struct Channel {

+ 7 - 0
tools/editor/io_plugins/editor_import_collada.cpp

@@ -341,6 +341,11 @@ Error ColladaImport::_create_material(const String& p_target) {
 
 	Ref<FixedMaterial> material= memnew( FixedMaterial );
 
+	if (src_mat.name!="")
+		material->set_name(src_mat.name);
+	else if (effect.name!="")
+		material->set_name(effect.name);
+
 	// DIFFUSE
 
 	if (effect.diffuse.texture!="") {
@@ -425,6 +430,8 @@ Error ColladaImport::_create_material(const String& p_target) {
 	material->set_parameter(FixedMaterial::PARAM_SPECULAR_EXP,effect.shininess);
 	material->set_flag(Material::FLAG_DOUBLE_SIDED,effect.double_sided);
 
+
+
 	material_cache[p_target]=material;
 	return OK;
 }