svn merge ^/trunk/blender -r46300:46330
[blender.git] / source / blender / collada / MeshImporter.cpp
index 0bf33206fa7eced98ff222b5629453d80cb27863..5560a80f68ecbe9b4b56111705af5190fafaa889 100644 (file)
@@ -727,6 +727,16 @@ bool MeshImporter::flat_face(unsigned int *nind, COLLADAFW::MeshVertexData& nor,
 
 MeshImporter::MeshImporter(UnitConverter *unitconv, ArmatureImporter *arm, Scene *sce) : unitconverter(unitconv), scene(sce), armature_importer(arm) {}
 
+void MeshImporter::bmeshConversion()
+{
+       for (std::map<COLLADAFW::UniqueId, Mesh*>::iterator m = uid_mesh_map.begin();
+                       m != uid_mesh_map.end(); ++m)
+       {
+               if ((*m).second) BKE_mesh_convert_mfaces_to_mpolys((*m).second);
+       }
+}
+
+
 Object *MeshImporter::get_object_by_geom_uid(const COLLADAFW::UniqueId& geom_uid)
 {
        if (uid_object_map.find(geom_uid) != uid_object_map.end())
@@ -845,7 +855,6 @@ MTFace *MeshImporter::assign_material_to_geom(COLLADAFW::MaterialBinding cmateri
                                prim.mface++;
                                // bind texture images to faces
                                if (texture_face && (*color_texture)) {
-                                       texture_face->mode = TF_TEX;
                                        texture_face->tpage = (Image*)(*color_texture)->tex->ima;
                                        texture_face++;
                                }
@@ -900,7 +909,7 @@ Object *MeshImporter::create_mesh_object(COLLADAFW::Node *node, COLLADAFW::Insta
 
        set_mesh(ob, uid_mesh_map[*geom_uid]);
        
-       if (old_mesh->id.us == 0) free_libblock(&G.main->mesh, old_mesh);
+       if (old_mesh->id.us == 0) BKE_libblock_free(&G.main->mesh, old_mesh);
        
        char layername[100];
        layername[0] = '\0';
@@ -922,7 +931,7 @@ Object *MeshImporter::create_mesh_object(COLLADAFW::Node *node, COLLADAFW::Insta
                        fprintf(stderr, "invalid referenced material for %s\n", mat_array[i].getName().c_str());
                }
        }
-               
+
        return ob;
 }
 
@@ -948,7 +957,7 @@ bool MeshImporter::write_geometry(const COLLADAFW::Geometry* geom)
        }
        
        const std::string& str_geom_id = mesh->getName().size() ? mesh->getName() : mesh->getOriginalId();
-       Mesh *me = add_mesh((char*)str_geom_id.c_str());
+       Mesh *me = BKE_mesh_add((char*)str_geom_id.c_str());
 
        // store the Mesh pointer to link it later with an Object
        this->uid_mesh_map[mesh->getUniqueId()] = me;
@@ -965,6 +974,5 @@ bool MeshImporter::write_geometry(const COLLADAFW::Geometry* geom)
 
        mesh_calc_normals_mapping(me->mvert, me->totvert, me->mloop, me->mpoly, me->totloop, me->totpoly, NULL, NULL, 0, NULL, NULL);
 
-       BKE_mesh_convert_mfaces_to_mpolys(me);
        return true;
 }