[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45273] trunk/blender/source/blender/bmesh /intern/bmesh_mesh_conv.c: fix [#30718] Selecting vertices, edges, faces and undoing - results in wrong header status info
Campbell Barton
ideasman42 at gmail.com
Fri Mar 30 02:23:39 CEST 2012
Revision: 45273
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45273
Author: campbellbarton
Date: 2012-03-30 00:23:22 +0000 (Fri, 30 Mar 2012)
Log Message:
-----------
fix [#30718] Selecting vertices, edges, faces and undoing - results in wrong header status info
converting mesh to bmesh resulted in incorrect stats.
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c 2012-03-29 23:33:50 UTC (rev 45272)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c 2012-03-30 00:23:22 UTC (rev 45273)
@@ -142,10 +142,10 @@
vt[i] = v;
/* transfer flag */
- v->head.hflag = BM_vert_flag_from_mflag(mvert->flag);
+ v->head.hflag = BM_vert_flag_from_mflag(mvert->flag & ~SELECT);
/* this is necessary for selection counts to work properly */
- if (BM_elem_flag_test(v, BM_ELEM_SELECT)) {
+ if (mvert->flag & SELECT) {
BM_vert_select_set(bm, v, TRUE);
}
@@ -190,10 +190,12 @@
et[i] = e;
/* transfer flags */
- e->head.hflag = BM_edge_flag_from_mflag(medge->flag);
+ e->head.hflag = BM_edge_flag_from_mflag(medge->flag & ~SELECT);
/* this is necessary for selection counts to work properly */
- if (BM_elem_flag_test(e, BM_ELEM_SELECT)) BM_elem_select_set(bm, e, TRUE);
+ if (medge->flag & SELECT) {
+ BM_elem_select_set(bm, e, TRUE);
+ }
/* Copy Custom Data */
CustomData_to_bmesh_block(&me->edata, &bm->edata, i, &e->head.data);
@@ -254,10 +256,12 @@
BM_elem_index_set(f, bm->totface - 1); /* set_ok */
/* transfer flag */
- f->head.hflag = BM_face_flag_from_mflag(mpoly->flag);
+ f->head.hflag = BM_face_flag_from_mflag(mpoly->flag & ~SELECT);
/* this is necessary for selection counts to work properly */
- if (BM_elem_flag_test(f, BM_ELEM_SELECT)) BM_elem_select_set(bm, f, TRUE);
+ if (mpoly->flag & SELECT) {
+ BM_elem_select_set(bm, f, TRUE);
+ }
f->mat_nr = mpoly->mat_nr;
if (i == me->act_face) bm->act_face = f;
More information about the Bf-blender-cvs
mailing list