[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24119] trunk/blender: Shape Propagate to all back in vertex menu

Campbell Barton ideasman42 at gmail.com
Tue Oct 27 16:40:56 CET 2009


Revision: 24119
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24119
Author:   campbellbarton
Date:     2009-10-27 16:40:56 +0100 (Tue, 27 Oct 2009)

Log Message:
-----------
Shape Propagate to all back in vertex menu

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_view3d.py
    trunk/blender/source/blender/editors/mesh/editmesh_tools.c
    trunk/blender/source/blender/editors/mesh/mesh_intern.h
    trunk/blender/source/blender/editors/mesh/mesh_ops.c

Modified: trunk/blender/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py	2009-10-27 15:25:27 UTC (rev 24118)
+++ trunk/blender/release/scripts/ui/space_view3d.py	2009-10-27 15:40:56 UTC (rev 24119)
@@ -808,7 +808,7 @@
 		layout.itemO("mesh.faces_shade_smooth")
 		layout.itemO("mesh.faces_shade_flat")
 		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")
 
 class VIEW3D_MT_edit_mesh_vertices(bpy.types.Menu):
@@ -833,7 +833,7 @@
 		layout.itemO("mesh.blend_from_shape")
 		
 		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):
 	__label__ = "Edges"

Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2009-10-27 15:25:27 UTC (rev 24118)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c	2009-10-27 15:40:56 UTC (rev 24119)
@@ -5023,14 +5023,12 @@
 
 /************************ Shape Operators *************************/
 
-#if 0
-void shape_propagate(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op)
+static void shape_propagate(Object *obedit, EditMesh *em, wmOperator *op)
 {
 	EditVert *ev = NULL;
 	Mesh* me = (Mesh*)obedit->data;
 	Key*  ky = NULL;
 	KeyBlock* kb = NULL;
-	Base* base=NULL;
 
 
 	if(me->key){
@@ -5055,18 +5053,50 @@
 		return;
 	}
 
+#if 0
 	//TAG Mesh Objects that share this data
 	for(base = scene->base.first; base; base = base->next){
 		if(base->object && base->object->data == me){
 			base->object->recalc = OB_RECALC_DATA;
 		}
 	}
+#endif
 
 	DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
 	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)
 {
 	Object *obedit= CTX_data_edit_object(C);

Modified: trunk/blender/source/blender/editors/mesh/mesh_intern.h
===================================================================
--- trunk/blender/source/blender/editors/mesh/mesh_intern.h	2009-10-27 15:25:27 UTC (rev 24118)
+++ trunk/blender/source/blender/editors/mesh/mesh_intern.h	2009-10-27 15:40:56 UTC (rev 24119)
@@ -226,6 +226,7 @@
 void MESH_OT_delete(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);
 
 /* ******************* mesh_layers.c */

Modified: trunk/blender/source/blender/editors/mesh/mesh_ops.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/mesh_ops.c	2009-10-27 15:25:27 UTC (rev 24118)
+++ trunk/blender/source/blender/editors/mesh/mesh_ops.c	2009-10-27 15:40:56 UTC (rev 24119)
@@ -139,6 +139,7 @@
 	WM_operatortype_append(MESH_OT_knife_cut);
 	WM_operatortype_append(MESH_OT_rip);
 	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_remove);





More information about the Bf-blender-cvs mailing list