[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35262] trunk/blender/source/blender/ collada: Fix [#26213] Collada exporter id's not unique

Nathan Letwory nathan at letworyinteractive.com
Mon Feb 28 15:24:52 CET 2011


Revision: 35262
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35262
Author:   jesterking
Date:     2011-02-28 14:24:52 +0000 (Mon, 28 Feb 2011)
Log Message:
-----------
Fix [#26213] Collada exporter id's not unique
Reported by Kevin Yoon

<material> could get same id as <node>, prevent that by suffixing -material.

Modified Paths:
--------------
    trunk/blender/source/blender/collada/InstanceWriter.cpp
    trunk/blender/source/blender/collada/MaterialExporter.cpp
    trunk/blender/source/blender/collada/collada_internal.cpp
    trunk/blender/source/blender/collada/collada_internal.h

Modified: trunk/blender/source/blender/collada/InstanceWriter.cpp
===================================================================
--- trunk/blender/source/blender/collada/InstanceWriter.cpp	2011-02-28 13:18:00 UTC (rev 35261)
+++ trunk/blender/source/blender/collada/InstanceWriter.cpp	2011-02-28 14:24:52 UTC (rev 35262)
@@ -50,7 +50,7 @@
 		COLLADASW::InstanceMaterialList& iml = bind_material.getInstanceMaterialList();
 
 		if (ma) {
-			std::string matid(id_name(ma));
+			std::string matid(get_material_id(ma));
 			matid = translate_id(matid);
 			COLLADASW::InstanceMaterial im(matid, COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, matid));
 			

Modified: trunk/blender/source/blender/collada/MaterialExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/MaterialExporter.cpp	2011-02-28 13:18:00 UTC (rev 35261)
+++ trunk/blender/source/blender/collada/MaterialExporter.cpp	2011-02-28 14:24:52 UTC (rev 35262)
@@ -49,7 +49,7 @@
 {
 	std::string name(id_name(ma));
 
-	openMaterial(translate_id(name), name);
+	openMaterial(get_material_id(ma), name);
 
 	std::string efid = translate_id(name) + "-effect";
 	addInstanceEffect(COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, efid));

Modified: trunk/blender/source/blender/collada/collada_internal.cpp
===================================================================
--- trunk/blender/source/blender/collada/collada_internal.cpp	2011-02-28 13:18:00 UTC (rev 35261)
+++ trunk/blender/source/blender/collada/collada_internal.cpp	2011-02-28 14:24:52 UTC (rev 35262)
@@ -272,3 +272,8 @@
 {
 	return translate_id(id_name(ob)) + "-camera";
 }
+
+std::string get_material_id(Material *mat)
+{
+	return translate_id(id_name(mat)) + "-material";
+}

Modified: trunk/blender/source/blender/collada/collada_internal.h
===================================================================
--- trunk/blender/source/blender/collada/collada_internal.h	2011-02-28 13:18:00 UTC (rev 35261)
+++ trunk/blender/source/blender/collada/collada_internal.h	2011-02-28 14:24:52 UTC (rev 35262)
@@ -37,6 +37,7 @@
 #include "Math/COLLADABUMathMatrix4.h"
 
 #include "DNA_armature_types.h"
+#include "DNA_material_types.h"
 #include "DNA_object_types.h"
 #include "BLI_math.h"
 
@@ -94,4 +95,6 @@
 
 extern std::string get_camera_id(Object *ob);
 
+extern std::string get_material_id(Material *mat);
+
 #endif /* COLLADA_INTERNAL_H */




More information about the Bf-blender-cvs mailing list