[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [10827] branches/bmesh/source/blender/src: Added fix to editmode enter where faces were getting flipped ( incorrect calling of BME_MF).

Geoffrey Bantle hairbat at yahoo.com
Thu May 31 11:29:19 CEST 2007


Revision: 10827
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10827
Author:   briggs
Date:     2007-05-31 11:29:18 +0200 (Thu, 31 May 2007)

Log Message:
-----------
Added fix to editmode enter where faces were getting flipped (incorrect calling of BME_MF).
Also fixed crash on editmode exit/reenter cycle where G.editMesh was not getting set to NULL.

Modified Paths:
--------------
    branches/bmesh/source/blender/src/editbmesh_interface.c
    branches/bmesh/source/blender/src/editobject.c

Modified: branches/bmesh/source/blender/src/editbmesh_interface.c
===================================================================
--- branches/bmesh/source/blender/src/editbmesh_interface.c	2007-05-31 07:42:54 UTC (rev 10826)
+++ branches/bmesh/source/blender/src/editbmesh_interface.c	2007-05-31 09:29:18 UTC (rev 10827)
@@ -143,6 +143,8 @@
 	PointerArray edgearr = {0};
 	int i, j;
 	
+	BME_model_begin(bmesh);
+	
 	if (me->totface && !me->totpoly) {
 		printf("ERROR: paranoia mesh conversion function was called!\n");
 		return BME_fromOldMesh(me);
@@ -172,7 +174,8 @@
 			PA_AddToArray(&edgearr, edge_table[mloop->edge], j);
 			mloop++;
 		}		
-		poly = BME_MF(bmesh, ((BME_Edge*)edgearr.array[0])->v1, ((BME_Edge*)edgearr.array[0])->v2, (BME_Edge**)edgearr.array, j);
+		mloop = &me->mloop[mpoly->firstloop];
+		poly = BME_MF(bmesh, vert_table[mloop->v],vert_table[(mloop+1)->v],(BME_Edge**)edgearr.array, j);
 		poly->flag = mpoly->flag;
 		if (!poly) {
 			printf("EVIL POLY NOT CREATED!! EVVVIILL!!\n");
@@ -188,6 +191,7 @@
 	if (vert_table) MEM_freeN(vert_table);
 	if (edge_table) MEM_freeN(edge_table);
 	
+	BME_model_end(bmesh);
 	return bmesh;
 }
 
@@ -414,6 +418,7 @@
 			allqueue(REDRAWVIEW3D, 1);
 		}
 	}
+	makeDerivedMesh(G.obedit,CD_MASK_EDITMESH);
 	rightmouse_transform();
 }
 

Modified: branches/bmesh/source/blender/src/editobject.c
===================================================================
--- branches/bmesh/source/blender/src/editobject.c	2007-05-31 07:42:54 UTC (rev 10826)
+++ branches/bmesh/source/blender/src/editobject.c	2007-05-31 09:29:18 UTC (rev 10827)
@@ -1681,8 +1681,10 @@
 		}
 		EditBME_loadEditMesh(G.obedit->data);
 
-		if(freedata && G.editMesh) BME_free_mesh(G.editMesh);
-			
+		if(freedata && G.editMesh){ 
+			BME_free_mesh(G.editMesh);
+			G.editMesh = NULL;
+		}	
 		if(G.f & G_FACESELECT)
 			allqueue(REDRAWIMAGE, 0);
 		if(G.f & G_WEIGHTPAINT)





More information about the Bf-blender-cvs mailing list