[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