[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45199] trunk/blender/source/blender: bmesh todo, unlikly but possible - entering editmode with faces and no polys.

Campbell Barton ideasman42 at gmail.com
Tue Mar 27 03:28:26 CEST 2012


Revision: 45199
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45199
Author:   campbellbarton
Date:     2012-03-27 01:28:25 +0000 (Tue, 27 Mar 2012)
Log Message:
-----------
bmesh todo, unlikly but possible - entering editmode with faces and no polys.

rather then printing a warning and failing - convert them to polys.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_mesh.h
    trunk/blender/source/blender/blenkernel/intern/mesh.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/collada/MeshImporter.cpp
    trunk/blender/source/blender/editors/mesh/editmesh_utils.c
    trunk/blender/source/blender/editors/mesh/mesh_data.c

Modified: trunk/blender/source/blender/blenkernel/BKE_mesh.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_mesh.h	2012-03-27 01:24:16 UTC (rev 45198)
+++ trunk/blender/source/blender/blenkernel/BKE_mesh.h	2012-03-27 01:28:25 UTC (rev 45199)
@@ -145,7 +145,7 @@
 void copy_dverts(struct MDeformVert *dst, struct MDeformVert *src, int totvert); /* __NLA */
 void mesh_delete_material_index(struct Mesh *me, short index);
 void mesh_set_smooth_flag(struct Object *meshOb, int enableSmooth);
-void convert_mfaces_to_mpolys(struct Mesh *mesh);
+void BKE_mesh_convert_mfaces_to_mpolys(struct Mesh *mesh);
 void mesh_calc_normals_tessface(struct MVert *mverts, int numVerts,struct  MFace *mfaces, int numFaces, float (*faceNors_r)[3]);
 
 /* used for unit testing; compares two meshes, checking only

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c	2012-03-27 01:24:16 UTC (rev 45198)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c	2012-03-27 01:28:25 UTC (rev 45199)
@@ -2003,7 +2003,7 @@
 	}
 }
 
-void convert_mfaces_to_mpolys(Mesh *mesh)
+void BKE_mesh_convert_mfaces_to_mpolys(Mesh *mesh)
 {
 	MFace *mf;
 	MLoop *ml;

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2012-03-27 01:24:16 UTC (rev 45198)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2012-03-27 01:28:25 UTC (rev 45199)
@@ -3708,7 +3708,7 @@
 
 			/*check if we need to convert mfaces to mpolys*/
 			if (me->totface && !me->totpoly) {
-				convert_mfaces_to_mpolys(me);
+				BKE_mesh_convert_mfaces_to_mpolys(me);
 			}
 			
 			/*

Modified: trunk/blender/source/blender/collada/MeshImporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/MeshImporter.cpp	2012-03-27 01:24:16 UTC (rev 45198)
+++ trunk/blender/source/blender/collada/MeshImporter.cpp	2012-03-27 01:28:25 UTC (rev 45199)
@@ -965,6 +965,6 @@
 
 	mesh_calc_normals_mapping(me->mvert, me->totvert, me->mloop, me->mpoly, me->totloop, me->totpoly, NULL, NULL, 0, NULL, NULL);
 
-	convert_mfaces_to_mpolys(me);
+	BKE_mesh_convert_mfaces_to_mpolys(me);
 	return true;
 }

Modified: trunk/blender/source/blender/editors/mesh/editmesh_utils.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_utils.c	2012-03-27 01:24:16 UTC (rev 45198)
+++ trunk/blender/source/blender/editors/mesh/editmesh_utils.c	2012-03-27 01:28:25 UTC (rev 45199)
@@ -265,16 +265,12 @@
 	Mesh *me = ob->data;
 	BMesh *bm;
 
-	if (!me->mpoly && me->totface) {
-		fprintf(stderr, "%s: bmesh conversion issue! may lose lots of geometry! (bmesh internal error)\n", __func__);
-		
-		/* BMESH_TODO need to write smarter code here */
-		bm = BKE_mesh_to_bmesh(me, ob);
+	if (UNLIKELY(!me->mpoly && me->totface)) {
+		BKE_mesh_convert_mfaces_to_mpolys(me);
 	}
-	else {
-		bm = BKE_mesh_to_bmesh(me, ob);
-	}
 
+	bm = BKE_mesh_to_bmesh(me, ob);
+
 	if (me->edit_btmesh) {
 		/* this happens when switching shape keys */
 		BMEdit_Free(me->edit_btmesh);

Modified: trunk/blender/source/blender/editors/mesh/mesh_data.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/mesh_data.c	2012-03-27 01:24:16 UTC (rev 45198)
+++ trunk/blender/source/blender/editors/mesh/mesh_data.c	2012-03-27 01:28:25 UTC (rev 45199)
@@ -811,7 +811,7 @@
 	int tessface_input = FALSE;
 
 	if (mesh->totface > 0 && mesh->totpoly == 0) {
-		convert_mfaces_to_mpolys(mesh);
+		BKE_mesh_convert_mfaces_to_mpolys(mesh);
 
 		/* would only be converting back again, don't bother */
 		tessface_input = TRUE;




More information about the Bf-blender-cvs mailing list