[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24853] trunk/blender: - added rna api function scene.update(), needed for rig generation to update driver deps

Campbell Barton ideasman42 at gmail.com
Tue Nov 24 10:24:33 CET 2009


Revision: 24853
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24853
Author:   campbellbarton
Date:     2009-11-24 10:24:32 +0100 (Tue, 24 Nov 2009)

Log Message:
-----------
- added rna api function scene.update(), needed for rig generation to update driver deps
- removed some warnings

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/rigify.py
    trunk/blender/source/blender/blenkernel/BKE_constraint.h
    trunk/blender/source/blender/blenkernel/intern/action.c
    trunk/blender/source/blender/blenkernel/intern/constraint.c
    trunk/blender/source/blender/blenlib/BLI_listbase.h
    trunk/blender/source/blender/blenlib/intern/listbase.c
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/makesrna/intern/rna_scene_api.c

Modified: trunk/blender/release/scripts/modules/rigify.py
===================================================================
--- trunk/blender/release/scripts/modules/rigify.py	2009-11-24 05:57:47 UTC (rev 24852)
+++ trunk/blender/release/scripts/modules/rigify.py	2009-11-24 09:24:32 UTC (rev 24853)
@@ -231,7 +231,9 @@
         bpy.ops.object.mode_set(mode='EDIT')
         func(ob_new, pbone_name)
         bpy.ops.object.mode_set(mode='OBJECT')
+    
+    # needed to update driver deps
+    context.scene.update()
 
-
 if __name__ == "__main__":
     generate_rig(bpy.context, bpy.context.object)

Modified: trunk/blender/source/blender/blenkernel/BKE_constraint.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_constraint.h	2009-11-24 05:57:47 UTC (rev 24852)
+++ trunk/blender/source/blender/blenkernel/BKE_constraint.h	2009-11-24 09:24:32 UTC (rev 24853)
@@ -114,7 +114,7 @@
 void unique_constraint_name(struct bConstraint *con, struct ListBase *list);
 
 void free_constraints(struct ListBase *list);
-void copy_constraints(struct ListBase *dst, struct ListBase *src);
+void copy_constraints(struct ListBase *dst, const struct ListBase *src);
 void relink_constraints(struct ListBase *list);
 void free_constraint_data(struct bConstraint *con);
 

Modified: trunk/blender/source/blender/blenkernel/intern/action.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/action.c	2009-11-24 05:57:47 UTC (rev 24852)
+++ trunk/blender/source/blender/blenkernel/intern/action.c	2009-11-24 09:24:32 UTC (rev 24853)
@@ -153,7 +153,6 @@
 	}
 }
 
