diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-07-01 12:07:11 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-07-01 12:29:22 +0300 |
commit | 0a026033ae46c83a84fcca54112190e1aa80d51f (patch) | |
tree | 0a8b4e77b0247a6b480c3d9c82953dd25cf3b5bc /source/blender/bmesh/tools | |
parent | 4b0aeaf327d383ec760171261a1087abbb714d04 (diff) |
BMesh: make toolflags optional
Saves 8 bytes per vert/edge/face.
Gives overall ~20-25% memory saving for dyntopo sculpting
and modifiers that use BMesh.
Diffstat (limited to 'source/blender/bmesh/tools')
4 files changed, 18 insertions, 16 deletions
diff --git a/source/blender/bmesh/tools/bmesh_beautify.c b/source/blender/bmesh/tools/bmesh_beautify.c index 19fe492c670..3e3a6547b75 100644 --- a/source/blender/bmesh/tools/bmesh_beautify.c +++ b/source/blender/bmesh/tools/bmesh_beautify.c @@ -424,11 +424,13 @@ void BM_mesh_beautify_fill( flag, method); /* update flags */ - if (oflag_edge) - BMO_elem_flag_enable(bm, e, oflag_edge); + if (oflag_edge) { + BMO_edge_flag_enable(bm, e, oflag_edge); + } + if (oflag_face) { - BMO_elem_flag_enable(bm, e->l->f, oflag_face); - BMO_elem_flag_enable(bm, e->l->radial_next->f, oflag_face); + BMO_face_flag_enable(bm, e->l->f, oflag_face); + BMO_face_flag_enable(bm, e->l->radial_next->f, oflag_face); } } } diff --git a/source/blender/bmesh/tools/bmesh_bisect_plane.c b/source/blender/bmesh/tools/bmesh_bisect_plane.c index 9fb6d39a008..51b92a3c45e 100644 --- a/source/blender/bmesh/tools/bmesh_bisect_plane.c +++ b/source/blender/bmesh/tools/bmesh_bisect_plane.c @@ -155,9 +155,9 @@ static void bm_face_bisect_verts(BMesh *bm, BMFace *f, const float plane[4], con BM_face_split(bm, f, l_a, l_b, &l_new, NULL, true); if (l_new) { if (oflag_center) { - BMO_elem_flag_enable(bm, l_new->e, oflag_center); - BMO_elem_flag_enable(bm, l_new->f, oflag_center); - BMO_elem_flag_enable(bm, f, oflag_center); + BMO_edge_flag_enable(bm, l_new->e, oflag_center); + BMO_face_flag_enable(bm, l_new->f, oflag_center); + BMO_face_flag_enable(bm, f, oflag_center); } } } @@ -270,9 +270,9 @@ static void bm_face_bisect_verts(BMesh *bm, BMFace *f, const float plane[4], con if (l_new) { if (oflag_center) { - BMO_elem_flag_enable(bm, l_new->e, oflag_center); - BMO_elem_flag_enable(bm, l_new->f, oflag_center); - BMO_elem_flag_enable(bm, face_split_arr[j], oflag_center); + BMO_edge_flag_enable(bm, l_new->e, oflag_center); + BMO_face_flag_enable(bm, l_new->f, oflag_center); + BMO_face_flag_enable(bm, face_split_arr[j], oflag_center); } } @@ -372,7 +372,7 @@ void BM_mesh_bisect_plane( if (BM_VERT_DIR(v) == 0) { if (oflag_center) { - BMO_elem_flag_enable(bm, v, oflag_center); + BMO_vert_flag_enable(bm, v, oflag_center); } if (use_snap_center) { closest_to_plane_v3(v->co, plane, v->co); @@ -407,7 +407,7 @@ void BM_mesh_bisect_plane( v_new = BM_edge_split(bm, e, e->v1, NULL, e_fac); vert_is_center_enable(v_new); if (oflag_center) { - BMO_elem_flag_enable(bm, v_new, oflag_center); + BMO_vert_flag_enable(bm, v_new, oflag_center); } BM_VERT_DIR(v_new) = 0; @@ -439,7 +439,7 @@ void BM_mesh_bisect_plane( /* if both verts are on the center - tag it */ if (oflag_center) { if (side[0] == 0 && side[1] == 0) { - BMO_elem_flag_enable(bm, e, oflag_center); + BMO_edge_flag_enable(bm, e, oflag_center); } } } diff --git a/source/blender/bmesh/tools/bmesh_decimate_dissolve.c b/source/blender/bmesh/tools/bmesh_decimate_dissolve.c index ad35d57f35b..978cceee37c 100644 --- a/source/blender/bmesh/tools/bmesh_decimate_dissolve.c +++ b/source/blender/bmesh/tools/bmesh_decimate_dissolve.c @@ -335,7 +335,7 @@ void BM_mesh_decimate_dissolve_ex( /* update normal */ BM_face_normal_update(f_new); if (oflag_out) { - BMO_elem_flag_enable(bm, f_new, oflag_out); + BMO_face_flag_enable(bm, f_new, oflag_out); } /* re-calculate costs */ diff --git a/source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c b/source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c index db60b3e15e1..0fc571bc0a8 100644 --- a/source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c +++ b/source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c @@ -213,7 +213,7 @@ void BM_mesh_decimate_unsubdivide_ex(BMesh *bm, const int iterations, const bool BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) { if (BM_elem_flag_test(v, BM_ELEM_TAG) && bm_vert_dissolve_fan_test(v)) { #ifdef USE_WALKER - BMO_elem_flag_enable(bm, v, ELE_VERT_TAG); + BMO_vert_flag_enable(bm, v, ELE_VERT_TAG); #endif BM_elem_index_set(v, VERT_INDEX_INIT); /* set_dirty! */ } @@ -238,7 +238,7 @@ void BM_mesh_decimate_unsubdivide_ex(BMesh *bm, const int iterations, const bool BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) { if (v->e && (BM_elem_index_get(v) == VERT_INDEX_INIT)) { #ifdef USE_WALKER - if (BMO_elem_flag_test(bm, v, ELE_VERT_TAG)) + if (BMO_vert_flag_test(bm, v, ELE_VERT_TAG)) #endif { /* check again incase the topology changed */ |