[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45360] trunk/blender/source/blender: fix [#30735] bmesh: loop-cut cuts faces isolated by hidden faces

Campbell Barton ideasman42 at gmail.com
Tue Apr 3 08:12:08 CEST 2012


Revision: 45360
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45360
Author:   campbellbarton
Date:     2012-04-03 06:12:04 +0000 (Tue, 03 Apr 2012)
Log Message:
-----------
fix [#30735] bmesh: loop-cut cuts faces isolated by hidden faces

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c
    trunk/blender/source/blender/editors/mesh/editmesh_loopcut.c

Modified: trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c	2012-04-03 06:05:43 UTC (rev 45359)
+++ trunk/blender/source/blender/bmesh/operators/bmo_subdivide.c	2012-04-03 06:12:04 UTC (rev 45360)
@@ -1023,9 +1023,9 @@
 
 /* editmesh-emulating function */
 void BM_mesh_esubdivideflag(Object *UNUSED(obedit), BMesh *bm, int flag, float smooth,
-                       float fractal, int beauty, int numcuts,
-                       int seltype, int cornertype, int singleedge,
-                       int gridfill, int seed)
+                            float fractal, int beauty, int numcuts,
+                            int seltype, int cornertype, int singleedge,
+                            int gridfill, int seed)
 {
 	BMOperator op;
 	

Modified: trunk/blender/source/blender/editors/mesh/editmesh_loopcut.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_loopcut.c	2012-04-03 06:05:43 UTC (rev 45359)
+++ trunk/blender/source/blender/editors/mesh/editmesh_loopcut.c	2012-04-03 06:12:04 UTC (rev 45360)
@@ -206,7 +206,7 @@
 	if (select) {
 		BMW_init(&walker, em->bm, BMW_EDGERING,
 		         BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP,
-		         BMW_FLAG_NOP, /* BMESH_TODO - should be BMW_FLAG_TEST_HIDDEN ? */
+		         BMW_FLAG_TEST_HIDDEN,
 		         BMW_NIL_LAY);
 
 		eed = BMW_begin(&walker, startedge);
@@ -220,7 +220,7 @@
 
 	BMW_init(&walker, em->bm, BMW_EDGERING,
 	         BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP,
-	         BMW_FLAG_NOP, /* BMESH_TODO - should be BMW_FLAG_TEST_HIDDEN ? */
+	         BMW_FLAG_TEST_HIDDEN,
 	         BMW_NIL_LAY);
 
 	eed = startedge = BMW_begin(&walker, startedge);
@@ -240,6 +240,8 @@
 			edgering_find_order(em, lasteed, eed, lastv1, v);
 			lastv1 = v[0][0];
 
+			BLI_array_growitems(edges, previewlines);
+
 			for (i = 1; i <= previewlines; i++) {
 				co[0][0] = (v[0][1]->co[0] - v[0][0]->co[0]) * (i / ((float)previewlines + 1)) + v[0][0]->co[0];
 				co[0][1] = (v[0][1]->co[1] - v[0][0]->co[1]) * (i / ((float)previewlines + 1)) + v[0][0]->co[1];
@@ -249,7 +251,6 @@
 				co[1][1] = (v[1][1]->co[1] - v[1][0]->co[1]) * (i / ((float)previewlines + 1)) + v[1][0]->co[1];
 				co[1][2] = (v[1][1]->co[2] - v[1][0]->co[2]) * (i / ((float)previewlines + 1)) + v[1][0]->co[2];
 
-				BLI_array_growone(edges);
 				copy_v3_v3(edges[tot][0], co[0]);
 				copy_v3_v3(edges[tot][1], co[1]);
 				tot++;
@@ -264,6 +265,8 @@
 
 		edgering_find_order(em, lasteed, startedge, lastv1, v);
 		
+		BLI_array_growitems(edges, previewlines);
+
 		for (i = 1; i <= previewlines; i++) {
 			if (!v[0][0] || !v[0][1] || !v[1][0] || !v[1][1])
 				continue;
@@ -276,7 +279,6 @@
 			co[1][1] = (v[1][1]->co[1] - v[1][0]->co[1]) * (i / ((float)previewlines + 1)) + v[1][0]->co[1];
 			co[1][2] = (v[1][1]->co[2] - v[1][0]->co[2]) * (i / ((float)previewlines + 1)) + v[1][0]->co[2];
 			
-			BLI_array_growone(edges);
 			copy_v3_v3(edges[tot][0], co[0]);
 			copy_v3_v3(edges[tot][1], co[1]);
 			tot++;




More information about the Bf-blender-cvs mailing list