-
 void free_action (bAction *act)
 {
 	/* sanity check */

Modified: trunk/blender/source/blender/blenkernel/intern/constraint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/constraint.c	2009-11-24 05:57:47 UTC (rev 24852)
+++ trunk/blender/source/blender/blenkernel/intern/constraint.c	2009-11-24 09:24:32 UTC (rev 24853)
@@ -3788,7 +3788,7 @@
 /* ......... */
 
 /* duplicate all of the constraints in a constraint stack */
-void copy_constraints (ListBase *dst, ListBase *src)
+void copy_constraints (ListBase *dst, const ListBase *src)
 {
 	bConstraint *con, *srccon;
 	

Modified: trunk/blender/source/blender/blenlib/BLI_listbase.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_listbase.h	2009-11-24 05:57:47 UTC (rev 24852)
+++ trunk/blender/source/blender/blenlib/BLI_listbase.h	2009-11-24 09:24:32 UTC (rev 24853)
@@ -55,7 +55,7 @@
 void BLI_freelist(struct ListBase *listbase);
 int BLI_countlist(struct ListBase *listbase);
 void BLI_freelinkN(struct ListBase *listbase, void *vlink);
-void BLI_duplicatelist(struct ListBase *list1, struct ListBase *list2);  /* copy from 2 to 1 */
+void BLI_duplicatelist(struct ListBase *list1, const struct ListBase *list2);
 
 /* create a generic list node containing link to provided data */
 struct LinkData *BLI_genericNodeN(void *data);

Modified: trunk/blender/source/blender/blenlib/intern/listbase.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/listbase.c	2009-11-24 05:57:47 UTC (rev 24852)
+++ trunk/blender/source/blender/blenlib/intern/listbase.c	2009-11-24 09:24:32 UTC (rev 24853)
@@ -343,7 +343,7 @@
 	return -1;
 }
 
-void BLI_duplicatelist(ListBase *list1, ListBase *list2)  /* copy from 2 to 1 */
+void BLI_duplicatelist(ListBase *list1, const ListBase *list2)
 {
 	struct Link *link1, *link2;
 	

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2009-11-24 05:57:47 UTC (rev 24852)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2009-11-24 09:24:32 UTC (rev 24853)
@@ -616,26 +616,21 @@
 					// XXX currently this should only happen for meshes, curves, surfaces, and lattices - this stuff isn't available for metas yet
 					if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE)) 
 					{
-						switch (partype) 
-						{
-							case PAR_CURVE: /* curve deform */
-							{
-								CurveModifierData *cmd= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Curve);
-								cmd->object= par;
-							}
-								break;
-							case PAR_LATTICE: /* lattice deform */
-							{
-								LatticeModifierData *lmd= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Lattice);
-								lmd->object= par;
-							}
-								break;
-							default: /* armature deform */
-							{
-								ArmatureModifierData *amd= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Armature);
-								amd->object= par;
-							}
-								break;
+						ModifierData *md;
+
+						switch (partype) {
+						case PAR_CURVE: /* curve deform */
+							md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Curve);
+							((CurveModifierData *)md)->object= par;
+							break;
+						case PAR_LATTICE: /* lattice deform */
+							md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Lattice);
+							((LatticeModifierData *)md)->object= par;
+							break;
+						default: /* armature deform */
+							md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Armature);
+							((ArmatureModifierData *)md)->object= par;
+							break;
 						}
 					}
 				}

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene_api.c	2009-11-24 05:57:47 UTC (rev 24852)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene_api.c	2009-11-24 09:24:32 UTC (rev 24853)
@@ -44,18 +44,31 @@
 #include "BKE_depsgraph.h"
 
 #include "ED_object.h"
+#include "ED_anim_api.h"
 
 #include "WM_api.h"
 
-static void rna_Scene_set_frame(Scene *sce, bContext *C, int frame)
+static void rna_Scene_set_frame(Scene *scene, bContext *C, int frame)
 {
-	sce->r.cfra= frame;
-	CLAMP(sce->r.cfra, MINAFRAME, MAXFRAME);
-	scene_update_for_newframe(sce, (1<<20) - 1);
+	scene->r.cfra= frame;
+	CLAMP(scene->r.cfra, MINAFRAME, MAXFRAME);
+	scene_update_for_newframe(scene, (1<<20) - 1);
 
-	WM_event_add_notifier(C, NC_SCENE|ND_FRAME, sce);
+	WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
 }
 
+static void rna_Scene_update(Scene *scene, bContext *C)
+{
+	/* added to update driver deps, copied from do_graph_region_driver_buttons
+	 * but can be extended with update options */
+
+	/* rebuild depsgraph for the new deps */
+	DAG_scene_sort(scene);
+
+	/* force an update of depsgraph */
+	ED_anim_dag_flush_update(C);
+}
+
 static KeyingSet *rna_Scene_add_keying_set(Scene *sce, ReportList *reports, 
 		char name[], int absolute, int insertkey_needed, int insertkey_visual)
 {
@@ -96,6 +109,10 @@
 	parm= RNA_def_int(func, "frame", 0, MINAFRAME, MAXFRAME, "", "Frame number to set.", MINAFRAME, MAXFRAME);
 	RNA_def_property_flag(parm, PROP_REQUIRED);
 
+	func= RNA_def_function(srna, "update", "rna_Scene_update");
+	RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+	RNA_def_function_ui_description(func, "Rebuild the scene dependancy graph.");
+
 	/* Add Keying Set */
 	func= RNA_def_function(srna, "add_keying_set", "rna_Scene_add_keying_set");
 	RNA_def_function_ui_description(func, "Add a new Keying Set to Scene.");





More information about the Bf-blender-cvs mailing list