files from bmesh now load in trunk, this way loading (2.64 (or whenever bmesh is...
authorCampbell Barton <ideasman42@gmail.com>
Wed, 28 Dec 2011 14:58:45 +0000 (14:58 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 28 Dec 2011 14:58:45 +0000 (14:58 +0000)
source/blender/blenloader/intern/readfile.c

index bdd9ba6..8a14e94 100644 (file)
@@ -3731,6 +3731,36 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
        direct_link_customdata(fd, &mesh->edata, mesh->totedge);
        direct_link_customdata(fd, &mesh->fdata, mesh->totface);
 
+
+#ifdef USE_BMESH_FORWARD_COMPAT
+       /* NEVER ENABLE THIS CODE INTO BMESH!
+        * THIS IS FOR LOADING BMESH INTO OLDER FILES ONLY */
+       mesh->mpoly= newdataadr(fd, mesh->mpoly);
+       mesh->mloop= newdataadr(fd, mesh->mloop);
+
+       direct_link_customdata(fd, &mesh->pdata, mesh->totpoly);
+       direct_link_customdata(fd, &mesh->ldata, mesh->totloop);
+
+       if (mesh->mpoly) {
+               /* be clever and load polygons as mfaces */
+
+               mesh->totface= mesh_mpoly_to_mface(&mesh->fdata, &mesh->ldata, &mesh->pdata,
+                                                  mesh->totface, mesh->totloop, mesh->totpoly);
+
+               CustomData_free(&mesh->pdata, mesh->totpoly);
+               memset(&mesh->pdata, 0, sizeof(CustomData));
+               mesh->totpoly = 0;
+
+               CustomData_free(&mesh->ldata, mesh->totloop);
+               memset(&mesh->ldata, 0, sizeof(CustomData));
+               mesh->totloop = 0;
+
+               mesh_update_customdata_pointers(mesh);
+       }
+
+#endif
+
+
        mesh->bb= NULL;
        mesh->mselect = NULL;
        mesh->edit_mesh= NULL;