[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35711] trunk/blender/source/blender/ collada: Fix [#26475] <instance_material> wrong in COLLADA export.
Nathan Letwory
nathan at letworyinteractive.com
Tue Mar 22 23:51:03 CET 2011
Revision: 35711
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35711
Author: jesterking
Date: 2011-03-22 22:51:02 +0000 (Tue, 22 Mar 2011)
Log Message:
-----------
Fix [#26475] <instance_material> wrong in COLLADA export.
reported by Juan Linietsky
fix by Imran Syed (freakabcd)
Use material index suffixed to material name to create symbolic name.
Modified Paths:
--------------
trunk/blender/source/blender/collada/GeometryExporter.cpp
trunk/blender/source/blender/collada/InstanceWriter.cpp
Modified: trunk/blender/source/blender/collada/GeometryExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/GeometryExporter.cpp 2011-03-22 22:00:26 UTC (rev 35710)
+++ trunk/blender/source/blender/collada/GeometryExporter.cpp 2011-03-22 22:51:02 UTC (rev 35711)
@@ -28,6 +28,8 @@
*/
+#include <sstream>
+
#include "COLLADASWPrimitves.h"
#include "COLLADASWSource.h"
#include "COLLADASWVertices.h"
@@ -167,7 +169,9 @@
// sets material name
if (ma) {
- polylist.setMaterial(translate_id(id_name(ma)));
+ std::ostringstream ostr;
+ ostr << translate_id(id_name(ma)) << material_index+1;
+ polylist.setMaterial(ostr.str());
}
COLLADASW::InputList &til = polylist.getInputList();
Modified: trunk/blender/source/blender/collada/InstanceWriter.cpp
===================================================================
--- trunk/blender/source/blender/collada/InstanceWriter.cpp 2011-03-22 22:00:26 UTC (rev 35710)
+++ trunk/blender/source/blender/collada/InstanceWriter.cpp 2011-03-22 22:51:02 UTC (rev 35711)
@@ -29,6 +29,7 @@
#include <string>
+#include <sstream>
#include "COLLADASWInstanceMaterial.h"
@@ -52,7 +53,9 @@
if (ma) {
std::string matid(get_material_id(ma));
matid = translate_id(matid);
- COLLADASW::InstanceMaterial im(matid, COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, matid));
+ std::ostringstream ostr;
+ ostr << translate_id(id_name(ma)) << a+1;
+ COLLADASW::InstanceMaterial im(ostr.str(), COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, matid));
// create <bind_vertex_input> for each uv layer
Mesh *me = (Mesh*)ob->data;
More information about the Bf-blender-cvs
mailing list