[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53664] trunk/blender/source/blender: fix [#33784] Select Linked All + Seams fails to select seam bounded area

Campbell Barton ideasman42 at gmail.com
Tue Jan 8 18:30:07 CET 2013


Revision: 53664
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53664
Author:   campbellbarton
Date:     2013-01-08 17:30:06 +0000 (Tue, 08 Jan 2013)
Log Message:
-----------
fix [#33784] Select Linked All + Seams fails to select seam bounded area

was incorrectly flushing vertex selection.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c
    trunk/blender/source/blender/editors/mesh/editmesh_select.c

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c	2013-01-08 17:27:11 UTC (rev 53663)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c	2013-01-08 17:30:06 UTC (rev 53664)
@@ -403,6 +403,11 @@
 				continue;
 			}
 
+			/* saves checking BLI_ghash_haskey below (manifold edges theres a 50% chance) */
+			if (f == iwalk->cur) {
+				continue;
+			}
+
 			if (BLI_ghash_haskey(walker->visithash, f)) {
 				continue;
 			}

Modified: trunk/blender/source/blender/editors/mesh/editmesh_select.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_select.c	2013-01-08 17:27:11 UTC (rev 53663)
+++ trunk/blender/source/blender/editors/mesh/editmesh_select.c	2013-01-08 17:30:06 UTC (rev 53664)
@@ -2250,7 +2250,7 @@
 		         BMW_FLAG_TEST_HIDDEN,
 		         BMW_NIL_LAY);
 
-		e = BMW_begin(&walker, efa);
+		efa = BMW_begin(&walker, efa);
 		for (; efa; efa = BMW_step(&walker)) {
 			BM_face_select_set(bm, efa, sel);
 		}
@@ -2344,7 +2344,7 @@
 
 		BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
 			if (BM_elem_flag_test(efa, BM_ELEM_TAG)) {
-				e = BMW_begin(&walker, efa);
+				efa = BMW_begin(&walker, efa);
 				for (; efa; efa = BMW_step(&walker)) {
 					BM_face_select_set(bm, efa, TRUE);
 				}
@@ -2381,8 +2381,9 @@
 			}
 		}
 		BMW_end(&walker);
+
+		EDBM_selectmode_flush(em);
 	}
-	EDBM_selectmode_flush_ex(em, SCE_SELECT_VERTEX);
 
 	WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit);
 




More information about the Bf-blender-cvs mailing list