forked from bartvdbraak/blender
Shape Propagate to all back in vertex menu
This commit is contained in:
parent
4e7768066e
commit
d160891c36
@ -808,7 +808,7 @@ class VIEW3D_MT_edit_mesh_specials(bpy.types.Menu):
|
|||||||
layout.itemO("mesh.faces_shade_smooth")
|
layout.itemO("mesh.faces_shade_smooth")
|
||||||
layout.itemO("mesh.faces_shade_flat")
|
layout.itemO("mesh.faces_shade_flat")
|
||||||
layout.itemO("mesh.blend_from_shape")
|
layout.itemO("mesh.blend_from_shape")
|
||||||
# layout.itemO("mesh.shape_propagate_to_all")
|
layout.itemO("mesh.shape_propagate_to_all")
|
||||||
layout.itemO("mesh.select_vertex_path")
|
layout.itemO("mesh.select_vertex_path")
|
||||||
|
|
||||||
class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
|
class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
|
||||||
@ -833,7 +833,7 @@ class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
|
|||||||
layout.itemO("mesh.blend_from_shape")
|
layout.itemO("mesh.blend_from_shape")
|
||||||
|
|
||||||
layout.itemO("object.vertex_group_blend")
|
layout.itemO("object.vertex_group_blend")
|
||||||
# uiItemO(layout, "Propagate to All Shapes", 0, "mesh.shape_propagate_to_all");
|
layout.itemO("mesh.shape_propagate_to_all")
|
||||||
|
|
||||||
class VIEW3D_MT_edit_mesh_edges(bpy.types.Menu):
|
class VIEW3D_MT_edit_mesh_edges(bpy.types.Menu):
|
||||||
__label__ = "Edges"
|
__label__ = "Edges"
|
||||||
|
@ -5023,14 +5023,12 @@ void MESH_OT_rip(wmOperatorType *ot)
|
|||||||
|
|
||||||
/************************ Shape Operators *************************/
|
/************************ Shape Operators *************************/
|
||||||
|
|
||||||
#if 0
|
static void shape_propagate(Object *obedit, EditMesh *em, wmOperator *op)
|
||||||
void shape_propagate(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op)
|
|
||||||
{
|
{
|
||||||
EditVert *ev = NULL;
|
EditVert *ev = NULL;
|
||||||
Mesh* me = (Mesh*)obedit->data;
|
Mesh* me = (Mesh*)obedit->data;
|
||||||
Key* ky = NULL;
|
Key* ky = NULL;
|
||||||
KeyBlock* kb = NULL;
|
KeyBlock* kb = NULL;
|
||||||
Base* base=NULL;
|
|
||||||
|
|
||||||
|
|
||||||
if(me->key){
|
if(me->key){
|
||||||
@ -5055,17 +5053,49 @@ void shape_propagate(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
//TAG Mesh Objects that share this data
|
//TAG Mesh Objects that share this data
|
||||||
for(base = scene->base.first; base; base = base->next){
|
for(base = scene->base.first; base; base = base->next){
|
||||||
if(base->object && base->object->data == me){
|
if(base->object && base->object->data == me){
|
||||||
base->object->recalc = OB_RECALC_DATA;
|
base->object->recalc = OB_RECALC_DATA;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
|
DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
static int shape_propagate_to_all_exec(bContext *C, wmOperator *op)
|
||||||
|
{
|
||||||
|
Object *obedit= CTX_data_edit_object(C);
|
||||||
|
Mesh *me= obedit->data;
|
||||||
|
EditMesh *em= BKE_mesh_get_editmesh(me);
|
||||||
|
|
||||||
|
shape_propagate(obedit, em, op);
|
||||||
|
|
||||||
|
DAG_id_flush_update(&me->id, OB_RECALC_DATA);
|
||||||
|
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
|
||||||
|
|
||||||
|
return OPERATOR_FINISHED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MESH_OT_shape_propagate_to_all(wmOperatorType *ot)
|
||||||
|
{
|
||||||
|
/* identifiers */
|
||||||
|
ot->name= "Shape Propagate";
|
||||||
|
ot->description= "Apply selected vertex locations to all other shape keys.";
|
||||||
|
ot->idname= "MESH_OT_shape_propagate_to_all";
|
||||||
|
|
||||||
|
/* api callbacks */
|
||||||
|
ot->exec= shape_propagate_to_all_exec;
|
||||||
|
ot->poll= ED_operator_editmesh;
|
||||||
|
|
||||||
|
/* flags */
|
||||||
|
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||||
|
}
|
||||||
|
|
||||||
static int blend_from_shape_exec(bContext *C, wmOperator *op)
|
static int blend_from_shape_exec(bContext *C, wmOperator *op)
|
||||||
{
|
{
|
||||||
|
@ -226,6 +226,7 @@ void MESH_OT_colors_mirror(struct wmOperatorType *ot);
|
|||||||
void MESH_OT_delete(struct wmOperatorType *ot);
|
void MESH_OT_delete(struct wmOperatorType *ot);
|
||||||
void MESH_OT_rip(struct wmOperatorType *ot);
|
void MESH_OT_rip(struct wmOperatorType *ot);
|
||||||
|
|
||||||
|
void MESH_OT_shape_propagate_to_all(struct wmOperatorType *ot);
|
||||||
void MESH_OT_blend_from_shape(struct wmOperatorType *ot);
|
void MESH_OT_blend_from_shape(struct wmOperatorType *ot);
|
||||||
|
|
||||||
/* ******************* mesh_layers.c */
|
/* ******************* mesh_layers.c */
|
||||||
|
@ -139,6 +139,7 @@ void ED_operatortypes_mesh(void)
|
|||||||
WM_operatortype_append(MESH_OT_knife_cut);
|
WM_operatortype_append(MESH_OT_knife_cut);
|
||||||
WM_operatortype_append(MESH_OT_rip);
|
WM_operatortype_append(MESH_OT_rip);
|
||||||
WM_operatortype_append(MESH_OT_blend_from_shape);
|
WM_operatortype_append(MESH_OT_blend_from_shape);
|
||||||
|
WM_operatortype_append(MESH_OT_shape_propagate_to_all);
|
||||||
|
|
||||||
WM_operatortype_append(MESH_OT_uv_texture_add);
|
WM_operatortype_append(MESH_OT_uv_texture_add);
|
||||||
WM_operatortype_append(MESH_OT_uv_texture_remove);
|
WM_operatortype_append(MESH_OT_uv_texture_remove);
|
||||||
|
Loading…
Reference in New Issue
Block a user