diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-06-26 06:47:56 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-06-26 06:47:56 +0400 |
commit | a7858767f46d25d8b7d95b37a3e66aaf552d67c8 (patch) | |
tree | 13d671ffc1666dbdaa39c11f8c3489774c42b022 /source/blender/editors | |
parent | 47cfdc4494c285b59f131aab33bf628a5f37f480 (diff) |
fix [#35858] Weight Paint: Hiding faces isnt flushing the flag to the vertices.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/mesh/editface.c | 18 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_hide.c | 4 |
2 files changed, 13 insertions, 9 deletions
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index e194f990739..82d958a5c7b 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -74,6 +74,8 @@ void paintface_flush_flags(Object *ob) if (me == NULL) return; + /* note, call #BKE_mesh_flush_hidden_from_verts_ex first when changing hidden flags */ + /* we could call this directly in all areas that change selection, * since this could become slow for realtime updates (circle-select for eg) */ BKE_mesh_flush_select_from_polys(me); @@ -139,18 +141,20 @@ void paintface_hide(Object *ob, const bool unselected) a = me->totpoly; while (a--) { if ((mpoly->flag & ME_HIDE) == 0) { - if (unselected) { - if ((mpoly->flag & ME_FACE_SEL) == 0) mpoly->flag |= ME_HIDE; - } - else { - if ((mpoly->flag & ME_FACE_SEL)) mpoly->flag |= ME_HIDE; + if (((mpoly->flag & ME_FACE_SEL) == 0) == unselected) { + mpoly->flag |= ME_HIDE; } } - if (mpoly->flag & ME_HIDE) mpoly->flag &= ~ME_FACE_SEL; + + if (mpoly->flag & ME_HIDE) { + mpoly->flag &= ~ME_FACE_SEL; + } mpoly++; } + BKE_mesh_flush_hidden_from_polys(me); + paintface_flush_flags(ob); } @@ -174,6 +178,8 @@ void paintface_reveal(Object *ob) mpoly++; } + BKE_mesh_flush_hidden_from_polys(me); + paintface_flush_flags(ob); } diff --git a/source/blender/editors/sculpt_paint/paint_hide.c b/source/blender/editors/sculpt_paint/paint_hide.c index e0d578ec210..3db0bd61f03 100644 --- a/source/blender/editors/sculpt_paint/paint_hide.c +++ b/source/blender/editors/sculpt_paint/paint_hide.c @@ -416,9 +416,7 @@ static int hide_show_exec(bContext *C, wmOperator *op) /* ensure that edges and faces get hidden as well (not used by * sculpt but it looks wrong when entering editmode otherwise) */ if (pbvh_type == PBVH_FACES) { - BKE_mesh_flush_hidden_from_verts(me->mvert, me->mloop, - me->medge, me->totedge, - me->mpoly, me->totpoly); + BKE_mesh_flush_hidden_from_verts(me); } ED_region_tag_redraw(ar); |