[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