[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45282] trunk/blender/source/blender: partial fix for [#30732] bmesh: loop select continues through hidden sections.
Campbell Barton
ideasman42 at gmail.com
Fri Mar 30 10:44:04 CEST 2012
Revision: 45282
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45282
Author: campbellbarton
Date: 2012-03-30 08:43:47 +0000 (Fri, 30 Mar 2012)
Log Message:
-----------
partial fix for [#30732] bmesh: loop select continues through hidden sections.
loop cut and edge ring select still need to be fixed.
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 2012-03-30 06:45:13 UTC (rev 45281)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_walkers_impl.c 2012-03-30 08:43:47 UTC (rev 45282)
@@ -517,7 +517,9 @@
l = BM_face_other_vert_loop(owalk.f_hub, lwalk->lastv, v);
nexte = BM_edge_exists(v, l->v);
- if (!BLI_ghash_haskey(walker->visithash, nexte)) {
+ if (bmw_mask_check_edge(walker, nexte) &&
+ !BLI_ghash_haskey(walker->visithash, nexte))
+ {
lwalk = BMW_state_add(walker);
lwalk->cur = nexte;
lwalk->lastv = v;
@@ -579,7 +581,10 @@
}
if (l != NULL) {
- if (l != e->l && !BLI_ghash_haskey(walker->visithash, l->e)) {
+ if (l != e->l &&
+ bmw_mask_check_edge(walker, l->e) &&
+ !BLI_ghash_haskey(walker->visithash, l->e))
+ {
if (!(owalk.is_boundary == FALSE && i != stopi)) {
lwalk = BMW_state_add(walker);
lwalk->cur = l->e;
@@ -602,7 +607,10 @@
v = i ? e->v2 : e->v1;
BM_ITER(nexte, &eiter, walker->bm, BM_EDGES_OF_VERT, v) {
- if ((nexte->l == NULL) && !BLI_ghash_haskey(walker->visithash, nexte)) {
+ if ((nexte->l == NULL) &&
+ bmw_mask_check_edge(walker, nexte) &&
+ !BLI_ghash_haskey(walker->visithash, nexte))
+ {
lwalk = BMW_state_add(walker);
lwalk->cur = nexte;
lwalk->lastv = v;
Modified: trunk/blender/source/blender/editors/mesh/editmesh_select.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_select.c 2012-03-30 06:45:13 UTC (rev 45281)
+++ trunk/blender/source/blender/editors/mesh/editmesh_select.c 2012-03-30 08:43:47 UTC (rev 45282)
@@ -900,7 +900,7 @@
BMW_init(&walker, bm, walkercode,
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);
ele = BMW_begin(&walker, start);
for (; ele; ele = BMW_step(&walker)) {
More information about the Bf-blender-cvs
mailing list