diff options
Diffstat (limited to 'source/blender/editors/mesh')
-rw-r--r-- | source/blender/editors/mesh/editmesh_knife.c | 6 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_select.c | 4 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_tools.c | 33 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_utils.c | 12 |
4 files changed, 30 insertions, 25 deletions
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c index 882d3115ba0..5907d066c83 100644 --- a/source/blender/editors/mesh/editmesh_knife.c +++ b/source/blender/editors/mesh/editmesh_knife.c @@ -2008,9 +2008,9 @@ static void knifenet_fill_faces(KnifeTool_OpData *kcd) remerge_faces(kcd); /* delete left over faces */ - BMO_op_callf(bm, "delete geom=%ff context=%i", DEL, DEL_ONLYFACES); - BMO_op_callf(bm, "delete geom=%fe context=%i", DEL, DEL_EDGES); - BMO_op_callf(bm, "delete geom=%fv context=%i", DEL, DEL_VERTS); + BMO_op_callf(bm, BMO_FLAG_DEFAULTS, "delete geom=%ff context=%i", DEL, DEL_ONLYFACES); + BMO_op_callf(bm, BMO_FLAG_DEFAULTS, "delete geom=%fe context=%i", DEL, DEL_EDGES); + BMO_op_callf(bm, BMO_FLAG_DEFAULTS, "delete geom=%fv context=%i", DEL, DEL_VERTS); if (face_nets) MEM_freeN(face_nets); diff --git a/source/blender/editors/mesh/editmesh_select.c b/source/blender/editors/mesh/editmesh_select.c index 61d12b751e0..7dc0ed78dfc 100644 --- a/source/blender/editors/mesh/editmesh_select.c +++ b/source/blender/editors/mesh/editmesh_select.c @@ -113,7 +113,9 @@ void EDBM_automerge(Scene *scene, Object *obedit, int update) if (!em) return; - BMO_op_callf(em->bm, "automerge verts=%hv dist=%f", BM_ELEM_SELECT, scene->toolsettings->doublimit); + BMO_op_callf(em->bm, BMO_FLAG_DEFAULTS, + "automerge verts=%hv dist=%f", + BM_ELEM_SELECT, scene->toolsettings->doublimit); if (update) { DAG_id_tag_update(obedit->data, OB_RECALC_DATA); BMEdit_RecalcTessellation(em); diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 08f70f984a8..072c66c60d8 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -255,7 +255,7 @@ static short edbm_extrude_edge(Object *obedit, BMEditMesh *em, const char hflag, ModifierData *md; BMElem *ele; - BMO_op_init(bm, &extop, "extrude_face_region"); + BMO_op_init(bm, &extop, BMO_FLAG_DEFAULTS, "extrude_face_region"); BMO_slot_buffer_from_enabled_hflag(bm, &extop, "edgefacein", BM_VERT | BM_EDGE | BM_FACE, hflag); /* If a mirror modifier with clipping is on, we need to adjust some @@ -395,8 +395,10 @@ static int edbm_extrude_repeat_exec(bContext *C, wmOperator *op) for (a = 0; a < steps; a++) { edbm_extrude_edge(obedit, em, BM_ELEM_SELECT, nor); - //BMO_op_callf(em->bm, "extrude_face_region edgefacein=%hef", BM_ELEM_SELECT); - BMO_op_callf(em->bm, "translate vec=%v verts=%hv", (float *)dvec, BM_ELEM_SELECT); + //BMO_op_callf(em->bm, BMO_FLAG_DEFAULTS, "extrude_face_region edgefacein=%hef", BM_ELEM_SELECT); + BMO_op_callf(em->bm, BMO_FLAG_DEFAULTS, + "translate vec=%v verts=%hv", + (float *)dvec, BM_ELEM_SELECT); //extrudeflag(obedit, em, SELECT, nor); //translateflag(em, SELECT, dvec); } @@ -2816,26 +2818,25 @@ static int mesh_separate_tagged(Main *bmain, Scene *scene, Base *base_old, BMesh ED_base_object_select(base_new, BA_SELECT); - BMO_op_callf(bm_old, "duplicate geom=%hvef dest=%p", BM_ELEM_TAG, bm_new); - BMO_op_callf(bm_old, "delete geom=%hvef context=%i", BM_ELEM_TAG, DEL_FACES); + BMO_op_callf(bm_old, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE), + "duplicate geom=%hvef dest=%p", BM_ELEM_TAG, bm_new); + BMO_op_callf(bm_old, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE), + "delete geom=%hvef context=%i", BM_ELEM_TAG, DEL_FACES); /* clean up any loose edges */ BM_ITER_MESH (e, &iter, bm_old, BM_EDGES_OF_MESH) { - if (!BM_edge_is_wire(e)) { - BM_elem_flag_disable(e, BM_ELEM_TAG); + if (BM_edge_is_wire(e)) { + BM_edge_kill(bm_old, e); } } - BMO_op_callf(bm_old, "delete geom=%hvef context=%i", BM_ELEM_TAG, DEL_EDGES); /* clean up any loose verts */ BM_ITER_MESH (v, &iter, bm_old, BM_VERTS_OF_MESH) { - if (BM_vert_edge_count(v) != 0) { - BM_elem_flag_disable(v, BM_ELEM_TAG); + if (BM_vert_edge_count(v) == 0) { + BM_vert_kill(bm_old, v); } } - BMO_op_callf(bm_old, "delete geom=%hvef context=%i", BM_ELEM_TAG, DEL_VERTS); - BM_mesh_normals_update(bm_new, FALSE); BM_mesh_bm_to_me(bm_new, base_new->object->data, FALSE); @@ -2959,13 +2960,13 @@ static int mesh_separate_loose(Main *bmain, Scene *scene, Base *base_old, BMesh } /* Select the seed explicitly, in case it has no edges */ - BM_elem_flag_enable(v_seed, BM_ELEM_TAG); + if (!BM_elem_flag_test(v_seed, BM_ELEM_TAG)) { BM_elem_flag_enable(v_seed, BM_ELEM_TAG); tot++; } /* Walk from the single vertex, selecting everything connected * to it */ BMW_init(&walker, bm_old, BMW_SHELL, BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP, - BMW_FLAG_NOP, /* BMESH_TODO - should be BMW_FLAG_TEST_HIDDEN ? */ + BMW_FLAG_NOP, BMW_NIL_LAY); e = BMW_begin(&walker, v_seed); @@ -5136,7 +5137,9 @@ static int edbm_wireframe_exec(bContext *C, wmOperator *op) BM_mesh_elem_hflag_disable_all(em->bm, BM_FACE, BM_ELEM_TAG, FALSE); BMO_slot_buffer_hflag_enable(em->bm, &bmop, "faces", BM_FACE, BM_ELEM_TAG, FALSE); - BMO_op_callf(em->bm, "delete geom=%hvef context=%i", BM_ELEM_TAG, DEL_FACES); + BMO_op_callf(em->bm, BMO_FLAG_DEFAULTS, + "delete geom=%hvef context=%i", + BM_ELEM_TAG, DEL_FACES); } BM_mesh_elem_hflag_disable_all(em->bm, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_SELECT, FALSE); diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c index 274789a7b96..6b7409cd031 100644 --- a/source/blender/editors/mesh/editmesh_utils.c +++ b/source/blender/editors/mesh/editmesh_utils.c @@ -166,7 +166,7 @@ int EDBM_op_init(BMEditMesh *em, BMOperator *bmop, wmOperator *op, const char *f va_start(list, fmt); - if (!BMO_op_vinitf(bm, bmop, fmt, list)) { + if (!BMO_op_vinitf(bm, bmop, BMO_FLAG_DEFAULTS, fmt, list)) { BKE_reportf(op->reports, RPT_ERROR, "Parse error in %s", __func__); va_end(list); return 0; @@ -235,7 +235,7 @@ int EDBM_op_callf(BMEditMesh *em, wmOperator *op, const char *fmt, ...) va_start(list, fmt); - if (!BMO_op_vinitf(bm, &bmop, fmt, list)) { + if (!BMO_op_vinitf(bm, &bmop, BMO_FLAG_DEFAULTS, fmt, list)) { BKE_reportf(op->reports, RPT_ERROR, "Parse error in %s", __func__); va_end(list); return 0; @@ -259,7 +259,7 @@ int EDBM_op_call_and_selectf(BMEditMesh *em, wmOperator *op, const char *selects va_start(list, fmt); - if (!BMO_op_vinitf(bm, &bmop, fmt, list)) { + if (!BMO_op_vinitf(bm, &bmop, BMO_FLAG_DEFAULTS, fmt, list)) { BKE_reportf(op->reports, RPT_ERROR, "Parse error in %s", __func__); va_end(list); return 0; @@ -287,7 +287,7 @@ int EDBM_op_call_silentf(BMEditMesh *em, const char *fmt, ...) va_start(list, fmt); - if (!BMO_op_vinitf(bm, &bmop, fmt, list)) { + if (!BMO_op_vinitf(bm, &bmop, BMO_FLAG_DEFAULTS, fmt, list)) { va_end(list); return 0; } @@ -482,7 +482,7 @@ void EDBM_select_more(BMEditMesh *em) BMOperator bmop; int use_faces = em->selectmode == SCE_SELECT_FACE; - BMO_op_initf(em->bm, &bmop, + BMO_op_initf(em->bm, &bmop, BMO_FLAG_DEFAULTS, "region_extend geom=%hvef constrict=%b use_faces=%b", BM_ELEM_SELECT, FALSE, use_faces); BMO_op_exec(em->bm, &bmop); @@ -498,7 +498,7 @@ void EDBM_select_less(BMEditMesh *em) BMOperator bmop; int use_faces = em->selectmode == SCE_SELECT_FACE; - BMO_op_initf(em->bm, &bmop, + BMO_op_initf(em->bm, &bmop, BMO_FLAG_DEFAULTS, "region_extend geom=%hvef constrict=%b use_faces=%b", BM_ELEM_SELECT, TRUE, use_faces); BMO_op_exec(em->bm, &bmop); |