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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to