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.");


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to