forked from bartvdbraak/blender
- added rna api function scene.update(), needed for rig generation to update driver deps
- removed some warnings
This commit is contained in:
parent
85301a57bf
commit
d55ac4da2b
@ -231,7 +231,9 @@ def generate_rig(context, ob):
|
|||||||
bpy.ops.object.mode_set(mode='EDIT')
|
bpy.ops.object.mode_set(mode='EDIT')
|
||||||
func(ob_new, pbone_name)
|
func(ob_new, pbone_name)
|
||||||
bpy.ops.object.mode_set(mode='OBJECT')
|
bpy.ops.object.mode_set(mode='OBJECT')
|
||||||
|
|
||||||
|
# needed to update driver deps
|
||||||
|
context.scene.update()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
generate_rig(bpy.context, bpy.context.object)
|
generate_rig(bpy.context, bpy.context.object)
|
||||||
|
@ -114,7 +114,7 @@ bConstraintTypeInfo *get_constraint_typeinfo(int type);
|
|||||||
void unique_constraint_name(struct bConstraint *con, struct ListBase *list);
|
void unique_constraint_name(struct bConstraint *con, struct ListBase *list);
|
||||||
|
|
||||||
void free_constraints(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 relink_constraints(struct ListBase *list);
|
||||||
void free_constraint_data(struct bConstraint *con);
|
void free_constraint_data(struct bConstraint *con);
|
||||||
|
|
||||||
|
@ -153,7 +153,6 @@ void make_local_action(bAction *act)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void free_action (bAction *act)
|
void free_action (bAction *act)
|
||||||
{
|
{
|
||||||
/* sanity check */
|
/* sanity check */
|
||||||
|
@ -3788,7 +3788,7 @@ void relink_constraints (ListBase *conlist)
|
|||||||
/* ......... */
|
/* ......... */
|
||||||
|
|
||||||
/* duplicate all of the constraints in a constraint stack */
|
/* 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;
|
bConstraint *con, *srccon;
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ void BLI_sortlist(struct ListBase *listbase, int (*cmp)(void *, void *));
|
|||||||
void BLI_freelist(struct ListBase *listbase);
|
void BLI_freelist(struct ListBase *listbase);
|
||||||
int BLI_countlist(struct ListBase *listbase);
|
int BLI_countlist(struct ListBase *listbase);
|
||||||
void BLI_freelinkN(struct ListBase *listbase, void *vlink);
|
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 */
|
/* create a generic list node containing link to provided data */
|
||||||
struct LinkData *BLI_genericNodeN(void *data);
|
struct LinkData *BLI_genericNodeN(void *data);
|
||||||
|
@ -343,7 +343,7 @@ int BLI_findindex(ListBase *listbase, void *vlink)
|
|||||||
return -1;
|
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;
|
struct Link *link1, *link2;
|
||||||
|
|
||||||
|
@ -616,26 +616,21 @@ static int parent_set_exec(bContext *C, wmOperator *op)
|
|||||||
// XXX currently this should only happen for meshes, curves, surfaces, and lattices - this stuff isn't available for metas yet
|
// 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))
|
if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE))
|
||||||
{
|
{
|
||||||
switch (partype)
|
ModifierData *md;
|
||||||
{
|
|
||||||
case PAR_CURVE: /* curve deform */
|
switch (partype) {
|
||||||
{
|
case PAR_CURVE: /* curve deform */
|
||||||
CurveModifierData *cmd= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Curve);
|
md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Curve);
|
||||||
cmd->object= par;
|
((CurveModifierData *)md)->object= par;
|
||||||
}
|
break;
|
||||||
break;
|
case PAR_LATTICE: /* lattice deform */
|
||||||
case PAR_LATTICE: /* lattice deform */
|
md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Lattice);
|
||||||
{
|
((LatticeModifierData *)md)->object= par;
|
||||||
LatticeModifierData *lmd= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Lattice);
|
break;
|
||||||
lmd->object= par;
|
default: /* armature deform */
|
||||||
}
|
md= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Armature);
|
||||||
break;
|
((ArmatureModifierData *)md)->object= par;
|
||||||
default: /* armature deform */
|
break;
|
||||||
{
|
|
||||||
ArmatureModifierData *amd= ED_object_modifier_add(op->reports, scene, ob, eModifierType_Armature);
|
|
||||||
amd->object= par;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,16 +44,29 @@
|
|||||||
#include "BKE_depsgraph.h"
|
#include "BKE_depsgraph.h"
|
||||||
|
|
||||||
#include "ED_object.h"
|
#include "ED_object.h"
|
||||||
|
#include "ED_anim_api.h"
|
||||||
|
|
||||||
#include "WM_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;
|
scene->r.cfra= frame;
|
||||||
CLAMP(sce->r.cfra, MINAFRAME, MAXFRAME);
|
CLAMP(scene->r.cfra, MINAFRAME, MAXFRAME);
|
||||||
scene_update_for_newframe(sce, (1<<20) - 1);
|
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,
|
static KeyingSet *rna_Scene_add_keying_set(Scene *sce, ReportList *reports,
|
||||||
@ -96,6 +109,10 @@ void RNA_api_scene(StructRNA *srna)
|
|||||||
parm= RNA_def_int(func, "frame", 0, MINAFRAME, MAXFRAME, "", "Frame number to set.", MINAFRAME, MAXFRAME);
|
parm= RNA_def_int(func, "frame", 0, MINAFRAME, MAXFRAME, "", "Frame number to set.", MINAFRAME, MAXFRAME);
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED);
|
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 */
|
/* Add Keying Set */
|
||||||
func= RNA_def_function(srna, "add_keying_set", "rna_Scene_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.");
|
RNA_def_function_ui_description(func, "Add a new Keying Set to Scene.");
|
||||||
|
Loading…
Reference in New Issue
Block a user