Revision: 21603
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21603
Author:   kazanbas
Date:     2009-07-15 21:13:47 +0200 (Wed, 15 Jul 2009)

Log Message:
-----------
Previous commit didn't fix the material issue, trying again.

Modified Paths:
--------------
    branches/soc-2009-chingachgook/source/blender/collada/DocumentExporter.cpp

Modified: 
branches/soc-2009-chingachgook/source/blender/collada/DocumentExporter.cpp
===================================================================
--- branches/soc-2009-chingachgook/source/blender/collada/DocumentExporter.cpp  
2009-07-15 18:59:49 UTC (rev 21602)
+++ branches/soc-2009-chingachgook/source/blender/collada/DocumentExporter.cpp  
2009-07-15 19:13:47 UTC (rev 21603)
@@ -271,7 +271,9 @@
                // XXX slow             
                if (ob->totcol) {
                        for(int a = 0; a < ob->totcol; a++)     {
-                               createPolylist(true, a, has_uvs, ob, dm, 
geom_name);
+                               // account for NULL materials, this should not 
normally happen?
+                               Material *ma = give_current_material(ob, a + 1);
+                               createPolylist(ma != NULL, a, has_uvs, ob, dm, 
geom_name);
                        }
                }
                else {
@@ -598,21 +600,22 @@
                                
                                COLLADASW::BindMaterial& bm = 
instGeom.getBindMaterial();
                                COLLADASW::InstanceMaterialList& iml = 
bm.getInstanceMaterialList();
-                               std::string matid(id_name(ma));
-                               COLLADASW::InstanceMaterial im(matid, 
COLLADASW::URI
-                                                                               
           (COLLADABU::Utils::EMPTY_STRING,
-                                                                               
                matid));
+
+                               if (ma) {
+                                       std::string matid(id_name(ma));
+                                       COLLADASW::InstanceMaterial im(matid, 
COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, matid));
                                
-                               // create <bind_vertex_input> for each uv layer
-                               Mesh *me = (Mesh*)ob->data;
-                               int totlayer = 
CustomData_number_of_layers(&me->fdata, CD_MTFACE);
+                                       // create <bind_vertex_input> for each 
uv layer
+                                       Mesh *me = (Mesh*)ob->data;
+                                       int totlayer = 
CustomData_number_of_layers(&me->fdata, CD_MTFACE);
                                
-                               for (int b = 0; b < totlayer; b++) {
-                                       char *name = 
CustomData_get_layer_name(&me->fdata, CD_MTFACE, b);
-                                       
im.push_back(COLLADASW::BindVertexInput(name, "TEXCOORD", b));
+                                       for (int b = 0; b < totlayer; b++) {
+                                               char *name = 
CustomData_get_layer_name(&me->fdata, CD_MTFACE, b);
+                                               
im.push_back(COLLADASW::BindVertexInput(name, "TEXCOORD", b));
+                                       }
+                               
+                                       iml.push_back(im);
                                }
-                               
-                               iml.push_back(im);
                        }
                        
                        instGeom.add();


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to