forked from bartvdbraak/blender
add back 2.4x mesh vertex sort/randomize operators, were called xsort and hash in 2.4x.
available from vertex menu.
This commit is contained in:
parent
0a7fecac8f
commit
2f472ccd60
@ -1507,6 +1507,8 @@ class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
|
||||
|
||||
layout.operator("mesh.vertices_smooth")
|
||||
layout.operator("mesh.remove_doubles")
|
||||
layout.operator("mesh.vertices_sort")
|
||||
layout.operator("mesh.vertices_randomize")
|
||||
|
||||
layout.operator("mesh.select_vertex_path")
|
||||
|
||||
|
@ -563,6 +563,29 @@ static void xsortvert_flag(bContext *C, int flag)
|
||||
|
||||
}
|
||||
|
||||
static int mesh_vertices_sort_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
xsortvert_flag(C, SELECT);
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
void MESH_OT_vertices_sort(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Vertex Sort";
|
||||
ot->description= "Sort vertex order";
|
||||
ot->idname= "MESH_OT_vertices_sort";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= mesh_vertices_sort_exec;
|
||||
|
||||
ot->poll= EM_view3d_poll; /* uses view relative X axis to sort verts */
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
}
|
||||
|
||||
|
||||
/* called from buttons */
|
||||
static void hashvert_flag(EditMesh *em, int flag)
|
||||
{
|
||||
@ -621,6 +644,31 @@ static void hashvert_flag(EditMesh *em, int flag)
|
||||
|
||||
}
|
||||
|
||||
static int mesh_vertices_randomize_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
Object *obedit= CTX_data_edit_object(C);
|
||||
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
|
||||
hashvert_flag(em, SELECT);
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
void MESH_OT_vertices_randomize(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name= "Vertex Randomize";
|
||||
ot->description= "Randomize vertex order";
|
||||
ot->idname= "MESH_OT_vertices_randomize";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec= mesh_vertices_randomize_exec;
|
||||
|
||||
ot->poll= ED_operator_editmesh;
|
||||
|
||||
/* flags */
|
||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||
}
|
||||
|
||||
|
||||
/* generic extern called extruder */
|
||||
static void extrude_mesh(Object *obedit, EditMesh *em, wmOperator *op, short type)
|
||||
{
|
||||
|
@ -205,6 +205,8 @@ int EdgeSlide(EditMesh *em, struct wmOperator *op, short immediate, float imperc
|
||||
void MESH_OT_merge(struct wmOperatorType *ot);
|
||||
void MESH_OT_subdivide(struct wmOperatorType *ot);
|
||||
void MESH_OT_remove_doubles(struct wmOperatorType *ot);
|
||||
void MESH_OT_vertices_randomize(struct wmOperatorType *ot);
|
||||
void MESH_OT_vertices_sort(struct wmOperatorType *ot);
|
||||
void MESH_OT_extrude(struct wmOperatorType *ot);
|
||||
void MESH_OT_spin(struct wmOperatorType *ot);
|
||||
void MESH_OT_screw(struct wmOperatorType *ot);
|
||||
|
@ -86,6 +86,8 @@ void ED_operatortypes_mesh(void)
|
||||
WM_operatortype_append(MESH_OT_fgon_make);
|
||||
WM_operatortype_append(MESH_OT_duplicate);
|
||||
WM_operatortype_append(MESH_OT_remove_doubles);
|
||||
WM_operatortype_append(MESH_OT_vertices_sort);
|
||||
WM_operatortype_append(MESH_OT_vertices_randomize);
|
||||
WM_operatortype_append(MESH_OT_extrude);
|
||||
WM_operatortype_append(MESH_OT_spin);
|
||||
WM_operatortype_append(MESH_OT_screw);
|
||||
@ -146,6 +148,7 @@ void ED_operatortypes_mesh(void)
|
||||
WM_operatortype_append(MESH_OT_select_nth);
|
||||
}
|
||||
|
||||
#if 0 /* UNUSED, remove? */
|
||||
static int ED_operator_editmesh_face_select(bContext *C)
|
||||
{
|
||||
Object *obedit= CTX_data_edit_object(C);
|
||||
@ -157,6 +160,7 @@ static int ED_operator_editmesh_face_select(bContext *C)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
void ED_operatormacros_mesh(void)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user