diff options
author | Joseph Eagar <joeedh@gmail.com> | 2009-05-23 07:24:15 +0400 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2009-05-23 07:24:15 +0400 |
commit | f026266e185f90543138a856898f50b2295a12fc (patch) | |
tree | f674a1a1b328a423ec4bdcdc4a11f35e56669e7a /source/blender/editors/mesh | |
parent | b7fe3258b66698f62f630d0b18431b54b65101ed (diff) |
merge with 2.5 at r20307. note there were some python hacking necassary for this to work, so um hopefully there's not too much cruft from that.
[[Split portion of a mixed commit.]]
Diffstat (limited to 'source/blender/editors/mesh')
-rw-r--r-- | source/blender/editors/mesh/Makefile | 1 | ||||
-rw-r--r-- | source/blender/editors/mesh/SConscript | 2 | ||||
-rw-r--r-- | source/blender/editors/mesh/bmesh_tools.c | 20 | ||||
-rw-r--r-- | source/blender/editors/mesh/bmeshutils.c | 2 | ||||
-rw-r--r-- | source/blender/editors/mesh/bmeshutils_mods.c | 6 | ||||
-rw-r--r-- | source/blender/editors/mesh/editdeform.c | 16 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh.c | 34 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_add.c | 64 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_lib.c | 6 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_loop.c | 22 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_mods.c | 155 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_tools.c | 320 | ||||
-rw-r--r-- | source/blender/editors/mesh/mesh_intern.h | 56 | ||||
-rw-r--r-- | source/blender/editors/mesh/mesh_ops.c | 103 |
14 files changed, 452 insertions, 355 deletions
diff --git a/source/blender/editors/mesh/Makefile b/source/blender/editors/mesh/Makefile index 60b1fa1c329..650771519cd 100644 --- a/source/blender/editors/mesh/Makefile +++ b/source/blender/editors/mesh/Makefile @@ -38,7 +38,6 @@ CFLAGS += $(LEVEL_1_C_WARNINGS) CPPFLAGS += -I$(NAN_GLEW)/include CPPFLAGS += -I$(OPENGL_HEADERS) -CPPFLAGS += -I$(NAN_BMFONT)/include CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include CPPFLAGS += -I$(NAN_ELBEEM)/include diff --git a/source/blender/editors/mesh/SConscript b/source/blender/editors/mesh/SConscript index bd6d355d84c..80536b5e431 100644 --- a/source/blender/editors/mesh/SConscript +++ b/source/blender/editors/mesh/SConscript @@ -5,7 +5,7 @@ sources = env.Glob('*.c') incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf' incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include' -incs += ' #/intern/guardedalloc #intern/bmfont ../../gpu' +incs += ' #/intern/guardedalloc ../../gpu' incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern' incs += ' ../../bmesh ' diff --git a/source/blender/editors/mesh/bmesh_tools.c b/source/blender/editors/mesh/bmesh_tools.c index ec655862c28..dfcb4b06eb4 100644 --- a/source/blender/editors/mesh/bmesh_tools.c +++ b/source/blender/editors/mesh/bmesh_tools.c @@ -77,8 +77,6 @@ #include "WM_api.h" #include "WM_types.h" -#include "BMF_Api.h" - #include "ED_mesh.h" #include "ED_view3d.h" #include "ED_util.h" @@ -102,9 +100,9 @@ static int subdivide_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); Scene *scene = CTX_data_scene(C); + BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh; - BM_esubdivideflag(obedit, ((Mesh *)obedit->data)->edit_btmesh->bm, - 1, 0.0, scene->toolsettings->editbutflag, 1, 0); + BM_esubdivideflag(obedit, em->bm, 1, 0.0, scene->toolsettings->editbutflag, 1, 0); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); @@ -218,11 +216,13 @@ void MESH_OT_subdivide_smooth(wmOperatorType *ot) static int subdivs_invoke(bContext *C, wmOperator *op, wmEvent *event) { - uiMenuItem *head; + uiPopupMenu *pup; + uiLayout *layout; - head= uiPupMenuBegin("Subdivision Type", 0); - uiMenuItemsEnumO(head, "MESH_OT_subdivs", "type"); - uiPupMenuEnd(C, head); + pup= uiPupMenuBegin(C, "Subdivision Type", 0); + layout= uiPupMenuLayout(pup); + uiItemsEnumO(layout, "MESH_OT_subdivs", "type"); + uiPupMenuEnd(C, pup); return OPERATOR_CANCELLED; } @@ -276,11 +276,9 @@ void MESH_OT_subdivs(wmOperatorType *ot) /* this is temp, the ops are different, but they are called from subdivs, so all the possible props should be here as well*/ RNA_def_int(ot->srna, "number_cuts", 4, 1, 10, "Number of Cuts", "", 1, INT_MAX); RNA_def_float(ot->srna, "random_factor", 5.0, 0.0f, FLT_MAX, "Random Factor", "", 0.0f, 1000.0f); - RNA_def_float(ot->srna, "smoothness", 1.0f, 0.0f, 1000.0f, "Smoothness", "", 0.0f, FLT_MAX); - + RNA_def_float(ot->srna, "smoothness", 1.0f, 0.0f, 1000.0f, "Smoothness", "", 0.0f, FLT_MAX); } - /* individual face extrude */ /* will use vertex normals for extrusion directions, so *nor is unaffected */ short EDBM_Extrude_face_indiv(BMEditMesh *em, short flag, float *nor) diff --git a/source/blender/editors/mesh/bmeshutils.c b/source/blender/editors/mesh/bmeshutils.c index 2d15644cbde..1a5ea2e2b75 100644 --- a/source/blender/editors/mesh/bmeshutils.c +++ b/source/blender/editors/mesh/bmeshutils.c @@ -77,8 +77,6 @@ #include "WM_api.h" #include "WM_types.h" -#include "BMF_Api.h" - #include "ED_mesh.h" #include "ED_view3d.h" #include "ED_util.h" diff --git a/source/blender/editors/mesh/bmeshutils_mods.c b/source/blender/editors/mesh/bmeshutils_mods.c index e3dbfe7fbe0..5c0a25348c5 100644 --- a/source/blender/editors/mesh/bmeshutils_mods.c +++ b/source/blender/editors/mesh/bmeshutils_mods.c @@ -1030,7 +1030,7 @@ static int loop_multiselect(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_select_loop_multi(wmOperatorType *ot) +void MESH_OT_loop_multi_select(wmOperatorType *ot) { /* identifiers */ ot->name= "Multi Select Loops"; @@ -1110,7 +1110,7 @@ static int mesh_select_loop_invoke(bContext *C, wmOperator *op, wmEvent *event) return OPERATOR_FINISHED; } -void MESH_OT_select_loop(wmOperatorType *ot) +void MESH_OT_loop_select(wmOperatorType *ot) { /* identifiers */ ot->name= "Loop Select"; @@ -1211,7 +1211,7 @@ static int mesh_shortest_path_select_invoke(bContext *C, wmOperator *op, wmEvent return OPERATOR_FINISHED; } -void MESH_OT_select_path_shortest(wmOperatorType *ot) +void MESH_OT_select_shortest_path(wmOperatorType *ot) { /* identifiers */ ot->name= "Shortest Path Select"; diff --git a/source/blender/editors/mesh/editdeform.c b/source/blender/editors/mesh/editdeform.c index d6dd9522a6f..3019aabf371 100644 --- a/source/blender/editors/mesh/editdeform.c +++ b/source/blender/editors/mesh/editdeform.c @@ -94,7 +94,7 @@ void sel_verts_defgroup (Object *obedit, int select) case OB_MESH: { Mesh *me= ob->data; - EditMesh *em = EM_GetEditMesh(me); + EditMesh *em = BKE_mesh_get_editmesh(me); for (eve=em->verts.first; eve; eve=eve->next){ dvert= CustomData_em_get(&em->vdata, eve->data, CD_MDEFORMVERT); @@ -114,7 +114,7 @@ void sel_verts_defgroup (Object *obedit, int select) if(select) EM_select_flush(em); // vertices to edges/faces else EM_deselect_flush(em); - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); } break; case OB_LATTICE: @@ -398,7 +398,7 @@ void del_defgroup (Object *ob) /* Make sure that any verts with higher indices are adjusted accordingly */ if(ob->type==OB_MESH) { Mesh *me= ob->data; - EditMesh *em = EM_GetEditMesh(me); + EditMesh *em = BKE_mesh_get_editmesh(me); EditVert *eve; MDeformVert *dvert; @@ -410,7 +410,7 @@ void del_defgroup (Object *ob) if (dvert->dw[i].def_nr > (ob->actdef-1)) dvert->dw[i].def_nr--; } - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); } else if(ob->type==OB_LATTICE) { Lattice *lt= def_get_lattice(ob); @@ -724,7 +724,7 @@ void assign_verts_defgroup (Object *obedit, float weight) case OB_MESH: { Mesh *me= ob->data; - EditMesh *em = EM_GetEditMesh(me); + EditMesh *em = BKE_mesh_get_editmesh(me); if (!CustomData_has_layer(&em->vdata, CD_MDEFORMVERT)) EM_add_data_layer(em, &em->vdata, CD_MDEFORMVERT); @@ -764,7 +764,7 @@ void assign_verts_defgroup (Object *obedit, float weight) } } } - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); } break; case OB_LATTICE: @@ -888,7 +888,7 @@ void remove_verts_defgroup (Object *obedit, int allverts) case OB_MESH: { Mesh *me= ob->data; - EditMesh *em = EM_GetEditMesh(me); + EditMesh *em = BKE_mesh_get_editmesh(me); for (eve=em->verts.first; eve; eve=eve->next){ dvert= CustomData_em_get(&em->vdata, eve->data, CD_MDEFORMVERT); @@ -918,7 +918,7 @@ void remove_verts_defgroup (Object *obedit, int allverts) } } } - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); } break; case OB_LATTICE: diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c index ac4a8ecbb62..5cf0a0b1de6 100644 --- a/source/blender/editors/mesh/editmesh.c +++ b/source/blender/editors/mesh/editmesh.c @@ -1401,22 +1401,22 @@ static int mesh_separate_selected(Scene *scene, Base *editbase) obedit= editbase->object; me= obedit->data; - em= EM_GetEditMesh(me); + em= BKE_mesh_get_editmesh(me); if(me->key) { error("Can't separate with vertex keys"); - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return 0; } if(em->selected.first) BLI_freelistN(&(em->selected)); /* clear the selection order */ - EM_selectmode_set(em); // enforce full consistant selection flags + EM_selectmode_set(em); // enforce full consistent selection flags EM_stats_update(em); if(em->totvertsel==0) { - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return 0; } @@ -1486,7 +1486,7 @@ static int mesh_separate_selected(Scene *scene, Base *editbase) DAG_object_flush_update(scene, obedit, OB_RECALC_DATA); DAG_object_flush_update(scene, basenew->object, OB_RECALC_DATA); - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return 1; } @@ -1495,7 +1495,7 @@ static int mesh_separate_selected(Scene *scene, Base *editbase) static int mesh_separate_material(Scene *scene, Base *editbase) { Mesh *me= editbase->object->data; - EditMesh *em= EM_GetEditMesh(me); + EditMesh *em= BKE_mesh_get_editmesh(me); unsigned char curr_mat; for (curr_mat = 1; curr_mat < editbase->object->totcol; ++curr_mat) { @@ -1505,12 +1505,12 @@ static int mesh_separate_material(Scene *scene, Base *editbase) editmesh_select_by_material(em, curr_mat); /* and now separate */ if(0==mesh_separate_selected(scene, editbase)) { - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return 0; } } - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return 1; } @@ -1522,11 +1522,11 @@ static int mesh_separate_loose(Scene *scene, Base *editbase) int doit= 1; me= editbase->object->data; - em= EM_GetEditMesh(me); + em= BKE_mesh_get_editmesh(me); if(me->key) { error("Can't separate with vertex keys"); - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return 0; } @@ -1543,7 +1543,7 @@ static int mesh_separate_loose(Scene *scene, Base *editbase) doit= mesh_separate_selected(scene, editbase); } - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return 1; } @@ -1733,15 +1733,3 @@ void em_setup_viewcontext(bContext *C, ViewContext *vc) vc->em= me->edit_btmesh; } } - -EditMesh *EM_GetEditMesh(Mesh *me) -{ - return bmesh_to_editmesh(me->edit_btmesh->bm); -} - -void EM_EndEditMesh(Mesh *me, EditMesh *em) -{ - BM_Free_Mesh(me->edit_btmesh->bm); - me->edit_btmesh->bm = editmesh_to_bmesh(em); - TM_RecalcTesselation(me->edit_btmesh); -} diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c index 588771071fa..a1ea37dfea3 100644 --- a/source/blender/editors/mesh/editmesh_add.c +++ b/source/blender/editors/mesh/editmesh_add.c @@ -343,18 +343,18 @@ int make_fgon(EditMesh *em, wmOperator *op, int make) static int make_fgon_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); if( make_fgon(em, op, 1) ) { DAG_object_flush_update(CTX_data_scene(C), obedit, OB_RECALC_DATA); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -375,18 +375,18 @@ void MESH_OT_fgon_make(struct wmOperatorType *ot) static int clear_fgon_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); if( make_fgon(em, op, 0) ) { DAG_object_flush_update(CTX_data_scene(C), obedit, OB_RECALC_DATA); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -827,7 +827,7 @@ static void addedgeface_mesh(EditMesh *em, wmOperator *op) static int addedgeface_mesh_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); addedgeface_mesh(em, op); @@ -835,15 +835,15 @@ static int addedgeface_mesh_exec(bContext *C, wmOperator *op) DAG_object_flush_update(CTX_data_scene(C), obedit, OB_RECALC_DATA); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } -void MESH_OT_add_edge_face(wmOperatorType *ot) +void MESH_OT_edge_face_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Make Edge/Face"; - ot->idname= "MESH_OT_add_edge_face"; + ot->idname= "MESH_OT_edge_face_add"; /* api callbacks */ ot->exec= addedgeface_mesh_exec; @@ -1025,7 +1025,7 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se * fill - end capping, and option to fill in circle * cent[3] - center of the data. * */ - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EditVert *eve, *v1=NULL, *v2, *v3, *v4=NULL, *vtop, *vdown; float phi, phid, vec[3]; float q[4], cmat[3][3], nor[3]= {0.0, 0.0, 0.0}; @@ -1307,7 +1307,7 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se if(type!=0 && type!=13) righthandfaces(em, 1); /* otherwise monkey has eyes in wrong direction */ - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); } @@ -1363,11 +1363,11 @@ static int add_primitive_plane_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_plane(wmOperatorType *ot) +void MESH_OT_primitive_plane_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Plane"; - ot->idname= "MESH_OT_add_primitive_plane"; + ot->idname= "MESH_OT_primitive_plane_add"; /* api callbacks */ ot->exec= add_primitive_plane_exec; @@ -1393,11 +1393,11 @@ static int add_primitive_cube_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_cube(wmOperatorType *ot) +void MESH_OT_primitive_cube_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Cube"; - ot->idname= "MESH_OT_add_primitive_cube"; + ot->idname= "MESH_OT_primitive_cube_add"; /* api callbacks */ ot->exec= add_primitive_cube_exec; @@ -1423,11 +1423,11 @@ static int add_primitive_circle_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_circle(wmOperatorType *ot) +void MESH_OT_primitive_circle_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Circle"; - ot->idname= "MESH_OT_add_primitive_circle"; + ot->idname= "MESH_OT_primitive_circle_add"; /* api callbacks */ ot->exec= add_primitive_circle_exec; @@ -1458,11 +1458,11 @@ static int add_primitive_cylinder_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_cylinder(wmOperatorType *ot) +void MESH_OT_primitive_cylinder_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Cylinder"; - ot->idname= "MESH_OT_add_primitive_cylinder"; + ot->idname= "MESH_OT_primitive_cylinder_add"; /* api callbacks */ ot->exec= add_primitive_cylinder_exec; @@ -1493,11 +1493,11 @@ static int add_primitive_tube_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_tube(wmOperatorType *ot) +void MESH_OT_primitive_tube_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Tube"; - ot->idname= "MESH_OT_add_primitive_tube"; + ot->idname= "MESH_OT_primitive_tube_add"; /* api callbacks */ ot->exec= add_primitive_tube_exec; @@ -1528,11 +1528,11 @@ static int add_primitive_cone_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_cone(wmOperatorType *ot) +void MESH_OT_primitive_cone_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Cone"; - ot->idname= "MESH_OT_add_primitive_cone"; + ot->idname= "MESH_OT_primitive_cone_add"; /* api callbacks */ ot->exec= add_primitive_cone_exec; @@ -1565,11 +1565,11 @@ static int add_primitive_grid_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_grid(wmOperatorType *ot) +void MESH_OT_primitive_grid_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Grid"; - ot->idname= "MESH_OT_add_primitive_grid"; + ot->idname= "MESH_OT_primitive_grid_add"; /* api callbacks */ ot->exec= add_primitive_grid_exec; @@ -1598,11 +1598,11 @@ static int add_primitive_monkey_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_monkey(wmOperatorType *ot) +void MESH_OT_primitive_monkey_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Monkey"; - ot->idname= "MESH_OT_add_primitive_monkey"; + ot->idname= "MESH_OT_primitive_monkey_add"; /* api callbacks */ ot->exec= add_primitive_monkey_exec; @@ -1628,11 +1628,11 @@ static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_uv_sphere(wmOperatorType *ot) +void MESH_OT_primitive_uv_sphere_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add UV Sphere"; - ot->idname= "MESH_OT_add_primitive_uv_sphere"; + ot->idname= "MESH_OT_primitive_uv_sphere_add"; /* api callbacks */ ot->exec= add_primitive_uvsphere_exec; @@ -1663,11 +1663,11 @@ static int add_primitive_icosphere_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_add_primitive_ico_sphere(wmOperatorType *ot) +void MESH_OT_primitive_ico_sphere_add(wmOperatorType *ot) { /* identifiers */ ot->name= "Add Ico Sphere"; - ot->idname= "MESH_OT_add_primitive_ico_sphere"; + ot->idname= "MESH_OT_primitive_ico_sphere_add"; /* api callbacks */ ot->exec= add_primitive_icosphere_exec; diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c index ea6a5442072..98d69419fdb 100644 --- a/source/blender/editors/mesh/editmesh_lib.c +++ b/source/blender/editors/mesh/editmesh_lib.c @@ -550,7 +550,7 @@ void EM_select_flush(EditMesh *em) EM_nfaces_selected(em); } -/* when vertices or edges can be selected, also make fgon consistant */ +/* when vertices or edges can be selected, also make fgon consistent */ static void check_fgons_selection(EditMesh *em) { EditFace *efa, *efan; @@ -741,7 +741,7 @@ void EM_convertsel(EditMesh *em, short oldmode, short selectmode) EM_nfaces_selected(em); } -/* when switching select mode, makes sure selection is consistant for editing */ +/* when switching select mode, makes sure selection is consistent for editing */ /* also for paranoia checks to make sure edge or face mode works */ void EM_selectmode_set(EditMesh *em) { @@ -1883,7 +1883,7 @@ void adduplicateflag(EditMesh *em, int flag) EditFace *efa, *newfa, *act_efa = EM_get_actFace(em, 0); EM_clear_flag_all(em, 128); - EM_selectmode_set(em); // paranoia check, selection now is consistant + EM_selectmode_set(em); // paranoia check, selection now is consistent /* vertices first */ for(eve= em->verts.last; eve; eve= eve->prev) { diff --git a/source/blender/editors/mesh/editmesh_loop.c b/source/blender/editors/mesh/editmesh_loop.c index 51c19261de8..7f1d56aee73 100644 --- a/source/blender/editors/mesh/editmesh_loop.c +++ b/source/blender/editors/mesh/editmesh_loop.c @@ -61,6 +61,7 @@ editmesh_loop: tools with own drawing subloops, select, knife, subdiv #include "BKE_mesh.h" #include "BKE_object.h" #include "BKE_utildefines.h" +#include "BKE_tessmesh.h" #include "PIL_time.h" @@ -784,8 +785,8 @@ static float bm_seg_intersect(BMEdge *e, CutCurve *c, int len, char mode, static int knife_cut_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - BMesh *bm; - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)), *em2; + BMEditMesh *em= (((Mesh *)obedit->data))->edit_btmesh; + BMesh *bm = em->bm; ARegion *ar= CTX_wm_region(C); BMVert *bv; BMIter iter; @@ -798,9 +799,8 @@ static int knife_cut_exec(bContext *C, wmOperator *op) int len=0, isected, flag, i; short numcuts=1, mode= RNA_int_get(op->ptr, "type"); - if (EM_nvertices_selected(em) < 2) { + if (bm->totvertsel < 2) { error("No edges are selected to operate on"); - EM_EndEditMesh(obedit->data, em); return OPERATOR_CANCELLED;; } @@ -814,12 +814,9 @@ static int knife_cut_exec(bContext *C, wmOperator *op) RNA_END; if(len<2) { - EM_EndEditMesh(obedit->data, em); return OPERATOR_CANCELLED; } - bm = editmesh_to_bmesh(em); - /*the floating point coordinates of verts in screen space will be stored in a hash table according to the vertices pointer*/ gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp); for(bv=BMIter_New(&iter, bm, BM_VERTS_OF_MESH, NULL);bv;bv=BMIter_Step(&iter)){ @@ -869,17 +866,8 @@ static int knife_cut_exec(bContext *C, wmOperator *op) //else if (mode==KNIFE_MULTICUT) esubdivideflag(obedit, em, SELECT, 0, B_KNIFE, numcuts, SUBDIV_SELECT_ORIG); //else esubdivideflag(obedit, em, SELECT, 0, B_KNIFE|B_PERCENTSUBD, 1, SUBDIV_SELECT_ORIG); - BLI_ghash_free(gh, NULL, (GHashValFreeFP)MEM_freeN); - - free_editMesh(em); - - em2 = bmesh_to_editmesh(bm); - *em = *em2; - - MEM_freeN(em2); - BM_Free_Mesh(bm); + BLI_ghash_free(gh, NULL, (GHashValFreeFP)WMEM_freeN); - EM_EndEditMesh(obedit->data, em); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c index d7f1d4b479d..8758eb9d914 100644 --- a/source/blender/editors/mesh/editmesh_mods.c +++ b/source/blender/editors/mesh/editmesh_mods.c @@ -490,7 +490,7 @@ static int similar_face_select_exec(bContext *C, wmOperator *op) Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); Mesh *me= obedit->data; - EditMesh *em= EM_GetEditMesh(me); + EditMesh *em= BKE_mesh_get_editmesh(me); int selcount = similar_face_select__internal(scene, em, RNA_int_get(op->ptr, "type")); @@ -498,19 +498,19 @@ static int similar_face_select_exec(bContext *C, wmOperator *op) /* here was an edge-mode only select flush case, has to be generalized */ EM_selectmode_flush(em); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return OPERATOR_FINISHED; } - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return OPERATOR_CANCELLED; } -void MESH_OT_select_face_similar(wmOperatorType *ot) +void MESH_OT_faces_select_similar(wmOperatorType *ot) { /* identifiers */ ot->name= "Similar Face Select"; - ot->idname= "MESH_OT_select_face_similar"; + ot->idname= "MESH_OT_faces_select_similar"; /* api callbacks */ ot->invoke= WM_menu_invoke; @@ -751,7 +751,7 @@ static int similar_edge_select_exec(bContext *C, wmOperator *op) Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); Mesh *me= obedit->data; - EditMesh *em= EM_GetEditMesh(me); + EditMesh *em= BKE_mesh_get_editmesh(me); int selcount = similar_edge_select__internal(scene, em, RNA_int_get(op->ptr, "type")); @@ -759,19 +759,19 @@ static int similar_edge_select_exec(bContext *C, wmOperator *op) /* here was an edge-mode only select flush case, has to be generalized */ EM_selectmode_flush(em); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return OPERATOR_FINISHED; } - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return OPERATOR_CANCELLED; } -void MESH_OT_select_edge_similar(wmOperatorType *ot) +void MESH_OT_edges_select_similar(wmOperatorType *ot) { /* identifiers */ ot->name= "Similar Edge Select"; - ot->idname= "MESH_OT_select_edge_similar"; + ot->idname= "MESH_OT_edges_select_similar"; /* api callbacks */ ot->invoke= WM_menu_invoke; @@ -806,7 +806,7 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op) Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); Mesh *me= obedit->data; - EditMesh *em= EM_GetEditMesh(me); + EditMesh *em= BKE_mesh_get_editmesh(me); EditVert *eve, *base_eve=NULL; unsigned int selcount=0; /* count how many new edges we select*/ @@ -833,7 +833,7 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op) } if (!ok || !deselcount) { /* no data selected OR no more data to select*/ - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return 0; } @@ -864,7 +864,7 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op) selcount++; deselcount--; if (!deselcount) {/*have we selected all posible faces?, if so return*/ - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return selcount; } } @@ -882,7 +882,7 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op) selcount++; deselcount--; if (!deselcount) {/*have we selected all posible faces?, if so return*/ - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return selcount; } } @@ -896,7 +896,7 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op) CD_MDEFORMVERT); if (!base_dvert || base_dvert->totweight == 0) { - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return selcount; } @@ -914,7 +914,7 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op) selcount++; deselcount--; if (!deselcount) { /*have we selected all posible faces?, if so return*/ - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return selcount; } break; @@ -929,19 +929,19 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op) if(selcount) { WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return OPERATOR_FINISHED; } - EM_EndEditMesh(me, em); + BKE_mesh_end_editmesh(me, em); return OPERATOR_CANCELLED; } -void MESH_OT_select_vertex_similar(wmOperatorType *ot) +void MESH_OT_vertices_select_similar(wmOperatorType *ot) { /* identifiers */ ot->name= "Similar Vertex Select"; - ot->idname= "MESH_OT_select_vertex_similar"; + ot->idname= "MESH_OT_vertices_select_similar"; /* api callbacks */ ot->invoke= WM_menu_invoke; @@ -1650,7 +1650,7 @@ static void edgering_select(EditMesh *em, EditEdge *startedge, int select) static int loop_multiselect(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EditEdge *eed; EditEdge **edarray; int edindex, edfirstcount; @@ -1689,16 +1689,16 @@ static int loop_multiselect(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } #if 0 //moved to bmeshutils_mods.c -void MESH_OT_select_loop_multi(wmOperatorType *ot) +void MESH_OT_loop_multi_select(wmOperatorType *ot) { /* identifiers */ ot->name= "Multi Select Loops"; - ot->idname= "MESH_OT_select_loop_multi"; + ot->idname= "MESH_OT_loop_multi_select"; /* api callbacks */ ot->exec= loop_multiselect; @@ -1991,7 +1991,7 @@ void selectconnected_mesh_all(EditMesh *em) static int select_linked_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(obedit->data); + EditMesh *em= BKE_mesh_get_editmesh(obedit->data); if( RNA_boolean_get(op->ptr, "limit") ) { ViewContext vc; @@ -2003,7 +2003,7 @@ static int select_linked_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -2132,13 +2132,13 @@ void EM_hide_mesh(EditMesh *em, int swap) static int hide_mesh_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EM_hide_mesh(em, RNA_boolean_get(op->ptr, "unselected")); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -2198,13 +2198,13 @@ void EM_reveal_mesh(EditMesh *em) static int reveal_mesh_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EM_reveal_mesh(em); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -2258,7 +2258,7 @@ static int select_sharp_edges_exec(bContext *C, wmOperator *op) * small enough, select the edge */ Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EditEdge *eed; EditFace *efa; EditFace **efa1; @@ -2270,7 +2270,7 @@ static int select_sharp_edges_exec(bContext *C, wmOperator *op) if(em->selectmode==SCE_SELECT_FACE) { BKE_report(op->reports, RPT_ERROR, "Doesn't work in face selection mode"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -2350,15 +2350,15 @@ static int select_sharp_edges_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); //TODO is this needed ? - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } -void MESH_OT_select_sharp_edges(wmOperatorType *ot) +void MESH_OT_edges_select_sharp(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Sharp Edges"; - ot->idname= "MESH_OT_select_sharp_edges"; + ot->idname= "MESH_OT_edges_select_sharp"; /* api callbacks */ ot->exec= select_sharp_edges_exec; @@ -2511,21 +2511,21 @@ static void select_linked_flat_faces(EditMesh *em, wmOperator *op, float sharpne static int select_linked_flat_faces_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); select_linked_flat_faces(em, op, RNA_float_get(op->ptr, "sharpness")); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } -void MESH_OT_select_linked_flat_faces(wmOperatorType *ot) +void MESH_OT_faces_select_linked_flat(wmOperatorType *ot) { /* identifiers */ ot->name= "Select Linked Flat Faces"; - ot->idname= "MESH_OT_select_linked_flat_faces"; + ot->idname= "MESH_OT_faces_select_linked_flat"; /* api callbacks */ ot->exec= select_linked_flat_faces_exec; @@ -2611,13 +2611,13 @@ void select_non_manifold(EditMesh *em, wmOperator *op ) static int select_non_manifold_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); select_non_manifold(em, op); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -2674,13 +2674,13 @@ void EM_select_swap(EditMesh *em) /* exported for UV */ static int select_invert_mesh_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EM_select_swap(em); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -2711,12 +2711,12 @@ void EM_toggle_select_all(EditMesh *em) /* exported for UV */ static int toggle_select_all_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EM_toggle_select_all(em); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -2797,7 +2797,7 @@ void EM_select_more(EditMesh *em) static int select_more(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)) ; + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)) ; EM_select_more(em); @@ -2805,7 +2805,7 @@ static int select_more(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -2887,14 +2887,14 @@ void EM_select_less(EditMesh *em) static int select_less(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EM_select_less(em); // if (EM_texFaceCheck(em)) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -2957,13 +2957,13 @@ static void selectrandom_mesh(EditMesh *em, float perc) /* randomly selects a us static int mesh_select_random_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); selectrandom_mesh(em, RNA_float_get(op->ptr,"percent")); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -3047,13 +3047,13 @@ static int mesh_selection_type_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); mesh_selection_type(CTX_data_scene(C), em, RNA_enum_get(op->ptr,"type")); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -3081,7 +3081,8 @@ void MESH_OT_selection_type(wmOperatorType *ot) static int editmesh_mark_seam(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); Mesh *me= ((Mesh *)obedit->data); EditEdge *eed; int clear = RNA_boolean_get(op->ptr, "clear"); @@ -3112,7 +3113,8 @@ static int editmesh_mark_seam(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -3135,7 +3137,8 @@ void MESH_OT_mark_seam(wmOperatorType *ot) static int editmesh_mark_sharp(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); Mesh *me= ((Mesh *)obedit->data); int set = RNA_boolean_get(op->ptr, "set"); EditEdge *eed; @@ -3161,7 +3164,8 @@ static int editmesh_mark_sharp(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -3556,7 +3560,8 @@ void righthandfaces(EditMesh *em, int select) /* makes faces righthand turning * static int righthandfaces_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); /* 'standard' behaviour - check if selected, then apply relevant selection */ @@ -3565,15 +3570,15 @@ static int righthandfaces_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); //TODO is this needed ? - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } -void MESH_OT_consistant_normals(wmOperatorType *ot) +void MESH_OT_normals_make_consistent(wmOperatorType *ot) { /* identifiers */ - ot->name= "Make Normals Consistant"; - ot->idname= "MESH_OT_consistant_normals"; + ot->name= "Make Normals Consistent"; + ot->idname= "MESH_OT_normals_make_consistent"; /* api callbacks */ ot->exec= righthandfaces_exec; @@ -3767,7 +3772,7 @@ static int smooth_vertex(bContext *C, wmOperator *op) Scene *scene= CTX_data_scene(C); Object *obedit= CTX_data_edit_object(C); Mesh *me= obedit->data; - EditMesh *em= EM_GetEditMesh(me); + EditMesh *em= (EditMesh *)me; EditVert *eve, *eve_mir = NULL; EditEdge *eed; @@ -3776,8 +3781,9 @@ static int smooth_vertex(bContext *C, wmOperator *op) int teller=0; ModifierData *md= obedit->modifiers.first; + if(em==NULL) { - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -3787,8 +3793,9 @@ static int smooth_vertex(bContext *C, wmOperator *op) if(eve->f & SELECT) teller++; eve= eve->next; } + if(teller==0) { - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -3903,16 +3910,16 @@ static int smooth_vertex(bContext *C, wmOperator *op) // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); #endif return OPERATOR_FINISHED; } -void MESH_OT_smooth_vertex(wmOperatorType *ot) +void MESH_OT_vertices_smooth(wmOperatorType *ot) { /* identifiers */ ot->name= "Smooth Vertex"; - ot->idname= "MESH_OT_smooth_vertex"; + ot->idname= "MESH_OT_vertices_smooth"; /* api callbacks */ ot->exec= smooth_vertex; @@ -4029,21 +4036,21 @@ static int vertices_to_sphere_exec(bContext *C, wmOperator *op) Object *obedit= CTX_data_edit_object(C); View3D *v3d = CTX_wm_view3d(C); Scene *scene = CTX_data_scene(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); vertices_to_sphere(scene, v3d, obedit, em, RNA_float_get(op->ptr,"percent")); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } -void MESH_OT_vertices_to_sphere(wmOperatorType *ot) +void MESH_OT_vertices_transform_to_sphere(wmOperatorType *ot) { /* identifiers */ ot->name= "Vertices to Sphere"; - ot->idname= "MESH_OT_vertices_to_sphere"; + ot->idname= "MESH_OT_vertices_transform_to_sphere"; /* api callbacks */ ot->exec= vertices_to_sphere_exec; @@ -4079,7 +4086,7 @@ void flipface(EditMesh *em, EditFace *efa) static int flip_editnormals(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); EditFace *efa; efa= em->faces.first; @@ -4093,7 +4100,7 @@ static int flip_editnormals(bContext *C, wmOperator *op) /* update vertex normals too */ recalc_editnormals(em); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 139fa29ddf9..766615f0c7c 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -84,8 +84,6 @@ editmesh_tool.c: UI called tools for editmesh, geometry changes here, otherwise #include "WM_api.h" #include "WM_types.h" -#include "BMF_Api.h" - #include "ED_mesh.h" #include "ED_view3d.h" #include "ED_util.h" @@ -490,7 +488,7 @@ static int removedoublesflag_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); Scene *scene = CTX_data_scene(C); - EditMesh *em= EM_GetEditMesh(((Mesh *)obedit->data)); + EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)); char msg[100]; int cnt = removedoublesflag(em,1,0,scene->toolsettings->doublimit); @@ -503,7 +501,7 @@ static int removedoublesflag_exec(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -704,10 +702,65 @@ void extrude_mesh(Object *obedit, EditMesh *em, wmOperator *op) } +#if 0 +//need to see if this really had new stuff I should merge over +<<<<<<< .working +======= +// XXX should be a menu item +static int mesh_extrude_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + Object *obedit= CTX_data_edit_object(C); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); + + extrude_mesh(obedit,em, op); + + RNA_int_set(op->ptr, "mode", TFM_TRANSLATION); + WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + + WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); + + BKE_mesh_end_editmesh(obedit->data, em); + return OPERATOR_FINISHED; +} + +/* extrude without transform */ +static int mesh_extrude_exec(bContext *C, wmOperator *op) +{ + Object *obedit= CTX_data_edit_object(C); + EditMesh *em= BKE_mesh_get_editmesh(obedit->data); + + extrude_mesh(obedit,em, op); + + WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); + + BKE_mesh_end_editmesh(obedit->data, em); + return OPERATOR_FINISHED; +} + + +void MESH_OT_extrude(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Extrude Mesh"; + ot->idname= "MESH_OT_extrude"; + + /* api callbacks */ + ot->invoke= mesh_extrude_invoke; + ot->exec= mesh_extrude_exec; + ot->poll= ED_operator_editmesh; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* to give to transform */ + RNA_def_int(ot->srna, "mode", TFM_TRANSLATION, 0, INT_MAX, "Mode", "", 0, INT_MAX); +} +#endif + static int split_mesh(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); WM_cursor_wait(1); @@ -722,7 +775,7 @@ static int split_mesh(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -740,6 +793,71 @@ void MESH_OT_split(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +#if 0 +//this also showed up in a merge, need to check if it +//needs changes ported over to new extrude code too +static int extrude_repeat_mesh(bContext *C, wmOperator *op) +{ + Object *obedit= CTX_data_edit_object(C); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); + + RegionView3D *rv3d = CTX_wm_region_view3d(C); + + int steps = RNA_int_get(op->ptr,"steps"); + + float offs = RNA_float_get(op->ptr,"offset"); + + float dvec[3], tmat[3][3], bmat[3][3], nor[3]= {0.0, 0.0, 0.0}; + short a; + + /* dvec */ + dvec[0]= rv3d->persinv[2][0]; + dvec[1]= rv3d->persinv[2][1]; + dvec[2]= rv3d->persinv[2][2]; + Normalize(dvec); + dvec[0]*= offs; + dvec[1]*= offs; + dvec[2]*= offs; + + /* base correction */ + Mat3CpyMat4(bmat, obedit->obmat); + Mat3Inv(tmat, bmat); + Mat3MulVecfl(tmat, dvec); + + for(a=0; a<steps; a++) { + extrudeflag(obedit, em, SELECT, nor); + translateflag(em, SELECT, dvec); + } + + recalc_editnormals(em); + + EM_fgon_flags(em); + + WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); + +// DAG_object_flush_update(scene, obedit, OB_RECALC_DATA); + BKE_mesh_end_editmesh(obedit->data, em); + return OPERATOR_FINISHED; +} + +void MESH_OT_extrude_repeat(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Extrude Repeat Mesh"; + ot->idname= "MESH_OT_extrude_repeat"; + + /* api callbacks */ + ot->exec= extrude_repeat_mesh; + ot->poll= ED_operator_editmesh; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* props */ + RNA_def_float(ot->srna, "offset", 2.0f, 0.0f, 100.0f, "Offset", "", 0.0f, FLT_MAX); + RNA_def_int(ot->srna, "steps", 10, 0, 180, "Steps", "", 0, INT_MAX); +} +#endif /* ************************** spin operator ******************** */ static int spin_mesh(bContext *C, float *dvec, int steps, float degr, int dupli ) @@ -747,7 +865,7 @@ static int spin_mesh(bContext *C, float *dvec, int steps, float degr, int dupli Object *obedit= CTX_data_edit_object(C); View3D *v3d = CTX_wm_view3d(C); Scene *scene = CTX_data_scene(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); RegionView3D *rv3d= CTX_wm_region_view3d(C); EditVert *eve,*nextve; float nor[3]= {0.0f, 0.0f, 0.0f}; @@ -830,7 +948,7 @@ static int spin_mesh(bContext *C, float *dvec, int steps, float degr, int dupli DAG_object_flush_update(scene, obedit, OB_RECALC_DATA); } - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return ok; } @@ -871,7 +989,7 @@ void MESH_OT_spin(wmOperatorType *ot) static int screw_mesh_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); EditVert *eve,*v1=0,*v2=0; EditEdge *eed; float dvec[3], nor[3]; @@ -907,7 +1025,7 @@ static int screw_mesh_exec(bContext *C, wmOperator *op) } if(v1==NULL || v2==NULL) { BKE_report(op->reports, RPT_ERROR, "You have to select a string of connected vertices too"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -926,16 +1044,16 @@ static int screw_mesh_exec(bContext *C, wmOperator *op) if(spin_mesh(C, dvec, turns*steps, 360.0f*turns, 0)) { WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } else { BKE_report(op->reports, RPT_ERROR, "No valid vertices are selected"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); } void MESH_OT_screw(wmOperatorType *ot) @@ -1012,10 +1130,10 @@ static int delete_mesh(Object *obedit, wmOperator *op, int event) int count; char *str="Erase"; - if(event<1) return; + if(event<1) return OPERATOR_CANCELLED; if (event != 7 && event != 5) - em= EM_GetEditMesh((Mesh *)obedit->data); + em= BKE_mesh_get_editmesh((Mesh *)obedit->data); if(event==10 ) { str= "Erase Vertices"; @@ -1024,7 +1142,7 @@ static int delete_mesh(Object *obedit, wmOperator *op, int event) erase_vertices(em, &em->verts); EM_fgon_flags(em); // redo flags and indices for fgons - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); } else if(event==7) { if (!EDBM_CallOpf(bem, op, "dissolveverts verts=%hv",BM_SELECT)) @@ -1032,14 +1150,14 @@ static int delete_mesh(Object *obedit, wmOperator *op, int event) } else if(event==6) { if(!EdgeLoopDelete(em, op)) { - EM_EndEditMesh(obedit->data, em); - return; + BKE_mesh_end_editmesh(obedit->data, em); + return OPERATOR_CANCELLED; } str= "Erase Edge Loop"; EM_fgon_flags(em); // redo flags and indices for fgons - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); } else if(event==4) { str= "Erase Edges & Faces"; @@ -1084,7 +1202,7 @@ static int delete_mesh(Object *obedit, wmOperator *op, int event) } EM_fgon_flags(em); // redo flags and indices for fgons - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); } else if(event==1) { str= "Erase Edges"; @@ -1131,14 +1249,14 @@ static int delete_mesh(Object *obedit, wmOperator *op, int event) } EM_fgon_flags(em); // redo flags and indices for fgons - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); } else if(event==2) { str="Erase Faces"; delfaceflag(em, SELECT); EM_fgon_flags(em); // redo flags and indices for fgons - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); } else if(event==3) { str= "Erase All"; @@ -1148,7 +1266,7 @@ static int delete_mesh(Object *obedit, wmOperator *op, int event) if(em->selected.first) BLI_freelistN(&(em->selected)); EM_fgon_flags(em); // redo flags and indices for fgons - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); } else if(event==5) { if (!EDBM_CallOpf(bem, op, "del geom=%hf context=%d", @@ -1156,7 +1274,8 @@ static int delete_mesh(Object *obedit, wmOperator *op, int event) return OPERATOR_CANCELLED; str= "Erase Only Faces"; } - + + return OPERATOR_FINISHED; // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA); } @@ -2515,11 +2634,13 @@ void esubdivideflag(Object *obedit, EditMesh *em, int flag, float rad, int beaut } } } - sort[hold]->f &= ~SELECT; - sort[hold]->f2 |= EDGENEW; - length[hold] = -1; - } - } + if (hold > -1) { + sort[hold]->f &= ~SELECT; + sort[hold]->f2 |= EDGENEW; + length[hold] = -1; + } + } + } // Beauty Long Edges else { @@ -2536,13 +2657,15 @@ void esubdivideflag(Object *obedit, EditMesh *em, int flag, float rad, int beaut } } } - sort[hold]->f &= ~SELECT; - sort[hold]->f2 |= EDGENEW; - length[hold] = -1; - } - } + if (hold > -1) { + sort[hold]->f &= ~SELECT; + sort[hold]->f2 |= EDGENEW; + length[hold] = -1; + } + } + } } - } + } } gh = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp); @@ -3167,11 +3290,9 @@ void join_triangles(EditMesh *em) if(v1 && v2 && v3 && v4){ /*test if simple island first. This mimics 2.42 behaviour and the tests are less restrictive.*/ if(efaa[0]->tmp.l == 1 && efaa[1]->tmp.l == 1){ - if( convex(v1->co, v2->co, v3->co, v4->co) ){ - eed->f1 |= T2QJOIN; - efaa[0]->f1 = 1; //mark for join - efaa[1]->f1 = 1; //mark for join - } + eed->f1 |= T2QJOIN; + efaa[0]->f1 = 1; //mark for join + efaa[1]->f1 = 1; //mark for join } else{ @@ -3415,10 +3536,6 @@ static void edge_rotate(EditMesh *em, wmOperator *op, EditEdge *eed,int dir) if(numshared > 1) return; - /* coplaner faces only please */ - if(Inpf(face[0]->n,face[1]->n) <= 0.000001) - return; - /* we want to construct an array of vertex indicis in both faces, starting at the last vertex of the edge being rotated. - first we find the two vertices that lie on the rotating edge @@ -3549,7 +3666,7 @@ static void edge_rotate(EditMesh *em, wmOperator *op, EditEdge *eed,int dir) static int edge_rotate_selected(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); int dir = RNA_int_get(op->ptr,"dir"); // dir == 2 when clockwise and ==1 for counter CW. EditEdge *eed; @@ -3588,7 +3705,7 @@ static int edge_rotate_selected(bContext *C, wmOperator *op) else { BKE_report(op->reports, RPT_ERROR, "Select one edge or two adjacent faces"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } } @@ -3604,7 +3721,7 @@ static int edge_rotate_selected(bContext *C, wmOperator *op) else { BKE_report(op->reports, RPT_ERROR, "Select one edge or two adjacent faces"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -3616,7 +3733,7 @@ static int edge_rotate_selected(bContext *C, wmOperator *op) // DAG_object_flush_update(scene, obedit, OB_RECALC_DATA); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -3745,7 +3862,7 @@ useless: GHash *vertgh; SlideVert *tempsv; - float perc = 0, percp = 0,vertdist; // XXX, projectMat[4][4], viewMat[4][4]; + float perc = 0, percp = 0,vertdist; // XXX, projectMat[4][4]; float shiftlabda= 0.0f,len = 0.0f; int i = 0,j, numsel, numadded=0, timesthrough = 0, vertsel=0, prop=1, cancel = 0,flip=0; int wasshift = 0; @@ -3765,7 +3882,7 @@ useless: // initNumInput(&num); -// view3d_get_object_project_mat(curarea, obedit, projectMat, viewMat); +// view3d_get_object_project_mat(curarea, obedit, projectMat); mvalo[0] = -1; mvalo[1] = -1; numsel =0; @@ -4672,11 +4789,11 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event) ARegion *ar= CTX_wm_region(C); RegionView3D *rv3d= ar->regiondata; Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); EditVert *eve, *nextve; EditEdge *eed, *seed= NULL; EditFace *efa, *sefa= NULL; - float projectMat[4][4], vec[3], dist, mindist, viewMat[4][4]; + float projectMat[4][4], vec[3], dist, mindist; short doit= 1, *mval= event->mval; // XXX ,propmode,prop; @@ -4688,7 +4805,7 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event) /* select flush... vertices are important */ EM_selectmode_set(em); - view3d_get_object_project_mat(rv3d, obedit, projectMat, viewMat); + view3d_get_object_project_mat(rv3d, obedit, projectMat); /* find best face, exclude triangles and break on face select or faces with 2 edges select */ mindist= 1000000.0f; @@ -4716,12 +4833,12 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event) if(efa) { BKE_report(op->reports, RPT_ERROR, "Can't perform ripping with faces selected this way"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } if(sefa==NULL) { BKE_report(op->reports, RPT_ERROR, "No proper selection or faces included"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -4786,7 +4903,7 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event) if(seed==NULL) { // never happens? BKE_report(op->reports, RPT_ERROR, "No proper edge found to start"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -4876,7 +4993,7 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event) // scene->prop_mode = propmode; // XXX scene->proportional = prop; - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); #endif return OPERATOR_FINISHED; } @@ -5818,7 +5935,7 @@ void pathselect(EditMesh *em, wmOperator *op) static int region_to_loop(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); EditEdge *eed; EditFace *efa; @@ -5851,7 +5968,7 @@ static int region_to_loop(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -5996,7 +6113,7 @@ static int loop_bisect(EditMesh *em, Collection *edgecollection){ static int loop_to_region(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); EditFace *efa; @@ -6028,7 +6145,7 @@ static int loop_to_region(bContext *C, wmOperator *op) // if (EM_texFaceCheck()) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -6053,7 +6170,7 @@ void MESH_OT_loop_to_region(wmOperatorType *ot) static int mesh_rotate_uvs(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); EditFace *efa; short change = 0, ccw; @@ -6063,7 +6180,7 @@ static int mesh_rotate_uvs(bContext *C, wmOperator *op) if (!EM_texFaceCheck(em)) { BKE_report(op->reports, RPT_ERROR, "mesh has no uv/image layers"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -6120,14 +6237,14 @@ static int mesh_rotate_uvs(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); } - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } static int mesh_mirror_uvs(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); EditFace *efa; short change = 0, altaxis; @@ -6137,7 +6254,7 @@ static int mesh_mirror_uvs(bContext *C, wmOperator *op) if (!EM_texFaceCheck(em)) { BKE_report(op->reports, RPT_ERROR, "mesh has no uv/image layers"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -6209,14 +6326,14 @@ static int mesh_mirror_uvs(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); } - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } static int mesh_rotate_colors(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); EditFace *efa; short change = 0, ccw; @@ -6225,7 +6342,7 @@ static int mesh_rotate_colors(bContext *C, wmOperator *op) if (!EM_vertColorCheck(em)) { BKE_report(op->reports, RPT_ERROR, "mesh has no color layers"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -6265,7 +6382,7 @@ static int mesh_rotate_colors(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); } - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -6273,7 +6390,7 @@ static int mesh_rotate_colors(bContext *C, wmOperator *op) static int mesh_mirror_colors(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); EditFace *efa; short change = 0, altaxis; @@ -6282,7 +6399,7 @@ static int mesh_mirror_colors(bContext *C, wmOperator *op) if (!EM_vertColorCheck(em)) { BKE_report(op->reports, RPT_ERROR, "Mesh has no color layers"); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_CANCELLED; } @@ -6321,15 +6438,15 @@ static int mesh_mirror_colors(bContext *C, wmOperator *op) WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); } - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } -void MESH_OT_rotate_uvs(wmOperatorType *ot) +void MESH_OT_uvs_rotate(wmOperatorType *ot) { /* identifiers */ ot->name= "Rotate UVs"; - ot->idname= "MESH_OT_rotate_uvs"; + ot->idname= "MESH_OT_uvs_rotate"; /* api callbacks */ ot->exec= mesh_rotate_uvs; @@ -6339,11 +6456,11 @@ void MESH_OT_rotate_uvs(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -void MESH_OT_mirror_uvs(wmOperatorType *ot) +void MESH_OT_uvs_mirror(wmOperatorType *ot) { /* identifiers */ ot->name= "Mirror UVs"; - ot->idname= "MESH_OT_mirror_uvs"; + ot->idname= "MESH_OT_uvs_mirror"; /* api callbacks */ ot->exec= mesh_mirror_uvs; @@ -6353,11 +6470,11 @@ void MESH_OT_mirror_uvs(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -void MESH_OT_rotate_colors(wmOperatorType *ot) +void MESH_OT_colors_rotate(wmOperatorType *ot) { /* identifiers */ ot->name= "Rotate Colors"; - ot->idname= "MESH_OT_rotate_colors"; + ot->idname= "MESH_OT_colors_rotate"; /* api callbacks */ ot->exec= mesh_rotate_colors; @@ -6367,11 +6484,11 @@ void MESH_OT_rotate_colors(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -void MESH_OT_mirror_colors(wmOperatorType *ot) +void MESH_OT_colors_mirror(wmOperatorType *ot) { /* identifiers */ ot->name= "Mirror Colors"; - ot->idname= "MESH_OT_mirror_colors"; + ot->idname= "MESH_OT_colors_mirror"; /* api callbacks */ ot->exec= mesh_mirror_colors; @@ -6380,6 +6497,7 @@ void MESH_OT_mirror_colors(wmOperatorType *ot) /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } + /* ************************************* */ /* note; the EM_selectmode_set() calls here illustrate how badly constructed it all is... from before the @@ -6630,14 +6748,14 @@ static void fill_mesh(EditMesh *em) static int fill_mesh_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); fill_mesh(em); DAG_object_flush_update(CTX_data_scene(C), obedit, OB_RECALC_DATA); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -6659,13 +6777,13 @@ void MESH_OT_fill(wmOperatorType *ot) static int beauty_fill_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); beauty_fill(em); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -6683,7 +6801,7 @@ void MESH_OT_beauty_fill(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -static int convert_quads_to_tris_exec(bContext *C, wmOperator *op) +static int quads_convert_to_tris_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh; @@ -6697,41 +6815,41 @@ static int convert_quads_to_tris_exec(bContext *C, wmOperator *op) return OPERATOR_FINISHED; } -void MESH_OT_convert_quads_to_tris(wmOperatorType *ot) +void MESH_OT_quads_convert_to_tris(wmOperatorType *ot) { /* identifiers */ ot->name= "Quads to Tris"; - ot->idname= "MESH_OT_convert_quads_to_tris"; + ot->idname= "MESH_OT_quads_convert_to_tris"; /* api callbacks */ - ot->exec= convert_quads_to_tris_exec; + ot->exec= quads_convert_to_tris_exec; ot->poll= ED_operator_editmesh; /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } -static int convert_tris_to_quads_exec(bContext *C, wmOperator *op) +static int tris_convert_to_quads_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); join_triangles(em); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } -void MESH_OT_convert_tris_to_quads(wmOperatorType *ot) +void MESH_OT_tris_convert_to_quads(wmOperatorType *ot) { /* identifiers */ ot->name= "Tris to Quads"; - ot->idname= "MESH_OT_convert_tris_to_quads"; + ot->idname= "MESH_OT_tris_convert_to_quads"; /* api callbacks */ - ot->exec= convert_tris_to_quads_exec; + ot->exec= tris_convert_to_quads_exec; ot->poll= ED_operator_editmesh; /* flags */ @@ -6741,13 +6859,13 @@ void MESH_OT_convert_tris_to_quads(wmOperatorType *ot) static int edge_flip_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); edge_flip(em); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -6768,13 +6886,13 @@ void MESH_OT_edge_flip(wmOperatorType *ot) static int mesh_faces_shade_smooth_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); mesh_set_smooth_faces(em,1); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } @@ -6795,13 +6913,13 @@ void MESH_OT_faces_shade_smooth(wmOperatorType *ot) static int mesh_faces_shade_solid_exec(bContext *C, wmOperator *op) { Object *obedit= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh((Mesh *)obedit->data); + EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data); mesh_set_smooth_faces(em,0); WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); - EM_EndEditMesh(obedit->data, em); + BKE_mesh_end_editmesh(obedit->data, em); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h index 4f58ee5fea0..7e4d2fd6f06 100644 --- a/source/blender/editors/mesh/mesh_intern.h +++ b/source/blender/editors/mesh/mesh_intern.h @@ -111,18 +111,18 @@ void em_setup_viewcontext(struct bContext *C, struct ViewContext *vc); void MESH_OT_separate(struct wmOperatorType *ot); /* ******************* editmesh_add.c */ -void MESH_OT_add_primitive_plane(struct wmOperatorType *ot); -void MESH_OT_add_primitive_cube(struct wmOperatorType *ot); -void MESH_OT_add_primitive_circle(struct wmOperatorType *ot); -void MESH_OT_add_primitive_cylinder(struct wmOperatorType *ot); -void MESH_OT_add_primitive_tube(struct wmOperatorType *ot); -void MESH_OT_add_primitive_cone(struct wmOperatorType *ot); -void MESH_OT_add_primitive_grid(struct wmOperatorType *ot); -void MESH_OT_add_primitive_monkey(struct wmOperatorType *ot); -void MESH_OT_add_primitive_uv_sphere(struct wmOperatorType *ot); -void MESH_OT_add_primitive_ico_sphere(struct wmOperatorType *ot); +void MESH_OT_primitive_plane_add(struct wmOperatorType *ot); +void MESH_OT_primitive_cube_add(struct wmOperatorType *ot); +void MESH_OT_primitive_circle_add(struct wmOperatorType *ot); +void MESH_OT_primitive_cylinder_add(struct wmOperatorType *ot); +void MESH_OT_primitive_tube_add(struct wmOperatorType *ot); +void MESH_OT_primitive_cone_add(struct wmOperatorType *ot); +void MESH_OT_primitive_grid_add(struct wmOperatorType *ot); +void MESH_OT_primitive_monkey_add(struct wmOperatorType *ot); +void MESH_OT_primitive_uv_sphere_add(struct wmOperatorType *ot); +void MESH_OT_primitive_ico_sphere_add(struct wmOperatorType *ot); void MESH_OT_dupli_extrude_cursor(struct wmOperatorType *ot); -void MESH_OT_add_edge_face(struct wmOperatorType *ot); +void MESH_OT_edge_face_add(struct wmOperatorType *ot); void MESH_OT_fgon_make(struct wmOperatorType *ot); void MESH_OT_fgon_clear(struct wmOperatorType *ot); @@ -183,7 +183,7 @@ extern struct EditFace *EM_face_from_faces(EditMesh *em, struct EditFace *efa1, void MESH_OT_knife_cut(struct wmOperatorType *ot); /* ******************* editmesh_mods.c */ -void MESH_OT_select_loop(struct wmOperatorType *ot); +void MESH_OT_loop_select(struct wmOperatorType *ot); void MESH_OT_select_all_toggle(struct wmOperatorType *ot); void MESH_OT_bmesh_test(struct wmOperatorType *ot); void MESH_OT_select_more(struct wmOperatorType *ot); @@ -194,20 +194,20 @@ void MESH_OT_select_linked(struct wmOperatorType *ot); void MESH_OT_select_linked_pick(struct wmOperatorType *ot); void MESH_OT_hide(struct wmOperatorType *ot); void MESH_OT_reveal(struct wmOperatorType *ot); -void MESH_OT_consistant_normals(struct wmOperatorType *ot); -void MESH_OT_select_linked_flat_faces(struct wmOperatorType *ot); -void MESH_OT_select_sharp_edges(struct wmOperatorType *ot); -void MESH_OT_select_path_shortest(struct wmOperatorType *ot); -void MESH_OT_select_vertex_similar(struct wmOperatorType *ot); -void MESH_OT_select_edge_similar(struct wmOperatorType *ot); -void MESH_OT_select_face_similar(struct wmOperatorType *ot); +void MESH_OT_normals_make_consistent(struct wmOperatorType *ot); +void MESH_OT_faces_select_linked_flat(struct wmOperatorType *ot); +void MESH_OT_edges_select_sharp(struct wmOperatorType *ot); +void MESH_OT_select_shortest_path(struct wmOperatorType *ot); +void MESH_OT_vertices_select_similar(struct wmOperatorType *ot); +void MESH_OT_edges_select_similar(struct wmOperatorType *ot); +void MESH_OT_faces_select_similar(struct wmOperatorType *ot); void MESH_OT_select_random(struct wmOperatorType *ot); -void MESH_OT_vertices_to_sphere(struct wmOperatorType *ot); +void MESH_OT_vertices_transform_to_sphere(struct wmOperatorType *ot); void MESH_OT_selection_type(struct wmOperatorType *ot); -void MESH_OT_select_loop_multi(struct wmOperatorType *ot); +void MESH_OT_loop_multi_select(struct wmOperatorType *ot); void MESH_OT_mark_seam(struct wmOperatorType *ot); void MESH_OT_mark_sharp(struct wmOperatorType *ot); -void MESH_OT_smooth_vertex(struct wmOperatorType *ot); +void MESH_OT_vertices_smooth(struct wmOperatorType *ot); void MESH_OT_flip_editnormals(struct wmOperatorType *ot); extern EditEdge *findnearestedge(struct ViewContext *vc, int *dist); @@ -254,8 +254,8 @@ void MESH_OT_screw(struct wmOperatorType *ot); void MESH_OT_fill(struct wmOperatorType *ot); void MESH_OT_beauty_fill(struct wmOperatorType *ot); -void MESH_OT_convert_quads_to_tris(struct wmOperatorType *ot); -void MESH_OT_convert_tris_to_quads(struct wmOperatorType *ot); +void MESH_OT_quads_convert_to_tris(struct wmOperatorType *ot); +void MESH_OT_tris_convert_to_quads(struct wmOperatorType *ot); void MESH_OT_edge_flip(struct wmOperatorType *ot); void MESH_OT_faces_shade_smooth(struct wmOperatorType *ot); void MESH_OT_faces_shade_solid(struct wmOperatorType *ot); @@ -265,10 +265,10 @@ void MESH_OT_edge_rotate(struct wmOperatorType *ot); void MESH_OT_loop_to_region(struct wmOperatorType *ot); void MESH_OT_region_to_loop(struct wmOperatorType *ot); -void MESH_OT_rotate_uvs(struct wmOperatorType *ot); -void MESH_OT_mirror_uvs(struct wmOperatorType *ot); -void MESH_OT_rotate_colors(struct wmOperatorType *ot); -void MESH_OT_mirror_colors(struct wmOperatorType *ot); +void MESH_OT_uvs_rotate(struct wmOperatorType *ot); +void MESH_OT_uvs_mirror(struct wmOperatorType *ot); +void MESH_OT_colors_rotate(struct wmOperatorType *ot); +void MESH_OT_colors_mirror(struct wmOperatorType *ot); void MESH_OT_delete(struct wmOperatorType *ot); void MESH_OT_rip(struct wmOperatorType *ot); diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c index f5e3f12bc6d..e61deb1d554 100644 --- a/source/blender/editors/mesh/mesh_ops.c +++ b/source/blender/editors/mesh/mesh_ops.c @@ -45,6 +45,7 @@ #include "BKE_context.h" #include "BKE_global.h" +#include "BKE_mesh.h" #include "BKE_utildefines.h" #include "BKE_mesh.h" @@ -66,11 +67,11 @@ static int mesh_add_duplicate_exec(bContext *C, wmOperator *op) { Object *ob= CTX_data_edit_object(C); - EditMesh *em= EM_GetEditMesh(ob->data); + EditMesh *em= BKE_mesh_get_editmesh(ob->data); adduplicateflag(em, SELECT); - EM_EndEditMesh(ob->data, em); + BKE_mesh_end_editmesh(ob->data, em); return OPERATOR_FINISHED; } @@ -119,24 +120,24 @@ void ED_operatortypes_mesh(void) WM_operatortype_append(MESH_OT_selection_type); WM_operatortype_append(MESH_OT_hide); WM_operatortype_append(MESH_OT_reveal); - WM_operatortype_append(MESH_OT_consistant_normals); + WM_operatortype_append(MESH_OT_normals_make_consistent); WM_operatortype_append(MESH_OT_subdivide); WM_operatortype_append(MESH_OT_subdivide_multi); WM_operatortype_append(MESH_OT_subdivide_multi_fractal); WM_operatortype_append(MESH_OT_subdivide_smooth); WM_operatortype_append(MESH_OT_subdivs); - WM_operatortype_append(MESH_OT_select_linked_flat_faces); - WM_operatortype_append(MESH_OT_select_sharp_edges); - WM_operatortype_append(MESH_OT_add_primitive_plane); - WM_operatortype_append(MESH_OT_add_primitive_cube); - WM_operatortype_append(MESH_OT_add_primitive_circle); - WM_operatortype_append(MESH_OT_add_primitive_cylinder); - WM_operatortype_append(MESH_OT_add_primitive_tube); - WM_operatortype_append(MESH_OT_add_primitive_cone); - WM_operatortype_append(MESH_OT_add_primitive_grid); - WM_operatortype_append(MESH_OT_add_primitive_monkey); - WM_operatortype_append(MESH_OT_add_primitive_uv_sphere); - WM_operatortype_append(MESH_OT_add_primitive_ico_sphere); + WM_operatortype_append(MESH_OT_faces_select_linked_flat); + WM_operatortype_append(MESH_OT_edges_select_sharp); + WM_operatortype_append(MESH_OT_primitive_plane_add); + WM_operatortype_append(MESH_OT_primitive_cube_add); + WM_operatortype_append(MESH_OT_primitive_circle_add); + WM_operatortype_append(MESH_OT_primitive_cylinder_add); + WM_operatortype_append(MESH_OT_primitive_tube_add); + WM_operatortype_append(MESH_OT_primitive_cone_add); + WM_operatortype_append(MESH_OT_primitive_grid_add); + WM_operatortype_append(MESH_OT_primitive_monkey_add); + WM_operatortype_append(MESH_OT_primitive_uv_sphere_add); + WM_operatortype_append(MESH_OT_primitive_ico_sphere_add); WM_operatortype_append(MESH_OT_fgon_clear); WM_operatortype_append(MESH_OT_fgon_make); WM_operatortype_append(MESH_OT_duplicate_add); @@ -145,22 +146,22 @@ void ED_operatortypes_mesh(void) WM_operatortype_append(MESH_OT_spin); WM_operatortype_append(MESH_OT_screw); - WM_operatortype_append(MESH_OT_vertices_to_sphere); + WM_operatortype_append(MESH_OT_vertices_transform_to_sphere); WM_operatortype_append(MESH_OT_split); WM_operatortype_append(MESH_OT_extrude_repeat); WM_operatortype_append(MESH_OT_edge_rotate); WM_operatortype_append(MESH_OT_loop_to_region); WM_operatortype_append(MESH_OT_region_to_loop); - WM_operatortype_append(MESH_OT_rotate_uvs); - WM_operatortype_append(MESH_OT_mirror_uvs); - WM_operatortype_append(MESH_OT_rotate_colors); - WM_operatortype_append(MESH_OT_mirror_colors); + WM_operatortype_append(MESH_OT_uvs_rotate); + WM_operatortype_append(MESH_OT_uvs_mirror); + WM_operatortype_append(MESH_OT_colors_rotate); + WM_operatortype_append(MESH_OT_colors_mirror); WM_operatortype_append(MESH_OT_fill); WM_operatortype_append(MESH_OT_beauty_fill); - WM_operatortype_append(MESH_OT_convert_quads_to_tris); - WM_operatortype_append(MESH_OT_convert_tris_to_quads); + WM_operatortype_append(MESH_OT_quads_convert_to_tris); + WM_operatortype_append(MESH_OT_tris_convert_to_quads); WM_operatortype_append(MESH_OT_edge_flip); WM_operatortype_append(MESH_OT_faces_shade_smooth); WM_operatortype_append(MESH_OT_faces_shade_solid); @@ -169,16 +170,16 @@ void ED_operatortypes_mesh(void) WM_operatortype_append(MESH_OT_separate); WM_operatortype_append(MESH_OT_dupli_extrude_cursor); - WM_operatortype_append(MESH_OT_select_loop); - WM_operatortype_append(MESH_OT_add_edge_face); - WM_operatortype_append(MESH_OT_select_path_shortest); - WM_operatortype_append(MESH_OT_select_vertex_similar); - WM_operatortype_append(MESH_OT_select_edge_similar); - WM_operatortype_append(MESH_OT_select_face_similar); - WM_operatortype_append(MESH_OT_select_loop_multi); + WM_operatortype_append(MESH_OT_loop_select); + WM_operatortype_append(MESH_OT_edge_face_add); + WM_operatortype_append(MESH_OT_select_shortest_path); + WM_operatortype_append(MESH_OT_vertices_select_similar); + WM_operatortype_append(MESH_OT_edges_select_similar); + WM_operatortype_append(MESH_OT_faces_select_similar); + WM_operatortype_append(MESH_OT_loop_multi_select); WM_operatortype_append(MESH_OT_mark_seam); WM_operatortype_append(MESH_OT_mark_sharp); - WM_operatortype_append(MESH_OT_smooth_vertex); + WM_operatortype_append(MESH_OT_vertices_smooth); WM_operatortype_append(MESH_OT_flip_editnormals); WM_operatortype_append(MESH_OT_knife_cut); @@ -195,16 +196,16 @@ void ED_keymap_mesh(wmWindowManager *wm) /* selecting */ /* standard mouse selection goes via space_view3d */ - WM_keymap_add_item(keymap, "MESH_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_ALT, 0); - kmi= WM_keymap_add_item(keymap, "MESH_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0); + WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0); + kmi= WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0); RNA_boolean_set(kmi->ptr, "extend", 1); - kmi= WM_keymap_add_item(keymap, "MESH_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_ALT|KM_CTRL, 0); + kmi= WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_ALT|KM_CTRL, 0); RNA_boolean_set(kmi->ptr, "ring", 1); - kmi= WM_keymap_add_item(keymap, "MESH_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_ALT|KM_CTRL, 0); + kmi= WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_ALT|KM_CTRL, 0); RNA_boolean_set(kmi->ptr, "extend", 1); RNA_boolean_set(kmi->ptr, "ring", 1); - WM_keymap_add_item(keymap, "MESH_OT_select_path_shortest", SELECTMOUSE, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "MESH_OT_select_shortest_path", SELECTMOUSE, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "MESH_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MESH_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0); @@ -216,11 +217,11 @@ void ED_keymap_mesh(wmWindowManager *wm) WM_keymap_add_item(keymap, "MESH_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0); RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "deselect", 1); - RNA_float_set(WM_keymap_add_item(keymap, "MESH_OT_select_linked_flat_faces", FKEY, KM_PRESS, (KM_CTRL|KM_SHIFT|KM_ALT), 0)->ptr,"sharpness",135.0); - RNA_float_set(WM_keymap_add_item(keymap, "MESH_OT_select_sharp_edges", SKEY, KM_PRESS, (KM_CTRL|KM_SHIFT|KM_ALT), 0)->ptr,"sharpness",135.0); + RNA_float_set(WM_keymap_add_item(keymap, "MESH_OT_faces_select_linked_flat", FKEY, KM_PRESS, (KM_CTRL|KM_SHIFT|KM_ALT), 0)->ptr,"sharpness",135.0); + RNA_float_set(WM_keymap_add_item(keymap, "MESH_OT_edges_select_sharp", SKEY, KM_PRESS, (KM_CTRL|KM_SHIFT|KM_ALT), 0)->ptr,"sharpness",135.0); WM_keymap_add_item(keymap, "MESH_OT_select_random", SPACEKEY, KM_PRESS, 0, 0); - WM_keymap_add_item(keymap, "MESH_OT_vertices_to_sphere", SKEY, KM_PRESS, KM_CTRL|KM_SHIFT , 0); + WM_keymap_add_item(keymap, "MESH_OT_vertices_transform_to_sphere", SKEY, KM_PRESS, KM_CTRL|KM_SHIFT , 0); WM_keymap_add_item(keymap, "MESH_OT_mark_seam", ONEKEY, KM_PRESS, KM_CTRL , 0); RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_mark_seam", ONEKEY, KM_PRESS, KM_ALT , 0)->ptr,"clear",1); @@ -229,9 +230,9 @@ void ED_keymap_mesh(wmWindowManager *wm) RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_mark_sharp", TWOKEY, KM_PRESS, KM_ALT , 0)->ptr,"set",1); /* temp hotkeys! */ - WM_keymap_add_item(keymap, "MESH_OT_select_vertex_similar", GKEY, KM_PRESS, KM_SHIFT, 0); - WM_keymap_add_item(keymap, "MESH_OT_select_edge_similar", GKEY, KM_PRESS, KM_SHIFT2|KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_select_face_similar", GKEY, KM_PRESS, KM_SHIFT|KM_CTRL2, 0); + WM_keymap_add_item(keymap, "MESH_OT_vertices_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_item(keymap, "MESH_OT_edges_select_similar", GKEY, KM_PRESS, KM_SHIFT2|KM_CTRL, 0); + WM_keymap_add_item(keymap, "MESH_OT_faces_select_similar", GKEY, KM_PRESS, KM_SHIFT|KM_CTRL2, 0); /* selection mode */ WM_keymap_add_item(keymap, "MESH_OT_selection_type", TABKEY, KM_PRESS, KM_CTRL, 0); @@ -242,9 +243,9 @@ void ED_keymap_mesh(wmWindowManager *wm) WM_keymap_add_item(keymap, "MESH_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0); /* tools */ - WM_keymap_add_item(keymap, "MESH_OT_consistant_normals", NKEY, KM_PRESS, KM_CTRL, 0); - RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_consistant_normals", NKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0)->ptr, "inside", 1); - WM_keymap_add_item(keymap, "MESH_OT_smooth_vertex", THREEKEY, KM_PRESS, KM_CTRL , 0); + WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0); + RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0)->ptr, "inside", 1); + WM_keymap_add_item(keymap, "MESH_OT_vertices_smooth", THREEKEY, KM_PRESS, KM_CTRL , 0); WM_keymap_add_item(keymap, "MESH_OT_flip_editnormals", THREEKEY, KM_PRESS, KM_ALT , 0); WM_keymap_add_item(keymap, "MESH_OT_subdivs", WKEY, KM_PRESS, 0, 0); // this is the menu @@ -260,8 +261,8 @@ void ED_keymap_mesh(wmWindowManager *wm) WM_keymap_add_item(keymap, "VIEW3D_OT_editmesh_face_toolbox", FKEY, KM_PRESS, KM_CTRL, 0); /* operators below are in this toolbox */ WM_keymap_add_item(keymap, "MESH_OT_fill", FKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "MESH_OT_beauty_fill", FKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "MESH_OT_convert_quads_to_tris", TKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_convert_tris_to_quads", JKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "MESH_OT_quads_convert_to_tris", TKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "MESH_OT_tris_convert_to_quads", JKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "MESH_OT_split", FOURKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "MESH_OT_extrude_repeat", FOURKEY, KM_PRESS, KM_ALT, 0); @@ -270,15 +271,15 @@ void ED_keymap_mesh(wmWindowManager *wm) WM_keymap_add_item(keymap, "MESH_OT_loop_to_region",SIXKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "MESH_OT_region_to_loop",SIXKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "MESH_OT_rotate_uvs",SEVENKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_mirror_uvs",SEVENKEY, KM_PRESS, KM_ALT, 0); - WM_keymap_add_item(keymap, "MESH_OT_rotate_colors",EIGHTKEY, KM_PRESS, KM_CTRL, 0); - WM_keymap_add_item(keymap, "MESH_OT_mirror_colors",EIGHTKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "MESH_OT_uvs_rotate",SEVENKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "MESH_OT_uvs_mirror",SEVENKEY, KM_PRESS, KM_ALT, 0); + WM_keymap_add_item(keymap, "MESH_OT_colors_rotate",EIGHTKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "MESH_OT_colors_mirror",EIGHTKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "MESH_OT_rip",VKEY, KM_PRESS, 0, 0); /* add/remove */ - WM_keymap_add_item(keymap, "MESH_OT_add_edge_face", FKEY, KM_PRESS, 0, 0); + WM_keymap_add_item(keymap, "MESH_OT_edge_face_add", FKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "MESH_OT_duplicate_add", DKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "OBJECT_OT_mesh_add", AKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "MESH_OT_separate", PKEY, KM_PRESS, KM_SHIFT, 0); |